ironic 13.0.0 (train)
We high-spiritedly announce the release of: ironic 13.0.0: OpenStack Bare Metal Provisioning This release is part of the train stable release series. The source is available from: https://opendev.org/openstack/ironic Download the package from: https://tarballs.openstack.org/ironic/ Please report issues through: https://storyboard.openstack.org/#!/project/943 For more details, please see below. 13.0.0 ^^^^^^ Prelude ******* "Choooooo! Choooooo!" The Train is now departing the station. The OpenStack Bare Metal as a service team is proud to announce the release of Ironic 13.0.0. This release brings the long desired feature of software RAID configuration, Redfish virtual media boot support, sensor data improvements, and numerous bug fixes. We hope you enjoy your ride on the OpenStack Ironic Train. New Features ************ * Adds support for deploy steps to the "idrac-wsman" "raid" interface. The methods "apply_configuration" and "delete_configuration" can be used as deploy steps. * Adds a new "delete_existing" argument to the "create_configuration" clean step on the "idrac-wsman" "raid" interface which can be used to delete existing virtual disks. The default for this argument is "False". * Adds support for deploy steps to "bios" interface of "ilo" hardware type. The methods "factory_reset" and "apply_configuration" can be used as deploy steps. * Adds support for deploy steps to the "management" interface of the "ilo" hardware type. The methods "reset_ilo", "reset_ilo_credential", "reset_bios_to_default", "reset_secure_boot_keys_to_default", "clear_secure_boot_keys" and "update_firmware" can be used as deploy steps. * Adds support for deploy steps to "raid" interface of "ilo5" hardware type. The methods "apply_configuration" and "delete_configuration" can be used as deploy steps. * Adds support for deploy steps to "bios" interface of "redfish" hardware type. The methods "factory_reset" and "apply_configuration" can be used as deploy steps. * Adds virtual media boot interface to "redfish" hardware type supporting virtual media boot. The "redfish-virtual-media" boot interface operates on the same kernel/ramdisk as, for example, PXE boot interface does, however "redfish-virtual-media" boot interface can additionally require EFI system partition image (ESP) when performing UEFI boot. Either the "[conductor]bootloader" configuration option or the "[driver_info]/bootloader" node attribute can be used to convey ESP location to ironic. Bootable ISO images can be served to BMCs either from Swift or from an HTTP server running on an ironic conductor machine. This is controlled by the "[redfish]use_swift" ironic configuration option. * Adds sensor data collector to "redfish" management interface. Temperature, power, cooling and drive health metrics are collected. * Add "target_raid_config" data to "ironic" variable under "raid_config" top-level key which will expose the RAID configuration to the "ansible" driver. See story 2006417 for details. * Adds a "clear_job_queue" cleaning step to the "idrac-wsman" management interface. The "clear_job_queue" cleaning step clears the Lifecycle Controller job queue including any pending jobs. * Adds an "ilo-ipxe" boot interface to "ilo" hardware type which allows for instance level iPXE enablement as opposed to conductor- wide enablement of iPXE. To perform iPXE boot with "ilo-ipxe" boot interface: * Add "ilo-ipxe" to "enabled_boot_interfaces" in "ironic.conf" * Set up TFTP & HTTP server using Ironic document on iPXE boot configuration (https://docs.openstack.org/ironic/latest/install /configure-pxe.html) * Create/Set baremetal node with "--boot-interface ilo-ipxe" * Adds power state change callbacks of an instance to the Compute service by performing API notifications. This feature is enabled by default and can be disabled via the new "[nova]send_power_notifications" configuration option. Whenever there is a change in the power state of a physical instance, the Bare Metal service will send a "power-update" external event to the Compute service which will cause the power state of the instance to be updated in the Compute database. It also adds the possibility of bringing up/down a physical instance through the Bare Metal service API even if it was put down/up through the Compute service API. * The deploy and/or rescue kernel and ramdisk can now be configured via the new configuration options "deploy_kernel", "deploy_ramdisk", "rescue_kernel" and "rescue_ramdisk" respectively. * Adds a new configuration option "[drac]boot_device_job_status_timeout" that specifies the maximum amount of time (in seconds) to wait for the boot device configuration job to transition to the scheduled state to allow a reboot or power on action to complete. * Adds initial "idrac" hardware type support of interface implementations that utilize the Redfish out-of-band (OOB) management protocol and are compatible with the integrated Dell Remote Access Controller (iDRAC) baseboard management controller (BMC), presently those of the management and power hardware interfaces. They are named "idrac-redfish". Introduces a new name for the "idrac" interface implementations, "idrac-wsman", and deprecates "idrac". They both use the Web Services Management (WS-Man) OOB management protocol. The "idrac" hardware type declares support for those new interface implementations, in addition to all interface implementations it has been supporting. The priority order of supported interfaces remains the same. Interface implementations which rely on WS-Man continue to have the highest priority, and the new "idrac-wsman" is listed before the deprecated "idrac". It now supports the following interface implementations, which are listed in priority order from highest to lowest: * bios: "no-bios" * boot: "ipxe", "pxe" * console: "no-console" * deploy: "iscsi", "direct", "ansible", "ramdisk" * inspect: "idrac-wsman", "idrac", "inspector", "no-inspect" * management: "idrac-wsman", "idrac", "idrac-redfish" * network: "flat", "neutron", "noop" * power: "idrac-wsman", "idrac", "idrac-redfish" * raid: "idrac-wsman", "idrac", "no-raid" * rescue: "no-rescue", "agent" * storage: "noop", "cinder", "external" * vendor: "idrac-wsman", "idrac", "no-vendor" For more information, see story 2004592 (https://storyboard.openstack.org/#!/story/2004592). * Adds "idrac" hardware type support of an inspect interface implementation that utilizes the Redfish out-of-band (OOB) management protocol and is compatible with the integrated Dell Remote Access Controller (iDRAC) baseboard management controller (BMC). It is named "idrac-redfish". The "idrac" hardware type declares support for that new interface implementation, in addition to all inspect interface implementations it has been supporting. The highest priority inspect interfaces remain the same, those which rely on the Web Services Management (WS-Man) OOB management protocol. The new 'idrac-redfish' immediately follows those. It now supports the following inspect interface implementations, listed in priority order from highest to lowest: "idrac-wsman", "idrac", "idrac-redfish", "inspector", and "no-inspect". * Adds functionality to perform out-of-band sanitize disk-erase operation for iLO5 based HPE Proliant servers. Management interface "ilo5" has been added to "ilo5" hardware type. A clean step "erase_devices" has been added to management interface "ilo5" to support this operation. * Adds support for the Intel IPMI Hardware with a new hardware type "intel-ipmitool". This hardware type is the same as the "ipmi" hardware type with additional support of Intel Speed Select Performance Profile Technology (https://www.intel.com/content/www/us/en/architecture-and-technology /speed-select-technology-article.html). It uses the "intel-ipmitool" management interface, which supports setting the desired configuration level for Intel SST-PP. * Ironic API service now supports HTTP proxy headers parsing with the help of oslo.middleware package, enabled via new option "[oslo_middleware]/enable_proxy_headers_parsing" ("False" by default). This enables more complex setups of Ironic API service, for example when the same service instance serves both internal and public API endpoints via separate proxies. When proxy headers parsing is enabled, the value of "[api]/public_endpoint" option is ignored. * Allows retrying PXE/iPXE boot during deployment, cleaning and rescuing. This feature is disabled by default and can be enabled by setting "[pxe]boot_retry_timeout" to the timeout (in seconds) after which the boot should be retried. The new option "[pxe]boot_retry_check_interval" defines how often to check the nodes for timeout and defaults to 90 seconds. * Adds support for software RAID via the generic hardware manager when using a Train release "ironic-python-agent" deployment or cleaning ramdisk. This may be used by means of the "target_raid_config" a single RAID-1 or one RAID-1 plus one RAID-N can be configured (where N can be 0, 1, and 1+0). The RAID is created/deleted during manual cleaning. Note that this initial implementation will use all available devices for the setup of the software RAID device(s). More information is available in the Ironic Administrator documentation (https://docs.openstack.org/ironic/latest/admin/raid.html#software- raid). * Foreign drives and global and dedicated hot spares will be freed up during the RAID "delete_configuration" cleaning step. Upgrade Notes ************* * In order to support power state change call backs to nova, the "[nova]" section must be configured in the Bare Metal service configuration. As the functionality to process the event is new to nova's Train release, this should only be set to "True" in ironic, once *ALL* "nova-compute" instances have been upgraded to the Train release of nova. * The Cisco "cisco-ucs-managed" and "cisco-ucs-standalone" hardware types and "cimc" and "ucsm" hardware interfaces which were deprecated in the 12.1.0 release have now been removed. After upgrading, if any of these hardware types or interfaces are specified in ironic's configuration options, the ironic-conductor service will fail to start. Any existing ironic nodes with these hardware types or interfaces will become inoperational via ironic after the upgrade. If these hardware types or interfaces are being used, the affected nodes should be changed to use other hardware types or interfaces; or install these hardware types (and interfaces) from elsewhere separately. For more information, see story 2005033 (https://storyboard.openstack.org/#!/story/2005033). * The deprecated configuration options "enabled" and "service_url" from the "inspector" section have been removed. * The python-ironic-inspector-client package is no longer required for the "inspector" inspect interface (openstacksdk is used instead). * The deprecated options "url", "url_timeout" and "auth_strategy" from the "[neutron]" section have been removed. Use "endpoint_override", "timeout" and "auth_type" respectively. * When a failure occurs during cleaning, nodes will no longer be shut down. The behaviour was changed to prevent harm and allow for an admin intervention when sensitive operations, such as firmware upgrades, are performed and fail during cleaning. * The deprecated options "glance_api_servers", "glance_api_insecure", "glance_cafile" and "auth_strategy" from the "[glance]" section have been remove. Please use the corresponding keystoneauth options instead. * The "do_disk_erase", "has_disk_erase_completed" and "get_available_disk_types" interfaces of 'proliantutils' library has been enhanced to support out-of-band sanitize disk-erase operation for "ilo5" hardware type. To leverage this feature, the 'proliantutils' library needs to be upgraded to version '2.9.0'. * Users of the "irmc" hardware type with iPXE should switch to the "ipxe" boot interface from the deprecated "[pxe]ipxe_enabled" option. * Explicit support for CoreOS Ironic Python Agent images has been removed. If you use a ramdisk based on CoreOS, you may want to re- add "coreos.configdrive=0" to your PXE templates, see story 1433812 (https://storyboard.openstack.org/#!/story/1433812) for the background. * The deprecated "ironic/api/app.wsgi" script has been removed. The automatically generated "ironic-api-wsgi" script must be used instead. * Support for *elilo* has been removed as support was deprecated and *elilo* has been dropped by most Linux distributions. Users should migrate to another PXE loader. Deprecation Notes ***************** * The configuration option "[glance]glance_num_retries" has been renamed to "[glance]num_retries". The old name will be removed in a future release. * The "idrac" interface implementation name is deprecated in favor of a new name, "idrac-wsman", and may be removed in a future release. A deprecation warning will be logged for every loaded "idrac" interface implementation. Use "idrac-wsman" instead. * The ironic-lib configuration option "[disk_utils]iscsi_verify_attempts" has been deprecated in favor of: * "[iscsi]verify_attempts" to specify the number of attempts to establish an iSCSI connection. * "[disk_utils]partition_detection_attempts" to specify the number of attempts to find a newly created partition. Bug Fixes ********* * Fixes an issue where if there is a pending BIOS config job in job queue, then ironic will abandon an introspection attempt for the node, which will cause overall introspection to fail. * Allows deleting unbound ports on an active node. See story 2006385 (https://storyboard.openstack.org/#!/story/2006385) for details. * Fixes a confusing "AttributeError" if an adapter returns "None" for the bare metal API. * Prevents the adapter configuration options from getting ignored if a matching endpoint cannot be found. An error is now raised. * By immediately conveying power state changes of a node through external events to the Compute service, the Bare Metal service becomes the source of truth about the node's power state, preventing the Compute service from forcing wrong power states on instances during the periodic power state synchronization between the Compute and Bare Metal services. Note: There is a possibility of a race condition due to the nova- ironic power sync task happening during or right before the power state change event is received from the Bare Metal service, in which case the instance state will be forced on the baremetal node. * Fixes an issue in the discovery playbook for the "ansible" deploy interface that prevented gathering WWN and serial numbers under Python 3. * Fixes an issue with using serial number as root device hints with the "ansible" deploy interface. * Fixes an issue regarding the "ansible" deploy interface, where the configdrive partition could not be correctly built if the node root device was set to some logical device (like an md array, /dev/md0). https://storyboard.openstack.org/#!/story/2006334 * Fixes deploying non-public images using the "ansible" deploy interface. * Currently Ironic allows entering deployment or cleaning for nodes in maintenance mode. However, heartbeats do not cause any actions for such nodes, thus deployment or cleaning will never finish if the nodes are not moved out of maintenance. A new configuration option "[conductor]allow_provisioning_in_maintenance" (defaulting to "True") is added to configure this behavior. If it is set to "False", deployment and cleaning will be prevented from nodes in maintenance mode. * Fixes an issue with asynchronous deploy steps that poll for completion where the step could fail to execute. The "deployment_polling" and "cleaning_polling" flags may be used by driver implementations to signal that the driver is polling for completion. See story 2003817 for details. * Fixes an issue in the "idrac" hardware type where a configuration job does not transition to the correct state and start execution during a power on or reboot operation. If the boot device is being changed, the system might complete its POST before the job is ready, leaving the job in the queue, and the system will boot from the wrong device. See bug 2004909 (https://storyboard.openstack.org/#!/story/2004909) for details. * Fixes a bug where ironic would shut a node down upon cleaning failure. Now, the node stays powered on (as documented and intended). * Fixes an issue where baremetal node deployment would fail on clouds with a high number of security groups. Listing the security groups took too long. Instead of listing all security groups, a query filter was added to list only the security groups to be used for the network. (See bug 2006256 (https://storyboard.openstack.org/#!/story/2006256).) * Fixed the issue (https://storyboard.openstack.org/#!/story/2006429) with node being locked for longer than "[console]subprocess_timeout" seconds when shellinabox process fails to start before the specifed timeout elapses. * Fixed a bug when executing "create_configuration" cleaning step for disks of PERC H740P controller, first disks get created and then controller doesn't allow to create next couple disks because controller is getting busy. * Fixes an issue wherein asynchronous out-of-band deploy steps in deployment template fails to execute. See story 2006342 for details. * Fixes an issue where users attempting to leverage non-iPXE UEFI booting would experience failures when their "dhcp_provider" was set to "none". * Fixes a bug in iLO UEFI iSCSI Boot, where it fails if a server has multiple NIC adapters, since Proliant Servers have a limitation of creating only four iSCSI NIC sources and the existing implementation would try to create for more and failed accordingly. * Adds the missing "ipxe" boot interface to the "irmc" hardware type. It is supposed to be used instead of the deprecated "[pxe]ipxe_enabled" configuration option. * Fixes an issue where clean steps of "redfish" BIOS interface do not boot up the IPA ramdisk after cleaning reboot. See story 2006217 for details. * Fixes an issue in ISO creation for UEFI boot mode when efiboot.img file is provided and the directory of location of grub.cfg file set using config "[DEFAULT]/grub_config_path" is not same as that of efiboot.img file. See story 2006218 for details. * Fixes an issue in updating firmware using "update_firmware_sum" clean step from management interface of "ilo" hardware type with an error stating that unable to connect to iLO address due to authentication failure. See story 2006223 for details. * Fixes an issue in powering-on of server in "ilo" hardware type. Server was failing to return success for power-on operation if no bootable device was found. See story 2006288 for details. * Fixes an issue in creation of RAID if none of the 'logical_disks' in 'target_raid_config' have 'controller' parameter. See story 2006316 for details. * Fixes an issue in creation of RAID for "ilo5" RAID interface wherein second time RAID creation fails. See story 2006321 for details. * Provides an opt-in fix to change the default port attachment behavior for deployment and cleaning operations through a new configuration option, "[neutron]add_all_ports". This option causes ironic to transmit all port information to neutron as opposed to only a single physical network port. This enables operators to successfully operate static Port Group configurations with Neutron ML2 drivers, where previously configuration of networking would fail. When these ports are configured with "pxe_enabled" set to "False", neutron will be requested not to assign an IP address to the port. This is to prevent additional issues that may occur depending on physical switch configuration with static Port Group configurations. * Fixes an issue during provisioning network attachment where neutron ports were being created with the same data structure being re-used. Other Notes *********** * This release allows to configure retryable ipmitool exceptions via "[ipmi]additional_retryable_ipmi_errors" so that, depending on the environment, operators could allow retrying ipmitool commands containing specified substrings. Changes in ironic 12.2.0..13.0.0 -------------------------------- e327c58f8 Update release mappings for Train 2fad52ece Release notes cleanup for 13.0.0 (mk2) b164e18f0 Document PXE retries cad66b032 Update env. variables in the documentation 45b03d03b Add iDRAC RAID deploy steps 3e5198225 Don't resume deployment or cleaning on heartbeat when polling 26c4a00c7 Make multinode jobs non-voting 3f3508f0d devstack: wait for conductor to start and register itself b2834e666 Allow retrying PXE boot if it takes too long 1745eea83 Lower MTU override c9349c194 Devstack: Fix iPXE apache log location bug 199a218f5 Serve virtual media boot images from ironic conductor 62579800f Add Redfish inspect interface to idrac HW type f388cd0f3 Add deploy steps for iLO Management interface 93bd867be Do not log an error on heartbeat in deploying/cleaning/rescuing fcb793682 Add an option to abort cleaning and deployment if node is in maintenance 625c71d48 CI: move libvirt images to /opt for standalone and multinode jobs 03471be1e Add first idrac HW type Redfish interface support 7c5839064 Remove cisco references and add release note cd7a15a56 Add `FLOPPY` boot device constant cfc0f5dac Combined gate fixes 68e6daf71 Release notes cleanup for 13.0.0 b3595b3f0 CI: move the fast-track job to the experimental pipeline cbeb9cc79 Remove support for CoreOS images 334a0b0fe Fix gate failure related to jsonschema f147d3ece Minor: change a misleading InvalidState error message 9aab525d4 Build pdf doc cb87c5745 iLO driver doc update 9eebf2603 Use openstack cli in image creation guide c35f7d948 iLO driver doc update 7a0f8698a devstack: save iPXE httpd logs 66a1e649d Prelude for 13.0.0 72176b32a Add a release note for iscsi_verify_attempts deprecation 22db498ea Fix typo in handling of exception FailedToGetIPAddressOnPort 8bbd8883b Add iLO RAID deploy steps e21aad3fd add table of available cleaning steps to documentation 386743148 Prepare for deprecation of iscsi_verify_attempts in ironic-lib 3ef63d9b8 Add software raid release note to ironic 3747e1418 Add ironic-specs link to readme.rst a1340c7e9 Fixed problem with UEFI iSCSI boot for nic adapters dd9c5fced DRAC : clear_job_queue clean step to fix pending bios config jobs f546e8f16 Add deploy steps for iLO BIOS interface 74354b7a7 Follow-up for deploy steps for Redfish BIOS interface b560bade6 Adding file uri support for ipa image location dd02a2163 Adjust placement query for reserved nodes d3e4fe50b Add indicator management harness to ManagementInterface a96f926c2 Adds dhcp-all-interfaces element 1ad73338b Do not wait for console being started on timeout c0799c95e Out-of-band `erase_devices` clean step for Proliant Servers 678114799 Pass target_raid_config field to ironic variable f75957268 Allow deleting unbound ports on active node 27fc3d0bc Follow up to Option to send all portgroup data aa5db417d Lower standalone concurrency to 3 from 4 4af2e14e9 Make ironic_log Ansible callback Python 3 ready 4b5d25474 Remove ironic command bash completion c6b5ebf35 devstack: Fix libvirtd/libvirt-bin detection 1e3b68403 Add iPXE boot interface to 'ilo' hardware type afa611c4e Move to unsafe caching a3ac25f29 Allow to configure additional ipmitool retriable errors f9e2b6f2c Fix exception on provisioning with idrac hw type e9fa1e31f Install sushy if redfish is a hardware type 046399ee6 Add `filename` parameter to Redfish virtual media boot URL b73420ec5 Add set_boot_device hook in `redfish` boot interface 9fab96fc3 Add Redfish Virtual Media Boot support 6ead1038c Follow-up to power sync reno b1986361a Add new method 'apply_configuration' to RAIDInterface f5a676a60 Do not tear down node upon cleaning failure 27f7143eb Switch non-multinode jobs to new-style neutron services 991f9ccec Add deploy steps for Redfish BIOS interface ff3f328f0 Ansible: fix partition_configdrive for logical root_devices d693d4c06 Support power state change callbacks to nova using ksa_adapter 9eccadbf1 Docu: Fix broken link c740ae0a2 Fixing broken links 81e4da55b DRAC : Fix issue for RAID-0 creation for multiple disks for PERC H740P d62c3f4fa Uses IPA-B to build in addition to CoreOS 8f907886a Asynchronous out of band deploy steps fails to execute 7a3d9a664 Clean up RAID documentation 2f7de3264 Enable testing software RAID in the standalone job c7bd03cf6 devstack: allow creating more than one volume for a VM f06240f7d Allow configuring global deploy and rescue kernel/ramdisk c23a96d74 Fix missing print format error 521c08685 Update software RAID configuration documentation 5e8c966a4 Use HTTPProxyToWSGI middleware from oslo 6305ea700 RAID creation fails with 'ilo5' RAID interface b304d1880 RAID create fails if 'controller' is missing in 'target_raid_config' d6774c294 Use openstacksdk for accessing ironic-inspector 083cd4460 CI Documentation ac8b2d01b Enable no IP address to be returned 2b8581af8 Change debug to error for heartbeats 3dfce5f2d CI: stop using pyghmi from git master 49140989d Fixes power-on failure for 'ilo' hardware type 13dcb33fa Creation of UEFI ISO fails with efiboot.img 441575dc5 Remove deprecated Neutron authentication options 01a9726c0 Follow-up to the IntelIPMIHardware patch ba207ba37 Ansible driver: fix deployment with serial specified as root device hint 363e50cab Enable testing adoption in the CI 54054c0e5 Fix serial/wwn gathering for ansible+python3 daddf516b Update api-ref location ddc0fb831 IPA does not boot up after cleaning reboot for 'redfish' bios interface fb664d518 Revert "Add logic to determine Ironic node is HW or not into configure_ironic_dirs" 59787768c Filter security group list on the ID's we expect 8d8402ee1 Clean lower-constraints.txt bd20f3ac2 [Trivial] Fix is_fast_track parameter doc string 0d6ee78f5 Failure in get_sensor_data() of 'redfish' management interface 192301ae6 Abstract away pecan.request/response 62c95a7c9 Fix potential race condition on node power on and reboot 50bfd9067 iLO firmware update fails with 'update_firmware_sum' clean step 2d5f0c8b9 Bump keystonauth and warlock versions 1fcd7a477 Don't install ubuntu efi debs on cent 8fc538bdd Remove the PXE driver page d0c31d748 Ansible module: fix deployment for private and/or shared images d2967b41a Add logic to determine Ironic node is HW or not into install_ironic 0913c9484 Add logic to determine Ironic node is HW or not into configure_ironic_dirs 66b073983 Deal with iPXE boot interface incompatibility in Train 1becd6dda Bump openstackdocstheme to 1.20.0 401cfbc6e Remove deprecated app.wsgi script bc84b7bce devstack: Install arch specific debs only when deploying to that arch 4724d55e9 DRAC: Upgraded RAID delete_config cleaning step 7adc6c21d Fix invalid assert state ac0900add CI: remove quotation marks from TEMPEST_PLUGINS variable 5f18e52b6 Remove CIMC/UCS drivers 5127b6f6d Add IntelIPMIHardware 82abc0bea Collect sensor data in ``redfish`` hardware type c908374ed [Trivial] Software RAID: Documentation edits 2f5ac8421 Software RAID: Add documentation 7eba36e74 Blacklist sphinx 2.1.0 (autodoc bug) 5f8cb199d Follow-up on UEFI/Grub2 job bffb075d2 Adds bandit template and exclude some of tests f568a80e9 Add documentation for IntelIPMI hardware b2ee05a0b Add check on get_endpoint returning None 247234171 Option to send all portgroup data 06dd82bd3 Replace deprecated with_lockmode with with_for_update 12e45f314 Refactoring: flatten the glance service module dcfb4f10f Remove the deprecated glance authentication options caf925349 Incorporate bandit support in CI 0f6639d4e Remove elilo support 7eb0b7287 Add fast-track testing Diffstat (except docs and test files) ------------------------------------- README.rst | 3 +- devstack/files/apache-ipxe-ironic.template | 4 + devstack/files/debs/ironic | 4 +- devstack/lib/ironic | 300 +++++-- devstack/plugin.sh | 3 +- devstack/tools/ironic/scripts/configure-vm.py | 11 +- devstack/tools/ironic/scripts/create-node.sh | 46 +- devstack/tools/ironic/templates/vm.xml | 12 +- driver-requirements.txt | 9 +- ironic/api/__init__.py | 18 + ironic/api/app.py | 5 + ironic/api/controllers/link.py | 4 +- ironic/api/controllers/v1/__init__.py | 63 +- ironic/api/controllers/v1/allocation.py | 53 +- ironic/api/controllers/v1/bios.py | 12 +- ironic/api/controllers/v1/chassis.py | 26 +- ironic/api/controllers/v1/collection.py | 4 +- ironic/api/controllers/v1/conductor.py | 14 +- ironic/api/controllers/v1/deploy_template.py | 19 +- ironic/api/controllers/v1/driver.py | 50 +- ironic/api/controllers/v1/event.py | 3 +- ironic/api/controllers/v1/node.py | 253 +++--- ironic/api/controllers/v1/port.py | 54 +- ironic/api/controllers/v1/portgroup.py | 43 +- ironic/api/controllers/v1/ramdisk.py | 16 +- ironic/api/controllers/v1/utils.py | 124 +-- ironic/api/controllers/v1/volume.py | 5 +- ironic/api/controllers/v1/volume_connector.py | 38 +- ironic/api/controllers/v1/volume_target.py | 38 +- ironic/api/controllers/version.py | 4 +- ironic/api/hooks.py | 7 +- ironic/api/wsgi.py | 7 +- ironic/common/boot_devices.py | 3 + ironic/common/cinder.py | 5 +- ironic/common/components.py | 33 + ironic/common/exception.py | 14 - ironic/common/glance_service/base_image_service.py | 229 ----- .../glance_service/{v2 => }/image_service.py | 202 ++++- ironic/common/glance_service/service_utils.py | 33 - ironic/common/image_service.py | 2 +- ironic/common/images.py | 7 +- ironic/common/indicator_states.py | 30 + ironic/common/keystone.py | 21 + ironic/common/neutron.py | 101 ++- ironic/common/nova.py | 116 +++ ironic/common/pxe_utils.py | 73 +- ironic/common/release_mappings.py | 21 +- ironic/common/swift.py | 4 +- ironic/common/utils.py | 2 +- ironic/conductor/manager.py | 95 +- ironic/conductor/utils.py | 61 +- ironic/conf/__init__.py | 4 +- ironic/conf/api.py | 11 +- ironic/conf/cisco.py | 49 - ironic/conf/conductor.py | 35 + ironic/conf/default.py | 2 +- ironic/conf/drac.py | 9 +- ironic/conf/glance.py | 36 +- ironic/conf/ilo.py | 7 + ironic/conf/inspector.py | 11 - ironic/conf/ipmi.py | 4 + ironic/conf/iscsi.py | 10 +- ironic/conf/neutron.py | 41 +- ironic/conf/nova.py | 34 + ironic/conf/opts.py | 3 +- ironic/conf/pxe.py | 10 + ironic/conf/redfish.py | 22 +- ironic/db/sqlalchemy/api.py | 63 +- ironic/dhcp/base.py | 2 +- ironic/dhcp/neutron.py | 2 +- ironic/drivers/base.py | 169 +++- ironic/drivers/cisco_ucs.py | 61 -- ironic/drivers/drac.py | 14 +- ironic/drivers/ilo.py | 7 +- ironic/{api/app.wsgi => drivers/intel_ipmi.py} | 22 +- ironic/drivers/irmc.py | 3 +- ironic/drivers/modules/agent.py | 9 +- ironic/drivers/modules/agent_base_vendor.py | 65 +- ironic/drivers/modules/agent_config.template | 2 +- ironic/drivers/modules/ansible/deploy.py | 31 +- .../playbooks/callback_plugins/ironic_log.py | 4 +- .../modules/ansible/playbooks/library/facts_wwn.py | 5 +- .../roles/deploy/files/partition_configdrive.sh | 22 +- .../playbooks/roles/discover/tasks/roothints.yaml | 2 +- ironic/drivers/modules/cimc/common.py | 85 -- ironic/drivers/modules/cimc/management.py | 168 ---- ironic/drivers/modules/cimc/power.py | 191 ---- ironic/drivers/modules/console_utils.py | 23 +- ironic/drivers/modules/deploy_utils.py | 89 +- ironic/drivers/modules/drac/inspect.py | 31 +- ironic/drivers/modules/drac/job.py | 16 +- ironic/drivers/modules/drac/management.py | 96 +- ironic/drivers/modules/drac/power.py | 31 +- ironic/drivers/modules/drac/raid.py | 373 ++++++-- ironic/drivers/modules/drac/vendor_passthru.py | 23 +- .../drivers/modules/elilo_efi_pxe_config.template | 17 - ironic/drivers/modules/fake.py | 40 + ironic/drivers/modules/ilo/bios.py | 112 ++- ironic/drivers/modules/ilo/boot.py | 99 +++ ironic/drivers/modules/ilo/management.py | 408 +++++++-- ironic/drivers/modules/ilo/power.py | 23 +- ironic/drivers/modules/ilo/raid.py | 136 ++- ironic/drivers/modules/inspector.py | 66 +- .../v2 => drivers/modules/intel_ipmi}/__init__.py | 0 ironic/drivers/modules/intel_ipmi/management.py | 84 ++ ironic/drivers/modules/ipmitool.py | 7 +- ironic/drivers/modules/ipxe_config.template | 2 +- ironic/drivers/modules/iscsi_deploy.py | 11 +- ironic/drivers/modules/pxe.py | 10 +- ironic/drivers/modules/pxe_base.py | 90 ++ ironic/drivers/modules/pxe_config.template | 2 +- ironic/drivers/modules/pxe_grub_config.template | 2 +- ironic/drivers/modules/redfish/bios.py | 91 +- ironic/drivers/modules/redfish/boot.py | 918 +++++++++++++++++++ ironic/drivers/modules/redfish/management.py | 151 +++- ironic/drivers/modules/ucs/__init__.py | 0 ironic/drivers/modules/ucs/helper.py | 126 --- ironic/drivers/modules/ucs/management.py | 152 ---- ironic/drivers/modules/ucs/power.py | 220 ----- ironic/drivers/redfish.py | 9 + .../unit/drivers/elilo_efi_pxe_config.template | 16 - ...e_config_boot_from_volume_extra_volume.template | 2 +- ...nfig_boot_from_volume_no_extra_volumes.template | 2 +- .../unit/drivers/ipxe_config_timeout.template | 2 +- .../unit/drivers/modules/ansible/test_deploy.py | 48 +- .../unit/drivers/modules/cimc/test_management.py | 127 --- .../unit/drivers/modules/drac/test_management.py | 190 +++- .../drivers/modules/drac/test_periodic_task.py | 85 +- .../unit/drivers/modules/ilo/test_management.py | 824 +++++++++++++---- .../unit/drivers/modules/intel_ipmi}/__init__.py | 0 .../drivers/modules/intel_ipmi/test_intel_ipmi.py | 103 +++ .../drivers/modules/intel_ipmi/test_management.py | 87 ++ .../unit/drivers/modules/redfish/test_bios.py | 176 +++- .../unit/drivers/modules/redfish/test_boot.py | 985 +++++++++++++++++++++ .../unit/drivers/modules/redfish/test_inspect.py | 1 + .../drivers/modules/redfish/test_management.py | 198 ++++- .../unit/drivers/modules/redfish/test_power.py | 1 + .../unit/drivers/modules/redfish/test_utils.py | 1 + .../unit/drivers/modules/test_agent_base_vendor.py | 184 +++- .../unit/drivers/modules/test_console_utils.py | 32 +- .../unit/drivers/modules/test_deploy_utils.py | 103 ++- .../unit/drivers/modules/test_iscsi_deploy.py | 21 + .../unit/drivers/modules/ucs/test_management.py | 130 --- .../unit/drivers/third_party_driver_mock_specs.py | 23 +- lower-constraints.txt | 102 +-- .../run.yaml | 1 - playbooks/legacy/grenade-dsvm-ironic/run.yaml | 1 - ...figurable-ipmi-retriables-b6056f722f6ed3b0.yaml | 7 + ...steps-drac-raid-interface-7023c03a96996265.yaml | 10 + ...-steps-ilo-bios-interface-c73152269701ef80.yaml | 6 + ...-ilo-management-interface-9d0f45954eda643a.yaml | 8 + ...-steps-ilo-raid-interface-732314cea19fe8ac.yaml | 6 + ...ps-redfish-bios-interface-f5e5415108f87598.yaml | 6 + ...dd-redfish-boot-interface-e7e05bdd2c894d80.yaml | 13 + .../add-redfish-sensors-4e2f7e3f8a7c6d5b.yaml | 5 + ...aid-config-ansible-deploy-c9ae81d9d25c62fe.yaml | 8 + ...lean_step_clear_job_queue-7b774d8d0e36d1b2.yaml | 11 + ...s-ilo-ipxe-boot-interface-4fc75292122db80d.yaml | 13 + ...ow-deleting-unbound-ports-fa78069b52f099ac.yaml | 5 + releasenotes/notes/api-none-cdb95e58b69a5c50.yaml | 8 + ...ort-instance-power-update-49c531ef13982e62.yaml | 34 + .../notes/bug-2006266-85da234583ca0c32.yaml | 5 + .../notes/bug-2006275-a5ca234683ca4c32.yaml | 5 + .../notes/bug-2006334-0cd8f59073f56241.yaml | 7 + releasenotes/notes/bug-35702-25da234580ca0c31.yaml | 4 + .../cisco-drivers-deleted-5a42a8c508704c64.yaml | 15 + .../cleaning-maintenance-7ae83b1e4ff992b0.yaml | 10 + .../notes/conf-deploy-image-5adb6c1963b149ae.yaml | 6 + ...ent-cleaning-polling-flag-be13a866a7c302d7.yaml | 8 + ...deprecated-inspector-opts-0520b08dbcd10681.yaml | 8 + .../deprecated-neutron-ops-79abab5b013b7939.yaml | 6 + ...-on-reboot-race-condition-fe712aa9c79ee252.yaml | 16 + ...des-upon-cleaning-failure-a9cda6ae71ed2540.yaml | 11 + ...up-list-add-query-filters-f72cfcefa1e093d2.yaml | 9 + ...onsole-subprocess-timeout-d3eccfe0440013d7.yaml | 7 + ...eation_for_multiple_disks-f47957754fca0312.yaml | 7 + ...-out-of-band-deploy-steps-1f5967e7bfcabbf9.yaml | 6 + ...es-noop-network-with-grub-8fd99a73b593ddba.yaml | 6 + .../glance-deprecations-21e7014b72a1bcef.yaml | 11 + ...d-initial-redfish-support-27f27f18f3c1cd91.yaml | 44 + ...d-redfish-inspect-support-ce74bd3d4a97b588.yaml | 18 + .../ilo-fix-uefi-iscsi-boot-702ced18e28c5c61.yaml | 6 + ...5-oob-sanitize-disk-erase-cc76ea66eb5fe6df.yaml | 12 + .../intel-ipmi-hardware-30aaa65cdbcb779a.yaml | 10 + ...interface-incompatibility-7d0b2bdb8f9deb46.yaml | 10 + .../iscsi-verify-attempts-28b1d00b13ba365a.yaml | 10 + releasenotes/notes/no-coreos-f8717f9bb6a64627.yaml | 7 + ...-proxy-headers-middleware-22188a2976f8f460.yaml | 13 + releasenotes/notes/pxe-retry-762a00ba1089bd75.yaml | 10 + .../notes/remove-app-wsgi-d5887ca28e4b9f00.yaml | 5 + .../remove-elilo-support-7fc1227f66e59084.yaml | 6 + .../notes/software-raid-4a88e6c5af9ea742.yaml | 14 + ...dfish-bios-cleaning-fails-fee32f04dd97cbd2.yaml | 6 + ...8-uefi-iso-creation-fails-ba0180991fdd0783.yaml | 9 + ...sum-firmware-update-fails-622883e4785313c1.yaml | 8 + ...fails-with-no-boot-device-b698fef59b04e515.yaml | 7 + ...2006316-raid-create-fails-c3661e185fb11c9f.yaml | 7 + ...21-ilo5-raid-create-fails-1bb1e648da0db0f1.yaml | 6 + .../notes/train-release-59ff1643ec92c10a.yaml | 9 + .../notes/transmit-all-ports-b570009d1a008067.yaml | 19 + ...rade-delete_configuration-0f0bb43c57278734.yaml | 5 + requirements.txt | 4 +- setup.cfg | 19 +- test-requirements.txt | 2 + tools/bandit.yml | 401 +++++++++ tools/config/ironic-config-generator.conf | 1 + tox.ini | 16 + zuul.d/ironic-jobs.yaml | 69 +- zuul.d/legacy-ironic-jobs.yaml | 4 - zuul.d/project.yaml | 19 +- 297 files changed, 11624 insertions(+), 5635 deletions(-) Requirements updates -------------------- diff --git a/driver-requirements.txt b/driver-requirements.txt index fd0dbc4d3..beb542186 100644 --- a/driver-requirements.txt +++ b/driver-requirements.txt @@ -7 +7 @@ -proliantutils>=2.7.0 +proliantutils>=2.9.1 @@ -9 +8,0 @@ pysnmp>=4.3.0,<5.0.0 -python-ironic-inspector-client>=1.5.0 @@ -11 +9,0 @@ python-scciclient>=0.8.0 -UcsSdk==0.8.2.2;python_version<'3' @@ -15,3 +12,0 @@ python-xclarityclient>=0.1.6 -# The CIMC drivers use the Cisco IMC SDK version 0.7.2 or greater -ImcSdk>=0.7.2 - @@ -19 +14 @@ ImcSdk>=0.7.2 -sushy>=1.6.0 +sushy>=1.9.0 diff --git a/requirements.txt b/requirements.txt index 86c36219d..44c4d681b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13 +13 @@ python-glanceclient>=2.8.0 # Apache-2.0 -keystoneauth1>=3.4.0 # Apache-2.0 +keystoneauth1>=3.15.0 # Apache-2.0 @@ -50 +50 @@ tooz>=1.58.0 # Apache-2.0 -openstacksdk>=0.25.0 # Apache-2.0 +openstacksdk>=0.31.2 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 9ec005c94..ab53cb70f 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -5,0 +6 @@ coverage!=4.4,>=4.0 # Apache-2.0 +ddt>=1.0.1 # MIT @@ -21,0 +23 @@ Pygments>=2.2.0 # BSD +bandit!=1.6.0,>=1.1.0,<2.0.0 # Apache-2.0
participants (1)
-
no-reply@openstack.org