[release-announce] [ironic] ironic 7.0.0 (ocata)

no-reply at openstack.org no-reply at openstack.org
Mon Feb 13 22:26:11 UTC 2017


We are psyched to announce the release of:

ironic 7.0.0: OpenStack Bare Metal Provisioning

This release is part of the ocata release series.

The source is available from:

    http://git.openstack.org/cgit/openstack/ironic

Download the package from:

    https://tarballs.openstack.org/ironic/

Please report issues through launchpad:

    http://bugs.launchpad.net/ironic

For more details, please see below.

7.0.0
^^^^^

The 7.0.0 release includes many new features and bug fixes. Please
review the upgrade section which describes the required actions to
upgrade your ironic installation from 6.2.2 (Newton) to 7.0.0 (Ocata).

A few major changes are worth mentioning. This is not an exhaustive
list:

* "Port group" support allows users to take advantage of bonded
  network interfaces.

* State change and CRUD notifications can now be emitted.

* Soft power off, soft reboot, and sending non-maskable interrupts
  (NMI) are now supported in the REST API.

* The AMT, iBoot, msftocs, seamicro, VirtualBox, and Wake-On-Lan
  drivers have been removed from ironic. Please see the upgrade notes
  for additional details and options.

* "Dynamic drivers" is a revamp of how drivers are composed. Rather
  than a huge matrix of hardware drivers supporting different things,
  now users select a "hardware type" for a machine, and can
  independently change the deploy method, console manager, RAID
  management, power control interface, etc. This is experimental, as
  not all "classic" drivers have a dynamic equivalent yet, but we
  encourage users to try this feature out and submit feedback.


New Features
************

* Adds support for removing the chassis UUID associated with a node
  (via "PATCH /v1/nodes/<ident>"). This is available starting with API
  version 1.25.

* Adds the use of DHCP option 210 (tftp-path-prefix). This enables
  PXE for systems using petitboot, which cannot infer their tftp-path-
  prefix from the boot file location as petitboot does not use a boot
  file.

* To enable SNMPv3 inspection in iLO drivers, the following
  parameters must be set in the node's "driver_info". *
  "snmp_auth_user" * "snmp_auth_prot_password" *
  "snmp_auth_priv_password" * "snmp_auth_protocol" (optional, defaults
  to iLO default value "MD5") * "snmp_auth_priv_protocol" (optional,
  defaults to iLO default value "DES")

* Adds the initial substrate to allow for the creation of storage
  interfaces. The default storage interface for nodes is "noop", which
  routes to a no-op driver that is included with the substrate.

* Adds support for attaching and detaching network VIFs to ironic
  ports and port groups by using the "/v1/nodes/<node>/vifs" API
  endpoint that was added in API version 1.28. When attaching a VIF to
  a node, it is attached to the first free port group. A port group is
  considered free if it has no VIFs attached to any of its ports.
  Otherwise, only the unattached ports of this port group are
  available for attachment. If there are no free port groups, the
  first available port is used instead, where ports with "pxe_enabled"
  set to "True" have higher priority.

* Adds support for port groups with a new endpoint
  "/v1/portgroups/". Ports can be combined into port groups to support
  static Link Aggregation Group (LAG) and Multi-Chassis LAG (MLAG)
  configurations.

  Note that if the optional "mode" field for a port group is not
  specified, its value will be set to the value of the configuration
  option "[DEFAULT]default_portgroup_mode", which defaults to "active-
  backup".

  Additionally, adds the following API changes:

  * a new endpoint "/v1/nodes/<node>/portgroups".

  * a new endpoint "/v1/portgroups/<portgroup>/ports".

  * a new field "portgroup_uuid" on the port object. This is the
    UUID of a port group that this port belongs to, or None if it does
    not belong to any port group.

  All port group API functions are available starting with version
  1.26 of the REST API.

* Adds timing metrics to DRAC drivers.

* Adds timing metrics to iRMC drivers.

* Adds new option "[deploy]/default_boot_option" for setting the
  default boot option when no explicit boot option is requested via
  capabilities.

* Adds new methods to network interfaces, which will become
  mandatory in Pike release:

  * "vif_list": List attached VIF IDs for a node.

  * "vif_attach": Attach a virtual network interface to a node.

  * "vif_detach": Detach a virtual network interface from a node.

  * "port_changed": Handle any actions required when a port

       changes.

  * "portgroup_changed": Handle any actions required when a port
    group changes.

  * "get_current_vif": Return VIF ID attached to port or port group
    object.

* Adds support for dynamic drivers. Using a dynamic driver in a
  node's "driver" field is now possible. Dynamic drivers are composed
  of a "hardware type" and a number of "hardware interfaces".

  NOTE: this feature is considered somewhat experimental, as not all
  classic drivers have a corresponding dynamic driver, and there is
  minimal CI for dynamic drivers at the time of this writing.

  Hardware types are enabled via the
  "[DEFAULT]/enabled_hardware_types" configuration option, and
  hardware interfaces are enabled via the
  "[DEFAULT]/enabled_*_interfaces" configuration option. A default
  interface to use when creating or updating nodes can be specified
  with the "[DEFAULT]/default_*_interface" configuration option.

  The ironic-conductor process will now fail to start if:

  * a default interface implementation for any enabled hardware type
    cannot be found.

  * a dynamic driver and a classic driver with the same name are
    both enabled.

  * at least one classic driver *or* one dynamic driver is not
    enabled.

  Hardware types available in this release are:

  * "ipmi" for IPMI-compatible hardware.  This type is enabled by
    default. Uses the "ipmitool" utility under the hood, similar to
    existing classic drivers "pxe_ipmitool" and "agent_ipmitool".
    Supports both types of serial console: via "shellinabox" and via
    "socat", both are disabled by default.

  * "irmc" for FUJITSU PRIMERGY servers, disabled by default.

  This feature has a number of REST API changes, all of which are
  available in API version 1.31.

  * Adds additional parameters and response fields for GET
    /v1/drivers and GET /v1/drivers/<name>.

  * Exposes the following fields on the node resource, to allow
    getting and setting interfaces for a dynamic driver:

    * boot_interface

    * console_interface

    * deploy_interface

    * inspect_interface

    * management_interface

    * power_interface

    * raid_interface

    * vendor_interface

  * Allows dynamic drivers to be used and returned in the following
    API calls, in all versions of the REST API:

    * GET /v1/drivers

    * GET /v1/drivers/<name>

    * GET /v1/drivers/<name>/properties

    * GET /v1/drivers/<name>/vendor_passthru/methods

    * GET/POST /v1/drivers/<name>/vendor_passthru

    * GET/POST /v1/nodes/<id>/vendor_passthru

  For more details on the REST API changes, see the REST API Version
  History documentation
  (http://docs.openstack.org/developer/ironic/dev/webapi-version-
  history.html).

  This also adds dynamic interface fields to node-related
  notifications:

  * boot_interface

  * console_interface

  * deploy_interface

  * inspect_interface

  * management_interface

  * power_interface

  * raid_interface

  * vendor_interface

  The affected notifications are:

  * baremetal.node.create.*, new payload version 1.1

  * baremetal.node.update.*, new payload version 1.1

  * baremetal.node.delete.*, new payload version 1.1

  * baremetal.node.maintenance.*, new payload version 1.3

  * baremetal.node.console.*, new payload version 1.3

  * baremetal.node.power_set.*, new payload version 1.3

  * baremetal.node.power_state_corrected.*, new payload version 1.3

  * baremetal.node.provision_set.*, new payload version 1.3

* Add "hctl" to root device hints. HCTL is the SCSI address and
  stands for Host, Channel, Target and Lun.

* Add support for the injection of Non-Masking Interrupts (NMI) for
  a node in REST API version 1.29. This feature can be used for
  hardware diagnostics, and actual support depends on the driver. In
  7.0.0, this is available in the ipmitool and iRMC drivers.

* Adds support to deploy to nodes with different CPU architectures
  from a single conductor. This depends on two new configuration
  options, "[pxe]/pxe_config_template_by_arch" and
  "[pxe]/pxe_bootfile_name_by_arch". Each is a dictionary mapping CPU
  architecture to PXE config template or PXE boot file name,
  respectively.

  As an example, the syntax might look like:

     pxe_config_template_by_arch=aarch64:pxe_grubaa64_config.template,ppc64:pxe_ppc64_config.template

  Ironic attempts to map the CPU architecture in this mapping to the
  "properties/cpu_arch" field for a node. If the node's CPU
  architecture is not found in the mapping, ironic will fall back to
  the standard options "pxe_config_template", "pxe_bootfile_name",
  "uefi_pxe_config_template", and "uefi_pxe_bootfile_name".

* Adds new configuration option
  "[conductor]/send_sensor_data_workers" to allow concurrent sending
  of sensor data using the specified number of green threads. The
  "[conductor]/wait_timeout_for_send_sensor_data" configuration option
  is the time to wait for all spawned green threads before running the
  periodic task again.

* Names can now be used instead of UUIDs for
  "[neutron]/cleaning_network" and "[neutron]/provisioning_network"
  configuration options (formerly called
  "[neutron]/cleaning_network_uuid" and
  "[neutron]/provisioning_network_uuid"). Care has to be taken to
  ensure that the names are unique among all networks in this case.
  Note that the mapping between a name and a UUID is cached for the
  lifetime of the conductor.

* Adds in-band inspection interface usable by OneView drivers.

* Adds timing metrics to OneView drivers.

* Ironic is now configured to work with two oslo.policy CLI scripts
  that have been added.

  The first of these can be called like "oslopolicy-list-redundant
  --namespace ironic" and will output a list of policy rules in
  policy.[json|yaml] that match the project defaults. These rules can
  be removed from the policy file as they have no effect there.

  The second script can be called like "oslopolicy-policy-generator
  --namespace ironic --output-file policy-merged.yaml" and will
  populate the policy-merged.yaml file with the effective policy. This
  is the merged results of project defaults and config file overrides.

* The pxe_snmp and fake_snmp are now supported and tested.

* Agent lookup/heartbeat as vendor passthru is removed from most of
  in-tree ironic drivers. Affected drivers are

  * agent_ipmitool

  * agent_ipmitool_socat

  * agent_ipminative

  * agent_irmc

  * agent_ssh

  * agent_vbox

  * agent_ucs

  * pxe_agent_cimc

  * pxe_ipmitool

  * pxe_ipmitool_socat

  * pxe_ssh

  * pxe_ipminative

  * pxe_seamicro

  * pxe_snmp

  * pxe_irmc

  * pxe_vbox

  * pxe_msftocs

  * pxe_ucs

  * pxe_iscsi_cimc

  * pxe_drac

  * pxe_drac_inspector

  * iscsi_irmc

  * agent_ilo

  * iscsi_ilo

  * pxe_ilo

  * agent_pxe_oneview

  * iscsi_pxe_oneview

  All the other vendor passthru methods are left in place if the
  driver had them.

* Adds the following notifications:

  * Creation, updates, or deletions of ironic resources (node, port
    and chassis). Event types are
    "baremetal.<resource>.{create,update,delete}.{start,end,error}".

  * Start and stop console on a node. Event types are
    "baremetal.node.console_{set,restore}.{start,end,error}".

  * Changes in node maintenance status. Event types are
    "baremetal.node.maintenance_set.{start,end,error}".

  * When ironic attempts to set the power state on the node. Event
    types are "baremetal.node.power_set.{start,end,error}".

  * When ironic detects the power state on baremetal hardware has
    changed and updates the node in the database appropriately. Event
    types are "baremetal.node.power_state_corrected.success".

  * Node provision state changes. Event types are
    "baremetal.node.provision_set.{start,end,success,error}".

  These are only emitted when notifications are enabled. For more
  details, see the developer documentation: http://docs.openstack.org
  /developer/ironic/deploy/notifications.html.

* Adds support for security groups for the provisioning and cleaning
  network. These are optionally specified by the configuration options
  "[neutron]/provisioning_network_security_groups" and
  "[neutron]/cleaning_network_security_groups", respectively. If not
  specified, the default security group for the network is used. These
  options are only applicable for nodes using the "neutron" network
  interface. These options are ignored for nodes using the "flat" and
  "noop" network interfaces.

* Adds support for soft reboot and soft power off requests in REST
  API version 1.27. Also adds an optional "timeout" parameter to the
  node power state API. Adds a new configuration option
  "[conductor]/soft_power_off_timeout" to define the default timeout
  for soft power actions. In 7.0.0, this is supported for ipmitool and
  iRMC drivers.

* Adds support for using operators with the root device hints
  mechanism. The supported operators are, "=", "==", "!=", ">=", "<=",
  ">", "<", "s==", "s!=", "s>=", "s>", "s<=", "s<", "<in>", "<all-in>"
  and "<or>". See http://docs.openstack.org/project-install-
  guide/baremetal/draft/advanced.html#specifying-the-disk-for-
  deployment-root-device-hints


Upgrade Notes
*************

* Adds a new dependency on the tooz library
  (https://pypi.python.org/pypi/tooz), as the consistent hash ring
  code was moved out of ironic and into tooz.

* The "[DEFAULT]/debug" configuration option now also enables debug
  logs for the "ironic-python-agent" ramdisk. If the "ipa-debug"
  kernel option is already present in the "[pxe]/pxe_append_params"
  configuration option, ironic will not overwrite it.

* Moves node creation logic from the API service to the conductor
  service. This is more consistent with other node operations and
  opens opportunities for conductor-side validations on nodes.
  However, with this change, node creation may take longer, and this
  may limit the number of nodes that can be enrolled in parallel.

* The "[DEFAULT]/default_network_interface" and
  "[dhcp]/dhcp_provider" configuration options were previously
  required for the ironic-api service to calculate the correct
  "network_interface" default. Now these options are only required by
  the ironic-conductor service.

* A future release will change the default value of
  "[deploy]/default_boot_option" from "netboot" to "local". To avoid
  disruptions, it is recommended to set an explicit value for this
  option.

* The minimum version of python-oneviewclient is now 2.5.2.

* Ironic now uses only the Image Service (glance) v2 API by default.
  Use of the deprecated v1 API for certain basic tasks can still be
  enabled by setting "[glance]/glance_api_version" to "1". This
  option, however, does not affect temporary URL generation, as it
  always requires the v2 API.

* The "[inspector]/enabled" configuration option no longer has
  effect on the "fake_inspector" driver. It will also not have effect
  on new- style dynamic drivers based on hardware types; it will be
  necessary to use "[DEFAULT]/enabled_inspect_interfaces" instead.

* Increases the default number of workers for the "send_sensor_data"
  periodic task from 1 to 4.

* Ironic no longer passes "root_device" as kernel parameter via boot
  config files. Passing root device hints to Ironic Python Agent (IPA)
  as kernel parameters was deprecated in Newton release. As a
  consequence, using root device hints with Ironic as of Ocata release
  will not be possible when deploying nodes with the help of ramdisks
  based on IPA as of Mitaka release. Operators relying on root device
  hints functionality are advised to update their IPA-based Ironic
  deploy images.

* Ironic no longer supports agent lookup/heartbeats as vendor
  passthru methods. All out-of-tree drivers must be updated to use
  "AgentDeployMixin" classes directly without relying on
  "BaseAgentVendor" class and other classes that were inheriting from
  it (e.g. "agent.AgentVendorInterface" and
  "iscsi_deploy.VendorPassthru"). This means that ironic is
  incompatible with deploy ramdisks based on Ironic Python Agent (IPA)
  < 1.5.0. Operators must update their IPA-based deploy ramdisks in
  this case. Operators using non-IPA based deploy ramdisks which use
  ironic lookup/heartbeats functionality must update their ramdisks to
  use the top level ironic lookup/heartbeats REST API, available since
  ironic API v1.22.

* The deprecated ironic.nova.ClusteredComputerManager module is now
  removed. This is not required with nova >= 14.0.0 (Newton).

* The configuration option "[deploy]/erase_devices_iterations" was
  deprecated in the Newton cycle (6.0.0). It is no longer supported.
  Please use the option "[deploy]/shred_random_overwrite_iterations"
  instead.

* Removes these deprecated methods from the neutron DHCP provider
  built into ironic:

  * create_cleaning_ports

  * delete_cleaning_ports

  Removes these related methods from
  "ironic.drivers.modules.deploy_utils":

  * prepare_cleaning_ports

  * tear_down_cleaning_ports

  If you have your own custom ironic DHCP provider that implements
  cleaning methods, you may need to update your code to use the
  "add_cleaning_network()" and "remove_cleaning_network()" network
  interface methods. See the modules in
  "ironic/drivers/modules/network/" for more information.

* Removes support for attaching periodic tasks on a driver object,
  rather than an interface.

* There is no longer any support for doing an iSCSI deploy on ironic
  python agent (IPA) ramdisks with versions < 1.3 (Mitaka or earlier).
  Please upgrade ironic python agent to a newer version.

* A number of drivers that were declared as unsupported in Newton
  release have been removed from ironic tree. This includes drivers
  with power and/or management driver interfaces based on:

  * MSFT OCS

  * SeaMicro client

  * Virtualbox over pyremotevbox client

  As a result, the following ironic drivers will no longer be
  available:

  * agent_vbox

  * fake_msftocs

  * fake_seamicro

  * fake_vbox

  * pxe_msftocs

  * pxe_seamicro

  * pxe_vbox

  After upgrading, if one or more of these drivers are in the
  'enabled_drivers' configuration option, the ironic-conductor service
  will fail to start. Any existing ironic nodes with these drivers
  assigned will become inoperational via ironic after ironic upgrade,
  as it will be not possible to change any node state/properties
  except changing the node driver. Operators having one of the drivers
  listed above enabled are required to either disable those drivers
  and assign another existing driver to affected nodes as appropriate,
  or install these drivers from elsewhere separately.

* For SSH power drivers, if the configuration option
  "[neutron]/port_setup_delay" had been set to 0, a delay of 15
  seconds was used. This is no longer the case. Please set the
  configuration option to the desired value; otherwise the service
  will not wait for Neutron agents to set up a port.

* Updates required proliantutils version for iLO drivers to 2.2.0.
  This version has support for sanitize disk erase using SSA utility.


Deprecation Notes
*****************

* Using "port.extra['vif_port_id']" for attaching and detaching VIFs
  to ports or port groups is deprecated and will be removed in Pike
  release.

* The function "build_instance_info_for_deploy" is deprecated from
  "ironic.drivers.modules.agent" and will be removed in the Pike
  cycle. Its new home is "ironic.drivers.modules.deploy_utils". Out-
  of-tree drivers that use this function should be updated
  accordingly.

* Usage of the following values was deprecated in the policy files:

  * "domain_id" and "domain_name" - "user_domain_id" should be used
    instead of those (note - "user_domain_id" is an ID of the domain,
    not its name).

  * "tenant" - "project_name" should be used instead.

  * "user" - "user_id" should be used instead.

* "update_mac_address" method in the DHCP provider interface is
  deprecated and will be removed in the Pike release. The logic should
  be moved to a custom network interface's "port_changed" and
  "portgroup_changed" methods.

* For DRAC drivers, the node's "driver_info["drac_host"]" property
  is deprecated and will be ignored starting in the Pike release.
  Please use "driver_info["drac_address"]" instead.

* Configuration options "[neutron]/cleaning_network_uuid" and
  "[neutron]/provisioning_network_uuid" are deprecated in favor of the
  new configuration options "[neutron]/cleaning_network" and
  "[neutron]/provisioning_network" respectively.

* The "agent_last_heartbeat" field of "driver_internal_info" has
  been removed from all agent drivers, since this field was unused by
  ironic.


Security Issues
***************

* Private SSH keys are now masked when using the SSH power driver
  and node details are requested.


Bug Fixes
*********

* Adds a missing error check into "ipmitool" power driver's reboot
  method so that the reboot can fail properly if power off failed.

* Fixes disk size detection for out-of-band inspection in iLO
  drivers, by optionally using SNMPv3 to get the disk size for certain
  types of storage.

* Drivers using the "AgentDeploy" interface now correctly support
  take-over for "ACTIVE" netboot-ed nodes.

* Fixed an issue of not returning "chassis_uuid" field of a node in
  API responses if it does not belong to a chassis. It should be
  always returned, either set to None, or to a corresponding chassis
  UUID.

* Fixes SSH driver validation when using a private key with a
  passphrase for authentication.

* Fixes an issue where setting a boot device as persistent does not
  work when "ipmi_force_boot_device" is set to "True".  For more
  information, see https://bugs.launchpad.net/ironic/+bug/1626453.

* Fixes an issue where the API service does not start if audit is
  enabled with the default value of "[audit]/ignore_req_list"
  configuration option.

* Catch unknown exceptions with traceback when validating driver
  interfaces.

* Now sets node's "updated_at" field correctly after a node has been
  updated.

* Removes a check that was preventing whole disk images from being
  deployed in UEFI mode without explicitly setting the "boot_option"
  capability to "local". For whole disk images, ironic already assumes
  booting from local storage by default.

* A "[conductor]/api_url" value specified in the configuration file
  that does not start with either "https://" or "http://" is no longer
  allowed. An incorrect value led to deployment failure on ironic-
  python-agent side. This misconfiguration will now be detected during
  ironic-conductor and ironic-api startup. An exception will be raised
  and an error about the invalid value will be logged.

* Fixes an issue with the "neutron" network interface that could
  lead to an inability to retry the deployment in case of failure on
  boot interface's "prepare_ramdisk" stage.

* Fixes an issue where a pre-created tenant port was automatically
  deleted by ironic on instance delete.

* Fixes an issue which caused the DRAC driver ("pxe_drac")
  "get_bios_config()" vendor passthru method to unintentionally raise
  an "AttributeError" exception. That method once again returns the
  current BIOS configuration. For more information, see
  https://bugs.launchpad.net/ironic/+bug/1637671.

* A validation step is added to verify that the Server Profile
  Template's MAC type is set to Physical when dynamic allocation is
  enabled. The OneView Driver needs this verification because the
  machine is going to use a MAC that will only be specified at the
  profile application.

* Fixes an issue where the ironic-conductor service would not run if
  a trailing comma or empty driver was specified in the
  "[DEFAULT]enabled_drivers" configuration option. The service now
  runs and logs a warning.

* Fail deployment when no ports or port groups are linked to a node.
  This is to avoid active nodes not connected to any tenant network.

* Changes interactions with neutron to always use the neutron
  credentials from ironic configuration, instead of forwarding the
  credentials from the API client.

* Fixes an issue with node rebuild, when tenant network ports were
  not unbound prior to moving the node to provisioning network.

* Fixes an issue where the OneView deploy interface does not return
  the node properties and in the tear down phase does not return the
  state of the node.

* Fixes a bug in the OneView driver where the periodic task to check
  if a node is in use by OneView may end prematurely.

* Fixes a bug where some of the API methods were not using the right
  context values for checking the policy.

* Ironic exceptions that contained arbitrary objects in "kwargs" and
  were sent via RPC were causing "oslo_messaging" serializer to fail.
  This was leading to 500 errors from ironic API, timing out waiting
  for response from the conductor. Starting with this release, all
  non-serializable objects contained in an exception's kwargs are
  dropped. Whether the error is going to be returned by the service
  will depend on the configuration option
  "[DEFAULT]/fatal_exception_format_errors".

* An issue when it was impossible to detach manually attached VIF to
  port (port.extra) when port is in portgroup by using DELETE
  "v1/nodes/<node_ident>/vifs" API.

* Fixes a bug in the iLO drivers' inspection where an existing
  "local_gb" node property was overwritten with "0" if not detected.

* Correctly handle unexpected exceptions during inspection. Return
  more detailed error message to a user and log the traceback.

* Fixes a bug with incorrect base socat command, which prevented the
  usage of console.

* Adds support for deploying to IPv6 iSCSI portals.

* Remove "dhcp" command from the default iPXE script. It is
  redundant, and may even break booting when the provisioning NIC is
  not the first one.

* Fixes a problem where the deployment of a node would fail to
  continue if a malformed MAC address was passed to the lookup
  mechanism in the Ironic API. For example, if a node contains an
  Infiniband card, the lookup used to fail because the agent ramdisk
  passes a MAC address (or GID) with 20 octets (instead of the
  expected 6 octets) as part of the lookup request. Invalid addresses
  are now ignored.

* Fixes a bug in manual clean step caching, which resulted in all
  clean steps not being abortable. See
  https://bugs.launchpad.net/ironic/+bug/1658061.

* Nodes with classic drivers cannot have any interfaces (except for
  network and storage) specified. HTTP status 400 is returned in these
  cases.

* Fixes an issue with ironic being able to change the power state of
  nodes currently in use by OneView.

* Fixes the OneView driver to make the "set_boot_device" method work
  as expected with the "persistent" option set to "False".

* Drivers using the "PXEBoot" boot interface now correctly support
  node take-over for netboot-ed nodes in "ACTIVE" state.  During take-
  over, the PXE environment is first re-created before attempting to
  switch it to "service mode".

* Fixes a bug where OneView drivers create a new instance of the
  OneView client for each request made.

* Ironic now validates any swift temporary URL when preparing for
  deployment of nodes.

* Fixes an issue when attaching VIF to a port with missed
  "local_link_connection" field was allowed when node network
  interface was "neutron".


Other Notes
***********

* Some combinations of port group protocols and hardware might not
  support falling back to single interface mode. If a static port
  group was created under such circumstances (where
  "portgroup.standalone_ports_supported = False"), additional
  restrictions apply to such ports and port groups, for example such
  ports will not support booting over PXE.

  Certain restrictions are imposed on values of port properties for
  ports belonging to a port group:

  * "port.pxe_enabled" cannot be set to True if the port is a member
    of a port group with portgroup.standalone_ports_supported already
    set to False.

  * "portgroup.standalone_ports_supported" cannot be set to False on
    a port group if at least one port in that port group has
    "port.pxe_enabled=True"

  * "port.extra.vif_port_id" cannot be set on a port that is a
    member of a port group with
    "portgroup.standalone_ports_supported=False" as setting it means
    that we using port in single interface mode.

  * "portgroup.standalone_ports_supported" cannot be set to False on
    a port group if it has at least one port with
    "port.extra.vif_port_id" set.

Changes in ironic 6.2.0..7.0.0
------------------------------

4dfde43 Clean up release notes for 7.0.0
ba980bd Add a summary release note for ocata
a951e45 Walk over all objects when doing VIF detach
c14dbfa Fix unit tests with UcsSdk installed
dd2a85a Mock client initializations for irmc and oneview
442849b Follow up patch for SNMPv3 support
03cd4c4 Add a tox target for unit tests with driver libraries
b85d0d7 Fix missed '_' import
23013a9 Change misc to test_utils for tempest test
5efde6a Source lib/ironic in grenade settings
d33faed Update api-ref for dynamic drivers
d77b263 Switch to use test_utils.call_until_true
d3e13f6 Add port groups configuration documentation
02ce724 Remove most unsupported drivers
8de1f68 SNMP agent support for OOB inspection for iLO Drivers
d8bdbda No node interface settings for classic drivers
c6abd51 Unbind tenant ports before rebuild
eaf4622 Remove a py34 environment from tox
64e0983 Fix object save after refresh failure
5b10a82 Pass session directly to swiftclient
ef4bd99 Adds network check in upgrade phase in devstack
696e9ba Fix log formating in ironic/common/neutron
2ab96f6 Follow-up iRMC power driver for soft reboot/poff
06c4c00 Use https instead of http for git.openstack.org
f192abb Validate the network interface before cleaning
e3bd99f log if 'flat' interface and no cleaning network
0a7fc60 exception from driver_factory.default_interface()
e98b028 [devstack] Allow using "ipmi" hardware type
5d5edde Remove trailing slash from base_url in tempest plugin
1f25244 Improve enabled_*_interfaces config help and validation
dfc272c Prepare for using standard python tests
d9f03f9 [Devstack] fix waiting resources on subnode
04d8552 Log an actual error message when failed to load new style credentials
fa4a5a5 Speed up irmc power unit tests
c399e56 Add bumping sem-ver to the releasing docs
c96197c Make _send_sensors_data concurrent
c56375d [devstack] remove deprecated IRONIC_IPMIINFO_FILE
6206c47 Fail conductor startup if invalid defaults exist
d361d75 Add dynamic interfaces fields to base node notification
0071c7e Improve conductor driver validation at startup
ca87811 Remove iSCSI deploy support for IPA Mitaka
d7eb416 Do not change admin_state for tenant port
2a086db Use delay configoption for ssh.SSHPower drivers
c44acd8 Add the timeout parameter to relevant methods in the fake power interface
3284cd9 Adding clean-steps via json string examples
adf917e Allow duplicate execution of update node DB api method
9efaed6 Remove deprecated heartbeat policy check
4b28af4 Add sem-ver flag so pbr generates correct version
a1a3e2e Fix a few docstring warnings
2a9e4a5 Remove deprecated [deploy]erase_devices_iterations
308f00b Remove support for driver object periodic tasks
94bd464 Log reason for hardware type registration failure
e0affc1 Duplicated code in ..api.get_active_driver_dict()
6855ab1 Add hardware type 'irmc' for FUJITSU PRIMERGY servers
ee390e0 Allow using resource classes
7e7ef60 DevStack: Only install edk2-ovmf on Fedora
d602bb5 [Devstack] Add stack user to libvirt group
53a4aa9 Add soft reboot, soft power off and power timeout to api-ref
8570bee Add dynamic interfaces fields to nodes API
e776757 Add dynamic driver functionality to REST API
0ed2de5 [Devstack] Download both disk and uec images
4ac18de [Devstack] Set DEFAULT_IMAGE_NAME variable
e095bea Update the outdated link in user-guide
3a91daf Add Inject NMI to api-ref
cbdf507 Don't override device_owner for tenant network ports
56570b1 Validate port info before assume we may use it
ab48843 Switch to decorators.idempotent_id
5bb3adf Updated from global requirements
1f1e4b3 Minor updates to multi-tenancy documentation
25a536b Follow-up iRMC driver doc update
b1b86b6 Devstack: Create a "no ansi" logfile for the baremetal console logs
7975443 Add hardware type for IPMI using ipmitool
919e12d [Devstack] enable only pxe|agent_ipmitool by default
401f782 Update iRMC driver doc for soft reboot and soft power off
9ed1d1b Fix broken link in the iLO driver docs
6eab337 DevStack: Fix cleaning up nodes with NVRAM (UEFI)
d2a4dca iRMC power driver for soft reboot and soft power off
eb5a7bf Update proliantutils version required for Ocata release
07d4f4e Fix rel note format of the new feature Inject NMI
c46b720 iRMC management driver for Inject NMI
4c61f1a Revert "Revert "Remove ClusteredComputeManager""
b6ccb4b Use context manager for better file handling
f701719 Updated from global requirements
8de489a Fix typo in the metrics.rst file
3f7d482 Allow to use no nova installation
eae8e07 Fix api-ref warnings
1dc1540 Turn NOTE into docstring
1f2e743 Updated from global requirements
ee6bfb3 Correctly cache "abortable" flag for manual clean steps
638d8dd Use global vars for storing image deploy path's
22a3a5a Ipmitool management driver for Inject NMI
58d59db Generic management I/F for Inject NMI
d46ab0d Clean up driver_factory.enabled_supported_interfaces
3c45f2f Add hardware types to the hash ring
078fb81 Default ironic to not use nested KVM
7bfd88a Do not use user token in neutron client
72adb4f Use only Glance V2 by default (with a compatibility option)
3d22fa4 Enable manual-management hardware type in devstack
b7e6b73 Register/unregister hardware interfaces for conductors
22dcfc6 Validate the generated swift temp url
b08e536 Move to tooz hash ring implementation
77d1537 Add VIFs attach/detach to api-ref
07686f4 DevStack: Configure nodes/environment to boot in UEFI mode
1e162bf Add tests for Payloads with SCHEMAs
70504de make sure OVS_PHYSICAL_BRIDGE is up before bring up vlan interface
98aa3bb Update troubleshooting docs on no valid host found error
472abf4 Expose default interface calculation from driver_factory
ac90e73 Add default column to ConductorHardwareInterfaces
56604b9 Do not fail in Inspector.__init__ if [inspector]enabled is False
e72e68e Use TENANT_VIF_KEY constant everywhere
713a440 Updated from global requirements
b83af0d Allow to attach/detach VIF to portgroup
bf88706 Refactor DRAC driver boot-device tests
9012f52 Updated from global requirements
e63cd08 Remove check for UEFI + Whole disk images
f88f8dc Updated from global requirements
3a5e334 Update validate_ports from BaremetalBasicOps
ed6c599 Ipmitool power driver for soft reboot and soft power off
76b9170 Allow to set min,max API microversion in tempest
6d489ef Skip VIF api tests for old api versions
daa17e0 Fix assertEqual parmeters position in unittests
2505cb5 Ensures that OneView nodes are free for use by Ironic
39fe7c7 Move default image logic from DevStack to Ironic
df711ea Document HCTL for root device hints
eeababf Removes unnecessary utf-8 encoding
4789d3b Add Virtual Network Interface REST APIs
1bc5bbc Fix logging if power interface does not support timeout
79c0c8e Add lsblk to ironic-lib filters
6fa1421 Fix setting persistent boot device does not work
d9e1750 Updated from global requirements
bbd0e96 Add docs about creating release note when metrics change
79010d6 Fix take over of ACTIVE nodes in AgentDeploy
035ad6a Fix take over for ACTIVE nodes in PXEBoot
cf5eddd Don't translate exceptions w/ no message
41da55c Correct logging of loaded drivers/hardware types/interfaces
5130a3c Move baremetal tempest config setting from devstack
18acfae Change object parameter of swift functions
710254d Remove greenlet useless requirement
4b4a44f Fixes grammar in the hash_partition_exponent description
dc673e3 Revert "Disable placement-api by default"
36bd923 Remove service argument from tempest plugin client manager
f8e1bc2 Fix the comma's wrong locations.
a4b2954 Remove netaddr useless requirement
f15d5b9 Generic power interface for soft reboot and soft power off
4fa2412 Create a table to track loaded interfaces
480d5be Remove trailing backtick
40870e4 Updated from global requirements
cc88ce1 Remove 'fork' option from socat command
01374ad Add Virtual Network Interface RPC APIs
3467da6 Catch unknown exceptions in validate driver ifaces
be6f34c Disable placement-api by default
e7eb1e6 Update regenerate-samples.sh api-ref script
557469b Updated from global requirements
9088891 Add Virtual Network Interface Driver APIs
065326c 'updated_at' field value after node is updated
294f974 Add node console notifications
876db5a Add node maintenance notifications
499ef55 Add ironic resources CRUD notifications
9cd777f Auto-set nullable notification payload fields when needed
75bc194 Update dev-quickstart: interval value cannot be -1
053d4af Fix wrong exception message when deploy failed
c491e93 Add storage_interface to base driver class
7556dc6 Update multi-tenancy documentation
fa200aa Add storage_interface to node DB table
519bb0c Add API reference for portgroup's mode and properties
c756e7d Set access_policy for messaging's dispatcher
43fefe9 Add a NodePayload test
f6b28b3 Add test to ensure policy is always authorized
fd3c5e9 Fix bashate warning in devstack plugin
ef818b7 Forbid removing portgroup mode
88171fc Configure tempest for multitenancy/flat network
65b42a3 Wrap iscsi portal in []'s if IPv6
633abbe Fix policy dict checkers
36e92d9 Updated from global requirements
2777814 Introduce generic hardware types
318b763 Remove grenade config workaround
cce4281 Add portgroup configuration fields
1018fd5 Onetime boot when set_boot_device isn't persistent
3cc3602 Revert "Change liberty's reno page to use the tag"
75b90a5 Update multitenancy docs
eb04079 Use oslo_serialization.base64 to follow OpenStack Python3
9f7e694 Updated from global requirements
9011711 Support defining and loading hardware types
7611c4f Change liberty's reno page to use the tag
e6349f2 DevStack: Make $IRONIC_IMAGE_NAME less dependent of the name in DevStack
0f37379 Fix error when system uses /usr/bin/qemu-kvm, as in CentOS 7.2.
acfe366 Adds another validation step when using dynamic allocation
1198811 Fix return values in OneView deploy interface
0e3dd59 Clarify the comment about the object hashes
83b2d56 Reusing oneview_client when possible
a807394 Enhance wait_for_bm_node_status waiter
a3803b4 Use polling in set_console_mode tempest test
f13f1ed Make CONF.debug also reflect on IPA
30a4340 Fail ironic startup if no protocol prefix in ironic api address
5eb4ba2 Remove agent vendor passthru completely
87c2db4 Remove iBoot, WoL and AMT drivers
cf81c49 Remove agent vendor passthru from OneView drivers
8ad0a42 Move CONF.service_available.ironic to our plugin
95da9dc devstack: add vnc listen address
f31c8c7 Autospec ironic-lib mocks, fix test error string
e806cf7 Remove deprecation of snmp drivers
82d7c8c Allow setting dhcp_provider in devstack
8bcee6e Fix default value of "ignore_req_list" config option
ff4d6d1 Add unit test for create_node RPC call
27b2453 Documentation for Security Groups for baremetal servers
679edb4 Remove agent vendor passthru from iLO drvers
efca39e Updated from global requirements
1f605a2 Add release names & numbers to API version history
e276418 Remove the VALID_ROOT_DEVICE_HINTS list
a581c1e Make "enabled_drivers" config option more resilient to failures
fd41da7 Fix double dots at the end of a message to single dot
c7763a7 Clean up object code
349a4dd Use IronicObject._from_db_object_list method
ea55db7 Update help for 'provisioning_network' option
5514cee Updated from global requirements
1a4f342 Add virtualpdu to ironic devstack plugin
733e509 Auto enable the deploy driver
f11d3de Add volume_connectors and volume_targets to task
bd06102 Renaming audit map conf sample file
b6a2919 Support names for {cleaning,provisioning}_network
db0612f Allow use *_ipmitool with vbmc on multinode
aab505a Add RPCs to support volume target operations
237942f Fix import method to follow community guideline
f766bba Add VolumeTarget object
9606ac9 Unneeded testing in DB migration of volume connector
0754104 Add volume_targets table to database
3cbe720 Cleanup adding Ironic to cluster on upgrade case
6e98115 Move interface validation from API to conductor side
cf595d2 Update the links in iLO documentation
0da98de Turn off tempest's multitenant network tests
bbbe001 Make all IronicExceptions RPC-serializable
c81b385 Do not source old/localrc twise in grenade
9a8ac08 Fix docs error about OOB RAID support
206e246 Remove agent vendor passthru from most drivers
6d63e33 Follow-up for volume connector db_id
ae73b8e Remove file prefix parameter from lockutils methods
6aea212 Install syslinux package only for Wheezy / Trusty
f123e4e Show team and repo badges on README
2a844e6 Drac: Deprecate drac_host property
9f7b432 Update keystone_authtoken configuration sample in the install guide
20fe263 Add RPCs to support volume connector operation
bc7daf9 Add VolumeConnector object
a82a0ce Add volume_connectors table to save connector information
49e65b9 Minor changes to neutron security groups code
87910d3 Drop bad skip check in tempest plugin
f66495b Correct DB Interface migration test
b560f6e Updated from global requirements
3197e44 Add support for Security Groups for baremetal servers
ca585be mask private keys for the ssh power driver.
a9a1293 Remove deprecated Neutron DHCP provider methods
a9804c7 Add notification documentation to install guide
f7a8a2c Fix the message in the set_raid_config method
687a16b Convert iPXE boot script to Jinja template
d21564e Fix PXE setup for fresh Ubuntu Xenial
9e938f2 Add node (database and objects) fields for all interfaces
f03f3fe Move `deploy_forces_oob_reboot` to deploy drivers
ff4c11e Add route to Neutron private network
c8d5188 Rely on portgroup standalone_ports_supported
50a2f50 Add node provision state change notification
42c7c48 Update the alembic migration section in the developer FAQ
cb2971b Add notification documentation to administrator's guide
c5ab2fd Revert "Remove ClusteredComputeManager"
7434904 Remove ClusteredComputeManager
7d736d1 Followup to 0335e81a8787
1aaf219 Update iptables rules and services IPs for multinode
5e50f3a Add devstack setup_vxlan_network()
4cb95b7 Skip some steps for multinode case
2c76da5 Timing metrics: iRMC drivers
d713798 Use function is_valid_mac from oslo.utils
45b85e5 Docs: Document using operators with root device hints
0335e81 Add portgroup to api-ref
e299ef2 Updated from global requirements
3eba764 Add user and project domains to ironic context
ab6f73f Bring configurations from tempest to ironic_tempest_plugin
c0bdda9 Do not pass ipa-driver-name as kernel parameter
bcf137b Timing metrics: OneView drivers
2f960c4 Add unit test for microversion validator
2cf50d4 Update ironic node names for multinode case
485259c Update devstack provision net config for multihost
f85357f Add CI documentation outline
1f61654 Add possibility to remove chassis_uuid from a node
7591dce Create dummy interfaces for use with hardware types
492e67a [install-guide] describe service clients auth
565a0ed Simplify base interfaces in ironic.drivers.base
dd57ed5 Integrate portgroups with ports to support LAG
e34dded Updated from global requirements
a788fd7 Increase verbosity of devstack/lib/ironic
8b68944 Update to hacking 0.12.0 and use new checks
a78097b Add PS4 for better logfile information of devstack runs
7132ea7 Update guide section for messaging setup
4622922 Updated from global requirements
c4aa8e9 Replaces uuid.uuid4 with uuidutils.generate_uuid()
f13959c Enable PXE for systems using petitboot
f653587 Fix typo of 'authenticaiton'
c23a3c6 Add a unit test for microversion validation V1.22
ec581fc Clean up unit test of API root test
2f201d0 DevStack: Fix standard PXE on Ubuntu Xenial
98596ca Skip db configuration on subnodes
38f38fb Ignore required_services for multinode topology
a731037 Add PortGroups API
793e2b1 DevStack: Support for creating UEFI VMs
6893d23 Updated from global requirements
d5a0321 Clarify ironic governance requirements and process
e0fd53d API: lookup() ignore malformed MAC addresses
a7558dc TrivialFix: Fix typo in config file
6d6cf18 DRAC get_bios_config() passthru causes exception
395307f Fix exception handling in iscsi_deploy.continue_deploy
a084661 Log currently known iSCSI devices when we retry waiting for iSCSI target
0036d83 Use kvm for ironic VMs when possible
a0b316c Correct log the node UUID on failure
f4f3edc Updated from global requirements
7920e29 Change 'writeable' to 'writable'
c88ed33 Add the way to get the deploy ram disks
3c54dd5 Remove use of 'vconfig' command in devstack ironic script
729dcf6 Imported Translations from Zanata
0831698 Updated from global requirements
d92425d Revert "Set SUBNETPOOL_PREFIX_V4 to FIXED_RANGE"
15cc079 Fix typo in release note filename
a23454d Use function import_versioned_module from oslo.utils
c2c2154 Updated from global requirements
42b2c60 Remove "dhcp" command from the iPXE template
0acbf37 IPMI command should depend on console type
d5e24cf Trivial fix of notifications doc
ce46c43 Mock ironic-lib properly in test_deploy_utils
8407c27 Remove ..agent.build_instance_info_for_deploy() in Pike
6cc31f7 Trivial: fix typo in docstring
c073fb7 Add a missing error check in ipmitool driver's reboot
f91d83a Adding Timing metrics for DRAC drivers.
128c025 Remove 'agent_last_heartbeat' from node.driver_internal_info
ff32b51 Add power state change notifications
57821e7 Skip create_ovs_taps() for multitenancy case
a85d6a3 Remove unnecessary '.' before ':' in ironic rst
aa2e5d4 Updated from global requirements
7972932 Imported Translations from Zanata
2383d8d Replace parse_root_device_hints with the ironic-lib version one
50c7fdc Fixes parameters validation in SSH power manager.
14af219 Fix API docs to include API version history
ab968fc fix a typo in document
71964aa Updated from global requirements
168d48e Update guide for PXE multi-architecture setup
7dc74ab Remove "agent_last_heartbeat" internal field from agent drivers
e38cb77 No need to clear "target_provision_state" again from conductor
15eb6a3 Trivial: fix warning message formatting
af4b59c Updated from global requirements
b44438a Fix some typos
4852772 Add docs about releasing ironic projects
3110fa8 Fix unit tests failing with ironic-lib 2.1.1
340a5fa Do not hide unexpected exceptions in inspection code
53521b6 Avoid name errors in oneview periodics
10260a1 A few fixes in Multitenancy document
93f947c Introduce default_boot_option configuration option
e7190ea Fix broken xenial job
5194f41 Fix setting custom IRONIC_VM_NETWORK_BRIDGE
de9e581 Update configure_tenant_networks
95835f0 Remove wrong check from conductor periodic task
4aaba69 Remove reservation from sync power states db filter
65ab6b3 Fix a typo in deploy.py
5fd26a0 Updated from global requirements
187b5dc Clarify when oneview node can be managed by ironic
2662e1f Add tense guide to release note FAQ
cf38535 Refactor _test_build_pxe_config_options tests
70a35ad Imported Translations from Zanata
7365864 OneView driver docs explaining hardware inspection
e18aec6 Enable release notes translation
222bd10 Clean up provision ports when reattempting deploy
63b76e8 Remove unnecessary option from plugin settings
fb70e05 Cleanup unused (i)PXE kernel parameters
183d1d5 Set SUBNETPOOL_PREFIX_V4 to FIXED_RANGE
516f434 Enable DeprecationWarning in test environments
33c62a1 Fix _lookup() method for node API routing
ab0630b Log node state transitions at INFO level
55064d9 Update ironic config docs for keystone v3
e3fa4a9 Clean exceptions handling in conductor manager
dc5ce80 Move build_instance_info_for_deploy to deploy_utils
83b0e62 Fix undisplayed notes in Quick-Start
602790a Keep numbering of list in Install Guide
a04aeca Add description for vendor passthru methods
a48f317 [install-guide] describe pxe.ipxe_swift_tempurl
d8aaf13 Fix docstrings in tempest plugin baremetal json client
f17dd1f Add entry_point for oslo policy scripts
b821271 Remove unneeded exception handling from conductor
e53be99 Remove unused methods in common/utils.py
2671ceb Do not use mutable object as func default param
66a0812 Trivial: Fix some typos in comments and docstring
eadbe87 doc: Add oslo.i18n usage link
e3ad6af Replace assertTrue(isinstance()) with assertIsInstance()
264efcd Fix typo: remove redundant 'the'
f8ff1b2 Support multi arch deployment
9d068c8 Updated from global requirements
8279341 Use method delete_if_exists from oslo.utils
338e454 Use assertRaises() instead of fail()
b6e2a4f Cleanup get_ilo_license()
c1e0fec Fix grenade jobs
849f0e9 Add a missing whitespace to an error message
d1d2b02 Invalid URL and Typo in enrollment.rst
40aafa6 Update configuration reference link to latest draft
10a495a Update external links to developer documentation
9d86090 Fail test if excepted error was not raised
b786054 Add inspection feature for the OneView drivers
cb71a38 Use correct option value for standalone install
e388c3e Move flavor create under 'VIRT_DRIVER == ironic'
7c01efd Change links to point to new install guide
fde5d2c Fix inexact config option name in multitenancy.rst
0355c13 Fix typos in docstring/comments
3cedd6f Have bashate run for entire project
e4b08df Change 'decom' to clean/cleaning
04fe0ee Fix docstring typo in test_common.py
664b53c Fix invalid git url in devstack/local.conf sample
653a4ef Fix absolute links to install-guide.rst in developer docs
fa7b21a Update developer's guide "Installation Guide" link
53251b8 Add link to new guide in old install guide
ecc2406 Fixing Typo
b9b8ce7 [install-guide] Import "Setup the drivers for the Bare Metal service"
bf92678 [install-guide] Import "Trusted boot with partition image"
f4a6dc7 [install-guide] Import "Building or downloading a deploy ramdisk image"
240ee8f [install-guide] Import "Appending kernel parameters to boot instances"
279dd75 [install-guide] Import configdrive
6394c27 [install-guide] Import HTTPS, standalone and root device hints
0445213 [install-guide] Import "Enrollment" and "Troubleshooting" sections
123b545 [install-guide] Import "Local boot with partition images"
a999683 [install-guide] Import "Flavor creation"
21e7fc3 [install-guide] Import "Image requirements"
fb027ec [install-guide] Import "integration with other OpenStack components"
e26c71b [install-guide] Import Install and configure sections
7131037 [install-guide] Import "Bare Metal service overview"
2db3e7d Remove unused method is_valid_ipv6_cidr
f584606 Support https in devstack plugin
a896dec Use six.StringIO instead of six.moves.StringIO
cddb0be Remove unneeded try..except in heartbeat
298c03c Fix a typo in helper.py
264ab54 Add more details to MIGRATIONS_TIMEOUT note
f9f318e Fixes wrong steps to perform migration of nodes
8813fc5 Increase timeout for migration-related tests
2ba7a9d Update reno index for Newton
6b776e4 Add i18n _() to string
e434225 Change the logic of selecting image for tests
d42a94a Always return chassis UUID in node's API representation
ab71741 Updated from global requirements
d84e95a Fix iLO drivers to not clear local_gb if its not detected
67e29f4 Fix DRAC passthru 'list_unfinished_jobs' desc
d4d2183 DevStack: Use Jinja2 for templating when creating new VMs
071a263 Documentation change for feature updates in iLO drivers.
adb8bce Remove unused argument in Tempest Plugin
d77ba4a Fix docstrings to match with method arguments
2270260 [api-ref] Correcting type of r_addresses parameter
cf11b48 iLO drivers documentation update


Diffstat (except docs and test files)
-------------------------------------

README.rst                                         |    9 +
api-ref/regenerate-samples.sh                      |  115 +-
api-ref/source/baremetal-api-v1-chassis.inc        |    7 +-
api-ref/source/baremetal-api-v1-drivers.inc        |   80 +-
api-ref/source/baremetal-api-v1-misc.inc           |    2 +-
.../source/baremetal-api-v1-node-management.inc    |   43 +-
.../source/baremetal-api-v1-nodes-portgroups.inc   |  101 +
api-ref/source/baremetal-api-v1-nodes-vifs.inc     |   76 +
api-ref/source/baremetal-api-v1-nodes.inc          |   76 +-
.../source/baremetal-api-v1-portgroups-ports.inc   |   98 +
api-ref/source/baremetal-api-v1-portgroups.inc     |  275 +++
api-ref/source/baremetal-api-v1-ports.inc          |   14 +
api-ref/source/conf.py                             |    2 +-
api-ref/source/index.rst                           |    4 +
api-ref/source/parameters.yaml                     |  337 ++-
api-ref/source/samples/api-root-response.json      |    4 +-
api-ref/source/samples/api-v1-root-response.json   |   10 +
.../samples/chassis-list-details-response.json     |    2 +-
api-ref/source/samples/chassis-show-response.json  |    2 +-
.../source/samples/chassis-update-response.json    |    4 +-
api-ref/source/samples/driver-get-response.json    |   52 +-
.../samples/drivers-list-detail-response.json      |  160 ++
api-ref/source/samples/drivers-list-response.json  |   63 +-
.../samples/node-create-request-classic.json       |    8 +
.../samples/node-create-request-dynamic.json       |    9 +
api-ref/source/samples/node-create-request.json    |    8 -
api-ref/source/samples/node-create-response.json   |   25 +-
.../source/samples/node-get-state-response.json    |    2 +-
api-ref/source/samples/node-inject-nmi.json        |    1 +
.../source/samples/node-port-detail-response.json  |    5 +-
.../samples/node-portgroup-detail-response.json    |   37 +
.../samples/node-portgroup-list-response.json      |   19 +
api-ref/source/samples/node-set-power-state.json   |    3 -
.../source/samples/node-set-soft-power-off.json    |    4 +
api-ref/source/samples/node-show-response.json     |   27 +-
.../source/samples/node-states-show-response.json  |   11 -
.../samples/node-update-driver-info-response.json  |   29 +-
.../source/samples/node-vif-attach-request.json    |    3 +
api-ref/source/samples/node-vif-list-response.json |    7 +
.../samples/nodes-list-details-response.json       |  109 +-
api-ref/source/samples/nodes-list-response.json    |   20 +-
api-ref/source/samples/port-create-request.json    |    3 +-
api-ref/source/samples/port-create-response.json   |    3 +-
.../source/samples/port-list-detail-response.json  |    3 +-
api-ref/source/samples/port-update-response.json   |    5 +-
.../source/samples/portgroup-create-request.json   |    5 +
.../source/samples/portgroup-create-response.json  |   33 +
.../samples/portgroup-list-detail-response.json    |   37 +
.../source/samples/portgroup-list-response.json    |   19 +
.../samples/portgroup-port-detail-response.json    |   30 +
.../samples/portgroup-port-list-response.json      |   18 +
.../source/samples/portgroup-update-request.json   |    7 +
.../source/samples/portgroup-update-response.json  |   33 +
devstack/files/debs/ironic                         |   16 +-
devstack/files/hooks/qemu                          |   13 -
devstack/files/hooks/qemu.py                       |  102 +
devstack/files/rpms/ironic                         |    2 +
devstack/lib/ironic                                |  839 +++++--
devstack/plugin.sh                                 |    7 +-
devstack/settings                                  |   14 +-
devstack/tools/ironic/scripts/cleanup-node.sh      |    5 +-
devstack/tools/ironic/scripts/configure-vm.py      |   32 +-
devstack/tools/ironic/scripts/create-node.sh       |   31 +-
devstack/tools/ironic/scripts/setup-network.sh     |    9 +-
devstack/tools/ironic/templates/vm.xml             |   47 +-
devstack/upgrade/resources.sh                      |   29 +-
devstack/upgrade/settings                          |   13 +
devstack/upgrade/upgrade.sh                        |   50 +-
driver-requirements.txt                            |   20 +-
etc/ironic/api_audit_map.conf.sample               |   29 +
etc/ironic/ironic.conf.sample                      |  816 +++++--
etc/ironic/ironic_api_audit_map.conf.sample        |   29 -
etc/ironic/policy.json.sample                      |   24 +-
etc/ironic/rootwrap.conf                           |    8 +-
etc/ironic/rootwrap.d/ironic-images.filters        |    2 +-
etc/ironic/rootwrap.d/ironic-lib.filters           |    3 +-
etc/ironic/rootwrap.d/ironic-utils.filters         |    2 +-
install-guide/source/advanced.rst                  |   14 +
install-guide/source/common_prerequisites.rst      |    6 -
install-guide/source/conf.py                       |    4 +-
install-guide/source/configdrive.rst               |  116 +
install-guide/source/configure-cleaning.rst        |   37 +
install-guide/source/configure-integration.rst     |   13 +
install-guide/source/configure-port-groups.rst     |    8 +
install-guide/source/configure-tenant-networks.rst |    8 +
install-guide/source/deploy-ramdisk.rst            |   98 +
install-guide/source/enabling-https.rst            |   89 +
install-guide/source/enrollment.rst                |  398 +++
install-guide/source/get_started.rst               |   77 +-
install-guide/source/include/common-configure.rst  |   12 +
.../source/include/common-prerequisites.rst        |   29 +
.../source/include/configure-glance-images.rst     |  127 +
.../source/include/configure-identity.rst          |   93 +
.../include/configure-ironic-api-mod_wsgi.rst      |   63 +
.../source/include/configure-ironic-api.rst        |   89 +
.../source/include/configure-ironic-conductor.rst  |  190 ++
.../source/include/configure-neutron-networks.rst  |  111 +
.../source/include/configure-nova-compute.rst      |  120 +
.../source/include/configure-nova-flavors.rst      |   39 +
.../source/include/kernel-boot-parameters.rst      |   69 +
.../source/include/local-boot-partition-images.rst |   59 +
install-guide/source/include/notifications.rst     |   16 +
install-guide/source/include/root-device-hints.rst |   93 +
install-guide/source/include/trusted-boot.rst      |   71 +
install-guide/source/index.rst                     |   35 +-
install-guide/source/install-obs.rst               |   17 +-
install-guide/source/install-rdo.rst               |   36 +-
install-guide/source/install-ubuntu.rst            |   25 +-
install-guide/source/install.rst                   |    6 +-
install-guide/source/next-steps.rst                |    3 +-
install-guide/source/setup-drivers.rst             |  613 +++++
install-guide/source/standalone.rst                |  169 ++
install-guide/source/troubleshooting.rst           |  126 +
install-guide/source/verify.rst                    |    9 -
ironic/api/config.py                               |    3 -
ironic/api/controllers/base.py                     |    2 +-
ironic/api/controllers/v1/__init__.py              |   12 +
ironic/api/controllers/v1/chassis.py               |   45 +-
ironic/api/controllers/v1/driver.py                |  167 +-
ironic/api/controllers/v1/node.py                  |  399 ++-
ironic/api/controllers/v1/notification_utils.py    |  155 ++
ironic/api/controllers/v1/port.py                  |  260 +-
ironic/api/controllers/v1/portgroup.py             |  554 +++++
ironic/api/controllers/v1/ramdisk.py               |   36 +-
ironic/api/controllers/v1/types.py                 |   53 +-
ironic/api/controllers/v1/utils.py                 |  180 +-
ironic/api/controllers/v1/versions.py              |   21 +-
ironic/api/hooks.py                                |   89 +-
ironic/common/context.py                           |   69 +-
ironic/common/dhcp_factory.py                      |    2 +-
ironic/common/driver_factory.py                    |  399 ++-
ironic/common/exception.py                         |  173 +-
ironic/common/fsm.py                               |    2 -
ironic/common/glance_service/base_image_service.py |    4 +-
ironic/common/hash_ring.py                         |  115 +-
ironic/common/i18n.py                              |    6 +
ironic/common/image_service.py                     |   25 +-
ironic/common/images.py                            |    4 +-
ironic/common/network.py                           |   12 +-
ironic/common/neutron.py                           |  197 +-
ironic/common/policy.py                            |   59 +-
ironic/common/pxe_utils.py                         |   62 +-
ironic/common/rpc.py                               |    5 +-
ironic/common/states.py                            |    9 +
ironic/common/swift.py                             |   56 +-
ironic/common/utils.py                             |  227 +-
ironic/conductor/base_manager.py                   |  133 +-
ironic/conductor/manager.py                        |  777 ++++--
ironic/conductor/notification_utils.py             |  178 ++
ironic/conductor/rpcapi.py                         |  218 +-
ironic/conductor/task_manager.py                   |   86 +-
ironic/conductor/utils.py                          |  164 +-
ironic/conf/__init__.py                            |    8 -
ironic/conf/amt.py                                 |   48 -
ironic/conf/audit.py                               |    9 +-
ironic/conf/auth.py                                |    6 +-
ironic/conf/conductor.py                           |   24 +-
ironic/conf/default.py                             |  116 +-
ironic/conf/deploy.py                              |   10 +-
ironic/conf/glance.py                              |    3 +
ironic/conf/iboot.py                               |   42 -
ironic/conf/inspector.py                           |    4 +-
ironic/conf/irmc.py                                |    3 +
ironic/conf/neutron.py                             |   37 +-
ironic/conf/opts.py                                |    5 +-
ironic/conf/pxe.py                                 |   12 +-
ironic/conf/seamicro.py                            |   34 -
ironic/conf/virtualbox.py                          |   27 -
ironic/db/api.py                                   |  257 +-
.../1a59178ebdf6_add_volume_targets_table.py       |   51 +
...51876d68_add_storage_interface_db_field_and_.py |   32 +
...cfae_add_conductor_hardware_interfaces_table.py |   47 +
...d8f27f235_add_portgroup_configuration_fields.py |   40 +
.../bcdd431ba0bf_add_fields_for_all_interfaces.py  |   45 +
.../daa1ba02d98_add_volume_connectors_table.py     |   48 +
.../dbefd6bdaa2c_add_default_column_to_.py         |   35 +
ironic/db/sqlalchemy/api.py                        |  240 +-
ironic/db/sqlalchemy/models.py                     |   70 +
ironic/dhcp/base.py                                |    8 +-
ironic/dhcp/neutron.py                             |   99 +-
ironic/dhcp/none.py                                |    2 +
ironic/drivers/agent.py                            |  168 +-
ironic/drivers/base.py                             |  393 +--
ironic/drivers/drac.py                             |   15 +-
ironic/drivers/fake.py                             |  103 +-
ironic/drivers/fake_hardware.py                    |   77 +
ironic/drivers/generic.py                          |   91 +
ironic/drivers/hardware_type.py                    |  120 +
ironic/drivers/ilo.py                              |    1 -
ironic/drivers/ipmi.py                             |  131 +
ironic/drivers/irmc.py                             |   41 +-
ironic/drivers/modules/agent.py                    |   94 +-
ironic/drivers/modules/agent_base_vendor.py        |  275 +--
ironic/drivers/modules/agent_client.py             |   62 +-
ironic/drivers/modules/agent_config.template       |    2 +-
ironic/drivers/modules/amt/__init__.py             |    0
ironic/drivers/modules/amt/common.py               |  232 --
ironic/drivers/modules/amt/management.py           |  247 --
ironic/drivers/modules/amt/power.py                |  250 --
ironic/drivers/modules/amt/resource_uris.py        |   35 -
ironic/drivers/modules/amt/vendor.py               |   30 -
ironic/drivers/modules/boot.ipxe                   |    4 +-
ironic/drivers/modules/console_utils.py            |   14 +-
ironic/drivers/modules/deploy_utils.py             |  349 ++-
ironic/drivers/modules/drac/common.py              |   28 +-
ironic/drivers/modules/drac/deploy.py              |    5 +
ironic/drivers/modules/drac/inspect.py             |   10 +-
ironic/drivers/modules/drac/management.py          |    8 +
ironic/drivers/modules/drac/power.py               |    7 +
ironic/drivers/modules/drac/raid.py                |   16 +-
ironic/drivers/modules/drac/vendor_passthru.py     |   50 +-
.../drivers/modules/elilo_efi_pxe_config.template  |    2 +-
ironic/drivers/modules/fake.py                     |   41 +-
ironic/drivers/modules/iboot.py                    |  257 --
ironic/drivers/modules/ilo/common.py               |  122 +-
ironic/drivers/modules/ilo/deploy.py               |  143 +-
ironic/drivers/modules/ilo/firmware_processor.py   |    4 +-
ironic/drivers/modules/ilo/inspect.py              |   20 +-
ironic/drivers/modules/ilo/vendor.py               |   47 +-
ironic/drivers/modules/image_cache.py              |   10 +-
ironic/drivers/modules/inspector.py                |    4 -
ironic/drivers/modules/ipminative.py               |   10 +-
ironic/drivers/modules/ipmitool.py                 |  206 +-
ironic/drivers/modules/ipxe_config.template        |    4 +-
ironic/drivers/modules/irmc/boot.py                |    8 +
ironic/drivers/modules/irmc/inspect.py             |    6 +-
ironic/drivers/modules/irmc/management.py          |   30 +-
ironic/drivers/modules/irmc/power.py               |  184 +-
ironic/drivers/modules/iscsi_deploy.py             |   57 +-
ironic/drivers/modules/msftocs/__init__.py         |    0
ironic/drivers/modules/msftocs/common.py           |  110 -
ironic/drivers/modules/msftocs/management.py       |  121 -
ironic/drivers/modules/msftocs/msftocsclient.py    |  176 --
ironic/drivers/modules/msftocs/power.py            |  105 -
ironic/drivers/modules/network/common.py           |  365 +++
ironic/drivers/modules/network/flat.py             |   79 +-
ironic/drivers/modules/network/neutron.py          |   97 +-
ironic/drivers/modules/network/noop.py             |   61 +
ironic/drivers/modules/noop.py                     |   70 +
ironic/drivers/modules/oneview/common.py           |   45 +-
ironic/drivers/modules/oneview/deploy.py           |  186 +-
ironic/drivers/modules/oneview/deploy_utils.py     |  133 +-
ironic/drivers/modules/oneview/inspect.py          |  112 +
ironic/drivers/modules/oneview/management.py       |   32 +-
ironic/drivers/modules/oneview/power.py            |   48 +-
ironic/drivers/modules/oneview/vendor.py           |  112 -
ironic/drivers/modules/pxe.py                      |  204 +-
ironic/drivers/modules/pxe_config.template         |    2 +-
ironic/drivers/modules/pxe_grub_config.template    |    2 +-
ironic/drivers/modules/seamicro.py                 |  663 -----
ironic/drivers/modules/ssh.py                      |   42 +-
ironic/drivers/modules/storage/__init__.py         |    0
ironic/drivers/modules/storage/noop.py             |   32 +
ironic/drivers/modules/ucs/helper.py               |    2 +-
ironic/drivers/modules/virtualbox.py               |  393 ---
ironic/drivers/modules/wol.py                      |  180 --
ironic/drivers/oneview.py                          |    9 +-
ironic/drivers/pxe.py                              |  227 +-
ironic/drivers/utils.py                            |    5 +-
.../locale/fr/LC_MESSAGES/ironic-log-critical.po   |   15 +-
ironic/locale/fr/LC_MESSAGES/ironic-log-info.po    |  506 ++++
ironic/locale/ja/LC_MESSAGES/ironic.po             |  123 +-
ironic/nova/__init__.py                            |    0
ironic/nova/compute/__init__.py                    |    0
ironic/nova/compute/manager.py                     |  122 -
ironic/objects/__init__.py                         |    2 +
ironic/objects/base.py                             |   14 +
ironic/objects/chassis.py                          |   47 +-
ironic/objects/conductor.py                        |   32 +-
ironic/objects/fields.py                           |   17 +
ironic/objects/node.py                             |  309 ++-
ironic/objects/notification.py                     |   47 +-
ironic/objects/port.py                             |   69 +-
ironic/objects/portgroup.py                        |   31 +-
ironic/objects/volume_connector.py                 |  240 ++
ironic/objects/volume_target.py                    |  236 ++
.../notes/fix-socat-command-afc840284446870a.yaml  |    8 +
.../unit/conductor/test_notification_utils.py      |  223 ++
.../unit/drivers/elilo_efi_pxe_config.template     |    2 +-
.../unit/drivers/ipxe_config_timeout.template      |    4 +-
.../unit/drivers/modules/amt/test_management.py    |  242 --
.../unit/drivers/modules/drac/test_management.py   |   60 +-
.../unit/drivers/modules/irmc/test_management.py   |   33 +
.../unit/drivers/modules/msftocs/test_common.py    |  110 -
.../drivers/modules/msftocs/test_management.py     |  132 -
.../drivers/modules/msftocs/test_msftocsclient.py  |  182 --
.../unit/drivers/modules/msftocs/test_power.py     |  163 --
.../unit/drivers/modules/network/test_common.py    |  901 +++++++
.../unit/drivers/modules/network/test_flat.py      |  150 +-
.../unit/drivers/modules/network/test_neutron.py   |  225 +-
.../unit/drivers/modules/oneview/test_common.py    |   24 +-
.../unit/drivers/modules/oneview/test_deploy.py    |  914 ++++++-
.../drivers/modules/oneview/test_deploy_utils.py   |  147 +-
.../unit/drivers/modules/oneview/test_inspect.py   |  101 +
.../drivers/modules/oneview/test_management.py     |   72 +-
.../unit/drivers/modules/oneview/test_power.py     |   54 +-
.../unit/drivers/modules/oneview/test_vendor.py    |  251 --
.../unit/drivers/modules/test_agent_base_vendor.py |  376 +--
.../unit/drivers/modules/test_agent_client.py      |  102 +-
.../unit/drivers/modules/test_deploy_utils.py      | 1086 ++++-----
.../unit/drivers/modules/test_iscsi_deploy.py      |  163 +-
.../unit/drivers/modules/ucs/test_management.py    |    1 -
.../unit/drivers/third_party_driver_mock_specs.py  |   35 +-
ironic_tempest_plugin/clients.py                   |   14 +-
ironic_tempest_plugin/common/waiters.py            |   38 +-
ironic_tempest_plugin/config.py                    |   66 +-
ironic_tempest_plugin/plugin.py                    |    2 +
ironic_tempest_plugin/services/baremetal/base.py   |   27 +-
.../services/baremetal/v1/json/baremetal_client.py |   45 +-
..._uuid-removal-possibility-8b06341a91f7c676.yaml |    5 +
...ror-check-ipmitool-reboot-ca7823202c5ab71d.yaml |    4 +
...pxe-support-for-petitboot-50d1fe4e7da4bfba.yaml |    6 +
...d-snmp-inspection-support-e68fd6d57cb33846.yaml |   18 +
.../add-storage-interface-d4e64224804207fc.yaml    |    6 +
.../notes/add-tooz-dep-85c56c74733a222d.yaml       |    6 +
...vif-attach-detach-support-99eca43eea6e5a30.yaml |   15 +
.../add_portgroup_support-7d5c6663bb00684a.yaml    |   21 +
...one_ports_supported_field-4c59702a052acf38.yaml |    6 +-
.../adding-audit-middleware-b95f2a00baed9750.yaml  |    4 +-
.../notes/agent-takeover-60f27cef21ebfb48.yaml     |    4 +
...lways-return-chassis-uuid-4eecbc8da2170cb1.yaml |    5 +
.../notes/bug-1607527-75885e145db62d69.yaml        |    4 +
.../notes/bug-1611555-de1ec64ba46982ec.yaml        |    4 +
.../notes/bug-1611556-92cbfde5ee7f44d6.yaml        |    3 +
.../notes/bug-1626453-e8df46aa5db6dd5a.yaml        |    5 +
.../notes/bug-1648387-92db52cbe007fabd.yaml        |    4 +
.../build_instance_info-c7e3f12426b48965.yaml      |    6 +
...river-validate-exceptions-94ed2a91c50d2d8e.yaml |    4 +
...e-updated-at-object-field-a74466f7c4541072.yaml |    4 +
...for-whole-disk-image-uefi-3bf2146588de2423.yaml |    6 +
...k_protocol_for_ironic_api-32f35c93a140d3ae.yaml |    8 +
...vision-ports-before-retry-ec3c89c193766d70.yaml |    6 +
.../notes/conf-debug-ipa-1d75e2283ca83395.yaml     |    6 +
...omain-id-name-deprecation-ae6e40718273be8d.yaml |   10 +
.../create-on-conductor-c1c52a1f022c4048.yaml      |   11 +
.../default_boot_option-f22c01f976bc2de7.yaml      |    9 +
...e-dhcp-update-mac-address-f12a4959432c8e20.yaml |   25 +
...passthru-causes-exception-1e1dbeeb3e924f29.yaml |    7 +
.../drac_host-deprecated-b181149246eecb47.yaml     |    5 +
...tion-spt-has-physical-mac-8967a1d926ed9301.yaml |    9 +
...mic-driver-list-show-apis-235e9fca26fc580d.yaml |   88 +
...resilient-enabled_drivers-4e9c864ed6eaddd1.yaml |    6 +
...en-vif-port-id-is-missing-7640669f9d9e705d.yaml |    5 +
...in-user-not-neutron-admin-f163df90ab520dad.yaml |    5 +
.../fix-net-ifaces-rebuild-1cc03df5d37f38dd.yaml   |    5 +
...view-deploy-return-values-ab2ec6ae568d95a5.yaml |    5 +
.../fix-oneview-periodics-0f535fe7a0ad83cd.yaml    |    4 +
.../fix-policy-checkers-1a08203e3c2cf859.yaml      |    4 +
.../notes/fix-rpc-exceptions-12c70eb6ba177e39.yaml |    9 +
.../notes/fix-vif-detach-fca221f1a1c0e9fa.yaml     |    5 +
releasenotes/notes/glance-v2-83b04fec247cd22f.yaml |    7 +
.../hctl-root-device-hints-0cab86673bc4a924.yaml   |    4 +
.../notes/ilo-fix-inspection-b169ad0a22aea2ff.yaml |    5 +
.../notes/inject-nmi-dacd692b1f259a30.yaml         |    6 +
.../notes/inspection-logging-e1172f549ef80b04.yaml |    4 +
.../notes/inspector-enabled-f8a643f03e1e0360.yaml  |    7 +
...pmi-cmd-for-ipmi-consoles-2e1104f22df3efcd.yaml |    3 +
.../notes/ipv6-provision-67bd9c1dbcc48c97.yaml     |    3 +
releasenotes/notes/ipxe-dhcp-b799bc326cd2529a.yaml |    4 +
...kup-ignore-malformed-macs-09e7e909f3a134a3.yaml |    8 +
.../notes/manual-abort-d3d8985a5de7376a.yaml       |    5 +
.../notes/mask-ssh-creds-54ab7b2656578d2e.yaml     |    4 +
.../notes/multi-arch-deploy-bcf840107fc94bef.yaml  |   20 +
...kers-for-send-sensor-data-89d29c12da30ec54.yaml |   11 +
releasenotes/notes/net-names-b8a36aa30659ce2f.yaml |   15 +
...ot-device-as-kernel-param-5e5326acae7b77a4.yaml |   11 +
...ers-cannot-set-interfaces-620b37c4e5c88b80.yaml |    5 +
.../notes/ocata-summary-a70f995cb3b18e18.yaml      |   24 +
...view-inspection-interface-c2d6902bbeca0501.yaml |    3 +
...view-node-free-for-ironic-61b05fee827664cb.yaml |    4 +
.../oneview-onetime-boot-64a68e135a45f5e2.yaml     |    4 +
.../oneview-timing-metrics-0b6c1b54e80eb683.yaml   |    3 +
.../notes/oslopolicy-scripts-bdcaeaf7dd9ce2ac.yaml |   16 +
...pxe-snmp-driver-supported-9c559c6182c6ec4b.yaml |    4 +
.../notes/pxe-takeover-d8f14bcb60e5b121.yaml       |    7 +
...tandalone-ports-supported-8153e1135787828b.yaml |   25 +
.../remove-agent-passthru-432b18e6c430cee6.yaml    |   36 +
...e-agent-passthru-complete-a6b2df65b95889d5.yaml |   14 +
...move-agent_last_heartbeat-65a9fe02f20465c5.yaml |    4 +
...clustered-compute-manager-6b45ed3803be53d1.yaml |    5 +
...-erase-devices-iterations-55680ab95cbce3e9.yaml |    6 +
...ted-dhcp-provider-methods-582742f3000be3c7.yaml |   19 +
...ver-object-periodic-tasks-1357a1cd3589becf.yaml |    5 +
.../remove-iboot-wol-amt-27edaf109d28b663.yaml     |   18 +
...e-iscsi-deploy-ipa-mitaka-c0efa0d5c31933b6.yaml |    6 +
.../remove-most-unsupported-049f3401c2554a3c.yaml  |   32 +
...move-ssh-power-port-delay-7ae6e5eb893439cd.yaml |    9 +
...ources-crud-notifications-70cba9f761da3afe.yaml |   23 +
.../reusing-oneview-client-6a3936fb8f113c10.yaml   |    4 +
.../notes/security_groups-b57a5d6c30c2fae4.yaml    |   10 +
.../soft-reboot-poweroff-9fdb0a4306dd668d.yaml     |    8 +
...vice-hints-with-operators-96cf34fa37b5b2e8.yaml |    7 +
...ate-proliantutils-version-54c0cd5c5d3c01dc.yaml |    5 +
...-image-url-wnen-deploying-8820f4398ea9de9f.yaml |    4 +
...port-info-before-using-it-e26135982d37c698.yaml |    5 +
releasenotes/source/conf.py                        |    3 +
releasenotes/source/index.rst                      |    2 +-
releasenotes/source/newton.rst                     |    2 +-
requirements.txt                                   |   43 +-
setup.cfg                                          |   82 +-
test-requirements.txt                              |   16 +-
tools/config/check_uptodate.sh                     |   12 +-
tools/run_bashate.sh                               |   18 +-
tools/test-setup.sh                                |   57 +
tox.ini                                            |   13 +-
548 files changed, 32007 insertions(+), 17907 deletions(-)


Requirements updates
--------------------

diff --git a/driver-requirements.txt b/driver-requirements.txt
index 711c337..af57659 100644
--- a/driver-requirements.txt
+++ b/driver-requirements.txt
@@ -7 +7 @@
-proliantutils>=2.1.11
+proliantutils>=2.2.0
@@ -11 +11 @@ python-ironic-inspector-client>=1.5.0
-python-oneviewclient<3.0.0,>=2.0.2
+python-oneviewclient<3.0.0,>=2.5.2
@@ -13 +12,0 @@ python-scciclient>=0.4.0
-python-seamicroclient>=0.4.0
@@ -17,15 +15,0 @@ python-dracclient>=0.1.0
-# The amt driver imports a python module called "pywsman", but this does not
-# exist on pypi.
-# It is installed by the openwsman-python (on RH) or python-openwsman (on deb)
-# package, from https://github.com/Openwsman/openwsman/blob/master/bindings/python/Makefile.am#L29
-# There is *also* a "wsman" module on pypi ... but I think that's the wrong one.
-
-# The iboot driver does not seem to have any available packages or pip modules,
-# but the source is available here:
-# https://github.com/darkip/python-iboot
-
-# 'pxe_vbox' and 'agent_vbox' drivers require pyremotevbox library.
-# Refer documentation on how to install and configure this:
-# http://docs.openstack.org/developer/ironic/drivers/vbox.html
-pyremotevbox>=0.5.0
-
diff --git a/requirements.txt b/requirements.txt
index c898e82..849c9e8 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -4 +4 @@
-pbr>=1.6 # Apache-2.0
+pbr>=1.8 # Apache-2.0
@@ -6 +6 @@ SQLAlchemy<1.1.0,>=1.0.10 # MIT
-alembic>=0.8.4 # MIT
+alembic>=0.8.10 # MIT
@@ -9,3 +9 @@ eventlet!=0.18.3,>=0.18.2 # MIT
-WebOb>=1.2.3 # MIT
-greenlet>=0.3.2 # MIT
-netaddr!=0.7.16,>=0.7.13 # BSD
+WebOb>=1.6.0 # MIT
@@ -14,4 +12,4 @@ python-neutronclient>=5.1.0 # Apache-2.0
-python-glanceclient!=2.4.0,>=2.3.0 # Apache-2.0
-keystoneauth1>=2.10.0 # Apache-2.0
-ironic-lib>=2.0.0 # Apache-2.0
-python-swiftclient>=2.2.0 # Apache-2.0
+python-glanceclient>=2.5.0 # Apache-2.0
+keystoneauth1>=2.18.0 # Apache-2.0
+ironic-lib>=2.5.0 # Apache-2.0
+python-swiftclient>=3.2.0 # Apache-2.0
@@ -19 +17 @@ pytz>=2013.6 # MIT
-stevedore>=1.16.0 # Apache-2.0
+stevedore>=1.17.1 # Apache-2.0
@@ -22 +20 @@ oslo.concurrency>=3.8.0 # Apache-2.0
-oslo.config>=3.14.0 # Apache-2.0
+oslo.config!=3.18.0,>=3.14.0 # Apache-2.0
@@ -24 +22 @@ oslo.context>=2.9.0 # Apache-2.0
-oslo.db!=4.13.1,!=4.13.2,>=4.10.0 # Apache-2.0
+oslo.db>=4.15.0 # Apache-2.0
@@ -27 +25 @@ oslo.i18n>=2.1.0 # Apache-2.0
-oslo.log>=1.14.0 # Apache-2.0
+oslo.log>=3.11.0 # Apache-2.0
@@ -29 +27 @@ oslo.middleware>=3.0.0 # Apache-2.0
-oslo.policy>=1.9.0 # Apache-2.0
+oslo.policy>=1.17.0 # Apache-2.0
@@ -32,3 +30,3 @@ oslo.service>=1.10.0 # Apache-2.0
-oslo.utils>=3.16.0 # Apache-2.0
-pecan!=1.0.2,!=1.0.3,!=1.0.4,>=1.0.0 # BSD
-requests>=2.10.0 # Apache-2.0
+oslo.utils>=3.18.0 # Apache-2.0
+pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 # BSD
+requests!=2.12.2,>=2.10.0 # Apache-2.0
@@ -38,3 +36,3 @@ WSME>=0.8 # MIT
-Jinja2>=2.8 # BSD License (3 clause)
-keystonemiddleware!=4.1.0,!=4.5.0,>=4.0.0 # Apache-2.0
-oslo.messaging>=5.2.0 # Apache-2.0
+Jinja2!=2.9.0,!=2.9.1,!=2.9.2,!=2.9.3,!=2.9.4,>=2.8 # BSD License (3 clause)
+keystonemiddleware>=4.12.0 # Apache-2.0
+oslo.messaging>=5.14.0 # Apache-2.0
@@ -42 +40 @@ retrying!=1.3.0,>=1.2.3 # Apache-2.0
-oslo.versionedobjects>=1.13.0 # Apache-2.0
+oslo.versionedobjects>=1.17.0 # Apache-2.0
@@ -44 +42 @@ jsonschema!=2.5.0,<3.0.0,>=2.0.0 # MIT
-psutil<2.0.0,>=1.1.1 # BSD
+psutil>=3.0.1 # BSD
@@ -45,0 +44 @@ futurist!=0.15.0,>=0.11.0 # Apache-2.0
+tooz>=1.47.0 # Apache-2.0
diff --git a/test-requirements.txt b/test-requirements.txt
index 359d6ed..579437b 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -4,2 +4,2 @@
-hacking<0.12,>=0.11.0 # Apache-2.0
-coverage>=3.6 # Apache-2.0
+hacking<0.13,>=0.12.0 # Apache-2.0
+coverage>=4.0 # Apache-2.0
@@ -10 +10 @@ Babel>=2.3.4 # BSD
-PyMySQL!=0.7.7,>=0.6.2 # MIT License
+PyMySQL>=0.7.6 # MIT License
@@ -14 +14 @@ psycopg2>=2.5 # LGPL/ZPL
-python-ironicclient>=1.6.0 # Apache-2.0
+python-ironicclient>=1.11.0 # Apache-2.0
@@ -17 +17 @@ testtools>=1.4.0 # MIT
-os-testr>=0.7.0 # Apache-2.0
+os-testr>=0.8.0 # Apache-2.0
@@ -24 +24 @@ bashate>=0.2 # Apache-2.0
-sphinx!=1.3b1,<1.3,>=1.2.1 # BSD
+sphinx!=1.3b1,<1.4,>=1.2.1 # BSD
@@ -28,2 +28,2 @@ openstackdocstheme>=1.5.0 # Apache-2.0
-oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0
-reno>=1.8.0 # Apache2
+oslosphinx>=4.7.0 # Apache-2.0
+reno>=1.8.0 # Apache-2.0





More information about the Release-announce mailing list