We enthusiastically announce the release of: ironic 10.1.0: OpenStack Bare Metal Provisioning This release is part of the queens 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. Changes in ironic 10.0.0..10.1.0 -------------------------------- a0e08d0 Add some missed test cases in node object tests b631c0f [reno] timeout parameter worked 3363fce Remove unnecessary lines from sample local.conf cfc167e Stop guessing mime types based on URLs 3aaf492 Clean up release notes before a release 4f79cb3 Don't try to lock for vif detach 3625bda Revert grenade jobs to classic drivers 70039cb Handle case when a glance image contains no data 534f7bd Add 10.1 and queens to the release mapping c218546 Do not pass credentials to the ramdisk on cleaning e06e0c5 correct grammar, duplicate the found ffdfa5e Update iRMC document for classic driver deprecation e62a94e correct grammar, duplicate the found e852803 Correct grammar, duplicate the found aed4834 Only set default network interface flat if enabled in config 9e87ceb Fix handling of 'timeout' parameter to power methods a0e1131 Replace chinese quotes to English quotes dec0a09 Zuul: Remove project name 0dedf5a Modify error quotation marks dcc5546 Use zuul.override_checkout instead of custom branch_override var 9a110e0 Add validate_rescue() method to network interface 4773fdf [docs] Firmware based boot from volume for iLO drivers 8010b07 Follow-up patch for api-ref documentation for rescue d336978 Remove sample policy and config files 026bce8 correct referenced url in comments 4cad4cf Remove unused code in unittest 71021bb Fix configure-networking docs d1062cf Migrate the remaining classic drivers to hardware types 954a234 Remove mode argument from boot.(prepare|clean_up)_ramdisk a61ee94 Do not use asserts with business logic e209a6c Add option to specify mac adress in devstack/.../create-node.sh 23851ab Updated from global requirements 2166974 [api-ref] clarify what /v1/lookup returns 8492012 Update FAQ about updates of release notes 3ad7a3e Add documentation for baremetal mech cd7fd1f Flat networks use node.uuid when binding ports. 8f464b9 Add missing ilo vendor to the ilo hardware types c924a37 Follow-up for Switch OneView driver to hpOneView and ilorest libraries 24df981 Soft power operations for OneView hardware type 02378fd Deprecate classic drivers 8db78cb Declare support for Python 3.5 in setup.cfg 9a6c62d Add api-ref and ironic state documentation for rescue f50d975 Mock check_dir in ansible interface tests 00daa18 Add documentation for node traits ccf22ac Fix nits found in node traits bf304a6 Follow-up for Implementation for UEFI iSCSI boot for ILO 3b8c387 Explicitly mark earliest-version for release notes dfa888b Remove unused code in common/neutron.py e3f4a90 Correct link address d2da415 Wait for ironic-neutron-agent to report state d0d78a8 Devstack - use neutron segments (routed provider networks) f5b5269 Zuul: Remove project name c9677cd Add traits field to node notifications b9b4a55 Update description for config params of 'rescue' interface 7394dbb Add rescue interface field to node-related notifications 45d542e Follow-up for API methods for rescue implementation 45e7cad Add support for preparing rescue ramdisk in iLO PXE cc6f7bc Automatically migrate nodes to hardware types 49fabe6 Add API methods for [un]rescue 98570dc Fix unit tests for UEFI iSCSI boot for ILO a05c8ef Follow-up for agent rescue implementation b5a8953 iRMC:Support preparing rescue ramdisk in iRMC PXE ddac41b Redundant alias in import statement 4624c57 Agent rescue implementation d8f10c0 Allow data migrations to accept options 78e689e Resolve race in validating neutron networks due to caching 0386a4f Update api-ref for port group create 8763637 Implementation for UEFI iSCSI boot for ILO 223e9b1 Add node traits to API reference b47d251 Add a timeout for powering on/off a node on oneview 5847431 Fix persistent information when getting boot device f8bf0ad Remove python-oneviewclient from oneview hardware type. 864331a API: Node Traits API c1cce7e Add RPC API and conductor manager for traits 904f445 Be more sane about cleaning d8a291a Fix node update with PostgreSQL fa850c8 Switch the CI to hardware types b1aa044 Migrate python-oneviewclient validations to oneview hardware type c2b6611 Updated from global requirements 2cd7232 Add RPC object for traits 95d7e60 Allow setting {provisioning,cleaning,rescuing}_network in driver_info c6b615c Migrate oneview hardware type to use python-hpOneView 3734277 remeber spelling error a9bc2e6 Add rescuewait timeout periodic task fbee098 Add rescue related methods to network interface 346a9a3 Add XClarity Driver b327f70 [docs] mention new nova scheduler option c3ed7df Add a version argument to traits DB API e492535 Mark multinode job as non-voting 0aae151 Updated from global requirements 0970e3d Fix docs for Sphinx 1.6.6 529e249 fix a typo in ilo.rst: s/fimware/firmware/ 084da02 Adds RPC calls for rescue interface b868f67 Add additional context to contribution guide afc432a node_tag_exists(): raise exception if bad node 88a6761 Join nodes with traits 2b5849b Rework exception handling on deploy failures in conductor 97a8ae1 Introduce hpOneView and ilorest to OneView Diffstat (except docs and test files) ------------------------------------- api-ref/regenerate-samples.sh | 6 +- api-ref/source/baremetal-api-v1-drivers.inc | 4 + api-ref/source/baremetal-api-v1-misc.inc | 3 +- .../source/baremetal-api-v1-node-management.inc | 6 + api-ref/source/baremetal-api-v1-nodes-traits.inc | 133 + api-ref/source/baremetal-api-v1-nodes.inc | 26 +- api-ref/source/baremetal-api-v1-portgroups.inc | 1 + api-ref/source/index.rst | 1 + api-ref/source/parameters.yaml | 55 +- api-ref/source/samples/api-root-response.json | 4 +- api-ref/source/samples/driver-get-response.json | 4 + .../samples/drivers-list-detail-response.json | 8 + api-ref/source/samples/node-create-response.json | 2 + .../source/samples/node-set-traits-request.json | 6 + api-ref/source/samples/node-show-response.json | 2 + .../source/samples/node-traits-list-response.json | 6 + .../samples/node-update-driver-info-response.json | 5 + api-ref/source/samples/node-validate-response.json | 4 + .../samples/nodes-list-details-response.json | 4 + devstack/lib/ironic | 80 +- devstack/tools/ironic/scripts/configure-vm.py | 3 + devstack/tools/ironic/scripts/create-node.sh | 9 +- devstack/tools/ironic/templates/vm.xml | 3 + .../contributor/ironic-multitenant-networking.rst | 12 +- .../install/include/common-prerequisites.inc | 29 + .../install/include/common-prerequisites.rst | 29 - .../include/configure-ironic-api-mod_wsgi.inc | 73 + .../include/configure-ironic-api-mod_wsgi.rst | 73 - .../install/include/configure-ironic-api.inc | 89 + .../install/include/configure-ironic-api.rst | 89 - .../install/include/configure-ironic-conductor.inc | 173 + .../install/include/configure-ironic-conductor.rst | 173 - .../install/include/kernel-boot-parameters.inc | 106 + .../install/include/kernel-boot-parameters.rst | 106 - .../include/local-boot-partition-images.inc | 56 + .../include/local-boot-partition-images.rst | 56 - driver-requirements.txt | 5 +- etc/ironic/README-ironic.conf.txt | 8 + etc/ironic/README-policy.yaml.txt | 8 + etc/ironic/ironic.conf.sample | 4235 -------------------- etc/ironic/policy.json | 5 - etc/ironic/policy.json.sample | 225 -- ironic/api/app.py | 8 + ironic/api/controllers/v1/driver.py | 6 + ironic/api/controllers/v1/node.py | 243 +- ironic/api/controllers/v1/portgroup.py | 9 +- ironic/api/controllers/v1/ramdisk.py | 5 +- ironic/api/controllers/v1/utils.py | 89 + ironic/api/controllers/v1/versions.py | 7 +- ironic/api/middleware/__init__.py | 5 +- ironic/api/middleware/json_ext.py | 43 + ironic/cmd/dbsync.py | 41 +- ironic/common/boot_devices.py | 3 + ironic/common/driver_factory.py | 109 +- ironic/common/exception.py | 12 +- ironic/common/glance_service/base_image_service.py | 8 + ironic/common/neutron.py | 44 +- ironic/common/policy.py | 19 + ironic/common/pxe_utils.py | 21 +- ironic/common/release_mappings.py | 24 +- ironic/common/states.py | 69 +- ironic/conductor/manager.py | 370 +- ironic/conductor/rpcapi.py | 79 +- ironic/conductor/utils.py | 123 +- ironic/conf/__init__.py | 2 + ironic/conf/conductor.py | 12 + ironic/conf/default.py | 22 +- ironic/conf/neutron.py | 16 + ironic/conf/oneview.py | 3 - ironic/conf/opts.py | 1 + ironic/conf/pxe.py | 4 +- ironic/conf/xclarity.py | 33 + ironic/db/api.py | 26 +- ironic/db/sqlalchemy/api.py | 126 +- ironic/db/sqlalchemy/models.py | 6 + ironic/dhcp/neutron.py | 2 +- ironic/drivers/agent.py | 34 + ironic/drivers/base.py | 69 +- ironic/drivers/drac.py | 31 + ironic/drivers/fake.py | 151 +- ironic/drivers/fake_hardware.py | 7 + ironic/drivers/generic.py | 10 +- ironic/drivers/ilo.py | 26 + ironic/drivers/ipmi.py | 45 + ironic/drivers/irmc.py | 18 + ironic/drivers/modules/agent.py | 135 +- ironic/drivers/modules/agent_base_vendor.py | 45 +- ironic/drivers/modules/agent_client.py | 17 +- ironic/drivers/modules/cimc/power.py | 23 +- ironic/drivers/modules/deploy_utils.py | 9 + ironic/drivers/modules/drac/power.py | 20 +- ironic/drivers/modules/fake.py | 19 +- ironic/drivers/modules/ilo/boot.py | 124 +- ironic/drivers/modules/ilo/management.py | 74 +- ironic/drivers/modules/ilo/power.py | 22 +- ironic/drivers/modules/network/common.py | 10 +- ironic/drivers/modules/network/flat.py | 17 +- ironic/drivers/modules/network/neutron.py | 66 +- ironic/drivers/modules/network/noop.py | 5 +- ironic/drivers/modules/oneview/common.py | 454 ++- ironic/drivers/modules/oneview/deploy.py | 36 +- ironic/drivers/modules/oneview/deploy_utils.py | 169 +- ironic/drivers/modules/oneview/inspect.py | 22 +- ironic/drivers/modules/oneview/management.py | 160 +- ironic/drivers/modules/oneview/power.py | 135 +- ironic/drivers/modules/pxe.py | 113 +- ironic/drivers/modules/snmp.py | 19 +- ironic/drivers/modules/ucs/power.py | 20 +- ironic/drivers/modules/xclarity/__init__.py | 0 ironic/drivers/modules/xclarity/common.py | 138 + ironic/drivers/modules/xclarity/management.py | 219 + ironic/drivers/modules/xclarity/power.py | 127 + ironic/drivers/oneview.py | 64 +- ironic/drivers/pxe.py | 63 + ironic/drivers/xclarity.py | 35 + ironic/objects/__init__.py | 1 + ironic/objects/base.py | 2 +- ironic/objects/fields.py | 4 + ironic/objects/node.py | 97 +- ironic/objects/trait.py | 179 + .../unit/api/controllers/v1/test_portgroup.py | 43 + .../unit/drivers/modules/ansible/test_deploy.py | 13 +- .../unit/drivers/modules/ilo/test_management.py | 152 +- .../unit/drivers/modules/network/test_common.py | 29 +- .../unit/drivers/modules/network/test_flat.py | 103 +- .../unit/drivers/modules/network/test_neutron.py | 277 +- .../unit/drivers/modules/oneview/test_common.py | 224 +- .../unit/drivers/modules/oneview/test_deploy.py | 102 +- .../drivers/modules/oneview/test_deploy_utils.py | 467 +-- .../unit/drivers/modules/oneview/test_inspect.py | 40 +- .../drivers/modules/oneview/test_management.py | 313 +- .../unit/drivers/modules/oneview/test_power.py | 410 +- .../unit/drivers/modules/test_agent_base_vendor.py | 135 +- .../unit/drivers/modules/test_agent_client.py | 26 +- .../unit/drivers/modules/test_iscsi_deploy.py | 5 +- .../unit/drivers/modules/xclarity/__init__.py | 0 .../unit/drivers/modules/xclarity/test_common.py | 65 + .../drivers/modules/xclarity/test_management.py | 125 + .../unit/drivers/modules/xclarity/test_power.py | 145 + .../unit/drivers/third_party_driver_mock_specs.py | 34 +- .../run.yaml | 23 +- playbooks/legacy/grenade-dsvm-ironic/run.yaml | 20 +- playbooks/legacy/ironic-dsvm-functional/run.yaml | 2 +- playbooks/legacy/ironic-dsvm-standalone/run.yaml | 11 +- playbooks/legacy/tempest-dsvm-ironic-bfv/run.yaml | 18 +- .../legacy/tempest-dsvm-ironic-inspector/run.yaml | 20 +- .../run.yaml | 16 +- .../run.yaml | 15 +- .../run.yaml | 16 +- .../run.yaml | 16 +- .../run.yaml | 19 +- .../run.yaml | 18 +- .../run.yaml | 17 +- .../legacy/tempest-dsvm-ironic-parallel/run.yaml | 2 +- .../tempest-dsvm-ironic-pxe_ipa-full/run.yaml | 16 +- .../run.yaml | 16 +- ...arameter-to-power-methods-5f632c936497685e.yaml | 6 + .../add-validate-rescue-2202e8ce9a174ece.yaml | 6 + ...assic-drivers-deprecation-de464065187d4c14.yaml | 14 + ...deprecated-inspector-opts-b19a08339712cfd7.yaml | 2 +- .../notes/fake_soft_power-32683a848a989fc2.yaml | 5 + ...oot-device-not-persistent-de6159d8d2b60656.yaml | 7 + ...lo-boot-from-iscsi-volume-41e8d510979c5037.yaml | 5 + .../notes/ilo-vendor-e8d299ae13388184.yaml | 4 + .../notes/image-no-data-c281f638d3dedfb2.yaml | 6 + ...migrate_to_hardware_types-0c85c6707c4f296d.yaml | 33 + .../notes/name-suffix-47aea2d265fa75ae.yaml | 19 + ...e-uuid-for-binding-hostid-afb43097e7204b99.yaml | 35 + ...node-credentials-cleaning-b1903f49ffeba029.yaml | 5 + .../notes/node-traits-2d950b62eea24491.yaml | 28 + .../oneview-timeout-power-db5125e05831d925.yaml | 5 + ...t_flat_network_if_enabled-b5c6ea415239a53c.yaml | 9 + .../notes/queens-prelude-61fb897e96ed64c5.yaml | 31 + .../notes/remove-policy-json-be92ffdba7bda951.yaml | 15 + ...move-python-oneviewclient-b1d345ef861e156e.yaml | 16 + .../notes/rescue-node-87e3b673c61ef628.yaml | 55 + ...isioning_cleaning_network-fb60caa1cf59cdcf.yaml | 16 + ...er-udp-transport-settings-67419be988fcff40.yaml | 2 +- ...-power-operations-oneview-e7ac054668235998.yaml | 5 + .../vif-detach-locking-fix-7be66f8150e19819.yaml | 8 + .../notes/xclarity-driver-622800d17459e3f9.yaml | 9 + releasenotes/source/liberty.rst | 1 + releasenotes/source/mitaka.rst | 1 + releasenotes/source/newton.rst | 1 + releasenotes/source/ocata.rst | 1 + releasenotes/source/pike.rst | 1 + requirements.txt | 7 +- setup.cfg | 7 + test-requirements.txt | 6 +- tox.ini | 2 +- zuul.d/project.yaml | 11 +- 266 files changed, 12076 insertions(+), 7614 deletions(-) Requirements updates -------------------- diff --git a/driver-requirements.txt b/driver-requirements.txt index 952f3a4..6435463 100644 --- a/driver-requirements.txt +++ b/driver-requirements.txt @@ -7 +7 @@ -proliantutils>=2.4.1 +proliantutils>=2.5.0 @@ -11,0 +12,2 @@ python-scciclient>=0.6.0 +python-ilorest-library>=2.1.0 +hpOneView>=4.4.0 @@ -13,0 +16 @@ python-dracclient>=1.3.0 +python-xclarityclient>=0.1.6 diff --git a/requirements.txt b/requirements.txt index 0657480..46533dd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -19 +19 @@ pysendfile>=2.0.0 # MIT -oslo.concurrency>=3.20.0 # Apache-2.0 +oslo.concurrency>=3.25.0 # Apache-2.0 @@ -25 +25 @@ oslo.i18n>=3.15.3 # Apache-2.0 -oslo.log>=3.30.0 # Apache-2.0 +oslo.log>=3.36.0 # Apache-2.0 @@ -32,0 +33 @@ osprofiler>=1.4.0 # Apache-2.0 +os-traits>=0.4.0 # Apache-2.0 @@ -43 +44 @@ retrying!=1.3.0,>=1.2.3 # Apache-2.0 -oslo.versionedobjects>=1.28.0 # Apache-2.0 +oslo.versionedobjects>=1.31.2 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index cf370de..88922ef 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -12 +12 @@ iso8601>=0.1.11 # MIT -oslotest>=1.10.0 # Apache-2.0 +oslotest>=3.2.0 # Apache-2.0 @@ -23 +23 @@ flake8-import-order>=0.13 # LGPLv3 -sphinx>=1.6.2 # BSD +sphinx!=1.6.6,>=1.6.2 # BSD @@ -26 +26 @@ sphinxcontrib-seqdiag>=0.8.4 # BSD -openstackdocstheme>=1.17.0 # Apache-2.0 +openstackdocstheme>=1.18.1 # Apache-2.0