[release-announce] ironic 13.0.0 (train)

no-reply at openstack.org no-reply at openstack.org
Wed Sep 25 09:04:24 UTC 2019


We high-spiritedly announce the release of:

ironic 13.0.0: OpenStack Bare Metal Provisioning

This release is part of the train stable release series.

The source is available from:

    https://opendev.org/openstack/ironic

Download the package from:

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

Please report issues through:

    https://storyboard.openstack.org/#!/project/943

For more details, please see below.

13.0.0
^^^^^^


Prelude
*******

"Choooooo! Choooooo!" The Train is now departing the station. The
OpenStack Bare Metal as a service team is proud to announce the
release of Ironic 13.0.0. This release brings the long desired feature
of software RAID configuration, Redfish virtual media boot support,
sensor data improvements, and numerous bug fixes. We hope you enjoy
your ride on the OpenStack Ironic Train.


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

* Adds support for deploy steps to the "idrac-wsman" "raid"
  interface. The methods "apply_configuration" and
  "delete_configuration" can be used as deploy steps.

* Adds a new "delete_existing" argument to the
  "create_configuration" clean step on the "idrac-wsman" "raid"
  interface which can be used to delete existing virtual disks. The
  default for this argument is "False".

* Adds support for deploy steps to "bios" interface of "ilo"
  hardware type. The methods "factory_reset" and "apply_configuration"
  can be used as deploy steps.

* Adds support for deploy steps to the "management" interface of the
  "ilo" hardware type. The methods "reset_ilo",
  "reset_ilo_credential", "reset_bios_to_default",
  "reset_secure_boot_keys_to_default", "clear_secure_boot_keys" and
  "update_firmware" can be used as deploy steps.

* Adds support for deploy steps to "raid" interface of "ilo5"
  hardware type. The methods "apply_configuration" and
  "delete_configuration" can be used as deploy steps.

* Adds support for deploy steps to "bios" interface of "redfish"
  hardware type. The methods "factory_reset" and "apply_configuration"
  can be used as deploy steps.

* Adds virtual media boot interface to "redfish" hardware type
  supporting virtual media boot. The "redfish-virtual-media" boot
  interface operates on the same kernel/ramdisk as, for example, PXE
  boot interface does, however "redfish-virtual-media" boot interface
  can additionally require EFI system partition image (ESP) when
  performing UEFI boot. Either the "[conductor]bootloader"
  configuration option or the "[driver_info]/bootloader" node
  attribute can be used to convey ESP location to ironic. Bootable ISO
  images can be served to BMCs either from Swift or from an HTTP
  server running on an ironic conductor machine. This is controlled by
  the "[redfish]use_swift" ironic configuration option.

* Adds sensor data collector to "redfish" management interface.
  Temperature, power, cooling and drive health metrics are collected.

* Add "target_raid_config" data to "ironic" variable under
  "raid_config" top-level key which will expose the RAID configuration
  to the "ansible" driver. See story 2006417 for details.

* Adds a "clear_job_queue" cleaning step to the "idrac-wsman"
  management interface.  The "clear_job_queue" cleaning step clears
  the Lifecycle Controller job queue including any pending jobs.

* Adds an "ilo-ipxe" boot interface to "ilo" hardware type which
  allows for instance level iPXE enablement as opposed to conductor-
  wide enablement of iPXE. To perform iPXE boot with "ilo-ipxe" boot
  interface:

  * Add "ilo-ipxe" to "enabled_boot_interfaces" in "ironic.conf"

  * Set up TFTP & HTTP server using Ironic document on iPXE boot
    configuration (https://docs.openstack.org/ironic/latest/install
    /configure-pxe.html)

  * Create/Set baremetal node with "--boot-interface ilo-ipxe"

* Adds power state change callbacks of an instance to the Compute
  service by performing API notifications. This feature is enabled by
  default and can be disabled via the new
  "[nova]send_power_notifications" configuration option.

  Whenever there is a change in the power state of a physical
  instance, the Bare Metal service will send a "power-update" external
  event to the Compute service which will cause the power state of the
  instance to be updated in the Compute database. It also adds the
  possibility of bringing up/down a physical instance through the Bare
  Metal service API even if it was put down/up through the Compute
  service API.

* The deploy and/or rescue kernel and ramdisk can now be configured
  via the new configuration options "deploy_kernel", "deploy_ramdisk",
  "rescue_kernel" and "rescue_ramdisk" respectively.

* Adds a new configuration option
  "[drac]boot_device_job_status_timeout" that specifies the maximum
  amount of time (in seconds) to wait for the boot device
  configuration job to transition to the scheduled state to allow a
  reboot or power on action to complete.

* Adds initial "idrac" hardware type support of interface
  implementations that utilize the Redfish out-of-band (OOB)
  management protocol and are compatible with the integrated Dell
  Remote Access Controller (iDRAC) baseboard management controller
  (BMC), presently those of the management and power hardware
  interfaces. They are named "idrac-redfish".

  Introduces a new name for the "idrac" interface implementations,
  "idrac-wsman", and deprecates "idrac". They both use the Web
  Services Management (WS-Man) OOB management protocol.

  The "idrac" hardware type declares support for those new interface
  implementations, in addition to all interface implementations it has
  been supporting. The priority order of supported interfaces remains
  the same. Interface implementations which rely on WS-Man continue to
  have the highest priority, and the new "idrac-wsman" is listed
  before the deprecated "idrac". It now supports the following
  interface implementations, which are listed in priority order from
  highest to lowest:

  * bios: "no-bios"

  * boot: "ipxe", "pxe"

  * console: "no-console"

  * deploy: "iscsi", "direct", "ansible", "ramdisk"

  * inspect: "idrac-wsman", "idrac", "inspector", "no-inspect"

  * management: "idrac-wsman", "idrac", "idrac-redfish"

  * network: "flat", "neutron", "noop"

  * power:  "idrac-wsman", "idrac", "idrac-redfish"

  * raid: "idrac-wsman", "idrac", "no-raid"

  * rescue: "no-rescue", "agent"

  * storage: "noop", "cinder", "external"

  * vendor: "idrac-wsman", "idrac", "no-vendor"

  For more information, see story 2004592
  (https://storyboard.openstack.org/#!/story/2004592).

* Adds "idrac" hardware type support of an inspect interface
  implementation that utilizes the Redfish out-of-band (OOB)
  management protocol and is compatible with the integrated Dell
  Remote Access Controller (iDRAC) baseboard management controller
  (BMC). It is named "idrac-redfish".

  The "idrac" hardware type declares support for that new interface
  implementation, in addition to all inspect interface implementations
  it has been supporting. The highest priority inspect interfaces
  remain the same, those which rely on the Web Services Management
  (WS-Man) OOB management protocol. The new 'idrac-redfish'
  immediately follows those. It now supports the following inspect
  interface implementations, listed in priority order from highest to
  lowest: "idrac-wsman", "idrac", "idrac-redfish", "inspector", and
  "no-inspect".

* Adds functionality to perform out-of-band sanitize disk-erase
  operation for iLO5 based HPE Proliant servers. Management interface
  "ilo5" has been added to "ilo5" hardware type. A clean step
  "erase_devices" has been added to management interface "ilo5" to
  support this operation.

* Adds support for the Intel IPMI Hardware with a new hardware type
  "intel-ipmitool". This hardware type is the same as the "ipmi"
  hardware type with additional support of Intel Speed Select
  Performance Profile Technology
  (https://www.intel.com/content/www/us/en/architecture-and-technology
  /speed-select-technology-article.html). It uses the "intel-ipmitool"
  management interface, which supports setting the desired
  configuration level for Intel SST-PP.

* Ironic API service now supports HTTP proxy headers parsing with
  the help of oslo.middleware package, enabled via new option
  "[oslo_middleware]/enable_proxy_headers_parsing" ("False" by
  default).

  This enables more complex setups of Ironic API service, for example
  when the same service instance serves both internal and public API
  endpoints via separate proxies.

  When proxy headers parsing is enabled, the value of
  "[api]/public_endpoint" option is ignored.

* Allows retrying PXE/iPXE boot during deployment, cleaning and
  rescuing. This feature is disabled by default and can be enabled by
  setting "[pxe]boot_retry_timeout" to the timeout (in seconds) after
  which the boot should be retried.

  The new option "[pxe]boot_retry_check_interval" defines how often to
  check the nodes for timeout and defaults to 90 seconds.

* Adds support for software RAID via the generic hardware manager
  when using a Train release "ironic-python-agent" deployment or
  cleaning ramdisk.

  This may be used by means of the "target_raid_config" a single
  RAID-1 or one RAID-1 plus one RAID-N can be configured (where N can
  be 0, 1, and 1+0). The RAID is created/deleted during manual
  cleaning. Note that this initial implementation will use all
  available devices for the setup of the software RAID device(s). More
  information is available in the Ironic Administrator documentation
  (https://docs.openstack.org/ironic/latest/admin/raid.html#software-
  raid).

* Foreign drives and global and dedicated hot spares will be freed
  up during the RAID "delete_configuration" cleaning step.


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

* In order to support power state change call backs to nova, the
  "[nova]" section must be configured in the Bare Metal service
  configuration. As the functionality to process the event is new to
  nova's Train release, this should only be set to "True" in ironic,
  once *ALL* "nova-compute" instances have been upgraded to the Train
  release of nova.

* The Cisco "cisco-ucs-managed" and "cisco-ucs-standalone" hardware
  types and "cimc" and "ucsm" hardware interfaces which were
  deprecated in the 12.1.0 release have now been removed.

  After upgrading, if any of these hardware types or interfaces are
  specified in ironic's configuration options, the ironic-conductor
  service will fail to start. Any existing ironic nodes with these
  hardware types or interfaces will become inoperational via ironic
  after the upgrade. If these hardware types or interfaces are being
  used, the affected nodes should be changed to use other hardware
  types or interfaces; or install these hardware types (and
  interfaces) from elsewhere separately. For more information, see
  story 2005033 (https://storyboard.openstack.org/#!/story/2005033).

* The deprecated configuration options "enabled" and "service_url"
  from the "inspector" section have been removed.

* The python-ironic-inspector-client package is no longer required
  for the "inspector" inspect interface (openstacksdk is used
  instead).

* The deprecated options "url", "url_timeout" and "auth_strategy"
  from the "[neutron]" section have been removed. Use
  "endpoint_override", "timeout" and "auth_type" respectively.

* When a failure occurs during cleaning, nodes will no longer be
  shut down. The behaviour was changed to prevent harm and allow for
  an admin intervention when sensitive operations, such as firmware
  upgrades, are performed and fail during cleaning.

* The deprecated options "glance_api_servers",
  "glance_api_insecure", "glance_cafile" and "auth_strategy" from the
  "[glance]" section have been remove. Please use the corresponding
  keystoneauth options instead.

* The "do_disk_erase", "has_disk_erase_completed" and
  "get_available_disk_types" interfaces of 'proliantutils' library has
  been enhanced to support out-of-band sanitize disk-erase operation
  for "ilo5" hardware type. To leverage this feature, the
  'proliantutils' library needs to be upgraded to version '2.9.0'.

* Users of the "irmc" hardware type with iPXE should switch to the
  "ipxe" boot interface from the deprecated "[pxe]ipxe_enabled"
  option.

* Explicit support for CoreOS Ironic Python Agent images has been
  removed. If you use a ramdisk based on CoreOS, you may want to re-
  add "coreos.configdrive=0" to your PXE templates, see story 1433812
  (https://storyboard.openstack.org/#!/story/1433812) for the
  background.

* The deprecated "ironic/api/app.wsgi" script has been removed. The
  automatically generated "ironic-api-wsgi" script must be used
  instead.

* Support for *elilo* has been removed as support was deprecated and
  *elilo* has been dropped by most Linux distributions. Users should
  migrate to another PXE loader.


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

* The configuration option "[glance]glance_num_retries" has been
  renamed to "[glance]num_retries". The old name will be removed in a
  future release.

* The "idrac" interface implementation name is deprecated in favor
  of a new name, "idrac-wsman", and may be removed in a future
  release. A deprecation warning will be logged for every loaded
  "idrac" interface implementation. Use "idrac-wsman" instead.

* The ironic-lib configuration option
  "[disk_utils]iscsi_verify_attempts" has been deprecated in favor of:

  * "[iscsi]verify_attempts" to specify the number of attempts to
    establish an iSCSI connection.

  * "[disk_utils]partition_detection_attempts" to specify the number
    of attempts to find a newly created partition.


Bug Fixes
*********

* Fixes an issue where if there is a pending BIOS config job in job
  queue, then ironic will abandon an introspection attempt for the
  node, which will cause overall introspection to fail.

* Allows deleting unbound ports on an active node. See story 2006385
  (https://storyboard.openstack.org/#!/story/2006385) for details.

* Fixes a confusing "AttributeError" if an adapter returns "None"
  for the bare metal API.

* Prevents the adapter configuration options from getting ignored if
  a matching endpoint cannot be found. An error is now raised.

* By immediately conveying power state changes of a node through
  external events to the Compute service, the Bare Metal service
  becomes the source of truth about the node's power state, preventing
  the Compute service from forcing wrong power states on instances
  during the periodic power state synchronization between the Compute
  and Bare Metal services.

  Note: There is a possibility of a race condition due to the nova-
    ironic power sync task happening during or right before the power
    state change event is received from the Bare Metal service, in
    which case the instance state will be forced on the baremetal
    node.

* Fixes an issue in the discovery playbook for the "ansible" deploy
  interface that prevented gathering WWN and serial numbers under
  Python 3.

* Fixes an issue with using serial number as root device hints with
  the "ansible" deploy interface.

* Fixes an issue regarding the "ansible" deploy interface, where the
  configdrive partition could not be correctly built if the node root
  device was set to some logical device (like an md array, /dev/md0).
  https://storyboard.openstack.org/#!/story/2006334

* Fixes deploying non-public images using the "ansible" deploy
  interface.

* Currently Ironic allows entering deployment or cleaning for nodes
  in maintenance mode. However, heartbeats do not cause any actions
  for such nodes, thus deployment or cleaning will never finish if the
  nodes are not moved out of maintenance. A new configuration option
  "[conductor]allow_provisioning_in_maintenance" (defaulting to
  "True") is added to configure this behavior. If it is set to
  "False", deployment and cleaning will be prevented from nodes in
  maintenance mode.

* Fixes an issue with asynchronous deploy steps that poll for
  completion where the step could fail to execute.  The
  "deployment_polling" and "cleaning_polling" flags may be used by
  driver implementations to signal that the driver is polling for
  completion.  See story 2003817 for details.

* Fixes an issue in the "idrac" hardware type where a configuration
  job does not transition to the correct state and start execution
  during a power on or reboot operation. If the boot device is being
  changed, the system might complete its POST before the job is ready,
  leaving the job in the queue, and the system will boot from the
  wrong device. See bug 2004909
  (https://storyboard.openstack.org/#!/story/2004909) for details.

* Fixes a bug where ironic would shut a node down upon cleaning
  failure. Now, the node stays powered on (as documented and
  intended).

* Fixes an issue where baremetal node deployment would fail on
  clouds with a high number of security groups. Listing the security
  groups took too long. Instead of listing all security groups, a
  query filter was added to list only the security groups to be used
  for the network. (See bug 2006256
  (https://storyboard.openstack.org/#!/story/2006256).)

* Fixed the issue
  (https://storyboard.openstack.org/#!/story/2006429) with node being
  locked for longer than "[console]subprocess_timeout" seconds when
  shellinabox process fails to start before the specifed timeout
  elapses.

* Fixed a bug when executing "create_configuration" cleaning step
  for disks of PERC H740P controller, first disks get created and then
  controller doesn't allow to create next couple disks because
  controller is getting busy.

* Fixes an issue wherein asynchronous out-of-band deploy steps in
  deployment template fails to execute. See story 2006342 for details.

* Fixes an issue where users attempting to leverage non-iPXE UEFI
  booting would experience failures when their "dhcp_provider" was set
  to "none".

* Fixes a bug in iLO UEFI iSCSI Boot, where it fails if a server has
  multiple NIC adapters, since Proliant Servers have a limitation of
  creating only four iSCSI NIC sources and the existing implementation
  would try to create for more and failed accordingly.

* Adds the missing "ipxe" boot interface to the "irmc" hardware
  type. It is supposed to be used instead of the deprecated
  "[pxe]ipxe_enabled" configuration option.

* Fixes an issue where clean steps of "redfish" BIOS interface do
  not boot up the IPA ramdisk after cleaning reboot. See story 2006217
  for details.

* Fixes an issue in ISO creation for UEFI boot mode when efiboot.img
  file is provided and the directory of location of grub.cfg file set
  using config "[DEFAULT]/grub_config_path" is not same as that of
  efiboot.img file. See story 2006218 for details.

* Fixes an issue in updating firmware using "update_firmware_sum"
  clean step from management interface of "ilo" hardware type with an
  error stating that unable to connect to iLO address due to
  authentication failure. See story 2006223 for details.

* Fixes an issue in powering-on of server in "ilo" hardware type.
  Server was failing to return success for power-on operation if no
  bootable device was found. See story 2006288 for details.

* Fixes an issue in creation of RAID if none of the 'logical_disks'
  in 'target_raid_config' have 'controller' parameter. See story
  2006316 for details.

* Fixes an issue in creation of RAID for "ilo5" RAID interface
  wherein second time RAID creation fails. See story 2006321 for
  details.

* Provides an opt-in fix to change the default port attachment
  behavior for deployment and cleaning operations through a new
  configuration option, "[neutron]add_all_ports". This option causes
  ironic to transmit all port information to neutron as opposed to
  only a single physical network port. This enables operators to
  successfully operate static Port Group configurations with Neutron
  ML2 drivers, where previously configuration of networking would
  fail.

  When these ports are configured with "pxe_enabled" set to "False",
  neutron will be requested not to assign an IP address to the port.
  This is to prevent additional issues that may occur depending on
  physical switch configuration with static Port Group configurations.

* Fixes an issue during provisioning network attachment where
  neutron ports were being created with the same data structure being
  re-used.


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

* This release allows to configure retryable ipmitool exceptions via
  "[ipmi]additional_retryable_ipmi_errors" so that, depending on the
  environment, operators could allow retrying ipmitool commands
  containing specified substrings.

Changes in ironic 12.2.0..13.0.0
--------------------------------

e327c58f8 Update release mappings for Train
2fad52ece Release notes cleanup for 13.0.0 (mk2)
b164e18f0 Document PXE retries
cad66b032 Update env. variables in the documentation
45b03d03b Add iDRAC RAID deploy steps
3e5198225 Don't resume deployment or cleaning on heartbeat when polling
26c4a00c7 Make multinode jobs non-voting
3f3508f0d devstack: wait for conductor to start and register itself
b2834e666 Allow retrying PXE boot if it takes too long
1745eea83 Lower MTU override
c9349c194 Devstack: Fix iPXE apache log location bug
199a218f5 Serve virtual media boot images from ironic conductor
62579800f Add Redfish inspect interface to idrac HW type
f388cd0f3 Add deploy steps for iLO Management interface
93bd867be Do not log an error on heartbeat in deploying/cleaning/rescuing
fcb793682 Add an option to abort cleaning and deployment if node is in maintenance
625c71d48 CI: move libvirt images to /opt for standalone and multinode jobs
03471be1e Add first idrac HW type Redfish interface support
7c5839064 Remove cisco references and add release note
cd7a15a56 Add `FLOPPY` boot device constant
cfc0f5dac Combined gate fixes
68e6daf71 Release notes cleanup for 13.0.0
b3595b3f0 CI: move the fast-track job to the experimental pipeline
cbeb9cc79 Remove support for CoreOS images
334a0b0fe Fix gate failure related to jsonschema
f147d3ece Minor: change a misleading InvalidState error message
9aab525d4 Build pdf doc
cb87c5745 iLO driver doc update
9eebf2603 Use openstack cli in image creation guide
c35f7d948 iLO driver doc update
7a0f8698a devstack: save iPXE httpd logs
66a1e649d Prelude for 13.0.0
72176b32a Add a release note for iscsi_verify_attempts deprecation
22db498ea Fix typo in handling of exception FailedToGetIPAddressOnPort
8bbd8883b Add iLO RAID deploy steps
e21aad3fd add table of available cleaning steps to documentation
386743148 Prepare for deprecation of iscsi_verify_attempts in ironic-lib
3ef63d9b8 Add software raid release note to ironic
3747e1418 Add ironic-specs link to readme.rst
a1340c7e9 Fixed problem with UEFI iSCSI boot for nic adapters
dd9c5fced DRAC : clear_job_queue clean step to fix pending bios config jobs
f546e8f16 Add deploy steps for iLO BIOS interface
74354b7a7 Follow-up for deploy steps for Redfish BIOS interface
b560bade6 Adding file uri support for ipa image location
dd02a2163 Adjust placement query for reserved nodes
d3e4fe50b Add indicator management harness to ManagementInterface
a96f926c2 Adds dhcp-all-interfaces element
1ad73338b Do not wait for console being started on timeout
c0799c95e Out-of-band `erase_devices` clean step for Proliant Servers
678114799 Pass target_raid_config field to ironic variable
f75957268 Allow deleting unbound ports on active node
27fc3d0bc Follow up to Option to send all portgroup data
aa5db417d Lower standalone concurrency to 3 from 4
4af2e14e9 Make ironic_log Ansible callback Python 3 ready
4b5d25474 Remove ironic command bash completion
c6b5ebf35 devstack: Fix libvirtd/libvirt-bin detection
1e3b68403 Add iPXE boot interface to 'ilo' hardware type
afa611c4e Move to unsafe caching
a3ac25f29 Allow to configure additional ipmitool retriable errors
f9e2b6f2c Fix exception on provisioning with idrac hw type
e9fa1e31f Install sushy if redfish is a hardware type
046399ee6 Add `filename` parameter to Redfish virtual media boot URL
b73420ec5 Add set_boot_device hook in `redfish` boot interface
9fab96fc3 Add Redfish Virtual Media Boot support
6ead1038c Follow-up to power sync reno
b1986361a Add new method 'apply_configuration' to RAIDInterface
f5a676a60 Do not tear down node upon cleaning failure
27f7143eb Switch non-multinode jobs to new-style neutron services
991f9ccec Add deploy steps for Redfish BIOS interface
ff3f328f0 Ansible: fix partition_configdrive for logical root_devices
d693d4c06 Support power state change callbacks to nova using ksa_adapter
9eccadbf1 Docu: Fix broken link
c740ae0a2 Fixing broken links
81e4da55b DRAC : Fix issue for RAID-0 creation for multiple disks for PERC H740P
d62c3f4fa Uses IPA-B to build in addition to CoreOS
8f907886a Asynchronous out of band deploy steps fails to execute
7a3d9a664 Clean up RAID documentation
2f7de3264 Enable testing software RAID in the standalone job
c7bd03cf6 devstack: allow creating more than one volume for a VM
f06240f7d Allow configuring global deploy and rescue kernel/ramdisk
c23a96d74 Fix missing print format error
521c08685 Update software RAID configuration documentation
5e8c966a4 Use HTTPProxyToWSGI middleware from oslo
6305ea700 RAID creation fails with 'ilo5' RAID interface
b304d1880 RAID create fails if 'controller' is missing in 'target_raid_config'
d6774c294 Use openstacksdk for accessing ironic-inspector
083cd4460 CI Documentation
ac8b2d01b Enable no IP address to be returned
2b8581af8 Change debug to error for heartbeats
3dfce5f2d CI: stop using pyghmi from git master
49140989d Fixes power-on failure for 'ilo' hardware type
13dcb33fa Creation of UEFI ISO fails with efiboot.img
441575dc5 Remove deprecated Neutron authentication options
01a9726c0 Follow-up to the IntelIPMIHardware patch
ba207ba37 Ansible driver: fix deployment with serial specified as root device hint
363e50cab Enable testing adoption in the CI
54054c0e5 Fix serial/wwn gathering for ansible+python3
daddf516b Update api-ref location
ddc0fb831 IPA does not boot up after cleaning reboot for 'redfish' bios interface
fb664d518 Revert "Add logic to determine Ironic node is HW or not into configure_ironic_dirs"
59787768c Filter security group list on the ID's we expect
8d8402ee1 Clean lower-constraints.txt
bd20f3ac2 [Trivial] Fix is_fast_track parameter doc string
0d6ee78f5 Failure in get_sensor_data() of 'redfish' management interface
192301ae6 Abstract away pecan.request/response
62c95a7c9 Fix potential race condition on node power on and reboot
50bfd9067 iLO firmware update fails with 'update_firmware_sum' clean step
2d5f0c8b9 Bump keystonauth and warlock versions
1fcd7a477 Don't install ubuntu efi debs on cent
8fc538bdd Remove the PXE driver page
d0c31d748 Ansible module: fix deployment for private and/or shared images
d2967b41a Add logic to determine Ironic node is HW or not into install_ironic
0913c9484 Add logic to determine Ironic node is HW or not into configure_ironic_dirs
66b073983 Deal with iPXE boot interface incompatibility in Train
1becd6dda Bump openstackdocstheme to 1.20.0
401cfbc6e Remove deprecated app.wsgi script
bc84b7bce devstack: Install arch specific debs only when deploying to that arch
4724d55e9 DRAC: Upgraded RAID delete_config cleaning step
7adc6c21d Fix invalid assert state
ac0900add CI: remove quotation marks from TEMPEST_PLUGINS variable
5f18e52b6 Remove CIMC/UCS drivers
5127b6f6d Add IntelIPMIHardware
82abc0bea Collect sensor data in ``redfish`` hardware type
c908374ed [Trivial] Software RAID: Documentation edits
2f5ac8421 Software RAID: Add documentation
7eba36e74 Blacklist sphinx 2.1.0 (autodoc bug)
5f8cb199d Follow-up on UEFI/Grub2 job
bffb075d2 Adds bandit template and exclude some of tests
f568a80e9 Add documentation for IntelIPMI hardware
b2ee05a0b Add check on get_endpoint returning None
247234171 Option to send all portgroup data
06dd82bd3 Replace deprecated with_lockmode with with_for_update
12e45f314 Refactoring: flatten the glance service module
dcfb4f10f Remove the deprecated glance authentication options
caf925349 Incorporate bandit support in CI
0f6639d4e Remove elilo support
7eb0b7287 Add fast-track testing


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

README.rst                                         |   3 +-
devstack/files/apache-ipxe-ironic.template         |   4 +
devstack/files/debs/ironic                         |   4 +-
devstack/lib/ironic                                | 300 +++++--
devstack/plugin.sh                                 |   3 +-
devstack/tools/ironic/scripts/configure-vm.py      |  11 +-
devstack/tools/ironic/scripts/create-node.sh       |  46 +-
devstack/tools/ironic/templates/vm.xml             |  12 +-
driver-requirements.txt                            |   9 +-
ironic/api/__init__.py                             |  18 +
ironic/api/app.py                                  |   5 +
ironic/api/controllers/link.py                     |   4 +-
ironic/api/controllers/v1/__init__.py              |  63 +-
ironic/api/controllers/v1/allocation.py            |  53 +-
ironic/api/controllers/v1/bios.py                  |  12 +-
ironic/api/controllers/v1/chassis.py               |  26 +-
ironic/api/controllers/v1/collection.py            |   4 +-
ironic/api/controllers/v1/conductor.py             |  14 +-
ironic/api/controllers/v1/deploy_template.py       |  19 +-
ironic/api/controllers/v1/driver.py                |  50 +-
ironic/api/controllers/v1/event.py                 |   3 +-
ironic/api/controllers/v1/node.py                  | 253 +++---
ironic/api/controllers/v1/port.py                  |  54 +-
ironic/api/controllers/v1/portgroup.py             |  43 +-
ironic/api/controllers/v1/ramdisk.py               |  16 +-
ironic/api/controllers/v1/utils.py                 | 124 +--
ironic/api/controllers/v1/volume.py                |   5 +-
ironic/api/controllers/v1/volume_connector.py      |  38 +-
ironic/api/controllers/v1/volume_target.py         |  38 +-
ironic/api/controllers/version.py                  |   4 +-
ironic/api/hooks.py                                |   7 +-
ironic/api/wsgi.py                                 |   7 +-
ironic/common/boot_devices.py                      |   3 +
ironic/common/cinder.py                            |   5 +-
ironic/common/components.py                        |  33 +
ironic/common/exception.py                         |  14 -
ironic/common/glance_service/base_image_service.py | 229 -----
.../glance_service/{v2 => }/image_service.py       | 202 ++++-
ironic/common/glance_service/service_utils.py      |  33 -
ironic/common/image_service.py                     |   2 +-
ironic/common/images.py                            |   7 +-
ironic/common/indicator_states.py                  |  30 +
ironic/common/keystone.py                          |  21 +
ironic/common/neutron.py                           | 101 ++-
ironic/common/nova.py                              | 116 +++
ironic/common/pxe_utils.py                         |  73 +-
ironic/common/release_mappings.py                  |  21 +-
ironic/common/swift.py                             |   4 +-
ironic/common/utils.py                             |   2 +-
ironic/conductor/manager.py                        |  95 +-
ironic/conductor/utils.py                          |  61 +-
ironic/conf/__init__.py                            |   4 +-
ironic/conf/api.py                                 |  11 +-
ironic/conf/cisco.py                               |  49 -
ironic/conf/conductor.py                           |  35 +
ironic/conf/default.py                             |   2 +-
ironic/conf/drac.py                                |   9 +-
ironic/conf/glance.py                              |  36 +-
ironic/conf/ilo.py                                 |   7 +
ironic/conf/inspector.py                           |  11 -
ironic/conf/ipmi.py                                |   4 +
ironic/conf/iscsi.py                               |  10 +-
ironic/conf/neutron.py                             |  41 +-
ironic/conf/nova.py                                |  34 +
ironic/conf/opts.py                                |   3 +-
ironic/conf/pxe.py                                 |  10 +
ironic/conf/redfish.py                             |  22 +-
ironic/db/sqlalchemy/api.py                        |  63 +-
ironic/dhcp/base.py                                |   2 +-
ironic/dhcp/neutron.py                             |   2 +-
ironic/drivers/base.py                             | 169 +++-
ironic/drivers/cisco_ucs.py                        |  61 --
ironic/drivers/drac.py                             |  14 +-
ironic/drivers/ilo.py                              |   7 +-
ironic/{api/app.wsgi => drivers/intel_ipmi.py}     |  22 +-
ironic/drivers/irmc.py                             |   3 +-
ironic/drivers/modules/agent.py                    |   9 +-
ironic/drivers/modules/agent_base_vendor.py        |  65 +-
ironic/drivers/modules/agent_config.template       |   2 +-
ironic/drivers/modules/ansible/deploy.py           |  31 +-
.../playbooks/callback_plugins/ironic_log.py       |   4 +-
.../modules/ansible/playbooks/library/facts_wwn.py |   5 +-
.../roles/deploy/files/partition_configdrive.sh    |  22 +-
.../playbooks/roles/discover/tasks/roothints.yaml  |   2 +-
ironic/drivers/modules/cimc/common.py              |  85 --
ironic/drivers/modules/cimc/management.py          | 168 ----
ironic/drivers/modules/cimc/power.py               | 191 ----
ironic/drivers/modules/console_utils.py            |  23 +-
ironic/drivers/modules/deploy_utils.py             |  89 +-
ironic/drivers/modules/drac/inspect.py             |  31 +-
ironic/drivers/modules/drac/job.py                 |  16 +-
ironic/drivers/modules/drac/management.py          |  96 +-
ironic/drivers/modules/drac/power.py               |  31 +-
ironic/drivers/modules/drac/raid.py                | 373 ++++++--
ironic/drivers/modules/drac/vendor_passthru.py     |  23 +-
.../drivers/modules/elilo_efi_pxe_config.template  |  17 -
ironic/drivers/modules/fake.py                     |  40 +
ironic/drivers/modules/ilo/bios.py                 | 112 ++-
ironic/drivers/modules/ilo/boot.py                 |  99 +++
ironic/drivers/modules/ilo/management.py           | 408 +++++++--
ironic/drivers/modules/ilo/power.py                |  23 +-
ironic/drivers/modules/ilo/raid.py                 | 136 ++-
ironic/drivers/modules/inspector.py                |  66 +-
.../v2 => drivers/modules/intel_ipmi}/__init__.py  |   0
ironic/drivers/modules/intel_ipmi/management.py    |  84 ++
ironic/drivers/modules/ipmitool.py                 |   7 +-
ironic/drivers/modules/ipxe_config.template        |   2 +-
ironic/drivers/modules/iscsi_deploy.py             |  11 +-
ironic/drivers/modules/pxe.py                      |  10 +-
ironic/drivers/modules/pxe_base.py                 |  90 ++
ironic/drivers/modules/pxe_config.template         |   2 +-
ironic/drivers/modules/pxe_grub_config.template    |   2 +-
ironic/drivers/modules/redfish/bios.py             |  91 +-
ironic/drivers/modules/redfish/boot.py             | 918 +++++++++++++++++++
ironic/drivers/modules/redfish/management.py       | 151 +++-
ironic/drivers/modules/ucs/__init__.py             |   0
ironic/drivers/modules/ucs/helper.py               | 126 ---
ironic/drivers/modules/ucs/management.py           | 152 ----
ironic/drivers/modules/ucs/power.py                | 220 -----
ironic/drivers/redfish.py                          |   9 +
.../unit/drivers/elilo_efi_pxe_config.template     |  16 -
...e_config_boot_from_volume_extra_volume.template |   2 +-
...nfig_boot_from_volume_no_extra_volumes.template |   2 +-
.../unit/drivers/ipxe_config_timeout.template      |   2 +-
.../unit/drivers/modules/ansible/test_deploy.py    |  48 +-
.../unit/drivers/modules/cimc/test_management.py   | 127 ---
.../unit/drivers/modules/drac/test_management.py   | 190 +++-
.../drivers/modules/drac/test_periodic_task.py     |  85 +-
.../unit/drivers/modules/ilo/test_management.py    | 824 +++++++++++++----
.../unit/drivers/modules/intel_ipmi}/__init__.py   |   0
.../drivers/modules/intel_ipmi/test_intel_ipmi.py  | 103 +++
.../drivers/modules/intel_ipmi/test_management.py  |  87 ++
.../unit/drivers/modules/redfish/test_bios.py      | 176 +++-
.../unit/drivers/modules/redfish/test_boot.py      | 985 +++++++++++++++++++++
.../unit/drivers/modules/redfish/test_inspect.py   |   1 +
.../drivers/modules/redfish/test_management.py     | 198 ++++-
.../unit/drivers/modules/redfish/test_power.py     |   1 +
.../unit/drivers/modules/redfish/test_utils.py     |   1 +
.../unit/drivers/modules/test_agent_base_vendor.py | 184 +++-
.../unit/drivers/modules/test_console_utils.py     |  32 +-
.../unit/drivers/modules/test_deploy_utils.py      | 103 ++-
.../unit/drivers/modules/test_iscsi_deploy.py      |  21 +
.../unit/drivers/modules/ucs/test_management.py    | 130 ---
.../unit/drivers/third_party_driver_mock_specs.py  |  23 +-
lower-constraints.txt                              | 102 +--
.../run.yaml                                       |   1 -
playbooks/legacy/grenade-dsvm-ironic/run.yaml      |   1 -
...figurable-ipmi-retriables-b6056f722f6ed3b0.yaml |   7 +
...steps-drac-raid-interface-7023c03a96996265.yaml |  10 +
...-steps-ilo-bios-interface-c73152269701ef80.yaml |   6 +
...-ilo-management-interface-9d0f45954eda643a.yaml |   8 +
...-steps-ilo-raid-interface-732314cea19fe8ac.yaml |   6 +
...ps-redfish-bios-interface-f5e5415108f87598.yaml |   6 +
...dd-redfish-boot-interface-e7e05bdd2c894d80.yaml |  13 +
.../add-redfish-sensors-4e2f7e3f8a7c6d5b.yaml      |   5 +
...aid-config-ansible-deploy-c9ae81d9d25c62fe.yaml |   8 +
...lean_step_clear_job_queue-7b774d8d0e36d1b2.yaml |  11 +
...s-ilo-ipxe-boot-interface-4fc75292122db80d.yaml |  13 +
...ow-deleting-unbound-ports-fa78069b52f099ac.yaml |   5 +
releasenotes/notes/api-none-cdb95e58b69a5c50.yaml  |   8 +
...ort-instance-power-update-49c531ef13982e62.yaml |  34 +
.../notes/bug-2006266-85da234583ca0c32.yaml        |   5 +
.../notes/bug-2006275-a5ca234683ca4c32.yaml        |   5 +
.../notes/bug-2006334-0cd8f59073f56241.yaml        |   7 +
releasenotes/notes/bug-35702-25da234580ca0c31.yaml |   4 +
.../cisco-drivers-deleted-5a42a8c508704c64.yaml    |  15 +
.../cleaning-maintenance-7ae83b1e4ff992b0.yaml     |  10 +
.../notes/conf-deploy-image-5adb6c1963b149ae.yaml  |   6 +
...ent-cleaning-polling-flag-be13a866a7c302d7.yaml |   8 +
...deprecated-inspector-opts-0520b08dbcd10681.yaml |   8 +
.../deprecated-neutron-ops-79abab5b013b7939.yaml   |   6 +
...-on-reboot-race-condition-fe712aa9c79ee252.yaml |  16 +
...des-upon-cleaning-failure-a9cda6ae71ed2540.yaml |  11 +
...up-list-add-query-filters-f72cfcefa1e093d2.yaml |   9 +
...onsole-subprocess-timeout-d3eccfe0440013d7.yaml |   7 +
...eation_for_multiple_disks-f47957754fca0312.yaml |   7 +
...-out-of-band-deploy-steps-1f5967e7bfcabbf9.yaml |   6 +
...es-noop-network-with-grub-8fd99a73b593ddba.yaml |   6 +
.../glance-deprecations-21e7014b72a1bcef.yaml      |  11 +
...d-initial-redfish-support-27f27f18f3c1cd91.yaml |  44 +
...d-redfish-inspect-support-ce74bd3d4a97b588.yaml |  18 +
.../ilo-fix-uefi-iscsi-boot-702ced18e28c5c61.yaml  |   6 +
...5-oob-sanitize-disk-erase-cc76ea66eb5fe6df.yaml |  12 +
.../intel-ipmi-hardware-30aaa65cdbcb779a.yaml      |  10 +
...interface-incompatibility-7d0b2bdb8f9deb46.yaml |  10 +
.../iscsi-verify-attempts-28b1d00b13ba365a.yaml    |  10 +
releasenotes/notes/no-coreos-f8717f9bb6a64627.yaml |   7 +
...-proxy-headers-middleware-22188a2976f8f460.yaml |  13 +
releasenotes/notes/pxe-retry-762a00ba1089bd75.yaml |  10 +
.../notes/remove-app-wsgi-d5887ca28e4b9f00.yaml    |   5 +
.../remove-elilo-support-7fc1227f66e59084.yaml     |   6 +
.../notes/software-raid-4a88e6c5af9ea742.yaml      |  14 +
...dfish-bios-cleaning-fails-fee32f04dd97cbd2.yaml |   6 +
...8-uefi-iso-creation-fails-ba0180991fdd0783.yaml |   9 +
...sum-firmware-update-fails-622883e4785313c1.yaml |   8 +
...fails-with-no-boot-device-b698fef59b04e515.yaml |   7 +
...2006316-raid-create-fails-c3661e185fb11c9f.yaml |   7 +
...21-ilo5-raid-create-fails-1bb1e648da0db0f1.yaml |   6 +
.../notes/train-release-59ff1643ec92c10a.yaml      |   9 +
.../notes/transmit-all-ports-b570009d1a008067.yaml |  19 +
...rade-delete_configuration-0f0bb43c57278734.yaml |   5 +
requirements.txt                                   |   4 +-
setup.cfg                                          |  19 +-
test-requirements.txt                              |   2 +
tools/bandit.yml                                   | 401 +++++++++
tools/config/ironic-config-generator.conf          |   1 +
tox.ini                                            |  16 +
zuul.d/ironic-jobs.yaml                            |  69 +-
zuul.d/legacy-ironic-jobs.yaml                     |   4 -
zuul.d/project.yaml                                |  19 +-
297 files changed, 11624 insertions(+), 5635 deletions(-)


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

diff --git a/driver-requirements.txt b/driver-requirements.txt
index fd0dbc4d3..beb542186 100644
--- a/driver-requirements.txt
+++ b/driver-requirements.txt
@@ -7 +7 @@
-proliantutils>=2.7.0
+proliantutils>=2.9.1
@@ -9 +8,0 @@ pysnmp>=4.3.0,<5.0.0
-python-ironic-inspector-client>=1.5.0
@@ -11 +9,0 @@ python-scciclient>=0.8.0
-UcsSdk==0.8.2.2;python_version<'3'
@@ -15,3 +12,0 @@ python-xclarityclient>=0.1.6
-# The CIMC drivers use the Cisco IMC SDK version 0.7.2 or greater
-ImcSdk>=0.7.2
-
@@ -19 +14 @@ ImcSdk>=0.7.2
-sushy>=1.6.0
+sushy>=1.9.0
diff --git a/requirements.txt b/requirements.txt
index 86c36219d..44c4d681b 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -13 +13 @@ python-glanceclient>=2.8.0 # Apache-2.0
-keystoneauth1>=3.4.0 # Apache-2.0
+keystoneauth1>=3.15.0 # Apache-2.0
@@ -50 +50 @@ tooz>=1.58.0 # Apache-2.0
-openstacksdk>=0.25.0 # Apache-2.0
+openstacksdk>=0.31.2 # Apache-2.0
diff --git a/test-requirements.txt b/test-requirements.txt
index 9ec005c94..ab53cb70f 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -5,0 +6 @@ coverage!=4.4,>=4.0 # Apache-2.0
+ddt>=1.0.1 # MIT
@@ -21,0 +23 @@ Pygments>=2.2.0 # BSD
+bandit!=1.6.0,>=1.1.0,<2.0.0 # Apache-2.0






More information about the Release-announce mailing list