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
participants (1)
-
no-reply@openstack.org