[release-announce] ironic 12.1.0 (stein)

no-reply at openstack.org no-reply at openstack.org
Thu Mar 21 20:15:19 UTC 2019


We joyfully announce the release of:

ironic 12.1.0: OpenStack Bare Metal Provisioning

This release is part of the stein stable release series.

The source is available from:

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

Download the package from:

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

Please report issues through launchpad:

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

For more details, please see below.

12.1.0
^^^^^^


Prelude
*******

The Bare Metal as a Service team joyfully announces our OpenStack
Stein release of ironic 12.1.0. While no steins nor speakers were
harmed during the development of this release, we might have suffered
some hearing damage after we learned that we could increase the volume
well past eleven!

Notable items include:

* Increased parallelism of power synchronization to improve overall
  conductor efficiency.

* API fields to support node "description" and "owner" values.

* HPE iLO "ilo5" and Huawei "ibmc" hardware types.

* Allocations API interface to enable operators to find and select
  bare metal nodes for deployment.

* JSON-RPC can now be used for "ironic-api" to "ironic-conductor"
  communication as opposed to using an AMQP messaging provider.

* Support for customizable PXE templates and streamlined deployment
  sequences.

* Initial support for the definition of "deployment templates" to
  enable operators to define and match customized deployment
  sequences.

* Initial work for supporting SmartNIC configuration is included,
  however the Networking Service changes required are not anticipated
  until sometime during the Train development cycle.

* And numerous bug fixes, including ones for IPv6 and IPMI.

This release includes the changes in ironic's "12.0.0" release which
was also released during the Stein development cycle and includes a
number of improvements for Bare Metal infrastructure operators. More
about our earlier stein release can be found in our release notes (ht
tps://docs.openstack.org/releasenotes/ironic/stein.html#relnotes-12-0
-0).


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

* Adds option "[ansible]default_python_interpreter" to choose the
  python interpreter that ansible uses on managed machines. By
  default, ansible uses "/usr/bin/python" as interpreter, making the
  assumption that that path is always present on remote managed
  systems. This might not be always the case, for example in custom
  build images or Python 3 native distributions. With this option the
  operator has the ability to set the absolute path of the python
  interpreter on the remote machines, for example "/usr/bin/python3".
  The same interpreter will be used in all operations that use the
  ansible deploy interface. It is also possible to override the value
  set in the configuration for a node by passing
  "ansible_python_interpreter" in its "driver_info".

* Adds currently used boot mode into node "properties/capabilities"
  upon "redfish" inspect interface run. The idea behind this change is
  to align with the in-band "inspector" behavior.

* Adds a "description" field to the node object to enable operators
  to store any information related to the node. The field is up to
  4096 UTF-8 characters.

* Adds capability to control the persistency of boot order changes
  during instance deployment via (i)PXE on a per-node level. The
  option 'force_persistent_boot_device' in the node's driver info for
  the (i)PXE drivers is extended to allow the values 'Default' (make
  all changes but the last one upon deployment non-persistent),
  'Always' (make all changes persistent), and 'Never' (make all boot
  order changes non-persistent).

* Adds API version 1.50 which allows for the storage of an "owner"
  field on node objects. This is intended for either storage of human
  parsable information or the storage of a tenant UUID which could be
  leveraged in a future version of the Bare Metal as a Service API.

* Parallelizes periodic power sync calls by running up to ironic
  configuration "[conductor]/sync_power_state_workers" simultaneously.
  The default is to run up to "8" workers. This change should let
  larger-scale setups running power syncs more frequently and make the
  whole power sync procedure more resilient to slow or dead BMCs.

* Adds an "is_smartnic" field to the port object in REST API version
  1.53.

  "is_smartnic" field indicates if this port is a Smart NIC port,
  False by default. This field may be set by operator to use baremetal
  nodes with Smart NICs as ironic nodes.

  The REST API endpoints related to ports provide support for the
  "is_smartnic" field.  The ironic admin documentation
  (https://docs.openstack.org/ironic/latest/admin/multitenancy.html)
  provides information on how to configure and use Smart NIC ports.

* Add a new field pxe_template that can be set at driver-info level.
  This will specify a path for a custom pxe boot template. If present,
  this template will be read and will have priority in front of the
  per-arch and general pxe templates.

* Adds support to enable deployment workflow changes necessary to
  support the use of Smart NICs in the "ansible", "direct", "iscsi"
  and "ramdisk" deployment interfaces. Networking service integration
  for this functionality is not anticipated until the Train release of
  the Networking service.

* Introduces allocation API. This API allows finding and reserving a
  node by its resource class, traits and optional list of candidate
  nodes. Introduces new API endpoints:

  * "GET/POST /v1/allocations"

  * "GET/DELETE /v1/allocations/<ID or name>"

  * "GET/DELETE /v1/nodes/<ID or name>/allocation"

* Adds support for building config drives. Starting with API version
  1.56, the "configdrive" parameter of
  "/v1/nodes/<node>/states/provision" can be a JSON object with
  optional keys "meta_data" (JSON object), "network_data" (JSON
  object) and "user_data" (JSON object, array or string). See story
  2005083 (https://storyboard.openstack.org/#!/story/2005083) for more
  details.

* Allows the user to supply EFI system partition image to ironic,
  for building UEFI-bootable ISO images, in form of a local file or
  UUID or URI reference. The new "[conductor]esp_image" option can be
  used to configure ironic to use local file.

* Adds the deploy templates API. Deploy templates can be used to
  customise the node deployment process, each specifying a list of
  deploy steps to execute with configurable priority and arguments.

  Introduces the following new API endpoints, available from Bare
  Metal API version 1.55:

  * "GET /v1/deploy_templates"

  * "GET /v1/deploy_templates/<deploy template identifier>"

  * "POST /v1/deploy_templates"

  * "PATCH /v1/deploy_templates/<deploy template identifier>"

  * "DELETE /v1/deploy_templates/<deploy template identifier>"

* Adds a new feature called *fast-track* which allows an operator to
  optionally configure the Bare Metal API Service and the Bare Metal
  conductor service to permit lookup and heartbeat for nodes that are
  in the process of being enrolled and created.

  These nodes can be left online, from a process such as discovery. If
  ironic-python-agent has communicated with the Bare Metal Service API
  endpoint with-in the last *300* seconds, then setup steps that are
  normally involved with preparing to launch a ramdisk on the node,
  are skipped along with power operations to enable a baremetal node
  to undergo discovery through to deployment with a single power
  cycle. Fast track functionality may be enabled through the
  "[deploy]fast_track" option.

* Adds a new hardware type "ibmc" for HUAWEI 2288H V5, CH121 V5
  series servers. This hardware type supports PXE based boot using
  HUAWEI iBMC RESTful APIs. The following driver interfaces are
  supported:

  * management: "ibmc"

  * power: "ibmc"

  * vendor: "ibmc"

* Adds new hardware type "ilo5". Including all other hardware
  interfaces "ilo" hardware type supports, this has one new RAID
  interface "ilo5".

* Adds functionality to perform out-of-band RAID operation for iLO5
  based HPE Proliant servers.

* New property "ipmi_hex_kg_key" for the ipmi based interfaces. The
  property enables user to set the Kg key for IPMIv2 authentication in
  hexadecimal format. This value is provided to "ipmitool" as the -y
  argument.

* Adds the ability to use JSON RPC for communication between API and
  conductor services. To use it set the new "rpc_transport"
  configuration options to "json-rpc" and configure the credentials
  and the "host_ip" in the "json_rpc" section. Hostnames of all
  conductors must be resolvable for this implementation to work.

* Adds a "[DEFAULT]/versioned_notifications_topics" configuration
  option. This enables operators to configure the topics used for
  versioned notifications.

* Notification events for metrics data now contains a "node_name"
  field to assist operators with relating metrics data being
  transmitted by the conductor service.

* Set boot_mode in node properties during OOB Introspection for
  "idrac" hardware type.


Known Issues
************

* As good security practice[0], in Ubuntu Bionic the
  "nf_conntrack_helper" is disabled. This causes an issue when using
  the "pxe" boot interface with the PXE environment that breaks some
  of the Ironic CI tests, since Ironic needs conntrack for TFTP
  traffic. It's still possible to use Ironic with PXE on Ubuntu
  Xenial, and it's also possible to use Ironic with PXE on Ubuntu
  Bionic using a workaround based on custom firewall rules as shown in
  [0].

  [0] https://home.regit.org/netfilter-en/secure-use-of-helpers/


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

* Adds an "is_smartnic" field to the port object in REST API version
  1.53.

  Upgrading to this release will set "is_smartnic" to False for all
  ports.

* Adds a check to the "ironic-status upgrade check" command, to
  check for compatibility of the object versions with the release of
  ironic.

* The "create_raid_configuration", "delete_raid_configuration" and
  "read_raid_configuration" interfaces of 'proliantutils' library has
  been enhanced to support out-of-band RAID operation for "ilo5"
  hardware type. To leverage this feature, the 'proliantutils' library
  needs to be upgraded to version '2.7.0'.

* Removes deprecated "driver_info["drac_host"]" property for "idrac"
  hardware type that was marked for removal in Pike. Please use
  "driver_info["drac_address"]" instead.


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

* The values 'True'/'False' for the option
  'force_persistent_boot_device' in the node's driver info for the
  (i)PXE drivers are deprecated and support for them may be removed in
  a future release. The former default value 'False' is replaced by
  the new value 'Default', the value 'True' is replaced by 'Always'.

* The Cisco "cisco-ucs-managed" and "cisco-ucs-standalone" drivers
  have been deprecated due to a lack of reporting third-party CI and
  vendor maintenance of the driver code. In the present state of these
  drivers, they would have been removed as part of the eventual
  removal of support for Python2. These drivers should be anticipated
  to be removed prior to the final Train release of the Bare Metal
  service. More information can be found here
  (http://lists.openstack.org/pipermail/openstack-
  discuss/2019-February/002460.html).

* The "hash_distribution_replicas" configuration option is now
  deprecated. If specified in the config file, a warning is logged.


Bug Fixes
*********

* A bug has been fixed in the node update code that could cause the
  nodes to become not updatable if their driver is no longer
  available.

* Fixes an issue where setting the "conductor_group" for a node was
  not entirely case-sensitive, in that this could fail if case-
  sensitivity did not match between the conductor configuration and
  the API request.

* Makes ironic building UEFI-only bootable ISO image (when being
  asked to build a UEFI-bootable image) rather than building a hybrid
  BIOS /UEFI-bootable ISO.

* Fixes an issue that node list with conductor fails if any of the
  nodes has an invalid hardware type, which may happen when some
  conductor is out of service.

* Fixes an issue in the "idrac" RAID interface seen when creating
  RAID configurations using "python-dracclient" version "2.0.0" or
  higher.

* Fixes an issue where the master TFTP image cache could not be
  disabled. The configuration option "[pxe]/tftp_master_path" may now
  be set to the empty string to disable the cache. For more
  information, see story 2004608
  (https://storyboard.openstack.org/#!/story/2004608).

* Fixes an issue where "xclarity" management interface fails to get
  boot order. Now the driver correctly gets boot device and this has
  been verified in the 3rd party CI. See story 2004576
  (https://storyboard.openstack.org/#!/story/2004576) for details.

* Advances required "python-dracclient" version to 1.5.0 and later.
  That version is required by the fix to the "idrac" hardware type's
  bug 2004340 (https://storyboard.openstack.org/#!/story/2004340).

* Makes all "ilo" driver BIOS interface clean steps as asynchronous.
  This is required to ensure the settings on the baremetal node are
  consistent with the settings stored in the database irrespective of
  the node clean step status. Refer bug 2004066
  (https://storyboard.openstack.org/#!/story/2004066) for details.

* Fixes the IPMI console implementation to respect all supported
  IPMI "driver_info" and configuration options, particularly
  "ipmi_port".

* Fixes an issue has been corrected where hosts executing "iPXE" to
  boot would error indicating that no configuration was found for
  networks where IPv6 is in use. This has been remedied through a
  minor addition to the Networking service in the Stein development
  cycle. For more information please see story 2004502
  (https://storyboard.openstack.org/#!/story/2004502).

* Notification event types now include the hardware type name string
  as opposed to a static string of "ipmi". This allows event
  processors and operators to understand what the actual notification
  event data source is as opposed to having to rely upon fingerprints
  of the data to make such determinations.

* Fixes a bug where cinder block storage service volumes volume fail
  to attach expecting a mountpoint to be a valid string. See story
  2004864 (https://storyboard.openstack.org/#!/story/2004864) for
  additional information.

* Fixes an issue where the socat process would exit on client
  disconnect, which would (a) leave a zombie socat process in the
  process table and (b) disable any subsequent serial console
  connections. This issue was addressed by updating ironic to call
  socat with the "fork,max-children=1" options, which makes socat
  persist and accept multiple connections (but only one at a time).
  Please see story 2005024
  (https://storyboard.openstack.org/#!/story/2005024) for additional
  information.

* Fixes an issue with the "ipmi" hardware type where
  "node['driver_info']['ipmi_force_boot_device']" could be interpreted
  as "True" when set to values such as "False".

* Returns the correct error message on providing an invalid
  reference to "image_source". Previously an internal error was
  raised.

* The "instance_info[root_gb]" property is no longer required for
  whole-disk images. It has always been ignored for them, but the
  validation code still expected it to be present.


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

* The Bare Metal service now builds UEFI-only bootable ISO image
  (when being asked to build a UEFI-bootable image) rather than
  building a hybrid BIOS/UEFI-bootable ISO.

Changes in ironic 12.0.0..12.1.0
--------------------------------

62d40c17e Add systemd unit for vbmcd in devstack
da966c987 Workaround for postgres job with ubuntu bionic
e3c606d4e Add release note on conntrack issue on bionic
b805491c9 Update release-mappings and api version data for Stein release
320a61b68 Pass kwargs to exception to get better formatted error message
ed04e8e4a Advance python-dracclient version requirement
c76254776 Add prelude and update release notes for 12.1.0
da0de5c30 Optimize: HUAWEI iBMC driver utils
a79b150ea Set boot_mode in node properties during OOB Introspection
c11f45bdd Fix idrac driver unit test backwards compat issue
56acabfab Deploy Templates: factor out ironic.conductor.steps
b5d44d3aa Make metrics usable
82704e6d8 Kg key for IPMIv2 authentication
3f734c872 fast tracked deployment support
3c5307df2 Update doc for UEFI first
2eceb3c8a Fix lower-constraints job
82cd13177 Fix idrac Job.state renamed to Job.status
9c266df8b Deprecates `hash_distribution_replicas` config option
f1f4f892f Add Huawei iBMC driver support
618b94c71 Fix misuse of assertTrue
cfc4a6f75 Allow methods to be both deploy and clean steps
80e762e18 Adding ansible python interpreter as driver_info
7480e581d Return 405 for old versions in allocation and deploy template APIs
70d7bb369 honor ipmi_port in serial console drivers
7e9ff1d6b Follow up to available node protection
e4cce6759 Deploy templates: conductor and API nits
89c58cbb6 Deploy Templates: documentation
fac7384b4 Fixing a bash test in devstack ironic lib
9672cb73d Deploy Templates: API reference
bdcba4fb8 Fix formatting issue in doc
ab3377260 Update dist filter for devstack ubuntu
2bf3d0a3a Add a non-voting metalsmith job for local boot coverage
05d6735c6 Document building configdrive on the server side
fefb3201e Check microversions before validations for allocations and deploy templates
cf2c0a002 Add python3 unit test with drivers installed
c9b3ef468 Fix missing print format error
13bdf8b0c Fix typo and docstring in pxe/ipxe
40b55416a Stop requiring root_gb for whole-disk images
442376a7c driver-requirements: mark UcsSdk as Python 2 only
a80873593 Set boot_mode in node properties during Redfish introspection
c8ece0c62 Add option to set python interpreter for ansible
77ee49f21 Document using a URL for image_checksum
8f8be9dec [docs] IPv6 support for iLO
790530f33 Temporary marking ironic-standalone non-voting
3e1e0c9d5 Allow building configdrive from JSON in the API
885bfbda9 Allocation API: optimize check on candidate nodes
245af384f Fix TypeError: __str__ returned non-string (type ImageRefValidationFailed)
ec2f7f992 Deploy templates: API & notifications
17a944fe9 Deploy templates: conductor
296480961 Drop installing python-libvirt system package
c12170957 Test API max version is in RELEASE_MAPPINGS
51b67c441 Update the log message for ilo drivers
e989a21f0 Deploy templates: fix updating steps in Python 3
db94e3574 Fix pysendfile requirement marker
885ddb436 Add option to protect available nodes from accidental deletion
a105ee094 Deploy Templates: add 'extra' field to DB & object
9e8464346 Trivial: Fix error message when waiting for power state
08270ceba Allocation API: fix minor issues in the API reference
acc4c402d Allocation API: reference documentation
e0639875f Adding bios_interface reference to api docs
a9d7d8fd9 Set available_nodes in tempest conf
b9f7cf59f Update the proliantutils version in documentation
578805b34 [trivial] Removing python 3.5 template jobs
a094aa7e9 Deploy Templates: Fix DB & object nits
33383c9c7 Add check for object versions
671b0cf3d [Trivial] Fix incorrect logging in destroy_allocation
6885c674c Allocation API: taking over allocations of offline conductors
b1cfcb7c9 Allocation API: resume allocations on conductor restart
e240dd501 Devstack - run vbmc as sudo
1d882df18 Documentation update for iLO Drivers
f4c43f8b2 Follow up - API - Implement /events endpoint
7a6a6bf69 Follow up to node description
f369fdd33 ensure that socat serial proxy keeps running
f9e53e2c6 Deprecate Cisco drivers
e95515a07 Follow up to ISO image build patch
50205ca07 API - Implement /events endpoint
dabb9a48e Add a requisite for metadata with BFV
b0d7c2d82 [Follow Up] Add support for Smart NICs
7efbbcc2d Support using JSON-RPC instead of oslo.messaging
b137af30b Deploy templates: data model, DB API & objects
bcf5b37c7 [Follow Up] Expose is_smartnic in port API
0d798372e Prioritize sloppy nodes for power sync
d4233e52a Expose conductors: api-ref
3e1a7b464 Remove duplicated jobs and refactor jobs
9741aed7b Allocation API: fix a small inconsistency
6325b6c13 Expose is_smartnic in port API
e64510e75 [Trivial] Allocation API: correct syntax in API version history docs
390a1c9a7 Allocation API: REST API implementation
2dfb0650d Make power sync unit test operational
c803488af Allow case-insensitivity when setting conductor_group via API
206134cf5 Optionally preserve original system boot order upon instance deployment
a41c7a959 Add support for Smart NICs
15fafe686 Add a voting CI job running unit tests with driver-requirements
699bd410c [Refactor] Make caching BIOS settings explicit
903f796c9 [docs] OOB RAID implementation for ilo5 based HPE Proliant servers
335f6b4fd Make iLO BIOS interface clean steps asynchronous
57037378b Provides mount point as cinder requires it to attach volume
96bc6729c Add description field to node: api-ref
d30d81495 Add description field to node
2aaa6744c Fix test for 'force_persistent_boot_device' (i)PXE driver_info option
cede60388 Fix iPXE boot interface with ipxe_enabled=False
96b9d9de0 Allocation API: conductor API (without HA and take over)
972747671 Removing deprecated drac_host property
86e31bff4 Add is_smartnic to Port data model
80caf5833 Remove uses of logger name "oslo_messaging"
69d713d39 [Trivial] Fix typo in noop interface comment
c3648e8b4 Remove duplicated fault code
9555ad281 Fix listing nodes with conductor could raise
821d5fef7 Parallelize periodic power sync calls follow up
738d4eafd Build ISO out of EFI system partition image
0e81ec00c Make versioned notifications topics configurable
4008c9bfa Build UEFI-only ISO for UEFI boot
7448603ab Parallelize periodic power sync calls
cc73bb21f Limit the timeout value of heartbeat_timeout
d6c9d6cae Replace use of Q_USE_PROVIDERNET_FOR_PUBLIC
03375f003 Make ipmi_force_boot_device more user friendly
0d943c635 Follow-up logging change
3ad700aca Remove dsvm from zuulv3 jobs
1b019ddf8 Allocation API: allow picking random conductor for RPC topic
cea8d7491 Fix updating nodes with removed or broken drivers
66dc4c674 Fix ironic port creation after Redfish inspection
fb93d4bc3 Allocation API: minor fixes to DB and RPC
8e5337c39 Allocation API: allow skipping retries in TaskManager
a4717d995 Allocation API: database and RPC
b8e720e51 Allow missing ``local_gb`` property
6bc306d9e Fix typo in release note
cbf1e9d03 Fix IPv6 iPXE support
58a395bf8 OOB RAID implementation for ilo5 based HPE Proliant servers.
831b6ff16 Fix SushyError namespacing in Redfish inspection
4c987aa51 Allow disabling TFTP image cache
0bda09acf Add pxe template per node
b1c9e5d82 Fix the misspelling of "configuration"
1effd562e Switch to cirros 0.4.0
62ca0816a Update tox version to 2.0
71f0256b1 Disable metadata_csum when creating ext4 filesystems
053965c6d Switch the default NIC driver to e1000
c153b345b Change openstack-dev to openstack-discuss
bb2942295 Fix XClarity driver management defect
78d6d9503 Ignore newly introduced tables in pre-upgrade versions check
c5a4ad800 Switch CI back to xenial
052d90506 Add "owner" information field
0678a08c9 Follow-up patch for I71feefa3d0593fd185a286bec4ce38607203641d
913e4cebb Log a warning for Gen8 Inspection


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

api-ref/regenerate-samples.sh                      |   51 +-
api-ref/source/baremetal-api-v1-allocation.inc     |  210 ++++
api-ref/source/baremetal-api-v1-conductors.inc     |   97 ++
.../source/baremetal-api-v1-deploy-templates.inc   |  222 ++++
api-ref/source/baremetal-api-v1-drivers.inc        |    4 +
.../source/baremetal-api-v1-node-allocation.inc    |   81 ++
.../source/baremetal-api-v1-node-management.inc    |    4 +
api-ref/source/baremetal-api-v1-nodes-ports.inc    |    7 +
api-ref/source/baremetal-api-v1-nodes.inc          |   70 ++
.../source/baremetal-api-v1-portgroups-ports.inc   |    7 +
api-ref/source/baremetal-api-v1-ports.inc          |   20 +
api-ref/source/index.rst                           |    9 +-
api-ref/source/parameters.yaml                     |  238 +++-
.../samples/allocation-create-request-2.json       |    6 +
.../source/samples/allocation-create-request.json  |    4 +
.../source/samples/allocation-create-response.json |   23 +
.../source/samples/allocation-show-response.json   |   23 +
.../source/samples/allocations-list-response.json  |   52 +
.../samples/conductor-list-details-response.json   |   44 +
.../source/samples/conductor-list-response.json    |   34 +
.../source/samples/conductor-show-response.json    |   20 +
.../samples/deploy-template-create-request.json    |   19 +
.../samples/deploy-template-create-response.json   |   32 +
.../samples/deploy-template-detail-response.json   |   36 +
.../samples/deploy-template-list-response.json     |   18 +
.../samples/deploy-template-show-response.json     |   32 +
.../samples/deploy-template-update-request.json    |    7 +
.../samples/deploy-template-update-response.json   |   32 +
api-ref/source/samples/driver-get-response.json    |    4 +
.../samples/drivers-list-detail-response.json      |    8 +
.../samples/node-create-request-classic.json       |    3 +-
.../samples/node-create-request-dynamic.json       |    3 +-
api-ref/source/samples/node-create-response.json   |    5 +-
.../source/samples/node-port-detail-response.json  |    1 +
api-ref/source/samples/node-show-response.json     |    6 +-
.../samples/node-update-driver-info-response.json  |    3 +
.../samples/nodes-list-details-response.json       |    9 +-
api-ref/source/samples/port-create-request.json    |    1 +
api-ref/source/samples/port-create-response.json   |    1 +
.../source/samples/port-list-detail-response.json  |    1 +
api-ref/source/samples/port-update-response.json   |    1 +
.../samples/portgroup-port-detail-response.json    |    1 +
bindep.txt                                         |    3 +-
devstack/common_settings                           |    2 +-
devstack/files/debs/ironic                         |    9 +-
devstack/lib/ironic                                |   80 +-
devstack/plugin.sh                                 |    5 +
devstack/tools/ironic/scripts/create-node.sh       |    4 +-
devstack/upgrade/upgrade.sh                        |    5 +
.../contributor/ironic-multitenant-networking.rst  |    3 -
.../images/ironic_standalone_with_ibmc_driver.svg  | 1309 ++++++++++++++++++++
.../install/include/configure-ironic-api.inc       |   41 +
.../install/include/configure-ironic-conductor.inc |   50 +
driver-requirements.txt                            |    9 +-
ironic/api/controllers/base.py                     |   30 +-
ironic/api/controllers/v1/__init__.py              |   42 +
ironic/api/controllers/v1/allocation.py            |  471 +++++++
ironic/api/controllers/v1/chassis.py               |    8 +-
ironic/api/controllers/v1/deploy_template.py       |  445 +++++++
ironic/api/controllers/v1/event.py                 |   54 +
ironic/api/controllers/v1/node.py                  |  180 ++-
ironic/api/controllers/v1/notification_utils.py    |    6 +
ironic/api/controllers/v1/port.py                  |   48 +-
ironic/api/controllers/v1/portgroup.py             |   19 +-
ironic/api/controllers/v1/ramdisk.py               |   12 +-
ironic/api/controllers/v1/types.py                 |  148 ++-
ironic/api/controllers/v1/utils.py                 |  234 +++-
ironic/api/controllers/v1/versions.py              |   17 +-
ironic/api/controllers/v1/volume_connector.py      |   19 +-
ironic/api/controllers/v1/volume_target.py         |   19 +-
ironic/cmd/dbsync.py                               |   68 +-
ironic/cmd/status.py                               |   33 +-
ironic/common/cinder.py                            |    8 +-
ironic/common/exception.py                         |   50 +-
ironic/common/images.py                            |  113 +-
ironic/common/json_rpc/__init__.py                 |   20 +
ironic/common/json_rpc/client.py                   |  185 +++
ironic/common/json_rpc/server.py                   |  283 +++++
ironic/common/neutron.py                           |  138 +++
ironic/common/policy.py                            |   62 +-
ironic/common/pxe_utils.py                         |   45 +-
ironic/common/raid.py                              |   48 +
ironic/common/release_mappings.py                  |   40 +-
ironic/common/rpc.py                               |   12 +-
ironic/common/rpc_service.py                       |   13 +-
ironic/common/states.py                            |   24 +-
ironic/conductor/allocations.py                    |  233 ++++
ironic/conductor/base_manager.py                   |   16 +
ironic/conductor/manager.py                        |  197 ++-
ironic/conductor/rpcapi.py                         |   50 +-
ironic/conductor/steps.py                          |  601 +++++++++
ironic/conductor/task_manager.py                   |   28 +-
ironic/conductor/utils.py                          |  406 +++---
ironic/conf/__init__.py                            |    4 +
ironic/conf/agent.py                               |   15 +
ironic/conf/ansible.py                             |    6 +
ironic/conf/conductor.py                           |   22 +-
ironic/conf/default.py                             |   49 +-
ironic/conf/deploy.py                              |   21 +
ironic/conf/ibmc.py                                |   35 +
ironic/conf/json_rpc.py                            |   44 +
ironic/conf/opts.py                                |    4 +-
ironic/conf/pxe.py                                 |    2 +-
ironic/db/api.py                                   |  220 +++-
...7122cc9_add_extra_column_to_deploy_templates.py |   31 +
.../versions/28c44432c9c3_add_node_description.py  |   31 +
.../versions/2aac7e0872f6_add_deploy_templates.py  |   67 +
.../versions/9cbeefa3763f_add_port_is_smartnic.py  |   32 +
.../versions/dd67b91a1981_add_allocations_table.py |   56 +
.../versions/f190f9d00a11_add_node_owner.py        |   32 +
ironic/db/sqlalchemy/api.py                        |  597 ++++++++-
ironic/db/sqlalchemy/models.py                     |   68 +
ironic/drivers/base.py                             |   48 +-
ironic/drivers/cisco_ucs.py                        |    8 +
ironic/drivers/ibmc.py                             |   40 +
ironic/drivers/ilo.py                              |   13 +
ironic/drivers/modules/agent.py                    |   99 +-
ironic/drivers/modules/agent_base_vendor.py        |   54 +-
ironic/drivers/modules/ansible/deploy.py           |   30 +-
ironic/drivers/modules/cimc/management.py          |    4 +
ironic/drivers/modules/cimc/power.py               |    4 +
ironic/drivers/modules/console_utils.py            |    6 +-
ironic/drivers/modules/deploy_utils.py             |  107 +-
ironic/drivers/modules/drac/common.py              |   21 +-
ironic/drivers/modules/drac/inspect.py             |    9 +
ironic/drivers/modules/drac/raid.py                |    4 +-
ironic/drivers/modules/ibmc/__init__.py            |    0
ironic/drivers/modules/ibmc/management.py          |  237 ++++
ironic/drivers/modules/ibmc/mappings.py            |   70 ++
ironic/drivers/modules/ibmc/power.py               |  145 +++
ironic/drivers/modules/ibmc/utils.py               |  172 +++
ironic/drivers/modules/ibmc/vendor.py              |   87 ++
ironic/drivers/modules/ilo/bios.py                 |  142 ++-
ironic/drivers/modules/ilo/boot.py                 |    6 +-
ironic/drivers/modules/ilo/inspect.py              |   19 +
ironic/drivers/modules/ilo/raid.py                 |  235 ++++
ironic/drivers/modules/inspect_utils.py            |   35 +-
ironic/drivers/modules/ipmitool.py                 |   91 +-
ironic/drivers/modules/ipxe.py                     |   29 +-
ironic/drivers/modules/irmc/bios.py                |    2 +
ironic/drivers/modules/irmc/boot.py                |    6 +-
ironic/drivers/modules/iscsi_deploy.py             |   49 +-
ironic/drivers/modules/network/common.py           |   15 +
ironic/drivers/modules/network/neutron.py          |   18 +
ironic/drivers/modules/noop.py                     |    2 +-
ironic/drivers/modules/pxe.py                      |   30 +-
ironic/drivers/modules/pxe_base.py                 |   14 +-
ironic/drivers/modules/redfish/bios.py             |    2 +
ironic/drivers/modules/redfish/inspect.py          |   67 +-
ironic/drivers/modules/ucs/management.py           |    4 +
ironic/drivers/modules/ucs/power.py                |    3 +
ironic/drivers/modules/xclarity/common.py          |    2 +-
ironic/drivers/modules/xclarity/management.py      |   72 +-
ironic/drivers/modules/xclarity/power.py           |    2 +-
ironic/drivers/utils.py                            |    5 +-
ironic/objects/__init__.py                         |    2 +
ironic/objects/allocation.py                       |  300 +++++
ironic/objects/deploy_template.py                  |  281 +++++
ironic/objects/fields.py                           |    4 +
ironic/objects/node.py                             |   56 +-
ironic/objects/port.py                             |   47 +-
...ction-for-available-nodes-25f163d69782ef63.yaml |   12 +
.../unit/api/controllers/v1/test_allocation.py     |  743 +++++++++++
.../api/controllers/v1/test_deploy_template.py     |  956 ++++++++++++++
.../unit/drivers/modules/ansible/test_deploy.py    |  230 +++-
.../unit/drivers/modules/drac/test_inspect.py      |   11 +-
.../drivers/modules/drac/test_periodic_task.py     |   18 +-
.../unit/drivers/modules/ibmc/test_management.py   |  276 +++++
.../unit/drivers/modules/irmc/test_inspect.py      |    2 +-
.../unit/drivers/modules/network/test_common.py    |   20 +
.../unit/drivers/modules/network/test_neutron.py   |   42 +-
.../unit/drivers/modules/redfish/test_inspect.py   |   70 +-
.../unit/drivers/modules/test_agent_base_vendor.py |  193 ++-
.../unit/drivers/modules/test_console_utils.py     |    6 +-
.../unit/drivers/modules/test_deploy_utils.py      |   61 +-
.../unit/drivers/modules/test_inspect_utils.py     |   22 +
.../unit/drivers/modules/test_iscsi_deploy.py      |  219 ++++
.../drivers/modules/xclarity/test_management.py    |   37 +
.../unit/drivers/modules/xclarity/test_power.py    |    5 +-
.../unit/drivers/third_party_driver_mock_specs.py  |   10 +
lower-constraints.txt                              |    6 +-
.../run.yaml                                       |   10 +-
...nsible-python-interpreter-2035e0f23d407aaf.yaml |   15 +
...boot-mode-redfish-inspect-48e2b27ef022932a.yaml |    6 +
.../add-node-description-790097704f45af91.yaml     |    6 +
...on-persistent-boot-device-139cf280fb66f4f7.yaml |   17 +
.../add-owner-information-52e153faf570747e.yaml    |    7 +
.../add-parallel-power-syncs-b099d66e80aab616.yaml |    8 +
.../add-port-is-smartnic-4ce6974c8fe2732d.yaml     |   21 +
.../notes/add-pxe-per-node-526fd79df17efda8.yaml   |    8 +
...add-support-for-smart-nic-0fc5b10ba6772f7f.yaml |    8 +
.../notes/allocation-api-6ac2d262689f5f59.yaml     |   10 +
.../broken-driver-update-fc5303340080ef04.yaml     |    5 +
.../notes/bug-2004947-e5f27e11b8f9c96d.yaml        |    6 +
.../notes/build-configdrive-5b3b9095824faf4e.yaml  |    9 +
.../notes/build-iso-from-esp-d156036aa8ef85fb.yaml |   12 +
.../build-uefi-only-iso-ce6bcb0da578d1d6.yaml      |    7 +
.../notes/check_obj_versions-e86d897df673e833.yaml |    5 +
.../notes/deploy-templates-5df3368df862631c.yaml   |   15 +
.../deprecate-cisco-drivers-3ae79a24b76ff963.yaml  |   11 +
...ash-distribution-replicas-ef0626ccc592b70e.yaml |    5 +
.../fast-track-deployment-f09a8b921b3aae36.yaml    |   16 +
.../fix-conductor-list-raise-131ac76719b74032.yaml |    6 +
.../notes/fix-drac-job-state-8c5422bbeaf15226.yaml |    5 +
...x-tftp-master-path-config-77face94f5db9af7.yaml |    7 +
...clarity-management-defect-ec5af0cc6d1045d9.yaml |    8 +
.../notes/ibmc-driver-45fcf9f50ebf0193.yaml        |   10 +
...python-dracclient-version-01c6ef671670ffb3.yaml |    6 +
...lo-async-bios-clean-steps-15e49545ba818997.yaml |    8 +
.../notes/ilo5-oob-raid-a0eac60f7d77a4fc.yaml      |   12 +
.../notes/ipmi-console-port-ec6348df4eee6746.yaml  |    5 +
.../notes/ipmi_hex_kg_key-8f6caabe5b7d7a9b.yaml    |    7 +
.../notes/ipxe-with-dhcpv6-2bc7bd7f53a70f51.yaml   |    8 +
.../issue-conntrack-bionic-7483671771cf2e82.yaml   |   13 +
releasenotes/notes/json-rpc-0edc429696aca6f9.yaml  |    8 +
...tions-topics-configurable-18d70d573c27809e.yaml |    6 +
...rics-notifier-information-17858c8e27c795d7.yaml |   13 +
.../prelude-to-the-stein-f25b6073b6d1c598.yaml     |   32 +
.../notes/provide_mountpoint-58cfd25b6dd4cfde.yaml |    7 +
...move-deprecated-drac_host-865be09c6e8fcb90.yaml |    5 +
.../notes/set-boot-mode-4c42b3fd0b5f5b37.yaml      |    5 +
.../notes/socat-respawn-de9e8805c820a7ac.yaml      |   10 +
.../notes/story-2004444-f540d9bbc3532ad0.yaml      |    6 +
.../notes/type-error-str-6826c53d7e5e1243.yaml     |    5 +
.../notes/whole-disk-root-gb-9132e5a354e6cb9d.yaml |    6 +
requirements.txt                                   |    5 +-
setup.cfg                                          |    6 +
test-requirements.txt                              |    2 +-
tox.ini                                            |    7 +-
zuul.d/ironic-jobs.yaml                            |  147 ++-
zuul.d/project.yaml                                |   57 +-
313 files changed, 22097 insertions(+), 1990 deletions(-)


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

diff --git a/driver-requirements.txt b/driver-requirements.txt
index 5ee2943f0..6b4765745 100644
--- a/driver-requirements.txt
+++ b/driver-requirements.txt
@@ -7 +7 @@
-proliantutils>=2.6.0
+proliantutils>=2.7.0
@@ -11,2 +11,2 @@ python-scciclient>=0.8.0
-UcsSdk==0.8.2.2
-python-dracclient>=1.3.0
+UcsSdk==0.8.2.2;python_version<'3'
+python-dracclient>=1.5.0
@@ -22,0 +23,3 @@ ansible>=2.4
+
+# HUAWEI iBMC hardware type uses the python-ibmcclient library
+python-ibmcclient>=0.1.0
diff --git a/requirements.txt b/requirements.txt
index 0bcdf484a..ba1845d8d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -18 +18 @@ stevedore>=1.20.0 # Apache-2.0
-pysendfile>=2.0.0 # MIT
+pysendfile>=2.0.0;sys_platform!='win32' # MIT
@@ -40 +40 @@ jsonpatch!=1.20,>=1.16 # BSD
-WSME>=0.8.0 # MIT
+WSME>=0.9.3 # MIT
@@ -49,0 +50 @@ tooz>=1.58.0 # Apache-2.0
+openstacksdk>=0.25.0 # Apache-2.0
diff --git a/test-requirements.txt b/test-requirements.txt
index 80ff78035..373d2a4da 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -14 +14 @@ stestr>=1.0.0 # Apache-2.0
-psycopg2>=2.6.2 # LGPL/ZPL
+psycopg2>=2.7.3 # LGPL/ZPL






More information about the Release-announce mailing list