[release-announce] ironic 14.0.0 (ussuri)

no-reply at openstack.org no-reply at openstack.org
Tue Feb 11 21:35:38 UTC 2020


We exuberantly announce the release of:

ironic 14.0.0: OpenStack Bare Metal Provisioning

This release is part of the ussuri 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.

14.0.0
^^^^^^


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

* Adds "instance_info/kernel_append_params" property support to
  "redfish" hardware type. If given, this property overrides
  "[redfish]/kernel_append_params" ironic option. The rationale for
  adding this property is to allow passing node-specific kernel
  parameters to instance kernel. One of the use-cases for this is to
  pass node static network configuration to the kernel.

* Adds support for node retirement by adding a "retired" property to
  the node. If set, a node moves upon automatic cleaning to
  "manageable" (rather than "available"). The new property also blocks
  the "provide" keyword, i.e. nodes cannot move from "manageable" to
  "available". Furthermore, there is an additional optional field
  "retirement_reason" to store the reason for the node's retirement.

* Adds an "owner" field to allocations. Depending on policy, a non-
  admin can then create an allocation and have the owner set to their
  project. Allocation processing will then ensure that only nodes with
  the same owner are matched.

* Adds support for specifying vendor_data when building config
  drives. Starting with API version 1.59, a JSON based "configdrive"
  parameter to "/v1/nodes/<node>/states/provision" can include the key
  "vendor_data". This data will be built into the configdrive contents
  as "vendor_data2.json".

* Adds "idrac" hardware type support of a virtual media boot
  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-virtual-media".

  The "idrac" hardware type declares support for that new interface
  implementation, in addition to all boot interface implementations it
  has been supporting. The highest priority boot interfaces remain the
  same. It now supports the following boot interface implementations,
  listed in priority order from highest to lowest: "ipxe", "pxe", and
  "idrac-redfish-virtual-media".

  To use the new boot interface, install the "sushy-oem-idrac" Python
  package.

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

* It's now possible to force booting for in-band inspection to be
  managed by ironic by setting the new
  "[inspector]require_managed_boot" option to "True". In-band
  inspection will fail if the node's driver does not support managing
  boot for it.

* The "pxe" and "ipxe" boot interfaces, as well as all in-tree
  network interfaces, now support managing in-band inspection boot.

* Allows reading the "root_device" from "instance_info", overriding
  the value in "properties". This enables per-instance root device
  settings and requires the Ussuri release of ironic-python-agent.

* Adds an "is_node_owner" policy rule. This rule can be used with
  node policy rules in order to expose specific node APIs to a project
  ID specified by a node's "owner" field. Default rules are
  unaffected, so default behavior is unchanged.

* A port is owned by its associated node's owner. This owner is now
  exposed to policy checks, giving Ironic admins the option of
  modifying the policy file to allow users specified by a node's owner
  field to perform API actions on that node's associated ports through
  the "is_node_owner" rule.

* The "redfish-virtual-media" boot interface now supports managing
  boot for in-band inspection. This enables using virtual media
  instead of PXE for in-band inspection.

* Software RAID is no longer limited to images which have the root
  file system in the first partition.


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

* Changes the minimum version of Ansible for use with the "ansible"
  "deploy_interface" to version 2.5.

* Python 2.7 support has been dropped. Last release of Ironic to
  support Python 2.7 is OpenStack Train. The minimum version of Python
  now supported by Ironic is Python 3.6.

* For the managed in-band inspection to work, make sure that the
  Bare Metal Introspection endpoint (either in the service catalog or
  in the "[inspector]endpoint_override" configuration option) is not
  set to localhost. Alternatively, set the
  "[inspector]callback_endpoint_override" option to a value with a
  real IP address.

* The argument "agent_version" of the heartbeat interface is now
  mandatory to all interfaces that inherit from HeartbeatMixin.

* Operators using custom PXE/iPXE/Grub templates should update them
  to remove an explicit mention of "ipa-api-url". This field is now a
  part of "pxe_append_params" when required.

* The configuration option "[agent]heartbeat_timeout" was deprecated
  before ocata release and now removed, please use
  "[api]ramdisk_heartbeat_timeout" instead.

* The configuration option "[glance]glance_num_retries" was
  deprecated and now removed, please use "[glance]num_retries"
  instead.

* The configuration option "[disk_utils]iscsi_verify_attempts" was
  deprecated in Train and it's now removed from ironic-lib. Please use
  the "[iscsi]verify_attempts" option instead.

* For Software RAID, the IPA no longer assumes that the root file
  system of the deployed image is in the first partition. Instead, it
  will use the UUID passed from the conductor. Operators need hence to
  make sure that the conductor has the correct UUID (which either
  comes from the "rootfs_uuid" field in the image metadata or from the
  "root_uuid_or_disk_id" in the node's "internal_driver_info".)


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

* The "ibmc" hardware type has been deprecated. While the Huawei
  team setup Third-Party CI for the driver's inclusion into ironic,
  the CI unfortunately went down around the time the United States of
  America announced commerce restrictions against Huawei.

  Unfortunantely, without third party CI and no contacts to maintain
  the driver, the ironic community is left with little choice but to
  deprecate and ultimately remove the driver.

* The Fujitsu "irmc" hardware type has been deprecated. The Third
  Party CI for the driver stopped responding on or around July 7th,
  2019. As such, we cannot claim fixes or changes to the driver are in
  a working state.

  We have heard from the Fujitsu team that they intend to return
  "irmc" CI to working order, and as such should that occur this
  deprecation will be revoked.


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

* Node secrets (such as BMC credentials) are no longer logged when
  JSON RPC is used and DEBUG logging is enabled.

* Prevents additional updates of an agent "callback_url" through the
  agent heartbeat "/v1/heartbeat/<node_uuid>" endpoint as the
  "callback_url" should remain stable through the cleaning,
  provisioning, or rescue processes. Should anything such as an
  unexpected agent reboot cause the "callback_url", heartbeat
  operations will now be ignored. More information can be found at
  story 2006773 (https://storyboard.openstack.org/#!/story/2006773).


Bug Fixes
*********

* Makes "ironic.api.wsgi" compatible with WSGI containers that
  cannot use an executable WSGI entry point. For example, with
  gunicorn:

     gunicorn -b 0.0.0.0:6385 'ironic.api.wsgi:initialize_wsgi_app(argv=[])'

* Now passing proper flags during clean up of iPXE boot
  environments, so that no leftovers are left after node tear down.

* Fixes a bug in the "idrac" hardware type where configuration job
  for RAID "delete_configuration" cleaning step gets created even when
  there are no virtual disks or hotspares/dedicated hotspares present
  on any controller. See bug 2006562
  (https://storyboard.openstack.org/#!/story/2006562) for details.

* Fixes a bug in the "idrac" hardware type where a race condition
  can occur on a host that has a mix of controllers where some support
  realtime mode and some do not. The approach is to use only realtime
  mode if all controllers support realtime. This removes the race
  condition. See bug 2006502
  (https://storyboard.openstack.org/#!/story/2006502) for details.

* Corrects logic in the entry path of node cleaning and deployment
  processes to prohibit "agent_url" from being preemptively removed if
  "fast_track" is enabled and in use. This allows fast track cleaning
  and deployment operations to succeed.

* Fixes issue where the resource list API returned results with
  requested fields only until the API "MAX_LIMIT". After the API
  "MAX_LIMIT" is reached the API started ignoring user requested
  fields. This fix will make sure that the next url generated by the
  pagination code will include the user requested fields as query
  parameter.

* Fixes an issue that when "ipxe" interface is in use with
  "[pxe]ipxe_enabled" set to false, the PXE configuration is not
  handled properly which prevents the machine from performing a
  successful iPXE boot.

* Fixes virtual media boot when served using a local HTTP server,
  i.e. "[redfish]use_swift" is "false".

* Fixes drive sensors information collection in "redfish" management
  interface. Prior to this fix, wrong Redfish schema has been used for
  Drive resource what has been causing exception and ultimately sensor
  data collection failure.

* Fixes a possible console lockup issue
  (https://storyboard.openstack.org/#!/story/2006514) in case of PID
  file not being yet created while daemon start has call already
  returned success return code.

* Fixes a bug in the "idrac" hardware type where executing the
  "clear_job_queue" clean step, pending non-BIOS config jobs (E.g.
  create/delete virtual disk) were not being deleted before job
  execution.

  See bug 2006580 (https://storyboard.openstack.org/#!/story/2006580)
  for details.

* Fixes an issue with fasttrack where a recent security related
  change to prevent the "agent_url" field from being updated in a
  node, to functionally prevent fast_track from succeeding as the node
  would fail with an exception indicating the "agent_url" could not be
  found. The required "agent_url" value is now preserved when the fast
  track feature is enabled as the running ramdisk is not shut down.

* Fixes a minor issue with "get_boot_option" logic that did not
  account for Software RAID. This can erroniously cause the deployment
  to take the the incorrect deployment path and attempt to install a
  boot loader.

* Add timeout when querying agent for commands status. Without it,
  node can lock up for a quite long time and ironic will not allow to
  perform any operations with it.

* Fixes incorrect parsing of "ibmc_address" with a port but without
  a schema in the "ibmc" hardware type on Python 3.8.

* When using the PERC H730P RAID controller, physical disks must be
  put into RAID mode prior to creating a virtual disk that includes
  them.  If one or more physical disks are in JBOD/Non-RAID mode when
  creating a virtual disk from them, then the iDRAC will return an
  error.  This patch ensures that the physical disks being included in
  a virtual disk are converted to RAID mode prior to creating the
  virtual disk.

* Hardware type "idrac" converts physical drives from "RAID" to
  "JBOD" mode after RAID "delete_configuration" cleaning step through
  raid interface. This ensures that the individual disks freed by
  deleting the virtual disks are visible to the OS.

* Support for some hardware, including some Dell EMC servers, is
  broken when using the Redfish hardware type with sushy 1.9.0. The
  minimum version for the sushy library is now 2.0.0. See story
  2006702 (https://storyboard.openstack.org/#!/story/2006702) for more
  information.

* Fixes an issue where a provisioned or allocated node could have
  its owner changed. For backwards compatibility, we preserve the
  ability to do so for a provisioned node through the use of the
  "baremetal:node:update_owner_provisioned" policy rule. We always
  prevent the update if the node is associated with an allocation that
  specifies an owner.

* Fixes a bug with the grub ramdisk boot template handling, such
  that the template now properly references the user provided kernal
  and ramdisk. Previously the deployment ramdisk and kernel was
  referenced in the template.

* When installing a whole disk image using iscsi, set up the
  bootloader even if a root partition can not be found.  The
  bootloaders will be located on the disk.


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

* Boot and network interface implementations can now manage boot for
  in-band inspection by implementing the new methods:

  * "BootInterface.validate_inspection"

  * "NetworkInterface.validate_inspection"

  * "NetworkInterface.add_inspection_network"

  * "NetworkInterface.remove_inspection_network"

  Previously only ironic-inspector itself could manage boot for it.
  This change opens a way for non-PXE implementations of in-band
  inspection.

Changes in ironic 13.0.0..14.0.0
--------------------------------

78c3af414 Fix up release notes for 14.0.0
25db12607 Actually use ironic-python-agent from source in source builds
351779a00 Update release mappings for Ussuri
0f4b9e38a tell reno to ignore the kilo branch
627b0c0cd Update API version history for v1.61
fb54c01c1 Split cleaning-related functions from manager.py into a new module
d94931840 Split deployment-related functions from manager.py into a new module
1366bde2d Disable debug output in doc building
1e7447a17 Fix jsonpatch related tests
f61624e06 Fix ipxe interface to perform ipxe boot without ipxe_enabled enabled
90b747ac6 Fix typo in setup-network.sh script
3ecaadbb3 Support node retirement
4504bd5a8 Make ironic-api compatible with WSGI containers other than mod_wsgi
d614d86ee Don't require root partition when installing a whole disk image
0c6521804 Clean up api controller base classes
92fee4053 Deprecate irmc hardware type
f192f2c45 Subclass wsme.exc.ClientSideError
cc7a9c29c Use str type instead of wsme.types.text
20142434b Use bionic job for bifrost integration
9050098e3 Follow up to root device hints in instance_info
7e825a28c Deprecate ibmc
2bf981982 Fix incorrect ibmc_address parsing on Python 3.8
0a94391e3 Fix entry paths for cleaning and deployment
6da62945b Fix API docs for target_power_state response
9be5b3729 Document using CentOS 8 DIB IPA images for Ussuri and newer
8f2ddc0b2 Lower RAM for DIB jobs to 2 GiB
df047e07c Remove reference to deprecated [disk_utils]iscsi_verify_attempts
d906fc2bb Add node info and exc name when getting rootfs info from Glance
c3955e68a Fix fast_track + agent_url update fix
8c3ab7de0 CI: make the metalsmith job voting and gating
ca355adb7 devstack: install bindep for diskimage-builder
42dc9787e Allow reading root_device from instance_info
7bd643dee Add a missing versionadded for configdrive[vendor_data]
373f428fc Make qemu hook running with python3
ca0c9ff88 Refactor glance retry code to use retrying lib
183d4eae6 Fix duplicated words issue like "are are placed"
f110afc4f devstack: switch to using CentOS 8 DIB ramdisks by default
e171bc258 Remove the deprecated [glance]glance_num_retries
70ca54555 Fix missing job_id parameter in the log message
721aab48d Fix get_boot_option logic for software raid
6f16a2268 Allow node owners to administer associated ports
697048b47 Explicitly use ipxe as boot interface for iPXE testing
fcbf25aec Replace disk-image-create with ironic-python-agent-builder
82b17f0b0 Remove those switches for python2.
b09179086 Fix invalid assertIsNone statements
968f7876f Add librsvg2* to bindep
78c121a5d Stop using six library
9a6344d03 Add notes on the pxe template for aarch64
f0f3cb840 Enforce running tox with correct python version based on env
d0d221361 Tell the multinode subnode and grenade to use /opt
7b4e10c06 Disable automated clean on newer jobs
f4d2a3127 Extend service timeout
da704d9ec Tune down multinode concurrency
f22ab4488 Restrict ability to change owner on provisioned or allocated node
fd064a4f6 Correct power state handling for managed in-band inspection
7a7e9689a Implement managed in-band inspection boot for redfish-virtual-media
2e33669b4 redfish-vmedia: correctly pass ipa-debug
200959b90 Add a CI job to UEFI boot over Redfish virtual media
59e766b3f Fix use of urlparse.urljoin
66f9abdc7 Import importlib directly
bd5a12f75 Increasing BUILD_TIMEOUT value for multinode job
b293eb1af Remove deprecated ironic-agent element
3fbb560af Add owner to allocations and create relevant policies
570317e40 CI: do not enable rescue on indirect jobs
950acaaf1 Update nova os-server-external-events response logic
f772e8658 DRAC: Drives conversion from raid to jbod
3e6cf8423 Changed to bug fix to follow-on idrac job patch.
2d5a8cf96 Fixes issue with checking whether ISO is passed
8a0b1a39f docs: add a missing heading
dcd701b4a Add a CI job to legacy boot over Redfish virtual media
10abf8834 Fix UEFI NVRAM collision in devstack
9a5e6ead2 Remove references to 'firewall_driver'
3eb1ca633 Make redfish CI jobs pulling sushy-tools from git
b6035d613 Prevent localhost from being used as ironic-inspector callback URL
71c03410a Add an ironic-inspector job with managed boot
33a84d94e Add timeout when querying agent's command statuses
daa26b85d docs: update the local development quickstart to use JSON RPC
b869b46c6 Drop python 2.7 support and testing
6ad4833b0 Remove unused migration tests
e9824d11d Wire in in-band inspection for PXE boot and neutron-based networking
c5dfa1bd9 Foundation for boot/network management for in-band inspection
605f74457 Add `instance_info/kernel_append_params` to `redfish`
e8f212040 Add indicator management to redfish hw type
68a5e31a5 Mock out the correct greenthread sleep method
2231a9344 Don't install syslinux-nonlinux on rhel7
c7a42bdbf Ensure text-only console in devstack
8e39fe9d4 Pass correct flags during PXE cleanup in iPXEBoot
6ec967738 Drop [agent]heartbeat_timeout
954117902 Remove old online migration codes
931c12598 Block ability update callback_url
61a3e833f Stop supporting incompatible heartbeat interfaces
8253826e8 Allow node owners to administer nodes
f8c4f7b1e Fix variable name in cleanup_baremetal_basic_ops func
2c6722199 Switch legacy jobs to Py3
1e25f60fd Ensure `isolinux.bin` is present and configured in devstack
2a6b74b55 Fix `snmp` unit test
db31628de Backward compatibility for the ramdisk_params change
7ebad2e34 Allow vendor_data to be included in a configdrive dict
d114c75d8 Improve iDrac Documentation
08fe4af48 Correct handling of ramdisk_params in (i)PXE boot
defc4a876 Software RAID: Identify the root fs via its UUID from image metadata
bba990c7e Change integration jobs to run under Python3
89c30cb92 Using loop instead of with_X
a38b1c834 CI: add ironic-python-agent-builder to the multinode job
3fa039724 Update release with information about zuul job
ddcc7cc5e Add virtual media boot section to the docs
a2472c151 CI: limit rescue testing to only two jobs
3ab93f0c8 Mask secrets when logging in json_rpc
453485bf0 Use new shiny Devices class instead of old ugly Device
3db445ab5 Switch to ussuri job
e36f72d36 Do not ignore 'fields' query parameter when building next url
0ab2c08e4 Update sushy library version
43dd29d81 Minor string formatting follow-up to idrac jbod patch
5d5cd90dd Document systemd-nspawn as a nice trick for patching a ramdisk
8e3f682e2 DRAC: Drives conversion from JBOD to RAID
8dc0a9641 Setup ipa-builder before building ramdisk
e339c30a5 Fix EFIBOOT image upload in devstack
a2ae57c45 Fix drive sensors collection in `redfish` mgmt interface
0ad6f8758 Add Redfish vmedia boot interface to idrac HW type
cf074202e Change MTU logic to allow for lower MTUs automatically
4be3fcef2 DRAC: Fix a bug for clear_job_queue clean step with non-BIOS pending job
d0489b55e Documentation for iLO hardware type deploy steps
8cc6dbdd8 ironic-tempest-functional-python3 unused variables
a25589b20 docs: use openstackdocstheme extlink extension
2364c8b24 grub configuration should use user kernel & ramdisk
61c836470 Raising minimum version of oslo.db
e4f3b7b81 DRAC: Fix a bug for delete_config with multiple controllers
a5297da94 Use correct function to stop service
dab47f9ce Fix devstack installation failure
fb83cfb76 DRAC: Fix a bug for job creation when only required
78e763c61 Add a CI job with a DIB-built ramdisk
efa21d2e3 Remove old online migrations and new models
f533f42ca Remove earliest version from releasing docs, update examples
b8fa188a2 Change log level based on node status
e11285c6b enable_python3_package should not be necessary anymore
225ca979c Update doc for CI
8024fcc39 Add versions to release notes series
dae6caca5 Document pre-built ramdisk images (including DIB)
de85baaa9 Run DIB with tracing enabled and increase the DHCP timeout
f2c243732 Improve documentation about releasing deliverables
eb10eace8 Update master for stable/train
efc2d5fcd Read in non-blocking fashion when starting console
2d2a2e49a Add logic to determine Ironic node is HW or not into configure_ironic_dirs


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

api-ref/source/baremetal-api-v1-allocation.inc     |   15 +
.../source/baremetal-api-v1-node-management.inc    |    3 +
api-ref/source/baremetal-api-v1-nodes.inc          |    5 +
api-ref/source/parameters.yaml                     |   20 +-
.../source/samples/allocation-create-response.json |    1 +
.../source/samples/allocation-show-response.json   |    1 +
.../source/samples/allocation-update-response.json |    1 +
.../source/samples/allocations-list-response.json  |    2 +
api-ref/source/samples/node-create-response.json   |    2 +
api-ref/source/samples/node-show-response.json     |    2 +
.../samples/node-update-driver-info-response.json  |    2 +
.../samples/nodes-list-details-response.json       |    4 +
bindep.txt                                         |    3 +
devstack/files/debs/ironic                         |    1 +
devstack/files/hooks/qemu.py                       |    9 +-
devstack/files/rpms/ironic                         |    1 +
devstack/lib/ironic                                |  133 +-
devstack/plugin.sh                                 |    5 -
devstack/settings                                  |    6 +-
devstack/tools/ironic/scripts/setup-network.sh     |    2 +-
devstack/tools/ironic/templates/vm.xml             |    9 +-
.../include/configure-ironic-api-mod_wsgi.inc      |   17 +
.../refarch/small-cloud-trusted-tenants.rst        |   24 +-
driver-requirements.txt                            |    9 +-
ironic/api/controllers/base.py                     |   23 +-
ironic/api/controllers/link.py                     |    8 +-
ironic/api/controllers/root.py                     |    7 +-
ironic/api/controllers/v1/__init__.py              |   11 +-
ironic/api/controllers/v1/allocation.py            |   89 +-
ironic/api/controllers/v1/bios.py                  |    8 +-
ironic/api/controllers/v1/chassis.py               |   11 +-
ironic/api/controllers/v1/collection.py            |    9 +-
ironic/api/controllers/v1/conductor.py             |   13 +-
ironic/api/controllers/v1/deploy_template.py       |   18 +-
ironic/api/controllers/v1/driver.py                |   76 +-
ironic/api/controllers/v1/event.py                 |    3 +-
ironic/api/controllers/v1/node.py                  |  389 +--
ironic/api/controllers/v1/port.py                  |   83 +-
ironic/api/controllers/v1/portgroup.py             |   27 +-
ironic/api/controllers/v1/ramdisk.py               |   23 +-
ironic/api/controllers/v1/state.py                 |    8 +-
ironic/api/controllers/v1/types.py                 |   42 +-
ironic/api/controllers/v1/utils.py                 |  187 +-
ironic/api/controllers/v1/versions.py              |    8 +-
ironic/api/controllers/v1/volume.py                |    3 +-
ironic/api/controllers/v1/volume_connector.py      |   16 +-
ironic/api/controllers/v1/volume_target.py         |   18 +-
ironic/api/controllers/version.py                  |   12 +-
ironic/api/hooks.py                                |    5 +-
ironic/api/middleware/parsable_error.py            |    7 +-
ironic/api/wsgi.py                                 |    5 +-
ironic/cmd/dbsync.py                               |   13 -
ironic/common/exception.py                         |   13 +-
ironic/common/fsm.py                               |    9 +-
ironic/common/glance_service/image_service.py      |   49 +-
ironic/common/glance_service/service_utils.py      |    7 +-
ironic/common/image_service.py                     |   22 +-
ironic/common/json_rpc/client.py                   |    6 +-
ironic/common/json_rpc/server.py                   |    8 +-
ironic/common/keystone.py                          |   11 +-
ironic/common/neutron.py                           |   24 +
ironic/common/nova.py                              |    5 +-
ironic/common/policy.py                            |   45 +-
ironic/common/pxe_utils.py                         |   31 +-
ironic/common/release_mappings.py                  |   26 +-
ironic/common/swift.py                             |   19 +-
ironic/common/utils.py                             |   48 +-
ironic/conductor/allocations.py                    |    2 +
ironic/conductor/base_manager.py                   |    3 +-
ironic/conductor/cleaning.py                       |  276 ++
ironic/conductor/deployments.py                    |  402 +++
ironic/conductor/manager.py                        |  771 +----
ironic/conductor/task_manager.py                   |   26 +-
ironic/conductor/utils.py                          |  100 +-
ironic/conf/api.py                                 |    1 -
ironic/conf/drac.py                                |    8 +-
ironic/conf/glance.py                              |    2 -
ironic/conf/inspector.py                           |   17 +
ironic/conf/iscsi.py                               |    6 +-
ironic/conf/neutron.py                             |   12 +
ironic/conf/redfish.py                             |   10 +-
ironic/db/api.py                                   |    5 +-
.../cd2c80feb331_add_node_retired_field.py         |   33 +
.../versions/ce6c4b3cf5a2_add_allocation_owner.py  |   32 +
ironic/db/sqlalchemy/api.py                        |   34 +-
ironic/db/sqlalchemy/models.py                     |    6 +-
ironic/dhcp/base.py                                |    4 +-
ironic/drivers/base.py                             |   57 +-
ironic/drivers/drac.py                             |    8 +
ironic/drivers/hardware_type.py                    |    5 +-
ironic/drivers/ibmc.py                             |    2 +
ironic/drivers/irmc.py                             |    2 +
ironic/drivers/modules/agent.py                    |   55 +-
ironic/drivers/modules/agent_base_vendor.py        |   68 +-
ironic/drivers/modules/agent_client.py             |    5 +-
ironic/drivers/modules/agent_config.template       |    2 +-
ironic/drivers/modules/ansible/deploy.py           |   16 +-
.../playbooks/callback_plugins/ironic_log.py       |    2 +-
.../modules/ansible/playbooks/library/facts_wwn.py |    2 +-
.../playbooks/roles/discover/tasks/main.yaml       |    2 +-
ironic/drivers/modules/console_utils.py            |   51 +-
ironic/drivers/modules/deploy_utils.py             |   61 +-
ironic/drivers/modules/drac/boot.py                |  161 +
ironic/drivers/modules/drac/job.py                 |   31 +-
ironic/drivers/modules/drac/management.py          |   29 +-
ironic/drivers/modules/drac/raid.py                |  221 +-
ironic/drivers/modules/ibmc/management.py          |    2 +
ironic/drivers/modules/ibmc/power.py               |    2 +
ironic/drivers/modules/ibmc/utils.py               |   11 +-
ironic/drivers/modules/ibmc/vendor.py              |    2 +
ironic/drivers/modules/ilo/boot.py                 |    2 +-
ironic/drivers/modules/ilo/common.py               |   10 +-
ironic/drivers/modules/ilo/firmware_processor.py   |    6 +-
ironic/drivers/modules/ilo/management.py           |    6 +-
ironic/drivers/modules/image_cache.py              |    7 +-
ironic/drivers/modules/inspector.py                |  210 +-
ironic/drivers/modules/ipmitool.py                 |    5 +-
ironic/drivers/modules/ipxe.py                     |   63 +-
ironic/drivers/modules/ipxe_config.template        |    2 +-
ironic/drivers/modules/irmc/bios.py                |    2 +
ironic/drivers/modules/irmc/boot.py                |    8 +-
ironic/drivers/modules/irmc/common.py              |    5 +-
ironic/drivers/modules/irmc/inspect.py             |    2 +
ironic/drivers/modules/irmc/power.py               |    2 +
ironic/drivers/modules/irmc/raid.py                |    5 +-
ironic/drivers/modules/iscsi_deploy.py             |   36 +-
ironic/drivers/modules/network/common.py           |    1 +
ironic/drivers/modules/network/flat.py             |   76 +-
ironic/drivers/modules/network/neutron.py          |  143 +-
ironic/drivers/modules/network/noop.py             |    7 +
ironic/drivers/modules/pxe.py                      |   63 +-
ironic/drivers/modules/pxe_base.py                 |    8 +-
ironic/drivers/modules/pxe_config.template         |    2 +-
ironic/drivers/modules/pxe_grub_config.template    |    6 +-
ironic/drivers/modules/redfish/boot.py             |   41 +-
ironic/drivers/modules/redfish/management.py       |  215 +-
ironic/drivers/modules/redfish/utils.py            |    7 +-
ironic/drivers/modules/snmp.py                     |    4 +-
ironic/drivers/modules/storage/cinder.py           |    9 +-
ironic/drivers/utils.py                            |    3 +-
ironic/objects/allocation.py                       |   28 +-
ironic/objects/fields.py                           |    3 +-
ironic/objects/node.py                             |   35 +-
ironic/objects/port.py                             |   54 +-
ironic/objects/portgroup.py                        |   31 -
.../unit/api/controllers/v1/test_allocation.py     |  218 +-
.../unit/api/controllers/v1/test_conductor.py      |   20 +-
.../api/controllers/v1/test_deploy_template.py     |   31 +-
.../unit/api/controllers/v1/test_portgroup.py      |   27 +-
.../api/controllers/v1/test_volume_connector.py    |   29 +-
.../unit/api/controllers/v1/test_volume_target.py  |   25 +-
...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    |   44 +-
.../unit/drivers/modules/drac/test_management.py   |  133 +-
.../drivers/modules/ilo/test_firmware_processor.py |   13 +-
.../unit/drivers/modules/network/test_flat.py      |   77 +-
.../unit/drivers/modules/network/test_neutron.py   |  144 +-
.../unit/drivers/modules/network/test_noop.py      |    8 +
.../unit/drivers/modules/redfish/test_bios.py      |    3 +-
.../unit/drivers/modules/redfish/test_boot.py      |   96 +-
.../drivers/modules/redfish/test_management.py     |  126 +-
.../unit/drivers/modules/redfish/test_power.py     |    3 +-
.../unit/drivers/modules/test_agent_base_vendor.py |   75 +-
.../unit/drivers/modules/test_agent_client.py      |   15 +-
.../unit/drivers/modules/test_console_utils.py     |   73 +-
.../unit/drivers/modules/test_deploy_utils.py      |   25 +
.../unit/drivers/modules/test_iscsi_deploy.py      |   14 +-
.../drivers/modules/xclarity/test_management.py    |    6 +-
.../unit/drivers/modules/xclarity/test_power.py    |    6 +-
.../unit/drivers/third_party_driver_mock_specs.py  |   19 +-
lower-constraints.txt                              |    7 +-
.../run.yaml                                       |    2 +
playbooks/legacy/grenade-dsvm-ironic/run.yaml      |    1 +
...add-kernel-params-redfish-72b87075465c87f6.yaml |    9 +
.../add_retirement_support-23c5fed7ce8f97d4.yaml   |    9 +
.../allocation-owner-policy-162c43b3abb91c76.yaml  |    7 +
.../notes/ansible-loops-de0eef0d5b79a9ff.yaml      |    5 +
releasenotes/notes/any-wsgi-8d6ccb0590104146.yaml  |    7 +
.../notes/cleanup-ipxe-f1349e2ac9ec2825.yaml       |    5 +
.../configdrive-vendordata-122049bd7c6e1b67.yaml   |    8 +
.../notes/deprecate-ibmc-9106cc3a81171738.yaml     |   11 +
.../notes/deprecate-irmc-031f55c3bb1fb863.yaml     |   10 +
.../notes/drop-py-2-7-5140cb76e321cdd1.yaml        |    6 +
.../fix-commit-to-controller-d26f083ac388a65e.yaml |    8 +
...with-multiple-controllers-06fc3fca94ba870f.yaml |    9 +
...fix-fast-track-entry-path-467c20f97aeb2f4b.yaml |    7 +
...lds-missing-from-next-url-fd9fddf8e70b65ea.yaml |    8 +
...rface-without-opt-enabled-4fa2f83975295e20.yaml |    6 +
releasenotes/notes/fix-path-a3a0cfd2c135ace9.yaml  |    5 +
.../fix-sensors-storage-ed5d5bbda9b46645.yaml      |    7 +
...hellinabox-pipe-not-ready-f860c4b7a1ef71a8.yaml |    7 +
...ng_non_bios_job_execution-4b22e168ac915f4f.yaml |   10 +
...nt-failure-with-fasttrack-f1fe05598fbdbe4a.yaml |    9 +
...-option-for-software-raid-baa2cffd95e1f624.yaml |    6 +
...t-commands-status-timeout-ecbac91ea149e755.yaml |    6 +
releasenotes/notes/ibmc-38-169438974508f62e.yaml   |    5 +
...-add-redfish-boot-support-036396b48d3f71f4.yaml |   21 +
...s-conversion-jbod-to-raid-1a229627708e10b9.yaml |   11 +
...s-conversion-raid-to-jbod-de10755d1ec094ea.yaml |    8 +
.../inspection-boot-network-59fd23ca62b09e81.yaml  |   19 +
.../notes/inspector-pxe-boot-9ab9fede5671097e.yaml |   12 +
...instance-info-root-device-0a5190240fcc8fd8.yaml |    6 +
.../notes/jsonrpc-logging-21670015bb845182.yaml    |    5 +
.../min-sushy-version-change-3b697530e0c05dee.yaml |    7 +
...gent-version-in-heartbeat-4e6806b679c53ec5.yaml |    5 +
.../notes/node-owner-policy-d7168976bba70566.yaml  |    6 +
.../node-owner-policy-ports-1d3193fd897feaa6.yaml  |    8 +
.../node-owner-provision-fix-ee2348b5922f7648.yaml |    9 +
...ck-url-from-being-updated-41d50b20fb236e82.yaml |   10 +
...b-use-user-kernel-ramdisk-7d572fe130932605.yaml |    5 +
.../notes/ramdisk-params-6083bfaa7ffa9dfe.yaml     |    6 +
...edfish-managed-inspection-936341ffa8e1f22a.yaml |    6 +
...e-agent-heartbeat-timeout-abf8787b8477bae7.yaml |    6 +
...remove-glance-num-retries-24898fc9230d9497.yaml |    5 +
...ove-iscsi-verify-attempts-ede5b56b0545da08.yaml |    6 +
...ware_raid_use_rootfs_uuid-f61eb671d696d251.yaml |   13 +
...k-scsi-install-bootloader-f7e791d82da476ca.yaml |    6 +
releasenotes/source/index.rst                      |    1 +
releasenotes/source/train.rst                      |    6 +
reno.yaml                                          |    4 +
requirements.txt                                   |    7 +-
setup.cfg                                          |    3 +-
tox.ini                                            |   25 +-
zuul.d/ironic-jobs.yaml                            |  129 +-
zuul.d/project.yaml                                |   27 +-
345 files changed, 11489 insertions(+), 5544 deletions(-)


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

diff --git a/driver-requirements.txt b/driver-requirements.txt
index beb542186..c9874f12f 100644
--- a/driver-requirements.txt
+++ b/driver-requirements.txt
@@ -10 +10 @@ python-scciclient>=0.8.0
-python-dracclient>=3.0.0,<4.0.0
+python-dracclient>=3.1.0,<4.0.0
@@ -14 +14 @@ python-xclarityclient>=0.1.6
-sushy>=1.9.0
+sushy>=2.0.0
@@ -17 +17 @@ sushy>=1.9.0
-ansible>=2.4
+ansible>=2.5
@@ -20,0 +21,3 @@ python-ibmcclient>=0.1.0
+
+# Dell EMC iDRAC sushy OEM extension
+sushy-oem-idrac<=0.1.0
diff --git a/requirements.txt b/requirements.txt
index 44c4d681b..fff36d71b 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -22 +22 @@ oslo.context>=2.19.2 # Apache-2.0
-oslo.db>=4.27.0 # Apache-2.0
+oslo.db>=4.40.0 # Apache-2.0
@@ -32 +32 @@ oslo.upgradecheck>=0.1.0 # Apache-2.0
-oslo.utils>=3.33.0 # Apache-2.0
+oslo.utils>=3.38.0 # Apache-2.0
@@ -38 +37,0 @@ rfc3986>=0.3.1 # Apache-2.0
-six>=1.10.0 # MIT
@@ -50 +49 @@ tooz>=1.58.0 # Apache-2.0
-openstacksdk>=0.31.2 # Apache-2.0
+openstacksdk>=0.37.0 # Apache-2.0






More information about the Release-announce mailing list