We enthusiastically announce the release of: ironic 15.1.0: OpenStack Bare Metal Provisioning This release is part of the victoria 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. 15.1.0 ^^^^^^ New Features ************ * Adds raid interface for ibmc driver which includes "delete_configuration" and "create_configuration" steps. * Enable Basic HTTP authentication middleware. Having noauth as the only option for standalone ironic causes constraints on how the API is exposed on the network. Having some kind of authentication layer behind a TLS deployment eases these constraints. When the config option "auth_strategy" is set to "http_basic" then non-public API calls require a valid HTTP Basic authentication header to be set. The config option "http_basic_auth_user_file" defaults to "/etc/ironic/htpasswd" and points to a file which supports the Apache htpasswd syntax[1]. This file is read for every request, so no service restart is required when changes are made. Like the "noauth" auth strategy, the "http_basic" auth strategy is intended for standalone deployments of ironic, and integration with other OpenStack services cannot depend on a service catalog. The only password digest supported is bcrypt, and the "bcrypt" python library is used for password checks since it supports "$2y$" prefixed bcrypt passwords as generated by the Apache htpasswd utility. To try HTTP basic authentication, the following can be done: * Set "/etc/ironic/ironic.conf" "DEFAULT" "auth_strategy" to "http_basic" * Populate the htpasswd file with entries, for example: "htpasswd -nbB myName myPassword >> /etc/ironic/htpassw" * Make basic authenticated HTTP requests, for example: "curl --user myName:myPassword http://localhost:6385/v1/drivers" [1] https://httpd.apache.org/docs/current/misc/password_encryptions.html * Adds a new "[ipmi]use_ipmitool_retries" option. When set to "True" and timing is supported by ipmitool, the number of retries and command interval will be passed to ipmitool so that ipmitool will do the retries. When set to "False", ironic will do the retries. Default is "True". * Adds an ability to generate network boot templates even for nodes that use local boot via the new "[pxe]enable_netboot_fallback" option. This is required to work around the situation where switching boot devices does not work reliably. * Adds the ability for Ironic to attach a node to a specific port or portgroup. This is accomplished by having the node vif_attach API accept a port_uuid or portgroup_uuid key within vif_info. If one is specified, then Ironic will attempt to attach to the specified port/portgroup. Specifying both returns an error. Known Issues ************ * Some BMCs do not support the "Channel Cipher Suites" command that newer versions of ipmitool use. These versions of ipmitool will resend this command for each ipmitool retry, resulting in long response times. Setting "[ipmi]use_ipmitool_retries" to "false" will avoid this situation by implementing retries on the ironic level. * The SNMP hardware type cannot change boot devices and thus may fail to deploy nodes with local boot. To work around this problem, set "[pxe]enable_netboot_fallback" to "True". * Some redfish-enabled hardware is known not to support persistent boot device setting that is used by the Bare Metal service for deployed instances. The "redfish" hardware type tries to work around this problem, but rebooting such an instance in-band may cause it to boot incorrectly. A predictable boot order should be configured in the node's boot firmware to avoid issues and at least metadata cleaning must be enabled. See this mailing list thread (http://lists.openstack.org/pipermail/openstack- discuss/2020-April/014543.html) for technical details. Upgrade Notes ************* * The "[conductor]api_url" was deprecated and removed, use "[service_catalog]endpoint_override" instead if required to use a specific ironic api url. * The "[cinder]url" was removed, use "[cinder]endpoint_override" instead. * The "[DEFAULT]fatal_exception_format_errors" was removed, use "[ironic_lib]fatal_exception_format_errors" instead. * Operators upgrading from earlier versions using PXE should explicitly set "[pxe]ipxe_bootfile_name", "[pxe]uefi_ipxe_bootfile_name", and possibly "[pxe]ipxe_bootfile_name_by_arch" settings, as well as a iPXE specific "[pxe]ipxe_config_template" override, if required. Setting the "[pxe]ipxe_config_template" to no value will result in the "[pxe]pxe_config_template" being used. The default value points to the supplied standard iPXE template, so only highly customized operators may have to tune this setting. * Updates required ibmcclient version for ibmc drivers to 0.2.2. * A permission setting has been added for "redfish-virtual-media" boot interface, which allows for explicit file permission setting when the driver is used. The default for the new "[redfish]file_permission setting is ``0u644", or 644 if manually changed using "chmod" on the command line. Operators may need to check "/httpboot/redfish" folder permissions if using "redfish- virtual-media" if they were running the conductor with a specific "umask" to work around the permission setting defect. Bug Fixes ********* * Instead of increasing timeout when running long synchronous tasks on ironic-python-agent, ironic now runs them asynchronously and polls the agent until completion. It is no longer necessary to account for long-running tasks when setting "[agent]command_timeout". * Fixes a rare issue where agent successfully powers off a node after deployment, but ironic never learns about it and does another reboot. * Fixes deployment in fast-track mode by keeping the required internal fields ("agent_url" and "agent_secret_token") intact when starting and finishing deployment and cleaning. * Fixes deleting nodes with maintenance mode on and an allocation present. Previously it caused an internal server error. See story 2007823 (https://storyboard.openstack.org/#!/story/2007823) for details. * Change the default for "use_ipmitool_retries" to "False" so that Ironic will do the retries by default. This is needed for certain BMCs that don't support the Cipher Suites command and ipmitool retries take an excessively long time. See story 2007632 (https://storyboard.openstack.org/#!/story/2007632) for additional information. * Cleans up nodes stuck in the "deleting" state on conductor restart. * Fixes fast-track deployments with the "direct" deploy interface that used to hang previously. * Fixes periodic task initialization options to prevent a negative number. If "[conductor]clean_callback_timeout", "[conductor]inspect_wait_timeout" or "[conductor]inspect_wait_timeout" have a negative value an error will be triggered. * Ironic now does not try to allocate the space needed for instance image conversion to raw format if it is already raw. * Addresses the lack of an ability to explicitly set different bootloaders for "iPXE" and "PXE" based boot operations via their respective "ipxe" and "pxe" boot interfaces. * Fixes a bug in "fast track" where Ironic would delete the "agent token" upon exiting cleaning steps. However, if we are in fast track mode, we can preserve the token and continue operations with the agent as it is not powered off during fast track operations. * Fixes a workaround for hardware that does not support persistent boot device setting with the "redfish" or "idrac-redfish" management interface implementation. When such situation is detected, ironic falls back to one-time boot device setting, restoring it on every reboot or power on. For more information, see story 2007733 (https://storyboard.openstack.org/#!/story/2007733). * Fixes the virtual disks creation by changing PERC H740P controller mode from *Enhanced HBA* to *RAID* in delete_configuration clean step. PERC H740P controllers supports RAID mode and Enhanced HBA mode. When the controller is in Enhanced HBA, it creates single disk RAID0 virtual disks of NON-RAID physical disks. Hence the request for VD creation with supported RAID fails due to no available physical disk. This patch converts the PERC H740P RAID controllers to RAID mode if enhanced HBA mode found enabled See bug bug 2007711 (https://storyboard.openstack.org/#!/story/2007711) for more details * Fixes fast track deployment preceeded by managed inspection by providing the ironic API URL to the ramdisk so that it can heartbeat. * Fixes the JSON RPC backend potentially hanging on inability to connect to a conductor. The default timeout is now 120 seconds. The timeout and the number of retries can be adjusted via the configuration options "[json_rpc]timeout" and "[json_rpc]connect_retries" accordingly. * Fixes logic that is applied to port deletions to also consider the presence of a VIF attachment record, which should be removed before attempting to delete the node. Failure to do so can result in erroneous records in the Networking Service. * No longer tries to set "local_gb" to "MAX" when building RAID with the root disk using "MAX" for its size. * To provide a workaround for incorrect boot order problems on some hardware, the "redfish" hardware type now supports the "noop" management interface, similarly to IPMI and SNMP. * Rebooting a node with the "redfish" power interface is now implemented via a power off request followed by power on to avoid returning success when a node stays powered on after the reboot request. * Provides a workaround for hardware that does not support persistent boot device setting with the "redfish" hardware type. When such situation is detected, ironic will fall back to one-time boot device setting, restoring it on every reboot. * Fixes an issue where the folder "/httpboot/redfish" was being created with incorrect permissions. * If the disk format of the image is provided in the instance_info, skip the memory check if it is set to *raw* and raw image streaming is enabled. That allows to stream raw images provided as URL and not through Glance. Other Notes *********** * Ramdisk logs are now collected during cleaning the same way as during deployment. * The following configuration options can now be reloaded without restarting ironic: From "[agent]": "memory_consumed_by_agent", "stream_raw_images", "deploy_logs_*", "image_download_source", "command_timeout" and "neutron_agent_poll_interval". From "[api]": "max_limit", "public_endpoint" and "ramdisk_heartbeat_timeout". From "[conductor]": "heartbeat_timeout", "force_power_state_during_sync", "automated_clean", "soft_power_off_timeout", "power_state_change_timeout", "rescue_password_hash_algorithm" and "require_rescue_password_hashed". From "[DEFAULT]": "default_resource_class", "force_raw_images", "parallel_image_downloads", "default_portgroup_mode" and "require_agent_token". From "[deploy]": "enable_ata_secure_erase", "erase_devices_priority", "erase_devices_metadata_priority", "shred_random_overwrite_iterations", "shred_final_overwrite_with_zeros", "continue_if_disk_secure_erase_fails", "disk_erasure_concurrency", "power_off_after_deploy_failure", "default_boot_option", "default_boot_mode", "configdrive_use_object_store", "fast_track", and "fast_track_timeout". From "[ipmi]": "kill_on_timeout", "disable_boot_timeout", "command_retry_interval", "min_command_interval", "debug" and "additional_retryable_ipmi_errors". From "[iscsi]": "portal_port", "conv_flags" and "verify_attempts". From "[neutron]": "port_setup_delay", "*_network", "*_network_security_groups", "request_timeout", "add_all_ports" and "dhcpv6_stateful_address_count". From "[nova]": "send_power_notifications". From "[pxe]": "pxe_append_params", "default_ephemeral_format", "pxe_config_template", "uefi_pxe_config_template", "pxe_config_template_by_arch", "ip_version" and "ipxe_use_swift". From "[redfish]": "use_swift", "swift_container", "swift_object_expiry_timeout" and "kernel_append_params". Changes in ironic 15.0.0..15.1.0 -------------------------------- 759b722a5 Add documentation on how to propose a release 5f7d84f48 Provide a path to set explicit ipxe bootloaders addbdf7c2 Do not verify error messages from jsonpatch in unit tests c85a33d65 Use assertCountEqual instead of assertItemsEqual, part 2 359d6bca9 Enforce autospec in test_task_manager f26b500ef Follow up of enforce autospec in test_manager daca49022 Follow up of fix uefi jobs with ovmf native ubuntu package af897bc82 Fix missing print format in log message b41bace32 Do not put the whole JSON error from the agent in last_error 0841943c9 Use unittest mock instead of 3rd party mock in test_raid 91b0f7383 Correct Redfish boot once fallback conditional d90459a87 Fix the error message when reached max number of traits cedc4a241 Software RAID: don't try to set local_gb to MAX 4f6374a20 Clean up nodes in DELETING on conductor restart 1a02c79ed Log when a node should be fast-track-able but it's not aac89c214 Fix uefi jobs with native ubuntu ovmf package 00519ba61 Enforce autospec in test_manager 15079e3c9 Prepare release notes and docs for release 15.1 988f61b8a Add ironic 15.1 release mapping 498ab5224 Use getfullargspec to inspect functions f9eb43d1c Fix fast track following managed inspection f1a4725fd Explicitly use python3 for ironic_lib_prefix 296c8669a Fix hacking min version to 3.0.1 d0d772d72 devstack: get rid of python3_enabled d72c42b1f Use IRONIC_VM_SPECS_RAM from ironic-base in ipv6 job 359bc24c9 Update git URLs 325f28043 DRAC: Fix a failure to create virtual disk 0fa90f658 Use virtio bus with uefi 2b412df42 Untie the ramdisk deploy from AgentDeploy a58ca1f7a Enforce autospec in test_utils caf63e403 Enforce autospec in test_flat f2425ad89 Enforce autospec in test_common dc7960982 Update [console]kill_timeout description 130f96d9d Trivial: clarify usage of AgentCommandTimeout in _wait_for_command 2f5456759 Add a bug reporting and triaging guide 58693c7f4 Make test-setup.sh compatible with mysql8 7828fe8b6 agent: poll long-running commands till completion 65480f6b9 Networking boot fallback for local boot f0803493d Fix fast-track with the direct deploy interface 42f28a4d3 Add api-ref for indicators API da49cf69d ironic-standalone, use http basic auth for json-rpc 29d711ad2 Use configure_keystone_authtoken_middleware fbebcc320 Stop allocating double space for raw images b99c71031 Enforce autospec in test_neutron 429c8013f Enforce autospec in test_base_manager 350d84ed4 Enable HTTP Basic authentication for JSON-RPC 0a7608cee Enforce autospec in test_rpc_api and test_steps 11ee8a603 Fix mock callable for Python 3.6 and precedent 0961b1750 Fix: review from dtantsur of 728123 1d84df93d Fix internal server error on deleting nodes with allocations 590916392 Fix agent token and URL handling during fast-track deployment c56777929 Fix Redfish handle no continuous override boot src e8f6fdd56 Allow node vif attach to specify port_uuid or portgroup_uuid 61c42839f CI: make grenade voting again 88b24354a devstack: Use uwsgi binary from path; temporary disable grenade 62408b32a Document http_basic auth strategy 864a0a568 doc: fix endpoint_override for inspector ca1c1b87a Use assertCountEqual instead of assertItemsEqual 69549e5d7 Use unittest.mock instead of mock 30d0296f0 Fix requirements check e8daa0f27 Add virtualbmc as an extra dependency d602543dc [doc] Fix indentation in admin/troubleshooting cd6e5ec49 Feature: Add raid configuration support for ibmc driver 1f2057680 [doc] Extend trouble shooting docs for node stuck in wait states 7a455a3ff devstack: increase concurrency and worker timeout for sushy-tools 697eb0102 Enforce autospec in test_snmp ffca0e5fb Enforce autospec in test_ipxe and test_pxe 2509d282a Use the new extension call for getting partition UUIDs 62b0071ab Enforce autospec in test_deploy_utils module f30d2f348 Follow-up patch for ilo out-of-band `erase_devices` 2e291b69e Add troubleshooting docs on -ing state failures. c6112b01c Enable Basic HTTP authentication middleware 1afb69b25 [doc] Harmonize the prompt for bash commands da28bead6 [doc] Check placement in case of "No valid host found" 5b785569b Fix fast track when exiting cleaning 64674bf0e Block port deletions where vif is present 63bd40c89 Enforce autospec in test_agent_base module 3daffe07a Enforce autospec in test_agent module be4b97828 Move introspection timeout option to base job 14a8b308d Add function definition handling 68cc5fbcb Add validate decorator to expose 2e9fede75 Remove ironic-grenade-dsvm af6cd1093 Fix redfish-virtual-media file permission 6c712454a Enforce autospec in ansible tests 3ae7e6880 Change default to ``False`` for ``use_ipmitool_retries`` bffde661e Enforce autospec in drac tests 0d0d8aae5 Extend vmedia job timeout 0fa282eee agent: do not hard power off if soft power off actually succeeds 6520b373f New configuration parameter to use ipmitool retries 17decbcb9 Add IPv6 ci Job 5f24029c4 Increase callback timeout 488797996 Set default tempest_test_timeout for ironic-base 82f1e0c92 CI: use the default devstack cirros version f266baffc Cap jsonschema 3.2.0 as the minimal version c717f0e49 change devstack ipa-builder default to BRANCHLESS_TARGET_BRANCH 51eff6010 Add the noop management interface to the redfish hardware type 4fe89203a Add agent_token param to docstrings ab262d4ff Make redfish boot interface to use `network_data` 734a0a0cb Add `get_node_network_data` to non-Neutron NetworkInterface cf12521f7 Add `get_node_network_data` method to NetworkInterface d13c6026e Change IRONIC_VM_SPECS_RAM default 16f5950f1 Do not fail when raw image is larger than memory for http c1834cc4b Add py38 package metadata 4a69b6398 [Trivial]Add missing white space between words 271ecdd11 Fix pygments style 4ae482897 Remove iDRAC Redfish boot device known issue 94af61bc1 Revert "Deprecate ibmc" 5750cca0d Increase timeout for introspection in ironic-inspector-tempest df5bb921b Collect tftpd info from journald a2efd0b82 Switch to newer openstackdocstheme and reno versions 846d70698 Fix image type reference 93202bf5a rm duplicate word 'that' d213488dd RAID docs: fix an invalid json example 805a785a3 Change ibmcclient compatible version 38137e6c4 Raise the JSON RPC connection timeout to 2 minutes and disable retries 60c7d97c9 CI: add test-requirements to irrelevant-files a017447ec Encapsulate auth_token middleware f6b9f3435 Pin the python-ibmcclient upper bounds due to six usage d31e71a73 Collect ramdisk logs also during cleaning 1deefcbae Doc building: Silence automated_steps 07fa29999 Remove deprecated [cinder]url dc2a2da1f Remove deprecated [DEFAULT]fatal_exception_format_errors c38465eaa Remove translation sections from setup.cfg 893029493 Add ussuri release notes version bb39f20d3 Fix the wrong description 774bc9264 Cap pycodestyle explicitly to be < 2.6.0 bc79bbd57 Update lower-constraints.txt ead9ecfcb Fix pep8 57e71bae2 Increase timeout value for ironic-base job 68b6378db CI: raise DIB jobs memory to 3 GiB f464e78ef If the "[conductor]XXX_timeout" is less than 0,disable periodic task ccdd5e977 [Trivial] Fix awkward mocking in redfish boot tests 18a8e2f6e redfish: handle hardware that is unable to set persistent boot 2da8a102b Change the name of the inspector job 8562df092 redfish: split reboot into power off followed by power on c5543b572 Enforce autospec in some unit tests modules 14524c265 Add timeout and retries to JSON RPC client 981b24255 Fix 3rd party driver mocks and related tests 6c8579c0d Temporary add per-file-ignores to flake8 tests 50c81cdbc Mark more configuration options as reloadable aa4332254 Silence debug messages from oslo_messaging a83dfd5b9 Do all serialization in the expose decorator 4d2567c2c Use tempest_plugins Zuul CI role 653d4e4ef Add `network_data` field to ironic node object c647408f8 Fix tempest plugin location 5ab51c977 Update grenade job ce878131c Remove testscenarios, testrepository and Babel from test-requirements 627d4dfd1 Monkey patch original current_thread _active 90777c127 Native zuulv3 grenade job for ironic 3e6dfdb3b Remove [conductor]api_url 2051b1979 Imported Translations from Zanata d6e755245 Switch to unittest mock 2ffbfb4b4 Refactor RedfishVirtualMediaBoot 32beb7d98 Add Python3 victoria unit tests 2afbd77c1 Update master for stable/ussuri b4341305d CI: exclude the inspection abort tests from the inspector-redfish-vmedia job 9c69103e3 CI: repair the SNMP job and make it voting. 1673d7b1c Fix configure-vm.py and xml file for centos8 4d810c160 Add PXE reset known issue to the docs 2dc18de2e Add ironic-standalone-redfish 0e401f3af CI: migrate UEFI jobs to Cirros 0.5.1 Diffstat (except docs and test files) ------------------------------------- api-ref/source/baremetal-api-v1-indicators.inc | 154 +++ api-ref/source/baremetal-api-v1-nodes.inc | 4 + api-ref/source/conf.py | 8 +- api-ref/source/index.rst | 1 + api-ref/source/parameters.yaml | 65 ++ api-ref/source/samples/node-create-response.json | 1 + .../node-indicators-component-list-response.json | 45 + .../node-indicators-get-state-response.json | 3 + .../samples/node-indicators-list-response.json | 34 + .../source/samples/node-indicators-set-state.json | 3 + api-ref/source/samples/node-show-response.json | 1 + .../samples/node-update-driver-info-response.json | 1 + .../samples/nodes-list-details-response.json | 2 + babel.cfg | 2 - bindep.txt | 4 +- devstack/common_settings | 26 +- devstack/files/debs/ironic | 32 +- devstack/lib/ironic | 290 ++++-- devstack/plugin.sh | 1 + devstack/tools/ironic/scripts/configure-vm.py | 2 +- devstack/tools/ironic/templates/vm.xml | 9 +- driver-requirements.txt | 2 +- ironic/api/app.py | 17 +- ironic/api/controllers/v1/allocation.py | 3 +- ironic/api/controllers/v1/chassis.py | 3 +- ironic/api/controllers/v1/deploy_template.py | 3 +- ironic/api/controllers/v1/network-data-schema.json | 580 +++++++++++ ironic/api/controllers/v1/node.py | 54 +- ironic/api/controllers/v1/port.py | 3 +- ironic/api/controllers/v1/portgroup.py | 3 +- ironic/api/controllers/v1/ramdisk.py | 1 + ironic/api/controllers/v1/utils.py | 4 +- ironic/api/controllers/v1/versions.py | 6 +- ironic/api/controllers/v1/volume_connector.py | 3 +- ironic/api/controllers/v1/volume_target.py | 3 +- ironic/api/expose.py | 204 +++- ironic/api/functions.py | 182 ++++ ironic/api/hooks.py | 2 +- ironic/api/middleware/__init__.py | 6 +- .../{auth_token.py => auth_public_routes.py} | 13 +- ironic/api/types.py | 26 + ironic/cmd/__init__.py | 11 +- ironic/common/cinder.py | 8 +- ironic/common/exception.py | 4 + ironic/common/images.py | 42 +- ironic/common/json_rpc/__init__.py | 4 +- ironic/common/json_rpc/client.py | 20 +- ironic/common/json_rpc/server.py | 10 +- ironic/common/policy.py | 6 +- ironic/common/pxe_utils.py | 42 +- ironic/common/raid.py | 3 +- ironic/common/release_mappings.py | 23 +- ironic/common/states.py | 4 +- ironic/conductor/cleaning.py | 29 +- ironic/conductor/deployments.py | 12 +- ironic/conductor/manager.py | 39 +- ironic/conductor/rpcapi.py | 1 + ironic/conductor/utils.py | 100 +- ironic/conf/agent.py | 24 +- ironic/conf/api.py | 4 + ironic/conf/cinder.py | 8 - ironic/conf/conductor.py | 21 +- ironic/conf/console.py | 4 +- ironic/conf/default.py | 23 +- ironic/conf/deploy.py | 13 + ironic/conf/ilo.py | 5 +- ironic/conf/ipmi.py | 14 + ironic/conf/iscsi.py | 3 + ironic/conf/json_rpc.py | 19 +- ironic/conf/neutron.py | 13 + ironic/conf/nova.py | 1 + ironic/conf/opts.py | 2 + ironic/conf/pxe.py | 39 +- ironic/conf/redfish.py | 12 + .../cf1a80fdb352_add_node_network_data_field.py | 30 + ironic/db/sqlalchemy/api.py | 19 +- ironic/db/sqlalchemy/models.py | 1 + ironic/drivers/base.py | 20 + ironic/drivers/ibmc.py | 6 + ironic/drivers/modules/agent.py | 153 +-- ironic/drivers/modules/agent_base.py | 140 ++- ironic/drivers/modules/agent_client.py | 130 ++- ironic/drivers/modules/deploy_utils.py | 65 +- ironic/drivers/modules/drac/bios.py | 2 +- ironic/drivers/modules/drac/raid.py | 164 ++- ironic/drivers/modules/ibmc/management.py | 2 - ironic/drivers/modules/ibmc/power.py | 2 - ironic/drivers/modules/ibmc/raid.py | 199 ++++ ironic/drivers/modules/ibmc/utils.py | 2 +- ironic/drivers/modules/ibmc/vendor.py | 23 +- ironic/drivers/modules/image_cache.py | 7 +- ironic/drivers/modules/inspector.py | 5 +- ironic/drivers/modules/ipmitool.py | 15 +- ironic/drivers/modules/irmc/boot.py | 2 +- ironic/drivers/modules/iscsi_deploy.py | 113 +-- ironic/drivers/modules/network/common.py | 77 +- ironic/drivers/modules/pxe.py | 7 +- ironic/drivers/modules/pxe_base.py | 26 +- ironic/drivers/modules/redfish/boot.py | 1067 ++++++++++---------- ironic/drivers/modules/redfish/management.py | 90 +- ironic/drivers/modules/redfish/power.py | 57 +- ironic/drivers/redfish.py | 3 +- ironic/drivers/utils.py | 10 +- ironic/objects/node.py | 29 +- .../unit/api/controllers/v1/test_allocation.py | 12 +- .../unit/api/controllers/v1/test_conductor.py | 12 +- .../api/controllers/v1/test_deploy_template.py | 40 +- .../api/controllers/v1/test_notification_utils.py | 3 +- .../unit/api/controllers/v1/test_portgroup.py | 12 +- .../api/controllers/v1/test_volume_connector.py | 12 +- .../unit/api/controllers/v1/test_volume_target.py | 12 +- .../unit/conductor/test_notification_utils.py | 3 +- .../unit/drivers/modules/ansible/test_deploy.py | 46 +- .../unit/drivers/modules/drac/test_inspect.py | 3 +- .../unit/drivers/modules/drac/test_management.py | 7 +- .../drivers/modules/drac/test_periodic_task.py | 26 +- .../unit/drivers/modules/ibmc/test_management.py | 2 +- .../drivers/modules/ilo/test_firmware_processor.py | 3 +- .../unit/drivers/modules/ilo/test_management.py | 3 +- .../drivers/modules/intel_ipmi/test_management.py | 2 +- .../unit/drivers/modules/irmc/test_inspect.py | 2 +- .../unit/drivers/modules/irmc/test_management.py | 3 +- .../drivers/modules/irmc/test_periodic_task.py | 3 +- .../modules/network/json_samples/network_data.json | 113 +++ .../unit/drivers/modules/network/test_common.py | 219 ++-- .../unit/drivers/modules/network/test_flat.py | 96 +- .../unit/drivers/modules/network/test_neutron.py | 144 +-- .../unit/drivers/modules/network/test_noop.py | 6 + .../unit/drivers/modules/redfish/test_bios.py | 17 +- .../unit/drivers/modules/redfish/test_boot.py | 289 +++--- .../unit/drivers/modules/redfish/test_inspect.py | 3 +- .../drivers/modules/redfish/test_management.py | 116 ++- .../unit/drivers/modules/redfish/test_power.py | 128 ++- .../unit/drivers/modules/redfish/test_utils.py | 2 +- .../unit/drivers/modules/storage/test_cinder.py | 3 +- .../unit/drivers/modules/storage/test_external.py | 2 +- .../unit/drivers/modules/test_agent_client.py | 99 +- .../unit/drivers/modules/test_boot_mode_utils.py | 8 +- .../unit/drivers/modules/test_console_utils.py | 2 +- .../unit/drivers/modules/test_deploy_utils.py | 103 +- .../unit/drivers/modules/test_inspect_utils.py | 3 +- .../unit/drivers/modules/test_iscsi_deploy.py | 2 +- .../unit/drivers/modules/xclarity/test_common.py | 3 +- .../drivers/modules/xclarity/test_management.py | 4 +- .../unit/drivers/modules/xclarity/test_power.py | 2 +- lower-constraints.txt | 100 +- playbooks/ci-workarounds/get_tftpd.yaml | 5 + playbooks/legacy/grenade-dsvm-ironic/run.yaml | 121 --- playbooks/legacy/ironic-dsvm-base/post.yaml | 15 - playbooks/legacy/ironic-dsvm-base/pre.yaml | 22 - .../add-ibmc-raid-interface-0c13826e134fb4ce.yaml | 5 + .../notes/agent-client-poll-ce16fd589e88c95a.yaml | 7 + .../notes/agent-power-off-2115fcfaac030bd0.yaml | 5 + .../notes/agent-token-817a03776bd46d5b.yaml | 6 + .../notes/allocation-delete-26c7c2f1651759f5.yaml | 6 + ...ault_use_ipmitool_retries-2529ce032eae7d1b.yaml | 9 + .../notes/cleaning-logs-dc115b0926ae3982.yaml | 5 + .../notes/del-api-url-eb2ea29aa63a2cb5.yaml | 6 + .../notes/del-cinder-url-cf43cd0336c22878.yaml | 3 + ...l_exception_format_errors-f63b15c8aa460dff.yaml | 5 + releasenotes/notes/deleting-dcdb9cf0d2a6a1a6.yaml | 4 + .../notes/direct-fast-track-d0f43850b6e80751.yaml | 5 + .../disable_periodic_task-590a91c0a5235cfb.yaml | 7 + .../dont-cleanup-cache-twice-0395a50ad723bca8.yaml | 5 + ...licit_ipxe_config_options-d7bf9a743a13f523.yaml | 17 + .../fast-track-with-cleaning-438225116a11662d.yaml | 7 + ...edfish-sadness-workaround-ed02cb310ff369f4.yaml | 11 + .../notes/http-basic-auth-f8c0536eba989918.yaml | 34 + .../notes/ibmcclient-fix-8c6cb49be0aef5f2.yaml | 4 + .../idrac-add-ehba-support-10b90c92b8865364.yaml | 15 + .../inspection-fast-track-ab5165e11d3e9522.yaml | 5 + ...tool-use_ipmitool_retries-b55b2b8ed5cab603.yaml | 16 + .../notes/json-rpc-timeout-ac30eea164b3a294.yaml | 7 + .../notes/netboot-fallback-b208b2c3b40a0d01.yaml | 12 + ...t-ports-with-vif-deletion-3edac3df5aa1becf.yaml | 7 + releasenotes/notes/raid-max-c0920cc44b9779ee.yaml | 5 + .../notes/redfish-noop-mgmt-b61d02b77b1c9d6b.yaml | 6 + .../notes/redfish-power-87062756bce8b047.yaml | 6 + .../notes/redfish-sadness-6e2a37b3f45ef1aa.yaml | 18 + ...tual-media-permission-fix-1909b9cdbbbf9fd1.yaml | 15 + .../notes/reloadable-301ec2aa421abf66.yaml | 48 + ...e-format-for-memory-check-25b1f06701ccdc47.yaml | 6 + .../notes/vif-port-attach-17a9993bf5c21d69.yaml | 8 + releasenotes/source/conf.py | 9 +- releasenotes/source/index.rst | 1 + .../locale/en_GB/LC_MESSAGES/releasenotes.po | 60 +- releasenotes/source/ussuri.rst | 6 + requirements.txt | 4 +- setup.cfg | 18 +- test-requirements.txt | 7 +- tools/test-setup.sh | 4 +- tox.ini | 24 +- zuul.d/ironic-jobs.yaml | 250 ++++- zuul.d/legacy-ironic-jobs.yaml | 45 - zuul.d/project.yaml | 16 +- 337 files changed, 9072 insertions(+), 3017 deletions(-) Requirements updates -------------------- diff --git a/driver-requirements.txt b/driver-requirements.txt index b8d91d0bc..bb016f26e 100644 --- a/driver-requirements.txt +++ b/driver-requirements.txt @@ -20 +20 @@ ansible>=2.7 -python-ibmcclient>=0.1.0 +python-ibmcclient>=0.2.2,<0.3.0 diff --git a/requirements.txt b/requirements.txt index da87b3037..9a59e6777 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14 +14 @@ keystoneauth1>=3.18.0 # Apache-2.0 -ironic-lib>=2.17.1 # Apache-2.0 +ironic-lib>=4.3.0 # Apache-2.0 @@ -43 +43 @@ oslo.versionedobjects>=1.31.2 # Apache-2.0 -jsonschema>=2.6.0 # MIT +jsonschema>=3.2.0 # MIT diff --git a/test-requirements.txt b/test-requirements.txt index 497bcdc99..4d3bdfcea 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4 +4 @@ -hacking>=3.0.0,<3.1.0 # Apache-2.0 +hacking>=3.0.1,<3.1.0 # Apache-2.0 @@ -9,2 +8,0 @@ fixtures>=3.0.0 # Apache-2.0/BSD -mock>=3.0.0 # BSD -Babel!=2.4.0,>=2.3.4 # BSD @@ -18,2 +15,0 @@ testtools>=2.2.0 # MIT -testresources>=2.0.0 # Apache-2.0/BSD -testscenarios>=0.4 # Apache-2.0/BSD @@ -21,0 +18 @@ bashate>=0.5.1 # Apache-2.0 +pycodestyle>=2.0.0,<2.6.0 # MIT