[release-announce] ironic 12.0.0 (stein)

no-reply at openstack.org no-reply at openstack.org
Wed Dec 19 10:32:21 UTC 2018


We are glad to announce the release of:

ironic 12.0.0: OpenStack Bare Metal Provisioning

This release is part of the stein 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.0.0
^^^^^^


Prelude
*******

The OpenStack Bare Metal as a Service team announces the release of
ironic version 12.0 which introduces a number of new features as part
of the Stein development cycle.

* Per-node automated cleaning control

* Redfish out-of-band introspection

* Redfish BIOS configuration management

* Support for direct image downloads from the conductor host.

* Support for validating the enhanced image checksums introduced in
  the Image service in Rocky.

* Dedicated "ipxe" boot interface enabling better co-existence of
  different hardware types.

* Configurable "disk_erasure_concurrency" to speed disk cleaning.

* Configurable "protected" nodes to help prevent accidential actions
  upon critical nodes.

And many many bug fixes, Enjoy!


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

* Adds the "[redfish]auth_type" ironic configuration option for the
  "redfish" hardware type that is used to choose one of the following
  authentication methods:: "basic", "session" and "auto". The "auto"
  setting first tries "session" method and falls back to "basic" if
  session authentication is not supported by the Redfish BMC. The
  default is "auto". This configuration option can be overridden on a
  per-node basis by the "driver_info/redfish_auth_type" option.

* Adds out-of-band inspection support to "redfish" hardware type'.
  Successful inspection populates mandatory properties: "cpus",
  "local_gb", "cpu_arch", "memory_mb" and creates ironic ports for
  inspected nodes.

* Allows enabling automated cleaning per node if it is disabled
  globally. A new "automated_clean" field has been created on the node
  object, allowing to control the individual automated cleaning of
  nodes. When automated cleaning is disabled at global level, but
  enabled at node level, the automated cleaning will be performed only
  on those nodes.

  The new field is accessible starting with the API version 1.47.

* Adds a new configuration option "[iscsi]conv_flags", that
  specifies the conversion options to pass to the "dd" utility when
  copying an image. For example, passing "sparse" may result in less
  network traffic for large whole disk images.

* Adds support for booting a ramdisk using virtual media to "ilo-
  virtual-media" boot interface when an ironic node is configured with
  "ramdisk" deploy interface.

* Adds the ability to provision with "direct" deploy interface and
  custom HTTP service running at ironic conductor node. A new
  configuration option "[agent]image_download_source" is introduced.
  When set to "swift", the "direct" deploy interface uses tempurl
  generated via the Object service as the source of instance image
  during provisioning, this is the default configuration. When set to
  "http", the "direct" deploy interface downloads instance image from
  the Image service, and caches the image in the ironic conductor
  node. The cached instance images are referenced by symbolic links
  located at subdirectory "[deploy]http_image_subdir" under path
  "[deploy]http_root". The custom HTTP server running at ironic
  conductor node is supposed to be configured properly to make IPA has
  unauthenticated access to image URL described above.

* Setting these configuration options to 0 will disable the periodic
  tasks:

  * [conductor]sync_power_state_interval: sync power states for the
    nodes

  * [conductor]check_provision_state_interval:

    * check deployments and time out if the deployment takes too
      long

    * check the status of cleaning a node and time out if it takes
      too long

    * check the status of inspecting a node and time out if it takes
      too long

    * check for and handle nodes that are taken over by new
      conductors (if an old conductor disappeared)

  * [conductor]send_sensor_data_interval: send sensor data to
    ceilometer

  * [conductor]sync_local_state_interval: refresh a conductor's copy
    of the consistent hash ring. If any mappings have changed,
    determines which, if any, nodes need to be "taken over". The
    ensuing actions could include preparing a PXE environment,
    updating the DHCP server, and so on.

  * [oneview]periodic_check_interval:

    * check for nodes taken over by OneView users

    * check for nodes freed by OneView users

* In accordance with the multihash support
  (https://specs.openstack.org/openstack/glance-
  specs/specs/rocky/approved/glance/multihash.html) provided by
  glance, ironic now supports using the new "os_hash_algo" and
  "os_hash_value" fields to computes and validates image checksum when
  deploying instance images by the "direct" deploy interface.

* Adds support to retrieve the information of conductors known by
  ironic:

  * a new endpoint "GET /v1/conductors" for listing conductor
    resources.

  * a new endpoint "GET /v1/conductors/{hostname}" for showing a
    conductor resource.

  Adds a read-only "conductor" field to the Node, which represents the
  conductor currently servicing a node, and can be retrieved from
  following node endpoints:

  * "GET /v1/nodes?detail=true" or "GET /v1/nodes/detail"

  * "GET /v1/nodes/<node_ident>"

  * "POST /v1/nodes"

  * "PATCH /v1/nodes/<node_ident>"

* Adds support for the injection of Non-Masking Interrupts (NMI) to
  "ilo" management interface. This is supported on HPE ProLiant Gen9
  and Gen10 servers.

* Adds support for "soft power off" and "soft reboot" operations to
  "ilo" power interface.

* Adds a configuration option "[ipmi]disable_boot_timeout" which is
  used to set the default behavior whether ironic should send a raw
  IPMI command to disable timeout. This configuration option can be
  overidden by the per-node option "ipmi_disable_boot_timeout" in
  node's "driver_info" field. See story 2004266
  (https://storyboard.openstack.org/#!/story/2004266) and Story
  2002977 (https://storyboard.openstack.org/#!/story/2002977) for
  additional information.

* Adds an "ipxe" boot interface which allows for instance level iPXE
  enablement as opposed to conductor-wide enablement of iPXE.

* New framework for "ironic-status upgrade check" command is added.
  This framework allows adding various checks which can be run before
  a Ironic upgrade to ensure if the upgrade can be performed safely.

* Adds a configuration option "[deploy]disk_erasure_concurrency" to
  define the target pool size used by Ironic Python Agent ramdisk to
  erase disk devices. The number of threads created by IPA to erase
  disk devices is the minimum value of target pool size and the number
  of disks to be erased. This feature can greatly reduce the operation
  time for baremetals with multiple disks. For the backwards
  compatibility, the default value is 1.

* It is now possible to protect a provisioned node from being
  undeployed, rebuilt or deleted by setting the new "protected" field
  to "True". The new "protected_reason" field can be used to document
  the reason the node was made protected.

* Adds "bios" interface to the "redfish" hardware type.

* Allows streaming raw partition images to the ramdisk when using
  the "direct" deploy interface. Requires **ironic-python-agent** from
  the Stein release series.


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

* Building RAID1 is known to not work with Dell BOSS cards using
  **python-dracclient** 1.4.0 or earlier. Upgrade to **python-
  dracclient** 1.5.0 to use this feature.

* Support for IPv6 and iPXE is restricted and is unlikely to work in
  default scenarios and configurations without external intervention.
  This is due to the way DHCPv6 and dnsmasq operate. At present this
  issue is being tracked in story 2005402
  (https://storyboard.openstack.org/#!/story/2004502).


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

* The "hash_ring_reset_interval" configuration option was changed
  from 180 to 15 seconds. Previously, this option was essentially
  ignored on the API side, becase the hash ring was reset on each API
  access. The lower value minimizes the probability of a request
  routed to a wrong conductor when the ring needs rebalancing.

* Deployments utilizing iPXE should consider use of the "ipxe" boot
  interface as opposed to the "pxe" boot interface. iPXE functionality
  in the "pxe" boot interface is deprecated and will be removed during
  the U* development cycle.

* Operator can now use new CLI tool "ironic-status upgrade check" to
  check if Ironic deployment can be safely upgraded from N-1 to N
  release.

* Support for using the Image API v1 was removed. It was removed
  from Glance in the Rocky release.

* The deprecated option "[glance]glance_api_version" was removed.
  Only v2 is now used.

* If you are doing a minor version upgrade, please re-run the
  "ironic- dbsync online_data_migrations" command to properly update
  the versions of the Objects in the database. Otherwise, the next
  major upgrade may fail.

* The deprecated configuration option "[conductor]inspect_timeout"
  was removed, please use "[conductor]inspect_wait_timeout" instead.

* A future release will change the default value of
  "[deploy]/default_boot_mode" from "bios" to "uefi". It is
  recommended to set an explicit value for this option. For hardware
  types which don't support setting boot mode, a future release will
  assume boot mode is set to UEFI if no boot mode is set to node's
  capabilities. It is also recommended to set "boot_mode" into
  "properties/capabilities" of a node.


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

* The "[ilo]/power_retry" config is deprecated and will be removed
  in the future release. Please use
  "[conductor]/soft_power_off_timeout" instead.

* The "[pxe]ipxe_enabled" configuration option has been deprecated
  in preference for the "ipxe" boot interface. The configuration
  option will be removed during the U* development cycle.

* Support for iPXE in the "pxe" boot interface has been deprecated,
  and will be removed during the U* development cycle. The "ipxe" boot
  interface should be used instead.

* Using the "fake" management interface with the "manual-management"
  hardware type is deprecated, please use "noop" instead. Existing
  nodes will have to be updated after the upgrade.

* The "xclarity" hardware type, which was previously deprecated, is
  no longer deprecated. Lenovo has instituted third-party CI which is
  a requirement for a driver to remain in-tree.


Critical Issues
***************

* The "ironic-dbsync online_data_migrations" command was not
  updating the objects to their latest versions, which could prevent
  upgrades from working (i.e. when running the next release's "ironic-
  dbsync upgrade"). Objects are updated to their latest versions now
  when running that command. See story 2004174
  (https://storyboard.openstack.org/#!/story/2004174) for more
  information.


Bug Fixes
*********

* Fixes the bug in executing asynchronous BIOS interface clean step
  by honoring the state returned by the BIOS interface clean step
  which was ignored earlier.

* Fixes a misunderstanding in how DHCPv6 booting of machines
  operates in that only a URL to the boot loader is expected in that
  case, as opposed to traditional TFTP parameters. Now a URL is sent
  to the client in the form of
  "tftp://<tftp_address>/<tftp_path>/<boot_file>". See story 1744620
  (https://storyboard.openstack.org/#!/story/1744620) for more
  information.

* Fixes a bug that a node's "console_enabled" is reset to "False" at
  undeploying the node, which requires an operator to set it to "True"
  before deploying again. By this fix, while the console is stopped at
  tearing down, "console_enabled" remains "True". When the node is
  deployed again, the console is started automatically.

* Fixes an issue with a baremetal node that times out during
  cleaning. The ironic-conductor was attempting to change the node's
  provision state to 'clean failed' twice, resulting in the node's
  "last_error" being set incorrectly. This no longer happens. For more
  information, see story 2004299
  (https://storyboard.openstack.org/#!/story/2004299).

* Fixes an issue where setting these configuration options to 0
  caused a ValueError exception to be raised. You can now set them to
  0 to disable the associated periodic tasks. (For more information,
  see story 2002059
  (https://storyboard.openstack.org/#!/story/2002059).):

  * [conductor]sync_power_state_interval: sync power states for the
    nodes

  * [conductor]check_provision_state_interval:

    * check deployments and time out if the deployment takes too
      long

    * check the status of cleaning a node and time out if it takes
      too long

    * check the status of inspecting a node and time out if it takes
      too long

    * check for and handle nodes that are taken over by new
      conductors (if an old conductor disappeared)

  * [conductor]send_sensor_data_interval: send sensor data to
    ceilometer

  * [conductor]sync_local_state_interval: refresh a conductor's copy
    of the consistent hash ring. If any mappings have changed,
    determines which, if any, nodes need to be "taken over". The
    ensuing actions could include preparing a PXE environment,
    updating the DHCP server, and so on.

  * [oneview]periodic_check_interval:

    * check for nodes taken over by OneView users

    * check for nodes freed by OneView users

* Fixes an issue where Neutron ports would be left with a baremetal
  MAC address associated after an instance is deleted from a baremetal
  host. This caused problems with MAC address conflicts in follow up
  deployments to the same baremetal host. bug 2004428
  (https://storyboard.openstack.org/#!/story/2004428).

* Fixes an issue where a flat Neutron port would be left with a host
  ID associated with it after an instance is deleted from a baremetal
  host. This caused problems with reusing the same port for a new
  instance as it is already bound to the old instance.

* Fixes the URL generation with TFTP URLs does not account for IPv6
  addresses needing to be wrapped in '[]' in order to be parsed.

* Fixes DHCP option parameter generation to correctly return the
  proper values for IPv6 based booting when iPXE is in use.

* Fixes a bug where the number of CPU sockets was being returned by
  the "idrac" hardware type during introspection, instead of the
  number of virtual CPUs. See bug 2004155
  (https://storyboard.openstack.org/#!/story/2004155) for details.

* Fixes an issue where the master instance image cache could not be
  disabled. The configuration option "[pxe]/instance_master_path" may
  now be set to the empty string to disable the cache.

* Fixes an issue introduced during the Stein development cycle in an
  attempt to fix IPv6 support where the networking service was also
  prepending the DHCP option indicator to the number. A fix has been
  been submitted to the Networking service to address this issue, and
  the prepending code has been removed from ironic. See story 2004501
  (https://storyboard.openstack.org/#!/story/2004501) for more
  information.

* Fixes an issue with the "irmc" hardware type failing to create a
  boot image via the "irmc-virtual-media" boot interface. See story
  2003338 (https://storyboard.openstack.org/#!/story/2003338) for more
  information.

* Fixes an issue where the pagination marker was not being set if
  "uuid" was not in the list of requested fields when executing a list
  query. The affected API endpoints were: port, portgroup,
  volume_target, volume_connector, node and chassis. See story 2003192
  for more details
  (https://storyboard.openstack.org/#!/story/2003192).

* Kill "ipmitool" process invoked by ironic to read node's power
  state if "ipmitool" process does not exit after configured timeout
  expires. It appears pretty common for "ipmitool" to run for five
  minutes (with current ironic defauls) once it hits a non-responsive
  bare metal node. This could slow down the management of other nodes
  due periodic tasks slots exhaustion. The new behaviour could is
  enabled by default, but could be disabled via the
  "[ipmi]kill_on_timeout" ironic configuration option.

* Fixes a race condition in the hash ring implementation that could
  cause an internal server error on any request. See story 2003966
  (https://storyboard.openstack.org/#!/story/2003966) for details.

* The bare metal API no longer returns HTML as part of the
  "error_message" field in error responses when no "Accept" header is
  provided.

* Properly reports an error when the image cache and the image HTTP
  or TFTP location are on different file system, causing hard link to
  fail.

* Adds "command_timeout" and "max_command_attempts" configuration
  options to IPA, so when connection errors occur the command will be
  executed again. The options are located in the "[agent]" section.

* The ironic-python-agent (https://git.openstack.org/cgit/openstack
  /ironic-python-agent) version 3.5.0 contains a fix that allows
  multi-device objects to be selected as a root disk. These devices
  MAY be created automatically in the case of some ATARAID controllers
  with pre-existing configuration, or via the actions of a custom
  hardware manager. Operators who require this functionality are
  encouraged to ensure that their deployment ramdisks are up to date.
  See story 2003445
  (https://storyboard.openstack.org/#!/story/2003445) for more
  information.

* Fixes an issue where iSCSI based deployments fail if the
  "cpu_arch" property is not specified on a node.

* The "manual-management" hardware type now defaults to the "noop"
  management interface. Unlike the "fake" management interface, it
  does not fail on attempt to set the boot device to the local disk.

* Fixes "redfish" hardware type to reuse HTTP session tokens when
  talking to BMC using session authentication. Prior to this fix
  "redfish" hardware type never tried to reuse session token given out
  by BMC during previous connection what may sometimes lead to session
  pool exhaustion with some BMC implementations.

* Prevents deletion of ports for active nodes. It is still possible
  to delete them after putting the node in the maintenance mode.

* Fixes an issue wherein provisioning fails if ironic node is
  configured with "ramdisk" deploy interface. See bug 2003532
  (https://storyboard.openstack.org/#!/story/2003532) for more
  details.

* Fixes a locking issue where "ipmitool-shellinabox" console
  interface users may encounter a situation where the bare metal node
  is locked until the conductor is restarted. See story 1587313
  (https://storyboard.openstack.org/#!/story/1587313) for additional
  information.

* The IPMI hardware type unconditionally instructed the BMC to not
  automatically clear boot flag valid bit if Chassis Control command
  not received within 60-second timeout (countdown restarts when a
  Chassis Control command is received).  Some BMCs do not support
  setting this; if sent it causes the boot to be aborted instead.  For
  IPMI hardware type a new driver option
  "node['driver_info']['ipmi_disable_boot_timeout']" can be specified.
  It is "True" by default; set it to "False" to bypass sending this
  command.  See story 2004266
  (https://storyboard.openstack.org/#!/story/2004266) for additional
  information.

* Fixes a bug where ironic port is not updated in node introspection
  as per PXE enabled setting for "idrac" hardware type. See bug
  2004340 (https://storyboard.openstack.org/#!/story/2004340) for
  details.

* Adds the version discovery information to the versioned API
  endpoint ("/v1"). This allows *keystoneauth* version discovery to
  work on this endpoint.


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

* The support for returning "INSPECTING" state from
  "InspectInterface.inspect_hardware" was removed. For asynchronous
  inspection, please return "INSPECTWAIT" instead of "INSPECTING",
  otherwise the node will be moved to "inspect failed" state.

* The "oneview" hardware type and related interfaces have been
  removed due to a lack of maintainer and 3rd-party CI. Please see
  story 2001924 (https://storyboard.openstack.org/#!/story/2001924)
  for additional information.

* Removes Vagrant files and the information in documentation since
  the files were too outdated. This would lead to errors if developers
  tried to set up an environment with Vagrant.

* The "xclarity" hardware type is no longer deprecated as Lenovo has
  implemented third-party CI to enable testing.

Changes in ironic 11.1.0..12.0.0
--------------------------------

d379357 Introduce configuration option [ipmi]ipmi_disable_timeout
b686182 Enroll XClarity machines in Ironic's devstack setting
3aaead7 spelling error
987d330 api-ref: update node.resource_class description
1ba41f6 Add a note regarding IPA multidevice fix
0498e29 Allow disabling instance image cache
8f06369 Add a prelude for ironic 12.0
8370907 Set proper version numbering
2f99152 Change multinode jobs to default to local boot
ce71948 Follow-up Retries and timeout for IPA command
582e119 Fix "import xxx as xxx" grammar
9efb9e3 Kill misbehaving `ipmitool` process
2b74d94 Fix OOB introspection to use pxe_enabled flag in idrac driver
59b5b66 Add configurable Redfish client authentication
7c7744d Expose conductors: api
0256e1e Fix node exclusive lock not released on console start/restart.
7870883 Fix IPv6 Option Passing
360dafe Let neutron regenerate mac on port unbind
74ea2bd Slim down grenade jobs
a90bdb1 Extend job build timeout
eace34a Mark several tests to not test cleaning
9880262 Add BIOS interface to Redfish hardware type
9298c2d Avoid cpu_arch None values in iscsi deployments
e2a768f Expose conductors: db and rpc
2344bb5 Fix Chinese quotes
eb29465 Add ipmi_disable_timeout to avoid problematic IPMI command
f526c03 Correct author email address
db16984 Ensure we unbind flat network ports and clear BM mac addresses
a2cffd8 Retries and timeout for IPA command
68d62f2 Support for protecting nodes from undeploying and rebuilding
0909509 Add download link apache configuration with mod_wsgi
b754025 spelling error
53fc7fb Add Redfish inspect interface follow up
1aecb07 Add the noop management interface to the manual-management hardware type
644f6e2 Add missing ws separator between words
c67b46e Switch ironic-tempest-...-tinyipa-multinode to zuulv3
440f53f Add a non-voting bifrost job to ironic
6389ad2 Increase RAM for the ironic node in UEFI job
6350954 Reuse Redfish sessions follow up
46a5899 Improve logs when hard linking images fails
78ae60f Don't fail when node is in CLEANFAIL state
f6bd23e Fix ipv6 URL formatting for pxe/iPXE
dd95650 Fix redfish test_get_system_resource_not_found test
e841488 Improve sushy mocks
60767ae Recommend to set boot mode explicitly
41d3356 Add Redfish inspect interface
3e1fe5f Fix CPU count returned by introspection in Ironic iDRAC driver
1f1a2c3 Add ironic-status upgrade check command framework
a83f13b Passing thread pool size to IPA for parallel erasure
84b94ee Change BFV job to use ipxe interface
55ac08a [devstack] Allow setting TFTP max blocksize
8a64d03 Reuse Redfish sessions
b8d0f2b Migration step to update objects to latest version
38f6fff Cleanup of remaining pxe focused is_ipxe_enabled
1a4fdc4 Remove the xclarity deprecation
7995ac8 Follow-up to fix not exist deploy image of patch 592247
c28429c Remove pywsman reference
90d58ed Fix DHCPv6 support
a77abba Revert "Add openstack/placement as a required project for ironic-grenade*"
d269c47 Add api-ref for conductor group
016b7dd Fix ironic developer quickstart document
93670fe Add note to pxe configuration doc
5cb45a1 Create base pxe class
9ccfc31 Wrap up PXE private method to pxe_utils move
11811f2 Enhanced checksum support
f532ec4 Enable configuration of conversion flags for iscsi
e411297 Document how to implement a new deploy step
7543614 Refactor API code for checking microversions
1c5f9ae Allow streaming raw partition images
7a551c4 Remove Vagrant
c787f68 ipxe boot interface
abb0865 Remove oneview drivers
fe94fb1 Completely remove support for deprecated Glance V1
223a246 Avoid race with nova on power sync and rescue
ca80af2 Doc: Adds cinder as a service requires creds
38f13b6 Fix unit test run on OS X
5471157 Fixes a race condition in the hash ring code
f11c949 Add automated_clean field to the API
37c9211 Stop console at tearing down without unsetting console_enabled
869b86e Add functionality for individual cleaning on nodes
e25dfdc Documentation for 'ramdisk' deploy with 'ilo-virtual-media' boot
36adaa4 Add documentation for soft power for ilo hardware type
b38c46f Add documentation for 'inject nmi' for ilo hardware type
a00ebf4 Remove unnecessary checks in periodic task methods
e6a15bd Remove token expiration
f4fc39d Adds support for soft power operations to 'ilo' power interface
e1272cb Add openstack/placement as a required project for ironic-grenade*
7b02130 Remove tox checkconfig
3387c9c Add admin documentation for rescue mode in iLO driver
8f2d758 Correct headings in README.rst
8a75ebf Minor fixes for docs on changing hardware types
545b4fd Add admin documentation for rescue interface
642dedf pxe/ipxe: Move common calls out pxe.py
f34799b Switch ironic-tempest-dsvm-functional-python3 to zuulv3
86e9c7e Switch ironic-tempest-dsvm-functional-python2 to zuulv3
eabc48a Switch grenade nic driver to e1000
e63360c Remove ironic experimental jobs
1ba142a Restore the nova-api redirect
edd0ff7 Update docs to portgroup with creating windows images
788690d Use templates for cover and lower-constraints
816ff1d Remove wrong install-guide-jobs in zuul setup
9b9f31c Fix grenade tests
2106385 Add a more detailed release note for Dell BOSS RAID1 fix
85b0d3e Honors return value from BIOS interface cleansteps
87502af Reuse checksum calculation from oslo
9ce6e55 Adds support for 'ramdisk' deploy with 'ilo-virtual-media' boot
3907f8a Remove inspecting state support from inspect_hardware
9d0c7ce Adds support for 'Inject NMI' to 'ilo' management interface
bdebd56 Docs for agent http provisioning
02a3e77 Ensure pagination marker is always set
bd82ead Direct deploy serve HTTP images from conductor
17c3de3 Fix doc builds for ironic
3749cd6 Fix async keyword for Python 3.7
199e490 Add vendor step placement suggestion
be09169 Prevent HTML from appearing in API error messages
c823572 Replace assertRaisesRegexp with assertRaisesRegex
1f03a57 Add version discovery information to the /v1 endpoint
5ffffd2 Replace assertRaisesRegexp with assertRaisesRegex
9911293 Fix provisioning failure with `ramdisk` deploy interface
1dabeb2 Minor fixes to contributor vision
94f0ced Add automated_clean field
f021922 Use HostAddressOpt for opts that accept IP and hostnames
ca32dd4 Remove the duplicated word
dffb38c add python 3.6 unit test job
938a197 switch documentation job to new PTI
2731d47 import zuul job settings from project-config
b79eecf Prevents deletion of ports for active nodes
f39aae0 Disable periodic tasks if interval set to 0
f409a86 Reformat instructions related with various OS
6c751ff Imported Translations from Zanata
951e673 Add conductor_group docs
9a01311 Switch ironic-tempest-dsvm-ironic-inspector too zuulv3
e1ab512 Switch ironic-tempest-dsvm-bfv too zuulv3
fd6406f A minor update to documentation of `ilo` hardware type
26fcaac Imported Translations from Zanata
306d966 Update reno for stable/rocky
546a115 Fix not exist deploy image within irmc-virtual-media booting
54c508a Follow-up to always link MAC address files
0d3751d A vision
3530316 Don't handle warnings as errors
4969c33 update "auth_url" in documents


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

README.rst                                         |  14 +-
Vagrantfile                                        |  31 -
api-ref/source/baremetal-api-v1-nodes.inc          |  39 +-
api-ref/source/parameters.yaml                     |  40 +-
.../source/samples/driver-property-response.json   |   1 +
api-ref/source/samples/node-create-response.json   |   3 +
api-ref/source/samples/node-show-response.json     |   3 +
.../samples/node-update-driver-info-response.json  |   3 +
.../samples/nodes-list-details-response.json       |   6 +
devstack/files/apache-ironic-api-redirect.template |   5 +-
devstack/lib/ironic                                |  66 +-
.../tools/ironic/templates/tftpd-xinetd.template   |   2 +-
devstack/upgrade/settings                          |   6 +-
devstack/upgrade/upgrade.sh                        |   9 +-
.../include/configure-ironic-api-mod_wsgi.inc      |  60 +-
.../install/include/configure-ironic-api.inc       |  11 +-
.../install/include/configure-ironic-conductor.inc |  12 +-
driver-requirements.txt                            |   7 +-
ironic/api/controllers/root.py                     |  54 +-
ironic/api/controllers/v1/__init__.py              |  19 +
ironic/api/controllers/v1/chassis.py               |  45 +-
ironic/api/controllers/v1/collection.py            |   6 +-
ironic/api/controllers/v1/conductor.py             | 251 ++++++
ironic/api/controllers/v1/node.py                  | 388 ++++-----
ironic/api/controllers/v1/notification_utils.py    |   8 +-
ironic/api/controllers/v1/port.py                  |  63 +-
ironic/api/controllers/v1/portgroup.py             |  52 +-
ironic/api/controllers/v1/utils.py                 | 121 +--
ironic/api/controllers/v1/versions.py              |   7 +-
ironic/api/controllers/v1/volume_connector.py      |  48 +-
ironic/api/controllers/v1/volume_target.py         |  46 +-
ironic/api/controllers/version.py                  |  65 ++
ironic/api/middleware/parsable_error.py            |   5 +
ironic/cmd/dbsync.py                               |   5 +
ironic/cmd/status.py                               |  54 ++
ironic/common/cinder.py                            |  63 +-
ironic/common/exception.py                         |  14 +-
ironic/common/glance_service/base_image_service.py |  15 +-
ironic/common/glance_service/service.py            |  45 -
ironic/common/glance_service/service_utils.py      |  67 +-
ironic/common/glance_service/v1/__init__.py        |   0
ironic/common/glance_service/v1/image_service.py   |  28 -
ironic/common/glance_service/v2/image_service.py   |   4 +-
ironic/common/hash_ring.py                         |  34 +-
ironic/common/image_service.py                     |  22 +-
ironic/common/images.py                            |  30 +-
ironic/common/neutron.py                           |  42 +-
ironic/common/policy.py                            |  12 +-
ironic/common/pxe_utils.py                         | 656 +++++++++++++--
ironic/common/release_mappings.py                  |   4 +-
ironic/common/utils.py                             |  26 +-
ironic/conductor/manager.py                        | 167 +++-
ironic/conductor/rpcapi.py                         |  32 +-
ironic/conductor/utils.py                          |  16 +-
ironic/conf/__init__.py                            |   2 -
ironic/conf/agent.py                               |  21 +
ironic/conf/api.py                                 |   7 +-
ironic/conf/conductor.py                           |  11 +-
ironic/conf/console.py                             |   4 +
ironic/conf/default.py                             |   6 +-
ironic/conf/deploy.py                              |  25 +-
ironic/conf/drac.py                                |   1 +
ironic/conf/glance.py                              |   6 -
ironic/conf/ilo.py                                 |   4 +
ironic/conf/ipmi.py                                |  14 +
ironic/conf/iscsi.py                               |   5 +
ironic/conf/oneview.py                             |  50 --
ironic/conf/opts.py                                |   1 -
ironic/conf/pxe.py                                 |  14 +-
ironic/conf/redfish.py                             |  18 +-
ironic/db/api.py                                   |  36 +-
.../93706939026c_add_node_protected_field.py       |  33 +
.../d2b036ae9378_add_automated_clean_field.py      |  31 +
ironic/db/sqlalchemy/api.py                        |  94 ++-
ironic/db/sqlalchemy/models.py                     |   6 +-
ironic/drivers/base.py                             |  38 +-
ironic/drivers/generic.py                          |   6 +-
ironic/drivers/modules/agent.py                    |  64 +-
ironic/drivers/modules/agent_client.py             |  10 +-
ironic/drivers/modules/boot_mode_utils.py          |  29 +
ironic/drivers/modules/console_utils.py            |  54 +-
ironic/drivers/modules/deploy_utils.py             | 243 +++++-
ironic/drivers/modules/drac/bios.py                |  57 +-
ironic/drivers/modules/drac/inspect.py             |  68 +-
ironic/drivers/modules/fake.py                     |   4 +
ironic/drivers/modules/ilo/boot.py                 |  40 +-
ironic/drivers/modules/ilo/common.py               |  89 +-
ironic/drivers/modules/ilo/inspect.py              |  30 +-
ironic/drivers/modules/ilo/management.py           |  26 +
ironic/drivers/modules/ilo/power.py                | 182 +++-
ironic/drivers/modules/image_cache.py              |  22 +-
ironic/drivers/modules/inspect_utils.py            |  51 ++
ironic/drivers/modules/ipmitool.py                 |  97 ++-
ironic/drivers/modules/ipxe.py                     | 292 +++++++
ironic/drivers/modules/irmc/boot.py                |  41 +-
ironic/drivers/modules/iscsi_deploy.py             | 157 ++--
ironic/drivers/modules/network/common.py           |  11 +-
ironic/drivers/modules/network/flat.py             |  67 +-
ironic/drivers/modules/oneview/__init__.py         |   0
ironic/drivers/modules/oneview/common.py           | 553 ------------
ironic/drivers/modules/oneview/deploy.py           | 300 -------
ironic/drivers/modules/oneview/deploy_utils.py     | 384 ---------
ironic/drivers/modules/oneview/inspect.py          | 100 ---
ironic/drivers/modules/oneview/management.py       | 325 --------
ironic/drivers/modules/oneview/power.py            | 224 -----
ironic/drivers/modules/pxe.py                      | 544 ++----------
ironic/drivers/modules/pxe_base.py                 |  95 +++
ironic/drivers/modules/redfish/bios.py             | 283 +++++++
ironic/drivers/modules/redfish/inspect.py          | 196 +++++
ironic/drivers/modules/redfish/utils.py            | 103 ++-
ironic/drivers/modules/snmp.py                     |   2 +-
ironic/drivers/modules/storage/cinder.py           |  10 +-
ironic/drivers/modules/storage/external.py         |   6 +-
ironic/drivers/modules/xclarity/management.py      |   9 -
ironic/drivers/modules/xclarity/power.py           |   9 -
ironic/drivers/oneview.py                          |  58 --
ironic/drivers/redfish.py                          |  15 +
ironic/drivers/xclarity.py                         |   9 -
ironic/objects/conductor.py                        |  26 +-
ironic/objects/node.py                             | 103 +--
.../unit/api/controllers/v1/test_conductor.py      | 231 ++++++
.../unit/api/controllers/v1/test_portgroup.py      |  23 +-
.../api/controllers/v1/test_volume_connector.py    |  19 +
.../unit/api/controllers/v1/test_volume_target.py  |  17 +
.../unit/drivers/modules/drac/test_inspect.py      | 126 ++-
.../unit/drivers/modules/ilo/test_management.py    |  34 +
.../unit/drivers/modules/network/test_flat.py      |  81 +-
.../unit/drivers/modules/network/test_neutron.py   |  10 +-
.../unit/drivers/modules/oneview/test_common.py    | 406 ---------
.../unit/drivers/modules/oneview/test_deploy.py    | 456 ----------
.../drivers/modules/oneview/test_deploy_utils.py   | 327 --------
.../unit/drivers/modules/oneview/test_inspect.py   |  51 --
.../drivers/modules/oneview/test_management.py     | 365 --------
.../unit/drivers/modules/oneview/test_power.py     | 308 -------
.../unit/drivers/modules/redfish/test_bios.py      | 226 +++++
.../unit/drivers/modules/redfish/test_inspect.py   | 189 +++++
.../drivers/modules/redfish/test_management.py     |  29 +-
.../unit/drivers/modules/redfish/test_power.py     |  20 +-
.../unit/drivers/modules/redfish/test_utils.py     | 171 +++-
.../unit/drivers/modules/test_agent_base_vendor.py |  17 +-
.../unit/drivers/modules/test_agent_client.py      |  86 +-
.../unit/drivers/modules/test_boot_mode_utils.py   |  55 ++
.../unit/drivers/modules/test_console_utils.py     |  30 +-
.../unit/drivers/modules/test_deploy_utils.py      | 268 +++++-
.../unit/drivers/modules/test_inspect_utils.py     |  65 ++
.../unit/drivers/modules/test_iscsi_deploy.py      |  56 +-
.../unit/drivers/third_party_driver_mock_specs.py  |  46 +-
lower-constraints.txt                              |   3 +-
playbooks/ci-workarounds/etc-neutron.yaml          |   9 +
playbooks/ci-workarounds/set-stack-key.yaml        |  13 +
.../run.yaml                                       |   6 +-
playbooks/legacy/grenade-dsvm-ironic/run.yaml      |   8 +-
playbooks/legacy/ironic-dsvm-functional/run.yaml   |  42 -
playbooks/legacy/tempest-dsvm-ironic-bfv/run.yaml  |  90 --
.../run.yaml                                       | 106 ---
.../run.yaml                                       |  81 --
.../legacy/tempest-dsvm-ironic-inspector/run.yaml  |  85 --
.../run.yaml                                       | 109 ---
.../legacy/tempest-dsvm-ironic-parallel/run.yaml   |  34 -
.../tempest-dsvm-ironic-pxe_ipa-full/run.yaml      |  80 --
.../add-redfish-auth-type-5fe78071b528e53b.yaml    |  10 +
...redfish-inspect-interface-1577e70167f24ae4.yaml |   7 +
...add_automated_clean_field-b3e7d56f4aeaf512.yaml |  10 +
...dd_conversion_flags_iscsi-d7f846803a647573.yaml |   7 +
...ace-support-to-ilo-vmedia-1a7228a834465633.yaml |   6 +
.../agent-http-provisioning-d116b3ff36669d16.yaml  |  15 +
.../async_bios_clean_step-7348efff3f6d02c1.yaml    |   6 +
.../notes/boot-from-url-98d21670e726c518.yaml      |   9 +
.../notes/bug-2003972-dae9b7d0f6180339.yaml        |   8 +
.../cleanwait_timeout_fail-4323ba7d4d4da3e6.yaml   |   8 +
.../notes/dell-boss-raid1-ec33e5b9c59d4021.yaml    |   6 +
.../disable_periodic_tasks-0ea39fa7a8a108c6.yaml   |  49 ++
.../notes/enhanced-checksum-f5a2b7aa8632b88f.yaml  |   7 +
...-flat-vifs-and-clear-macs-34eec149618e5964.yaml |  13 +
.../notes/expose-conductor-d13c9c4ef9d9de86.yaml   |  18 +
.../fix-boot-url-for-v6-802abde9de8ba455.yaml      |   8 +
.../notes/fix-cpu-count-8904a4e1a24456f4.yaml      |   7 +
...stance-master-path-config-fa524c907a7888e5.yaml |   6 +
.../fix-ipv6-option6-tag-549093681dcf940c.yaml     |  16 +
...ist-deploy-image-for-irmc-cb82c6e0b52b8a9a.yaml |   7 +
...r-with-custom-field-query-65ca29001a03e036.yaml |   8 +
...out-hung-ipmitool-process-519c7567bcbaa882.yaml |  11 +
.../notes/hash-ring-race-da0d584de1f46788.yaml     |  13 +
.../notes/html-errors-27579342e7e8183b.yaml        |   5 +
.../notes/ilo-inject-nmi-f487db8c3bfd08ea.yaml     |   6 +
...ilo-soft-power-operations-eaef33a3ff56b047.yaml |  10 +
...invalid_cross_device_link-7ecf3543a8ada09f.yaml |   5 +
...mmand-retries-and-timeout-29b0be3f2c21328c.yaml |   6 +
...mi-disable-timeout-option-e730362007f9bedd.yaml |  11 +
...e-boot-interface-addition-faacb344a72389f2.yaml |  20 +
.../notes/ironic-11-prelude-6dae469633823f8d.yaml  |   2 +-
.../ironic-12.0-prelude-9dd8e80a1a3e8f60.yaml      |  19 +
...hon-agent-multidevice-fix-3daa0760696b46b7.yaml |  12 +
...s-upgrade-check-framework-9cd216ddf3afb271.yaml |  11 +
.../iscsi-optional-cpu-arch-ebf6a90dde34172c.yaml  |   6 +
.../notes/no-glance-v1-d249e8079f46f40c.yaml       |   8 +
releasenotes/notes/noop-mgmt-a4b1a248492c7638.yaml |  11 +
...migration_update_versions-ea03aff12d9c036f.yaml |  13 +
.../notes/parallel-erasure-1943da9b53a2095d.yaml   |   9 +
.../persist-redfish-sessions-d521a0846fa45c40.yaml |   8 +
.../notes/port_delete-6628b736a1b556f6.yaml        |   5 +
releasenotes/notes/protected-650acb2c8a387e17.yaml |   7 +
.../notes/ramdisk-boot-fails-4e8286e6a4e0dfb6.yaml |   7 +
.../redfish-bios-interface-a1acd8122c896a38.yaml   |   3 +
...-inspecting-state-support-10325bdcdd182079.yaml |   9 +
.../notes/remove-oneview-9315c7b926fd4aa2.yaml     |   7 +
.../notes/remove_vagrant-4472cedd0284557c.yaml     |   6 +
.../shellinabox-locking-fix-2fae2a451a8a489a.yaml  |   8 +
.../notes/story-2004266-4725d327900850bf.yaml      |  13 +
...treaming-partition-images-d58fe619658b066e.yaml |   6 +
.../notes/uefi-first-prepare-e7fa1e2a78b4af99.yaml |  10 +
.../undeprecate-xclarity-4f4752017e8310e7.yaml     |  10 +
.../update-port-pxe-enabled-f954f934209cbf5b.yaml  |   7 +
.../notes/v1-discovery-4311398040581fe8.yaml       |   6 +
releasenotes/source/index.rst                      |   1 +
.../locale/en_GB/LC_MESSAGES/releasenotes.po       | 218 ++++-
.../source/locale/ja/LC_MESSAGES/releasenotes.po   | 126 ++-
releasenotes/source/rocky.rst                      |   6 +
requirements.txt                                   |   3 +-
setup.cfg                                          |  12 +-
tools/config/check_uptodate.sh                     |  28 -
tools/link_aggregation_on_windows.ps1              |  40 +
tox.ini                                            |   9 +-
vagrant.yaml                                       | 159 ----
zuul.d/ironic-jobs.yaml                            | 265 +++++-
zuul.d/legacy-ironic-jobs.yaml                     |  71 --
zuul.d/project.yaml                                |  31 +-
299 files changed, 11741 insertions(+), 8720 deletions(-)


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

diff --git a/driver-requirements.txt b/driver-requirements.txt
index e8cb3f3..5ee2943 100644
--- a/driver-requirements.txt
+++ b/driver-requirements.txt
@@ -10,4 +10 @@ python-ironic-inspector-client>=1.5.0
-python-oneviewclient<3.0.0,>=2.5.2
-python-scciclient>=0.7.2
-python-ilorest-library>=2.1.0
-hpOneView>=4.4.0
+python-scciclient>=0.8.0
@@ -22 +19 @@ ImcSdk>=0.7.2
-sushy
+sushy>=1.6.0
diff --git a/requirements.txt b/requirements.txt
index a566689..0bcdf48 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -14 +14 @@ keystoneauth1>=3.4.0 # Apache-2.0
-ironic-lib>=2.14.0 # Apache-2.0
+ironic-lib>=2.15.0 # Apache-2.0
@@ -30,0 +31 @@ oslo.service!=1.28.1,>=1.24.0 # Apache-2.0
+oslo.upgradecheck>=0.1.0 # Apache-2.0






More information about the Release-announce mailing list