[openstack-dev] [release-announce][ironic] ironic 11.0.0 (rocky)

Doug Hellmann doug at doughellmann.com
Thu Jul 5 13:19:23 UTC 2018


I want to compliment the Ironic team on writing such engaging and
comprehensive release notes. Nice work!

Doug

Excerpts from no-reply's message of 2018-07-05 10:24:19 +0000:
> We are gleeful to announce the release of:
> 
> ironic 11.0.0: OpenStack Bare Metal Provisioning
> 
> This release is part of the rocky 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://bugs.launchpad.net/ironic
> 
> For more details, please see below.
> 
> 11.0.0
> ^^^^^^
> 
> 
> Prelude
> *******
> 
> I R O N I C turns the dial to *11* In preparation for the OpenStack
> Rocky development cycle release, the "ironic" Bare Metal as a Service
> team announces the release of version 11.0. While it is not quite like
> a volume knob, this release lays the foundation for features coming in
> future releases and user experience enhancements. Some of these
> include the BIOS configuration framework, power fault recovery,
> additonal error handling, refactoring, removal of classic drivers, and
> many bug fixes.
> 
> 
> New Features
> ************
> 
> * Adds the healthcheck middleware from oslo, configurable via the
>   "[healthcheck]/enabled" option. This middleware adds a status check
>   at */healthcheck*. This is useful for load balancers to determine if
>   a service is up (and add or remove it from rotation), or for
>   monitoring tools to see the health of the server. This endpoint is
>   unauthenticated, as not all load balancers or monitoring tools
>   support authenticating with a health check endpoint.
> 
> * Adds support to abort the inspection of a node in the "inspect
>   wait" state, as long as this operation is supported by the inspect
>   interface in use. A node in the "inspect wait" state accepts the
>   "abort" provisioning verb to initiate the abort process. This
>   feature is supported by the "inspector" inspect interface and is
>   available starting with API version 1.41.
> 
> * Adds support for reading and changing the node's "bios_interface"
>   field and enables the GET endpoints to check BIOS settings, if they
>   have already been cached. This requires a compatible
>   "bios_interface" to be set. This feature is available starting with
>   API version 1.40.
> 
> * The new ironic configuration setting "[deploy]/default_boot_mode"
>   allows the operator to set the default boot mode when ironic can't
>   pick boot mode automatically based on node configuration, hardware
>   capabilities, or bare-metal machine configuration.
> 
> * Adds support to the "redfish" management interface for reading and
>   setting bare metal node's boot mode.
> 
> * Adds new Power Distribution Unit (PDU) "snmp" driver type -
>   BayTech MRP27.
> 
> * Adds new "auto" type of the "driver_info/snmp_driver" setting
>   which makes ironic automatically select a suitable SNMP driver type
>   based on the "SNMPv2-MIB::sysObjectID" value as reported by the PDU
>   being managed.
> 
> * Adds SNMPv3 message authentication and encryption features to
>   ironic "snmp" hardware type. To enable these features, the following
>   parameters should be used in the node's "driver_info":
> 
>   * "snmp_user"
> 
>   * "snmp_auth_protocol"
> 
>   * "snmp_auth_key"
> 
>   * "snmp_priv_protocol"
> 
>   * "snmp_priv_key"
> 
>   Also adds support for the "context_engine_id" and "context_name"
>   parameters of SNMPv3 message at ironic "snmp" hardware type. They
>   can be configured in the node's "driver_info".
> 
> * Add "?detail=" boolean query to the API list endpoints to provide
>   a more RESTful alternative to the existing "/nodes/detail" and
>   similar endpoints. The default is False. Now these API requests are
>   possible:
> 
>   * "/nodes?detail=True"
> 
>   * "/ports?detail=True"
> 
>   * "/chassis?detail=True"
> 
>   * "/portgroups?detail=True"
> 
> * Adds "external" storage interface which is short for "externally
>   managed". This adds logic to allow the Bare Metal service to
>   identify when a BFV scenario is being requested based upon the
>   configuration set for "volume targets".
> 
>   The user must create the entry, and no syncronizaiton with a Block
>   Storage service will occur. Documentation
>   (https://docs.openstack.org/ironic/latest/admin/boot-from-
>   volume.html#use-without-cinder) has been updated to reflect how to
>   use this interface.
> 
> * Adds the "[deploy]enable_ata_secure_erase" option which allows an
>   operator to disable ATA Secure Erase for all nodes being managed by
>   the conductor. This setting defaults to "True" which aligns with the
>   prior behavior of the Bare Metal service.
> 
> * Adds new parameter fields to driver_info, which will become
>   mandatory in Stein release:
> 
>   * "xclarity_manager_ip": IP address of the XClarity Controller.
> 
>   * "xclarity_username": Username for the XClarity Controller.
> 
>   * "xclarity_password": Password for XClarity Controller username.
> 
>   * "xclarity_port": Port to be used for XClarity Controller
>     connection.
> 
> * Adds support for the "ipmitool" power interface to the "irmc"
>   hardware type.
> 
> * Adds support for the "fault" field in the node, beginning with API
>   version 1.42. This field records the fault, if any, detected by
>   ironic for a node. If no fault is detected, the "fault" is "None".
>   The "fault" field value is set to one of following values according
>   to different circumstances:
> 
>   * "power failure": when a node is put into maintenance due to
>     power sync failures that exceed max retries.
> 
>   * "clean failure": when a node is put into maintenance due to
>     failure of a cleaning operation.
> 
>   * "rescue abort failure": when a node is put into maintenance due
>     to failure of cleaning up during rescue abort.
> 
>   The "fault" field will be set to "None" if an operator manually set
>   maintenance to "False". The "fault" field can be used as a filter
>   for querying nodes.
> 
> * Adds power failure recovery to ironic. For nodes that ironic had
>   put into maintenance mode due to power failure, ironic periodically
>   checks their power state, and moves them out of maintenance mode
>   when power state can be retrieved. The interval of this check is
>   configured via "[conductor]power_failure_recovery_interval"
>   configuration option, the default value is 300 (seconds). Set to 0
>   to disable this behavior.
> 
> * Adds support for RAID 1 creation on Dell Boot Optimized Storage
>   Solution (BOSS).
> 
> * Adds support for rescue interface "agent" for the "ilo" hardware
>   type when the corresponding boot interface being used is "ilo-
>   virtual-media". The supported values of the rescue interface for the
>   "ilo" hardware type are "agent" and "no-rescue". The default value
>   is "no-rescue".
> 
> * Adds support for rescue interface "agent" for the "irmc" hardware
>   type when the corresponding boot interface is "irmc-virtual-media".
>   The supported values of rescue interface for "irmc" hardware type
>   are "agent" and "no-rescue". The default value is "no-rescue".
> 
> * Issuing a SIGHUP (e.g. "pkill -HUP ironic") to an ironic-api or
>   ironic-conductor service will cause the service to reload and use
>   any changed values for *mutable* configuration options. The mutable
>   configuration options are:
> 
>   * [DEFAULT]/debug
> 
>   * [DEFAULT]/log_config_append
> 
>   * [DEFAULT]/pin_release_version
> 
>   Mutable configuration options are indicated as such in the sample
>   configuration file
>   (https://docs.openstack.org/ironic/latest/configuration/sample-
>   config.html) by "Note: This option can be changed without
>   restarting".
> 
>   A warning is logged for any changes to immutable configuration
>   options.
> 
> 
> Upgrade Notes
> *************
> 
> * Adds an "inspect wait" state to handle asynchronous hardware
>   introspection. Caution should be taken due to the timeout monitoring
>   is shifted from "inspecting" to "inspect wait", please stop all
>   running asynchronous hardware inspection or wait until it is
>   finished before upgrading to the Rocky release. Otherwise nodes in
>   asynchronous inspection will be left at "inspecting" state forever
>   unless the database is manually updated.
> 
> * Extends the "instance_info" column in the nodes table for
>   MySQL/MariaDB from up to 64KiB to up to 4GiB (type is changed from
>   TEXT to LONGTEXT). This upgrade will not be executed on PostgreSQL
>   as its TEXT is unlimited.
> 
> * To use CoreOS based deploy/cleaning ramdisk built using Ironic
>   Python Agent from the Rocky release, Ironic should be upgraded to
>   the Rocky release if PXE is used. Otherwise, a node cannot be
>   deployed or cleaned because the IPA fails to boot due to an
>   unsupported parameter passed via PXE. See bug 2002093
>   (https://storyboard.openstack.org/#!/story/2002093) for details.
> 
> * With the deploy ramdisk based on Ironic Python Agent version 3.1.0
>   and beyond, the drivers using "direct" deploy interface performs
>   "netboot" or "local" boot for whole disk image based on value of
>   boot option setting. When you upgrade Ironic Python Agent in your
>   deploy ramdisk, ensure that boot option is set appropriately for the
>   node. The boot option can be set using configuration
>   "[deploy]/default_boot_option" or as a "boot_option" capability in
>   node's "properties['capabilities']". Also please note that this
>   functionality requires "hexdump" command in the ramdisk.
> 
> * "ironic-dbsync online_data_migrations" will migrate any port's and
>   port group's extra['vif_port_id'] value to their
>   internal_info['tenant_vif_port_id']. For API versions >= 1.28, the
>   ability to attach/detach the VIF via the port's or port group's
>   extra['vif_port_id'] will not be supported starting with the Stein
>   release.
> 
>   Any out-of-tree network interface implementations that had a
>   different behavior in support of attach/detach VIFs via the port or
>   port group's extra['vif_port_id'] must be updated appropriately.
> 
> * It is no longer possible to load a classic driver. Only hardware
>   types are supported from now on.
> 
> * The "/v1/drivers/?type=classic" API always returns an empty list
>   since classic drivers can no longer be loaded.
> 
> * The deprecated iDRAC classic drivers "pxe_drac" and
>   "pxe_drac_inspector" have been removed. Please use the "idrac"
>   hardware type.
> 
> * The deprecated iLO classic drivers "pxe_ilo", "iscsi_ilo" and
>   "agent_ilo" have been removed. Please use the "ilo" hardware type.
> 
> * The deprecated classic drivers "pxe_ipmitool" and "agent_ipmitool"
>   have been removed. Please use the "ipmi" hardware type instead.
> 
> * The deprecated classic drivers "pxe_irmc", "agent_irmc" and
>   "iscsi_irmc" have been removed. Please use the "irmc" hardware type.
> 
> * The deprecated classic drivers "iscsi_pxe_oneview" and
>   "agent_pxe_oneview" have been removed. Please use the "oneview"
>   hardware type.
> 
> * The deprecated "pxe_snmp" classic driver has been removed. Please
>   use the "snmp" hardware type instead.
> 
> * The deprecated classic drivers "pxe_ucs" and "agent_ucs" have been
>   removed. Please use the "cisco-ucs-managed" hardware type.
> 
> * The deprecated classic drivers "pxe_iscsi_cimc" and
>   "pxe_agent_cimc" have been removed. Please use the "cisco-ucs-
>   standalone" hardware type.
> 
> * All fake classic drivers, deprecated in the Queens release, have
>   been removed. This includes:
> 
>   * "fake"
> 
>   * "fake_agent"
> 
>   * "fake_cimc"
> 
>   * "fake_drac"
> 
>   * "fake_ilo"
> 
>   * "fake_inspector"
> 
>   * "fake_ipmitool"
> 
>   * "fake_ipmitool_socat"
> 
>   * "fake_irmc"
> 
>   * "fake_oneview"
> 
>   * "fake_pxe"
> 
>   * "fake_snmp"
> 
>   * "fake_soft_power"
> 
>   * "fake_ucs"
> 
>   Please use the "fake-hardware" hardware type instead (you can
>   combine it with any other interfaces, fake or real).
> 
> * Adds a new configuration option "[disk_utils]partprobe_attempts"
>   which defaults to 10. This is the maximum number of times to try to
>   read a partition (if creating a config drive) via a "partprobe"
>   command. Set it to 1 if you want the previous behavior, where no
>   retries were done.
> 
> * Power failure recovery introduces a new configuration option
>   "[conductor]power_failure_recovery_interval", which is enabled and
>   set to 300 seconds by default. In case the default value is not
>   suitable for the needs or scale of a deployment, please make
>   adjustment or turn it off during upgrade.
> 
> * Power failure recovery does not apply to nodes that were in
>   maintenance mode due to power failure before upgrade, they have to
>   be manually moved out of maintenance mode.
> 
> * Deprecated options "ansible_deploy_username" and
>   "ansible_deploy_key_file" in node driver_info for the "ansible"
>   deploy interface were removed and will be ignored. Use
>   "ansible_username" and "ansible_key_file" options in the node
>   driver_info respectively.
> 
> * The behavior for retention of VIF interface attachments has
>   changed.
> 
>   If your use of the Bare Metal service is reliant upon the behavior
>   of the VIFs being retained, which was introduced as a behavior
>   change during the Ocata cycle, then you must update your tooling to
>   explicitly re-add the VIF attachments prior to deployment.
> 
> * Deprecated option "[keystone]\region_name" was removed and will be
>   ignored. Instead use "region_name" option in other sections related
>   to contacting other services ("[service_catalog]", "[cinder]",
>   "[glance]", "[neutron]", ["swift"] and "[inspector]").
> 
>   As the option "[keystone]\region_name" was the only option in
>   "[keystone]" section of ironic configuration file, this section was
>   removed as well.
> 
> 
> Deprecation Notes
> *****************
> 
> * Adds an "inspect wait" state to handle asynchronous hardware
>   introspection. The "[conductor]inspect_timeout" configuration option
>   is deprecated for removal, please use
>   "[conductor]inspect_wait_timeout" instead to specify the timeout of
>   inspection process.
> 
> * Deprecates the "snmp_security" field in "driver_info" for ironic
>   "snmp" hardware type, it will be removed in Stein release. Please
>   use "snmp_user" field instead.
> 
> * The "[inspector]enabled" configuration option is deprecated. It
>   only affected classic drivers, and with their removal it no longer
>   has any effect. Use the "enabled_inspect_interfaces" option to
>   enable/disable support for ironic-inspector.
> 
> * The "oneview" hardware type, as well as the supporting driver
>   interfaces have been deprecated and are scheduled to be removed from
>   ironic in the Stein development cycle. This is due to the lack of
>   operational Third Party testing to help ensure that the support for
>   Oneview is functional. Oneview Third Party CI was shutdown just
>   prior to the start of the Rocky development cycle, and at the time
>   of this deprecation the Ironic community has no indication that
>   testing will be restablished. Should testing be restablished, this
>   deprecation shall be rescinded.
> 
> * Configuration options "[xclarity]/manager_ip",
>   "[xclarity]/username", and "[xclarity]/password" are deprecated and
>   will be removed in the Stein release.
> 
> * The "enabled_drivers" option is now deprecated. Since classic
>   drivers can no longer be loaded, setting this option to anything
>   non-empty will result in the conductor failing to start.
> 
> 
> Security Issues
> ***************
> 
> * Fixes an issue where an enabled console could be left running
>   after a node was unprovisioned.  This allowed a user to view the
>   console even after the instance was gone. Ironic now stops the
>   console during unprovisioning to block this.
> 
> * Xclarity password specified in configuration file is now properly
>   masked during logging.
> 
> 
> Bug Fixes
> *********
> 
> * Fixes bug 1749755 (https://bugs.launchpad.net/ironic/+bug/1749755)
>   causing timeouts to not work properly because an unsupported
>   sqalchemy filter was being used.
> 
> * Adds more "ipmitool" error messages to be treated as retryable by
>   the ipmitool interfaces (such as power and management hardware
>   interfaces). Specifically, "Node busy", "Timeout", "Out of space"
>   and "BMC initialization in progress" reporting emitted by "ipmitool"
>   will cause ironic to retry IPMI command. This change should improve
>   the reliability of IPMI-based communicaton with BMC.
> 
> * If the bare metal machine's boot mode differs from the requested
>   one, ironic will now attempt to set requested boot mode on the bare
>   metal machine and fail explicitly if the driver does not support
>   setting boot mode on the node.
> 
> * The config drive passed to the node can now contain more than
>   64KiB in case of MySQL/MariaDB. For more details see bug 1596421
>   (https://bugs.launchpad.net/ironic/+bug/1596421).
> 
> * Fixes a bug preventing a node from booting into the user instance
>   after unrescuing if instance netboot is used. See bug 1749433
>   (https://bugs.launchpad.net/ironic/+bug/1749433) for details.
> 
> * Fixes rescue timeout due to incorrect kernel parameter in the iPXE
>   script. See bug 1749860
>   (https://bugs.launchpad.net/ironic/+bug/1749860) for details.
> 
> * Fixes a bug where a node's hardware type cannot be changed to
>   another hardware type which doesn't support any hardware interface
>   currently used. See bug 2001832
>   (https://storyboard.openstack.org/#!/story/2001832) for details.
> 
> * Fixes a bug that exposes an internal node ID in an error message
>   when requested to delete a trait which doesn't exist. See bug
>   2002062 (https://storyboard.openstack.org/#!/story/2002062) for
>   details.
> 
> * When a conductor managing a node dies mid-cleaning the node would
>   get stuck in the CLEANING state. Now upon conductor startup nodes in
>   the CLEANING state will be moved to the CLEANFAIL state.
> 
> * Fixes an issue where parameters required in driver_info and
>   descriptions in documentation are different.
> 
> * Fixes an issue with validation of Infiniband ports. Infiniband
>   ports do not require the "local_link_connection" field to be
>   populated as the network topology is discoverable by the Infiniband
>   Subnet Manager. See bug 1753222 (https://launchpad.net/bugs/1753222)
>   for details.
> 
> * Fixes an issue where RAID 10 creation fails with greater than 16
>   drives when using the "idrac" hardware type.  See bug 2002771
>   (https://storyboard.openstack.org/#!/story/2002771) for details.
> 
> * Adds missed noop implementations (e.g. "no-inspect") to the "fake-
>   hardware" hardware type. This fixes enabling this hardware type
>   without enabling all (even optional) "fake" interfaces.
> 
> * Fixes an issue seen during cleaning when the node being cleaned
>   has one or more traits assigned. This issue caused cleaning to fail,
>   and the node to enter the "clean failed" state.  See bug 1750027
>   (https://bugs.launchpad.net/ironic/+bug/1750027) for details.
> 
> * Fixes an issue with iPXE where the incorrect iscsi volume
>   authentication data was being used with boot from volume when multi-
>   attach volumes were present.
> 
> * Fixes "direct" deploy interface to invoke "boot.prepare_instance"
>   irrespective of image type being provisioned. It was calling
>   "boot.prepare_instance" only if the image being provisioned is a
>   partition image. See bugs 1713916
>   (https://storyboard.openstack.org/#!/story/1713916) and 1750958
>   (https://storyboard.openstack.org/#!/story/1750958) for details.
> 
> * Fixes the HTTP response code for a validation failure when
>   attempting to move an ironic node to the active state. Validation
>   failure in this scenario now responses with a 400 status code
>   correctly indicating a user input error.
> 
> * Fixes an issue where node ramdisk heartbeat operations would
>   collide with conductor locks and erroniously record an error in
>   node's "last_error" field.
> 
> * Fixes collection of periodic tasks from hardware interfaces that
>   are not used in any enabled classic drivers. See bug 2001884
>   (https://storyboard.openstack.org/#!/story/2001884) for details.
> 
> * The periodic tasks for the "inspector" inspect interface are no
>   longer disabled if the "[inspector]enabled" option is not set to
>   "True". The help string of this option claims that it does not apply
>   to hardware types. In any case, the periodic tasks are only run if
>   any enabled classic driver or hardware interface requires them.
> 
> * Fixes a compatability issue where the iPXE kernel command line was
>   no longe compatible with dracut. The "ip" parameter has been removed
>   as it is incompatible with the "BOOTIF" and missing "autoconf"
>   parameters when dracut is used. Further details can be found in
>   storyboard (https://storyboard.openstack.org/#!/story/2001969).
> 
> * Fixes empty "last_error" field on cleaning failures.
> 
> * Fixes an issue where only nodes in "DEPLOYING" state would have
>   locks cleared for the nodes. Now upon node take over, any locks that
>   are left from the old conductor are cleared by the new one.
> 
> * Adds a new configuration option "[disk_utils]partprobe_attempts"
>   which defaults to 10. This is the maximum number of times to try to
>   read a partition (if creating a config drive) via a "partprobe"
>   command. Previously, no retries were done which caused failures.
>   This addresses bug 1756760
>   (https://storyboard.openstack.org/#!/story/1756760).
> 
> * Fixes rare race condition which resulted in the port list API
>   returning HTTP 400 (bad request) if some nodes were being removed in
>   parallel. See bug 1748893 (https://bugs.launchpad.net/bugs/1748893)
>   for details.
> 
> * Fixes an issue where no error was raised if there were no PXE-
>   enabled ports available for the node, when creating a neutron port.
>   See bug 2001811 (https://storyboard.openstack.org/#!/story/2001811)
>   for more details.
> 
> * Fixes potential case of VIF records being orphaned as the service
>   now removes all records of VIF attachments upon the teardown of a
>   deployed node. This is in order to resolve issues related to where
>   it is operationally impossible in some circumstances to remove a VIF
>   attachment while a node is being undeployed as the Compute service
>   will only attempt to remove the VIF for five minutes.
> 
>   See bug 1743652 (https://bugs.launchpad.net/ironic/+bug/1743652) for
>   more details.
> 
> * Ironic API now returns "503 Service Unavailable" for action
>   requiring a conductor when no conductors are online. Bug: 2002600
>   (https://storyboard.openstack.org/#!/story/2002600).
> 
> * Fixes an issue seen during node tear down where a port being
>   deleted by the Bare Metal service could be deleted by the Compute
>   service, leading to an unhandled error from the Networking service.
>   See story 2002637 for further details.
> 
> * Fixes an issue where the "ilo" hardware type would not properly
>   update the boot mode on the bare metal machine for cleaning as per
>   given "boot_mode" in node's properties/capabilities. See bug 1559835
>   (https://bugs.launchpad.net/ironic/+bug/1559835) for more details.
> 
> * During node cleaning, the conductor was using a cached copy of the
>   node's driver_internal_info field. It is possible that the copy is
>   outdated, which would cause issues with the state of the node. This
>   has been fixed. For more information, see bug 2002688
>   (https://storyboard.openstack.org/#!/story/2002688).
> 
> * Fixes an issue where a node's "instance_info.traits" field could
>   be incorrectly formatted, or contain traits that are not traits of
>   the node. When validating drivers and prior to deployment, the Bare
>   Metal service now validates that a node's traits include all the
>   traits in its "instance_info.traits" field.  See bug 1755146
>   (https://bugs.launchpad.net/ironic/+bug/1755146) for details.
> 
> * Reverts the fix for orphaned VIF records from the previous
>   release, as it causes a regression. See bug 1750785
>   (https://bugs.launchpad.net/ironic/+bug/1750785) for details.
> 
> 
> Other Notes
> ***********
> 
> * Adds an "inspect wait" state to handle asynchronous hardware
>   introspection. Returning "INSPECTING" from the "inspect_hardware"
>   method of inspect interface is deprecated, "INSPECTWAIT" should be
>   returned instead.
> 
> * Adds "get_boot_mode", "set_boot_mode" and
>   "get_supported_boot_modes" methods to driver management interface.
>   Drivers can override these methods implementing boot mode management
>   calls to the BMC of the baremetal nodes being managed.
> 
> * Adds new method "validate_rescue()" to boot interface to validate
>   node's properties related to rescue operation. This method is called
>   by the validate() method of rescue interface.
> 
> * For out-of-tree drivers that have vendor passthru methods
>   (https://docs.openstack.org/ironic/latest/contributor/vendor-
>   passthru.html). The "async" parameter of the "passthru" and
>   "driver_passthru" decorators is deprecated and will be removed in
>   the Stein cycle. Please use its replacement instead, the
>   "async_call" parameter. For more information, see bug 1751306
>   (https://storyboard.openstack.org/#!/story/1751306).
> 
> * The conductor no longer tries to collect or report sensors data
>   for nodes in maintenance mode. See bug 1652741
>   (https://bugs.launchpad.net/bugs/1652741).
> 
> * On taking over nodes in "CLEANING" state, the new conductor moves
>   them to the "CLEAN FAIL" state and sets maintenance.
> 
> * Removes the software metric named
>   "validate_boot_option_for_trusted_boot". This was the timing for a
>   short-lived, internal function that is already included in the
>   "PXEBoot.validate" metric.
> 
> Changes in ironic 10.1.0..11.0.0
> --------------------------------
> 
> 53e7bae Remove support for creating and loading classic drivers
> 9d049f7 Add a prelude for version 11
> c5fbf07 iDRAC RAID10 creation with greater than 16 drives
> 778662a Remove doc of classic drivers from the admin guide
> 194d042 Modifying 'whole_disk_image_url' and 'whole_disk_image_checksum' variable
> 51ab42e Follow-up to update doc for oneview driver
> 080f656 Small change of doc title for the drivers
> a1fb291 Fix wrong in apidoc_excluded_paths
> eac6834 Follow-up to update doc for ilo driver
> ba0a782 Add BayTech MRP27 snmp driver type
> bdd8d23 Follow-up to update doc for irmc driver
> bd003c6 DevStack: Tiny changes following iRMC classic driver removal
> 5b4ce3d include all versions of Node in release_mappings
> 53048b9 Deprecate [inspector]enabled option
> 2e568bd Do not disable inspector periodic tasks if [inspector]enabled is False
> 1a07137 Remove the ipmitool classic drivers
> 80d6c14 Add snmp driver auto discovery
> a896cc4 During cleaning, use current node.driver_internal_info
> ce444aa Rename test class
> 3d8f3ec Remove the iRMC classic drivers
> 384f966 Remove the OneView classic drivers
> 6deb0c3 Remove the deprecated pxe_snmp driver
> 575640c Remove the deprecated classic drivers for Cisco UCS hardware
> 09e89c0 Remove the iDRAC classic drivers
> 10bc397 Separate unit tests into different classes
> 3f94f5d Add helper method for testing node fields
> 6c301e7 Fix conductor manager unit tests
> 9c7729d Remove the ilo classic drivers
> b70b38e Move parse_instance_info_capabilities() to common utils.py
> bfed31b Fix error when deleting a non-existent port
> efa064b BIOS Settings: update admin doc
> 1b295f2 BIOS Settings: add bios_interface field in NodePayload
> 6acb6d9 BIOS Settings: update default BIOS setting version in db utils
> 176942c Add documentation for XClarity Driver
> b2ecd08 Release note clean-ups for ironic release
> e3d6681 Move boot-related code to boot_mode_utils.py
> 82fe2cb Raise TemporaryFailure if no conductors are online
> b17c528 BIOS Settings: add sync_node_setting
> 01a9016 Fix for Unable to create RAID1 on Dell BOSS card
> 5795c57 Add an external storage interface
> 8c6010d fix typos
> 0b85240 fix typos
> 233d7d5 Add detail=[True, False] query string to API list endpoints
> 6b0290e Adds enable_ata_secure_erase option
> 2d3e7e9 Remove the remaining fake drivers
> 0b40813 Document that nova-compute attaches VIF to active nodes on start up
> 7c5f655 Added Redfish boot mode management
> aaf17eb iRMC: Support ipmitool power interface with irmc hardware
> 2822e05 Doc: Remove -r option for running a specific unit test
> de6cfdb Fix stestr has no lower bound in test-requirements
> 5e8f2e3 Adds boot mode support to ManagementInterface
> d0dca90 Modify the Ironic api-ref's parameters in parameters.yaml
> 39d8b76 rectify 'a image ID' to 'an image ID'
> 3a39431 change 'a ordinary file ' to 'an ordinary file'
> 9a1dc71 Validating fault value when querying with fault field
> 0b0e257 change 'a optional path' to 'an optional path'
> 4f04124 Update links in README
> 495d738 Remove the fake_ipmitool, fake_ipmitool_socat and fake_snmp drivers
> 970f45a Add release notes link to README
> a8c425a BIOS Settings: add admin doc
> 47c2b15 Remove deprecated [keystone] config section
> f40f145 Make method public to support out-of-band cleaning
> 05e6dff Remove the fake_agent, fake_pxe and fake_inspector drivers
> 500ca21 Consolidate the setting of ironic-extra-vars
> 1a3a2c4 Remove deprecated ansible driver options
> a64e119 Remove dulicate uses for zuul-cloner
> 64a90a6 Comply with PTI for Python testing
> 3a0fc77 fix tox python3 overrides
> d951976 Remove the "fake" and "fake_soft_power" classic drivers
> 7fcca34 Completely stop using the "fake" classic driver in unit tests
> 8ee2f4b Power fault recovery follow up
> 4d020a6 Adds more `ipmitool` errors as retryable
> 2e7b2ba Stop using pxe_ipmitool in grenade
> 4bc142e Fix FakeBIOS to allow tempest testing
> 0c29837 Power fault recovery: Notification objects
> b4c4eb9 Power fault recovery: API implementation
> 146bbb4 Add mock to doc requirements to fix doc build
> 1b5de91 Fix task_manager process_event docstring
> bce7f11 Implements baremetal inspect abort
> 5dcfac0 Add the ability to setup enabled bios interfaces in devstack
> fd805e2 [Doc] Scheduling needs validated 'management' interface
> d27b276 Fix authentication issues along with add multi extra volumes
> ca92183 Stop passing IP address to IPA by PXE
> 254d370 Add Node BIOS support - REST API
> 2288645 Follow up to power fault recovery db tests
> 0a1b165 Power fault recovery: apply fault
> bae9e82 Reraise exception with converting node ID
> 44f4768 Gracefully handle NodeLocked exceptions during heartbeat
> 635f4a9 SNMPv3 security features added to the `snmp` driver
> be1b6a3 Allow customizing libvirt NIC driver
> a8e6fae Convert conductor manager unit tests to hardware types
> a684883 Remove excessive usage of mock_the_extension_manager in unit tests - part 2
> 1d0f90c Improve exception handling in agent_base_vendor
> 580d433 Check pep8 without ignoring D000
> d6deb1e Missing import of "_"
> 6b44f26 Power fault recovery: db and rpc implementation
> af7c6c4 Change exception msg of BIOS caching
> 86a5a16 Remove excessive usage of mock_the_extension_manager in unit tests - part 1
> 2d46f48 Mark xclarity password as secret
> 2846852 Fix E501 errors
> 4197744 Fix tenant DeprecationWarning from oslo_context
> f88d993 Fix tenant DeprecationWarning from oslo_context
> 7a8b26d Tear down console during unprovisioning
> f6dd50d Fix XClarity parameters discrepancy
> 1a59ef9 Follow up to inspect wait implementation
> 5839bba Silence F405 errors
> 24c04d9 Fix W605 Errors
> adaf918 Fix E305 Errors
> 530a3ed Fix W504 errors
> 3f460ba Gate fix: Cap hacking to avoid gate failure
> 3048eb8 Preserve env when running vbmc
> 6ff9a6b Make validation failure on node deploy a 4XX code
> d2f2afa Install OSC during quickstart
> 02d8fa1 Ignore new errors until we're able to fix them
> d017153 BIOS Settings: Add BIOS caching
> 1e24ef9 BIOS Settings: Add BIOSInterface
> 02aad83 Remove ip parameter from ipxe command line
> 863aa34 Clarify image_source with BFV
> f2502cc Update install guide to require resource classes
> 6d84922 Fix error thrown by logging in common/neutron.py
> 0f404fa Add note to oneview docs re: derprecation
> a6ae98f Deprecate Oneview
> 2d2298a Switch to the fake-hardware hardware type for API tests
> 3ae836d Remove the Keystone API V2.0 endpoint registration
> ee04f56 Move API (functional) tests to separate jobs
> d741556 Add unit test for check of glance image status
> 7784f40 Devstack plugin support for Redfish and Hardware
> 7ead206 Collect periodic tasks from all enabled hardware interfaces
> acdc372 Stop verifying updated driver in creating task
> 9eaff34 BIOS Settings: Add RPC object
> 91251d1 fix a typo
> 909c267 Trivial: Update pypi url to new url
> 36ac298 Add more parameter explanation when create a node
> 97fdd62 Fix test_get_nodeinfo_list_with_filters
> 26694e0 Install reno to venv for creating release note
> c6789ea Stop removing root uuid in vendor interfaces
> 4fa1075 Fix ``agent`` deploy interface to call ``boot.prepare_instance``
> 05dd405 Update wording used in removal of VIFs
> b27396d [devstack] Switch ironic to uWSGI
> 5dda4ba Make ansible error message clearer
> 61b04cf BIOS Settings: Add DB API
> c7e938c BIOS Settings: Add bios_interface db field
> 3ca9ec5 BIOS Settings: Add DB model
> 5c1d5a8 Clean up driver_internal_info after tear_down
> 75b654c Run jobs if requirements change
> 3a4e259 Remove vifs upon teardown
> 40a3fea uncap eventlet
> 655038b Update auth_uri option to www_authenticate_uri
> 6b91ba2 Resolve pep8 E402 errors and no longer ignore E402
> ca91d4d Remove pycodestyle version pin. Add E402 and W503 to ignore.
> fc15be6 Pin pycodestyle to <=2.3.1
> 804349e Check for PXE-enabled ports when creating neutron ports
> 6df82ee Implementation of inspect wait state
> 006950e Update Launchpad references to Storyboard
> 645c5fc Add reno for new config [disk_utils]partprobe_attempts
> 8aa46de Implement a function to check the image status
> 83c4ec9 Fix callback plugin for Ansible 2.5 compatability
> 7ba42e0 Follow the new PTI for document build
> 3e92382 Clarify deprecation of "async" parameter
> 34277f6 Fix incompatible requirement in lower-constraints
> 1ffa757 Reference architecture: small cloud with trusted tenants
> 9ea09fc Update and replace http with https for doc links
> f5605d1 Assume node traits in instance trait validation
> 0f441ab Adding grub2 bootloader support to devstack plugin
> 739fa6c Describe unmasking fields in security document
> 37b85b6 Copy port[group] VIF info from extra to internal_info
> aafa9ac DevStack: Enroll node with iRMC hardware
> 57bca71 Stop overriding tempdir in unit test
> 548a263 Uniformly capitalize parameter description
> 5f03daf Gate: run ironic tests in the regular multinode job
> 0267c27 Do not use async parameter
> 5bbeb8b Remove the link to the old drivers wiki page
> 9143ec7 add lower-constraints job
> 052782c Test driver-requirements changes on standalone job
> 2051f14 Updated from global requirements
> b8725e5 Exclude Ansible 2.5 from driver-reqs
> dcb8e82 Fix typos There are two 'the', delete one of them.
> 6843be2 fix typos in documentation
> 4f08f72 Fix nits in the XClarity Driver codebase.
> d1cd215 Validate instance_info.traits against node traits
> b93e5b0 Prevent overwriting of last_error on cleaning failures
> 7c3058a Infiniband Port Configuration update[1]
> c9e079d Rework Bare Metal service overview in the install guide
> 261df51 Gate: stop setting IRONIC_ENABLED_INSPECT_INTEFACES=inspector
> 5f55422 Follow-up patch for rescue mode devstack change
> ae25fc4 devstack: enabled fake-hardware and fake interfaces
> 30a557f Updated from global requirements
> 1d38ad8 Add descriptions for config option choices
> f30b2eb devstack: add support for rescue mode
> af02064 Updated from global requirements
> f7da3f6 Implements validate_rescue() for IRMCVirtualMediaBoot
> 6bb5bd7 Updated from global requirements
> 013992b Update config option for collecting sensor data
> cef19cb Use node traits during upgrade
> c6694b7 multinode, multitenant grenade votes in gate
> b6c521c zuul: Remove duplicated TEMPEST_PLUGIN entry
> ac65ec6 Use more granular mocking in test_utils
> 90b9133 change python-libguestfs to python-guestfs for ubuntu
> 9f912c0 Update links in README
> 0ce6bce Updated from global requirements
> 07e2dbd Remove useless variable
> dcebb77 Don't validate local_link_connection when port has client-id
> cd3c011 Updated from global requirements
> 48d04b3 Update docstring to agent client related codes
> fabcf1a Move execution of 'tools/check-releasenotes.py' to pep8
> 3984620 reloads mutable config values on SIGHUP
> 92f5dad Make grenade-mulinode voting again
> 843c773 tox.ini: flake8: Remove I202 from ignore list
> c6f8d85 fix a typo in driver-property-response.json: s/doman/domain/
> 46ee76a Trivial: Remove the non ascii codes in tox.ini
> c8ae245 Register traits on nodes in devstack
> 3edeb4c [devstack] block iPXE boot from HTTPS TempURLs
> 1b8f69d Fix issue with double mocking of utils.execute functions
> 216ad85 Updates boot mode on the baremetal as per `boot_mode`
> c66679f Support nested objects and object lists in as_dict
> 08ed859 Revert "Don't try to lock for vif detach"
> 5694b98 Rework logic handling reserved orphaned nodes in the conductor
> 8f2e487 Set 'initrd' to 'rescue_ramdisk' for rescue with iPXE
> 253c377 Update iLO documentation for deprecating classical drivers
> 8fdf752 Increase the instance_info column size to LONGTEXT on MySQL/MariaDB
> 85581f3 Update release instructions wrt grenade
> 80f0859 [ansible] use manual-mgmt hw type in unit tests
> 6682a3d Use oslo_db.sqlalchemy.test_fixtures
> 93f376f Disable .pyc files for grenade multinode
> f8f8f85 Add docs for ansible deploy interface
> 902fbbe Update comment and mock about autospec not working on staticmethods
> 4df93fc Build instance PXE options for unrescue
> 9bf5a28 Updated from global requirements
> 8af9e0b Fix default object versioning for Rocky
> 366a44a Allow sqalchemy filtering by id and uuid
> 52dcc64 Fix rare HTTP 400 from port list API
> 2921fe6 Clean nodes stuck in CLEANING state when ir-cond restarts
> 55454a3 Imported Translations from Zanata
> 708a698 tox: stop validating locale files
> 152f45c Switch contributor documentation to hardware types
> f9a88a3 Stop using --os-baremetal-api-version in devstack by default
> 99a330a Conductor version cannot be null in Rocky
> d81d2e7 Add 'Other considerations' to security doc
> 1372216 Updated from global requirements
> 628e71c Implements validate_rescue() for IloVirtualMediaBoot
> 75d3692 Update to standalone ironic doc
> 927c487 Remove too large configdrive for handling error
> 9bc1106 Added known issue to iDRAC driver docs
> ce5fd96 Add missing noop implementations to fake-hardware
> 0642649 Stop running standalone tests for classic drivers
> fddd58f Stop running non-voting jobs in gate
> 6f43941 Add optional healthcheck middleware
> 338c22b releasing docs: document stable jobs for the tempest plugin
> e2e9b76 Add meaningful exception in Neutron port show
> 5233ef0 Clean up CI playbooks
> 2d0dab2 Fix broken log message.
> 1c16205 Add validate_rescue() method to boot interface
> f5faf9c Empty commit to bump minor pre-detected version
> a0a4796 Remove test_contains_current_release_entry
> 996d579 Fix grammar errors
> 6b995c0 Clean up RPC versions and database migrations for Rocky
> 9a2ebde Remove validate_boot_option_for_trusted_boot metric
> bd1f109 Update reno for stable/queens
> 5aa7a19 Fixed some typos in test code.
> cb5f513 cleanup: Remove usage of some_dict.keys()
> 21ef50e Do not send sensors data for nodes in maintenance mode
> c934ae5 Remove the deprecated "giturl" option
> e038b67 Add Error Codes
> 0eb138c Support setting inbound global-request-id
> 
> 
> Diffstat (except docs and test files)
> -------------------------------------
> 
> CONTRIBUTING.rst                                   |    4 +-
> README.rst                                         |    9 +-
> api-ref/source/baremetal-api-v1-chassis.inc        |   15 +-
> .../source/baremetal-api-v1-node-management.inc    |   16 +-
> api-ref/source/baremetal-api-v1-nodes-vifs.inc     |    4 +-
> api-ref/source/baremetal-api-v1-nodes.inc          |   56 +-
> api-ref/source/baremetal-api-v1-portgroups.inc     |    9 +-
> api-ref/source/baremetal-api-v1-ports.inc          |   19 +-
> api-ref/source/baremetal-api-v1-volume.inc         |    8 +-
> api-ref/source/conf.py                             |   14 +-
> api-ref/source/parameters.yaml                     |  243 +-
> .../source/samples/driver-property-response.json   |    2 +-
> bindep.txt                                         |    2 +-
> devstack/files/apache-ironic-api.template          |   49 -
> devstack/lib/ironic                                |  442 ++--
> devstack/tools/ironic/scripts/configure-vm.py      |    1 +
> devstack/tools/ironic/scripts/create-node.sh       |    5 +-
> devstack/upgrade/from-queens/upgrade-ironic        |    5 +
> devstack/upgrade/settings                          |    2 +
> .../contributor/ironic-multitenant-networking.rst  |   16 +-
> .../install/include/configure-ironic-api.inc       |    2 +-
> .../refarch/small-cloud-trusted-tenants.rst        |  248 ++
> ironic/api/app.py                                  |    9 +
> ironic/api/config.py                               |    2 +-
> ironic/api/controllers/base.py                     |    4 +-
> ironic/api/controllers/v1/bios.py                  |  127 +
> ironic/api/controllers/v1/chassis.py               |   21 +-
> ironic/api/controllers/v1/driver.py                |   63 +-
> ironic/api/controllers/v1/node.py                  |  258 +-
> ironic/api/controllers/v1/port.py                  |   97 +-
> ironic/api/controllers/v1/portgroup.py             |   59 +-
> ironic/api/controllers/v1/ramdisk.py               |    5 +-
> ironic/api/controllers/v1/types.py                 |    3 +-
> ironic/api/controllers/v1/utils.py                 |  266 +-
> ironic/api/controllers/v1/versions.py              |   14 +-
> ironic/api/hooks.py                                |   18 +-
> ironic/api/middleware/auth_token.py                |    2 +-
> ironic/cmd/__init__.py                             |    4 +-
> ironic/cmd/api.py                                  |    1 +
> ironic/cmd/conductor.py                            |    2 +-
> ironic/cmd/dbsync.py                               |   13 +-
> ironic/common/boot_modes.py                        |   29 +
> ironic/common/cinder.py                            |    8 +-
> ironic/common/context.py                           |    2 +-
> ironic/common/driver_factory.py                    |  321 +--
> ironic/common/exception.py                         |   57 +-
> ironic/common/faults.py                            |   27 +
> ironic/common/fsm.py                               |    8 +-
> ironic/common/glance_service/base_image_service.py |   19 +-
> ironic/common/glance_service/service_utils.py      |   27 +-
> ironic/common/glance_service/v2/image_service.py   |   18 +-
> ironic/common/hash_ring.py                         |    3 +-
> ironic/common/image_service.py                     |    4 +-
> ironic/common/images.py                            |    8 +-
> ironic/common/network.py                           |   37 +
> ironic/common/neutron.py                           |   46 +-
> ironic/common/policy.py                            |    7 +
> ironic/common/pxe_utils.py                         |   13 +-
> ironic/common/release_mappings.py                  |   54 +-
> ironic/common/service.py                           |    2 +-
> ironic/common/states.py                            |   36 +-
> ironic/common/utils.py                             |   55 +-
> ironic/common/wsgi_service.py                      |    4 +-
> ironic/conductor/base_manager.py                   |  207 +-
> ironic/conductor/manager.py                        |  647 +++--
> ironic/conductor/rpcapi.py                         |    4 +
> ironic/conductor/task_manager.py                   |   18 +-
> ironic/conductor/utils.py                          |  176 +-
> ironic/conf/__init__.py                            |    4 +-
> ironic/conf/agent.py                               |    9 +-
> ironic/conf/ansible.py                             |   12 +-
> ironic/conf/conductor.py                           |   11 +-
> ironic/conf/default.py                             |   45 +-
> ironic/conf/deploy.py                              |   22 +-
> ironic/conf/glance.py                              |    4 +-
> ironic/conf/healthcheck.py                         |   29 +
> ironic/conf/ilo.py                                 |    5 +-
> ironic/conf/inspector.py                           |    6 +-
> ironic/conf/irmc.py                                |   18 +-
> ironic/conf/keystone.py                            |   33 -
> ironic/conf/neutron.py                             |    4 +-
> ironic/conf/opts.py                                |    2 +-
> ironic/conf/pxe.py                                 |    3 +-
> ironic/conf/xclarity.py                            |   19 +-
> ironic/db/api.py                                   |  153 +-
> ...0b163d4481e_add_port_portgroup_internal_info.py |    6 +-
> .../1a59178ebdf6_add_volume_targets_table.py       |    6 +-
> ...51876d68_add_storage_interface_db_field_and_.py |    6 +-
> .../1e1d5ace7dc6_add_inspection_started_at_and_.py |    6 +-
> .../21b331f883ef_add_provision_updated_at.py       |    6 +-
> ...cfae_add_conductor_hardware_interfaces_table.py |    6 +-
> .../242cc6a923b3_add_node_maintenance_reason.py    |    6 +-
> .../versions/2581ebaf0cb2_initial_migration.py     |    6 +-
> .../2d13bc3d6bba_add_bios_config_and_interface.py  |   31 +
> .../2fb93ffd2af1_increase_node_name_length.py      |    9 +-
> .../31baaf680d2b_add_node_instance_info.py         |    6 +-
> .../versions/3ae36a5f5131_add_logical_name.py      |    6 +-
> ...25597_add_unique_constraint_to_instance_uuid.py |    4 +-
> .../3cb628139ea4_nodes_add_console_enabled.py      |    6 +-
> .../3d86a077a3f2_add_port_physical_network.py      |    6 +-
> .../405cfe08f18d_add_rescue_interface_to_node.py   |    6 +-
> ...7deb87cc9d_add_conductor_affinity_and_online.py |    6 +-
> .../alembic/versions/48d6c242bb9b_add_node_tags.py |    6 +-
> ...d8f27f235_add_portgroup_configuration_fields.py |    8 +-
> .../versions/4f399b21ae71_add_node_clean_step.py   |    6 +-
> .../516faf1bb9b1_resizing_column_nodes_driver.py   |    6 +-
> .../5674c57409b9_replace_nostate_with_available.py |    8 +-
> ...10e_added_port_group_table_and_altered_ports.py |    6 +-
> .../60cf717201bc_add_standalone_ports_supported.py |    6 +-
> .../versions/789acc877671_add_raid_config.py       |    6 +-
> .../versions/82c315d60161_add_bios_settings.py     |   42 +
> ...868cb606a74a_add_version_field_in_base_class.py |    6 +-
> .../b4130a7fc904_create_nodetraits_table.py        |    6 +-
> .../bb59b63f55a_add_node_driver_internal_info.py   |    6 +-
> .../bcdd431ba0bf_add_fields_for_all_interfaces.py  |    6 +-
> ...c14cef6dfedf_populate_node_network_interface.py |   14 +-
> .../daa1ba02d98_add_volume_connectors_table.py     |    6 +-
> .../dbefd6bdaa2c_add_default_column_to_.py         |    6 +-
> .../dd34e1f1303b_add_resource_class_to_node.py     |    6 +-
> .../e294876e8028_add_node_network_interface.py     |    6 +-
> ...18ff30eb42_resize_column_nodes_instance_info.py |   32 +
> .../versions/f6fdb920c182_set_pxe_enabled_true.py  |    8 +-
> .../fb3f10dd262e_add_fault_to_node_table.py        |   31 +
> ironic/db/sqlalchemy/api.py                        |  336 +--
> ironic/db/sqlalchemy/models.py                     |   32 +-
> ironic/dhcp/neutron.py                             |   16 +-
> ironic/drivers/agent.py                            |  114 -
> ironic/drivers/base.py                             |  467 ++--
> ironic/drivers/drac.py                             |   60 -
> ironic/drivers/fake.py                             |  364 ---
> ironic/drivers/fake_hardware.py                    |   18 +-
> ironic/drivers/generic.py                          |    4 +-
> ironic/drivers/hardware_type.py                    |    4 +
> ironic/drivers/ilo.py                              |   79 -
> ironic/drivers/ipmi.py                             |  135 +-
> ironic/drivers/irmc.py                             |   74 +-
> ironic/drivers/modules/agent.py                    |  140 +-
> ironic/drivers/modules/agent_base_vendor.py        |   94 +-
> ironic/drivers/modules/agent_client.py             |  156 +-
> ironic/drivers/modules/ansible/deploy.py           |   35 +-
> .../playbooks/callback_plugins/ironic_log.py       |   10 +-
> .../modules/ansible/playbooks/library/facts_wwn.py |    2 +-
> .../ansible/playbooks/library/root_hints.py        |    2 +-
> .../ansible/playbooks/library/stream_url.py        |    2 +-
> ironic/drivers/modules/boot_mode_utils.py          |  268 +++
> ironic/drivers/modules/console_utils.py            |    8 +-
> ironic/drivers/modules/deploy_utils.py             |  149 +-
> ironic/drivers/modules/drac/management.py          |    2 +-
> ironic/drivers/modules/drac/raid.py                |   38 +-
> ironic/drivers/modules/drac/vendor_passthru.py     |   10 +-
> ironic/drivers/modules/fake.py                     |   66 +-
> ironic/drivers/modules/ilo/boot.py                 |   98 +-
> ironic/drivers/modules/ilo/common.py               |    3 +-
> ironic/drivers/modules/ilo/firmware_processor.py   |    2 +-
> ironic/drivers/modules/ilo/management.py           |    8 +-
> ironic/drivers/modules/ilo/vendor.py               |    4 +-
> ironic/drivers/modules/image_cache.py              |    8 +-
> ironic/drivers/modules/inspector.py                |   40 +-
> ironic/drivers/modules/ipmitool.py                 |   38 +-
> ironic/drivers/modules/ipxe_config.template        |   15 +-
> ironic/drivers/modules/irmc/boot.py                |  154 +-
> ironic/drivers/modules/irmc/common.py              |    6 +-
> ironic/drivers/modules/irmc/power.py               |   10 +-
> ironic/drivers/modules/iscsi_deploy.py             |    8 +-
> ironic/drivers/modules/network/common.py           |   59 +-
> ironic/drivers/modules/network/flat.py             |    4 +-
> ironic/drivers/modules/network/neutron.py          |   15 +-
> ironic/drivers/modules/noop.py                     |   13 +
> ironic/drivers/modules/oneview/common.py           |    5 +-
> ironic/drivers/modules/oneview/deploy.py           |   24 +-
> ironic/drivers/modules/oneview/deploy_utils.py     |    6 +-
> ironic/drivers/modules/oneview/inspect.py          |   35 +-
> ironic/drivers/modules/oneview/management.py       |    9 +-
> ironic/drivers/modules/oneview/power.py            |   13 +-
> ironic/drivers/modules/pxe.py                      |   98 +-
> ironic/drivers/modules/pxe_config.template         |    2 +-
> ironic/drivers/modules/redfish/management.py       |   87 +-
> ironic/drivers/modules/snmp.py                     |  363 ++-
> ironic/drivers/modules/storage/cinder.py           |   13 +-
> ironic/drivers/modules/storage/external.py         |   67 +
> ironic/drivers/modules/xclarity/common.py          |  110 +-
> ironic/drivers/modules/xclarity/management.py      |   39 +-
> ironic/drivers/modules/xclarity/power.py           |   37 +-
> ironic/drivers/oneview.py                          |  104 +-
> ironic/drivers/pxe.py                              |  231 --
> ironic/drivers/raid_config_schema.json             |    3 +-
> ironic/locale/ja/LC_MESSAGES/ironic.po             | 1690 -------------
> ironic/objects/__init__.py                         |    1 +
> ironic/objects/base.py                             |   45 +-
> ironic/objects/bios.py                             |  256 ++
> ironic/objects/fields.py                           |    4 +-
> ironic/objects/node.py                             |   67 +-
> ironic/objects/notification.py                     |    4 +-
> ironic/objects/port.py                             |   51 +-
> ironic/objects/portgroup.py                        |   76 +-
> ironic/objects/trait.py                            |    2 +-
> .../unit/api/controllers/v1/test_portgroup.py      |  258 +-
> .../api/controllers/v1/test_volume_connector.py    |    8 +-
> .../unit/api/controllers/v1/test_volume_target.py  |    8 +-
> .../drivers/ipxe_config_boot_from_volume.template  |   33 -
> ...e_config_boot_from_volume_extra_volume.template |   37 +
> ...nfig_boot_from_volume_no_extra_volumes.template |   34 +
> ...pxe_config_boot_from_volume_no_volumes.template |   32 -
> .../unit/drivers/ipxe_config_timeout.template      |    2 +-
> .../unit/drivers/modules/ansible/test_deploy.py    |   55 +-
> .../unit/drivers/modules/drac/test_inspect.py      |   10 +-
> .../unit/drivers/modules/drac/test_management.py   |   15 +-
> .../drivers/modules/drac/test_periodic_task.py     |   62 +-
> .../drivers/modules/ilo/test_firmware_processor.py |   10 +-
> .../unit/drivers/modules/ilo/test_management.py    |   14 +-
> .../unit/drivers/modules/irmc/test_inspect.py      |   27 +-
> .../unit/drivers/modules/irmc/test_management.py   |   55 +-
> .../unit/drivers/modules/network/test_common.py    |  119 +-
> .../unit/drivers/modules/network/test_flat.py      |    3 -
> .../unit/drivers/modules/network/test_neutron.py   |   62 +-
> .../unit/drivers/modules/network/test_noop.py      |    3 -
> .../unit/drivers/modules/oneview/test_common.py    |   26 +-
> .../unit/drivers/modules/oneview/test_deploy.py    |   63 +-
> .../drivers/modules/oneview/test_deploy_utils.py   |   18 +-
> .../unit/drivers/modules/oneview/test_inspect.py   |   53 +-
> .../drivers/modules/oneview/test_management.py     |   37 +-
> .../unit/drivers/modules/oneview/test_power.py     |   60 +-
> .../drivers/modules/redfish/test_management.py     |   66 +-
> .../unit/drivers/modules/redfish/test_power.py     |    3 -
> .../unit/drivers/modules/storage/test_cinder.py    |   71 +-
> .../unit/drivers/modules/storage/test_external.py  |   68 +
> .../unit/drivers/modules/test_agent_base_vendor.py |   51 +-
> .../unit/drivers/modules/test_console_utils.py     |    3 +-
> .../unit/drivers/modules/test_deploy_utils.py      |  109 +-
> .../unit/drivers/modules/test_iscsi_deploy.py      |   31 +-
> .../unit/drivers/modules/ucs/test_management.py    |   13 +-
> .../unit/drivers/modules/xclarity/test_common.py   |   91 +-
> .../drivers/modules/xclarity/test_management.py    |   23 +-
> .../unit/drivers/modules/xclarity/test_power.py    |   32 +-
> .../unit/drivers/third_party_driver_mock_specs.py  |    2 +
> lower-constraints.txt                              |  165 ++
> .../run.yaml                                       |  172 +-
> playbooks/legacy/grenade-dsvm-ironic/run.yaml      |   89 +-
> .../legacy/ironic-dsvm-base-multinode/pre.yaml     |   22 +
> playbooks/legacy/ironic-dsvm-base/pre.yaml         |   22 +
> playbooks/legacy/ironic-dsvm-functional/run.yaml   |   21 -
> playbooks/legacy/ironic-dsvm-standalone/run.yaml   |   25 -
> playbooks/legacy/tempest-dsvm-ironic-bfv/run.yaml  |   91 +-
> .../run.yaml                                       |  106 +
> .../run.yaml                                       |   81 +
> .../legacy/tempest-dsvm-ironic-inspector/run.yaml  |  115 +-
> .../run.yaml                                       |   74 +-
> .../run.yaml                                       |   75 +-
> .../run.yaml                                       |   74 +-
> .../run.yaml                                       |  149 --
> .../run.yaml                                       |  119 +-
> .../run.yaml                                       |   74 +-
> .../run.yaml                                       |   74 +-
> .../legacy/tempest-dsvm-ironic-parallel/run.yaml   |   23 +-
> .../tempest-dsvm-ironic-pxe_ipa-full/run.yaml      |   72 +-
> .../run.yaml                                       |   89 +-
> ...dd-healthcheck-middleware-86120fa07a7c8151.yaml |   10 +
> ...add-id-and-uuid-filtering-to-sqalchemy-api.yaml |    5 +
> .../add-inspect-wait-state-948f83dfe342897b.yaml   |   22 +
> .../add-inspection-abort-a187e6e5c1f6311d.yaml     |    9 +
> ...retryable-ipmitool-errors-1c9351a89ff0ec1a.yaml |    9 +
> .../notes/add-node-bios-9c1c3d442e8acdac.yaml      |    6 +
> ...dd-node-boot-mode-control-9761d4bcbd8c3a0d.yaml |   16 +
> ...redfish-boot-mode-support-2f1a2568e71c65d0.yaml |    4 +
> ...driver-type-baytech-mrp27-5007d1d7e0a52162.yaml |    5 +
> ...pdu-driver-type-discovery-1f280b7f06fd1ca5.yaml |    7 +
> ...-snmpv3-security-features-bbefb8b844813a53.yaml |   22 +
> .../notes/add-tooz-dep-85c56c74733a222d.yaml       |    2 +-
> ...-rescue-to-boot-interface-bd74aff9e250334b.yaml |    6 +
> ...add_detail_true_api_query-cb6944847830cd1a.yaml |   11 +
> ...xternal-storage-interface-9b7c0a0a2afd3176.yaml |   13 +
> .../adds-secure-erase-switch-23f449c86b3648a4.yaml |    7 +
> .../notes/async-deprecate-b3d81d7968ea47e5.yaml    |    9 +
> .../notes/bug-1596421-0cb8f59073f56240.yaml        |    9 +
> .../notes/bug-1749433-363b747d2db67df6.yaml        |    6 +
> .../notes/bug-1749860-457292cf62e18a0e.yaml        |    6 +
> .../notes/bug-2001832-62e244dc48c1f79e.yaml        |    7 +
> .../notes/bug-2002062-959b865ced05b746.yaml        |    7 +
> .../notes/bug-2002093-9fcb3613d2daeced.yaml        |    9 +
> ...ck-in-cleaning-on-startup-443823ea4f937965.yaml |    5 +
> ...precate-inspector-enabled-901fd9c9426046c7.yaml |    7 +
> ...deprecate-oneview-drivers-5a487e1940bcbbc6.yaml |   12 +
> ...deprecate-xclarity-config-af9b753f96779f42.yaml |   19 +
> ...n-when-port-has-client-id-8e584586dc4fca50.yaml |    7 +
> ...10-greater-than-16-drives-a4cb107e34371a51.yaml |    6 +
> releasenotes/notes/fake-noop-bebc43983eb801d1.yaml |    6 +
> .../fix-cleaning-with-traits-3a54faa70d594fd0.yaml |    7 +
> ...ix-multi-attached-volumes-092ffedbdcf0feac.yaml |    6 +
> ...tance-for-agent-interface-56753bdf04dd581f.yaml |   20 +
> ...ploy_validation_resp_code-ed93627d1b0dfa94.yaml |    7 +
> .../notes/heartbeat-locked-6e53b68337d5a258.yaml   |    6 +
> .../hw-ifaces-periodics-af8c9b93ecca9fcd.yaml      |    6 +
> .../inspector-periodics-34449c9d77830b3c.yaml      |    8 +
> ...-command-line-ip-argument-4e92cf8bb912f62d.yaml |    8 +
> ...mc-support-ipmitool-power-a3480a70753948e5.yaml |    4 +
> .../notes/ironic-11-prelude-6dae469633823f8d.yaml  |   14 +
> .../migrate_vif_port_id-5e1496638240933d.yaml      |   13 +
> .../notes/no-classic-drivers-e68d8527491314c3.yaml |   12 +
> .../notes/no-classic-idrac-4fbf1ba66c35fb4a.yaml   |    6 +
> .../notes/no-classic-ilo-7822af6821d2f1cc.yaml     |    5 +
> .../notes/no-classic-ipmi-7ec52a7b01e40536.yaml    |    5 +
> .../notes/no-classic-irmc-3a606045e87119b7.yaml    |    5 +
> .../notes/no-classic-oneview-e46ee2838d2b1d37.yaml |    6 +
> .../notes/no-classic-snmp-b77d267b535da216.yaml    |    5 +
> .../no-classic-ucs-cimc-7c62bb189ffbe0dd.yaml      |    8 +
> releasenotes/notes/no-fake-308b50d4ab83ca7a.yaml   |   23 +
> .../no-last-error-overwrite-b90aac3303eb992e.yaml  |    4 +
> ...no-sensors-in-maintenance-7a0ecf418336d105.yaml |    5 +
> .../notes/node-fault-8c59c0ecb94ba562.yaml         |   19 +
> .../notes/orphan-nodes-389cb6d90c2917ec.yaml       |   10 +
> .../notes/partprobe-retries-e69e9d20f3a3c2d3.yaml  |   14 +
> .../port-list-bad-request-078512862c22118e.yaml    |    6 +
> .../power-fault-recovery-6e22f0114ceee203.yaml     |   20 +
> .../pxe-enabled-ports-check-c1736215dce76e97.yaml  |    7 +
> .../notes/raid-dell-boss-e9c5da9ddceedd67.yaml     |    4 +
> ...ble_deploy-driver-options-a28dc2f36110a67a.yaml |    8 +
> ...ve-metric-pxe-boot-option-1aec41aebecc1ce9.yaml |    6 +
> .../remove-vifs-on-teardown-707c8e40c46b6e64.yaml  |   19 +
> .../removed-keystone-section-1ec46442fb332c29.yaml |   12 +
> ...ace-for-ilo-hardware-type-2392989d0fef8849.yaml |    7 +
> ...ce-for-irmc-hardware-type-17e38197849748e0.yaml |    7 +
> ...p-service-reloads-configs-0e2462e3f064a2ff.yaml |   17 +
> ...onsole-during-unprovision-a29d8facb3f03be5.yaml |    7 +
> ...3-if-no-conductors-online-ead1512628182ec4.yaml |    6 +
> .../notes/story-2002637-4825d60b096e475b.yaml      |    7 +
> ...rio-for-ilo-hardware-type-ebca86da8fc271f6.yaml |    8 +
> ...node-driver_internal_info-5c11de8f2c2b2e87.yaml |    8 +
> .../validate-instance-traits-525dd3150aa6afa2.yaml |    9 +
> ...detach-locking-fix-revert-3961d47fe419460a.yaml |    6 +
> .../notes/xclarity-driver-622800d17459e3f9.yaml    |    4 +-
> .../xclarity-mask-password-9fe7605ece7689c3.yaml   |    5 +
> releasenotes/source/index.rst                      |    1 +
> .../locale/en_GB/LC_MESSAGES/releasenotes.po       |  419 ++++
> .../source/locale/ja/LC_MESSAGES/releasenotes.po   |   43 +
> releasenotes/source/queens.rst                     |    7 +
> requirements.txt                                   |   12 +-
> setup.cfg                                          |   52 +-
> test-requirements.txt                              |   13 +-
> tools/check-releasenotes.py                        |    2 +
> tools/config/ironic-config-generator.conf          |    1 +
> tox.ini                                            |   64 +-
> zuul.d/legacy-ironic-jobs.yaml                     |   28 +-
> zuul.d/project.yaml                                |   17 +-
> 483 files changed, 17233 insertions(+), 13973 deletions(-)
> 
> 
> Requirements updates
> --------------------
> 
> diff --git a/requirements.txt b/requirements.txt
> index 46533dd..f31ba2d 100644
> --- a/requirements.txt
> +++ b/requirements.txt
> @@ -8 +8 @@ automaton>=1.9.0 # Apache-2.0
> -eventlet!=0.18.3,!=0.20.1,<0.21.0,>=0.18.2 # MIT
> +eventlet!=0.18.3,!=0.20.1,>=0.18.2 # MIT
> @@ -11 +11 @@ python-cinderclient>=3.3.0 # Apache-2.0
> -python-neutronclient>=6.3.0 # Apache-2.0
> +python-neutronclient>=6.7.0 # Apache-2.0
> @@ -13 +13 @@ python-glanceclient>=2.8.0 # Apache-2.0
> -keystoneauth1>=3.3.0 # Apache-2.0
> +keystoneauth1>=3.4.0 # Apache-2.0
> @@ -19,2 +19,2 @@ pysendfile>=2.0.0 # MIT
> -oslo.concurrency>=3.25.0 # Apache-2.0
> -oslo.config>=5.1.0 # Apache-2.0
> +oslo.concurrency>=3.26.0 # Apache-2.0
> +oslo.config>=5.2.0 # Apache-2.0
> @@ -40 +40 @@ WSME>=0.8.0 # MIT
> -Jinja2!=2.9.0,!=2.9.1,!=2.9.2,!=2.9.3,!=2.9.4,>=2.8 # BSD License (3 clause)
> +Jinja2>=2.10 # BSD License (3 clause)
> diff --git a/test-requirements.txt b/test-requirements.txt
> index 88922ef..80ff780 100644
> --- a/test-requirements.txt
> +++ b/test-requirements.txt
> @@ -4 +4 @@
> -hacking>=1.0.0 # Apache-2.0
> +hacking>=1.0.0,<1.1.0 # Apache-2.0
> @@ -12,0 +13 @@ oslotest>=3.2.0 # Apache-2.0
> +stestr>=1.0.0 # Apache-2.0
> @@ -15 +15,0 @@ testtools>=2.2.0 # MIT
> -os-testr>=1.0.0 # Apache-2.0
> @@ -21,8 +21 @@ flake8-import-order>=0.13 # LGPLv3
> -
> -# Doc requirements
> -sphinx!=1.6.6,>=1.6.2 # BSD
> -sphinxcontrib-pecanwsme>=0.8.0 # Apache-2.0
> -sphinxcontrib-seqdiag>=0.8.4 # BSD
> -openstackdocstheme>=1.18.1 # Apache-2.0
> -reno>=2.5.0 # Apache-2.0
> -os-api-ref>=1.4.0 # Apache-2.0
> +Pygments>=2.2.0 # BSD
> 



More information about the OpenStack-dev mailing list