We are excited to announce the release of: ironic 8.0.0: OpenStack Bare Metal Provisioning This release is part of the pike release series. The source is available from: http://git.openstack.org/cgit/openstack/ironic Download the package from: https://tarballs.openstack.org/ironic/ Please report issues through launchpad: http://bugs.launchpad.net/ironic For more details, please see below. 8.0.0 ^^^^^ New Features ************ * Adds DBDeadlock handling which may improve stability when using Galera. See https://bugs.launchpad.net/ironic/+bug/1639338. Number of retries depends on the configuration option "[database]db_max_retries". * Adds possibility to attach/detach VIFs to/from active nodes. * Adds notifications for creation, updates, or deletions of port groups. Event types are formatted as follows: * baremetal.portgroup.{create, update, delete}.{start,end,error} Also adds portgroup_uuid field to port notifications, port payload version bumped to 1.1. Upgrade Notes ************* * All DB API methods doing database writes now retry on deadlock. The "[database]db_max_retries" configuration option specifies the maximum number of times to retry, and can be customised if necessary. * The agent_pyghmi, pxe_ipminative, and fake_ipminative drivers have all been removed from ironic due to lack of testing. Nodes using these drivers should be changed to the agent_ipmitool or pxe_ipmitool driver. * Removes old messaging transport aliases. These are listed below with the new value that should be used. * "ironic.rpc.impl_kombu" -> "rabbit" * "ironic.rpc.impl_qpid" -> "qpid" * "ironic.rpc.impl_zmq" -> "zmq" * Updates required proliantutils version for iLO drivers to 2.2.1. This version has support for HPSUM firmware update and matches requirements to meet global-requirements. Deprecation Notes ***************** * Support for the Image service v1 API has been deprecated along with the "[glance]/glance_api_version" configuration option and will be removed in the *Queens* release. Bug Fixes ********* * Fixes an issue which caused conductor's periodic tasks to stop executing. See https://bugs.launchpad.net/ironic/+bug/1637210. * Fixes an issue with requests to the ironic API service sometimes timing out when running under Apache. This was due to mixing two concurrency models (for handling multiple threads). * Fixed a bug that was causing an increase in CPU usage over time. * An issue with hung iscsi sessions not being cleaned up in case of deploy failure. * Fixes an issue wherein agent based deploy do not call clean up the instance related configurations done on the Ironic node. * Fixes an issue with oneview driver trying to deallocate a node when an error is encountered while performing server profile application. Also ensures only those nodes that are managed by ironic can be deallocated. * Fixes issue with socat console support where an unlimited number of connections could be created, resulting in the prior session being destroyed. Connections are now limited to a single connection per server. Socat now closes the console connection upon disconnect or timeout 10min. To reconnect, users should re-activate the console. * Fixes failure to update a node's driver from a hardware type to a classic driver. Changes in ironic 7.0.0..8.0.0 ------------------------------ d756d06 Revert "[Devstack] Rework VMs connection logic" 25bfdcd Fix base object serialization checks c5da4ae Updated from global requirements 4f10391 Updates to RPC and object version pinning 9186f7f Add release note for messaging alias removal 96eafdc Remove deprecated, untested ipminative driver 4ec88c9 [Devstack] Rework VMs connection logic 75f3b3a Docs: bump tempest microversion caps after branching 0594b85 Add assertion of name to test_list_portgroups test 940c87d Skip PortNotFound when unbinding port 9540813 Remove unnecessary setUp function in testcase e0d128b Remove extra blank space in ClientSide error msg 1d77f1a Updated from global requirements 200ed92 Convert BaseDriver.*_interfaces to tuples a548b5c [doc] Update examples in devstack section 0adb6dd devstack: install python-dracclient if DRAC enabled ef9300c Call clean_up_instance() during node teardown for Agent deploy d31d984 Don't pass sqlite_db in db_options.set_defaults() 338651e Copy and append to static lists beb1867 Define minimum required API ver for portgroups 9bc0678 Add RPC and object version pinning b613a3c Updated from global requirements cc5fc35 Fix docstrings for creating methods in baremetal api tests 7359c36 Extend tests and checks for node VIFs d82fb9a Remove translation of log messages from ironic/conductor af1759d Add functional API tests for portgroups b916511 Revert the move of the logger setup f8e6ade [devstack] Use global requirements for virtualbmc e33afd2 Updates documentation to install PySqlite3 b6dcd76 Remove log translation function calls from ironic.db c5eaafd Fix local copy of scenario manager f7d0fbd Add standalone tests using direct HTTP links 6c1fd8f devstack: When Python 3 enabled, use Python 3 330ba8c Remove old oslo.messaging transport aliases 20ad1e1 Fix file_has_content function for Py3 7fd26bf Fix usage of various deprecated methods 352aacf Prune local copy of tempest.scenario.manager.py 1de3681 devstack: Don't modprobe inside containers 881e5ad Include a copy of tempest.scenario.manager module 0363e15 flake8: Specify 'ironic' as name of app bb8994b Updated from global requirements 7332806 Fix API doc URL in GET / response 3648f06 Add ironic standlaone test with ipmi dynamic driver 677b48c Update new proliantutils version to 2.2.1 e483755 Add Ironic standalone tests 72abce1 Fix typos of filename in api-ref cc9aa3f Updated from global requirements ac075b7 Fix the exception message in tempest plugin 6c6663d Speed up test_touch_conductor_deadlock() 28ccbf7 Cleanup hung iscsi session 632f082 Refactor waiters in our tempest plugin e91f316 Deprecate support for glance v1 598f783 This adds a tempest test for creating a chassis with a specific UUID. aec3663 Address a shell syntax mistake 3f1aa22 Update ironic.conf.sample 0be9166 grenade: Only 'enable_plugin ironic' if not already in conf 66b0bcf Remove overwriting the default value of db_max_retries. 94c5230 Do not load credentials on import in tempest plugin clients.py 77f3b33 Update the Ironic Upgrade guide 0b23a04 Validation before perform node deallocation 5d22cfe Add wsgi handling to ironic-api in devstack 3d02084 Fix updating node.driver to classic 1e560b1 devstack: Make sentry _IRONIC_DEVSTACK_LIB a global variable 4cff2ab Use Sphinx 1.5 warning-is-error a1f1cd8 Fixed release note for DBDeadLock handling 83cf4b7 Remove references to py34 from developer guide bb22ddd Delete release note to fix build 8bc960b Correct typos in doc files 2751212 Clean up eventlet monkey patch comment and reno 547f23c Moved fix-socat-command release note b9ad3de Allow to attach/detach VIFs to active ironic nodes 556b1d0 Move eventlet monkey patch code e5a3a4c Updated from global requirements c95de2f doc: update FAQ for release notes 3229ad1 Update test requirement 0dddf2e Updated from global requirements 8cfbe1b Remove gettext.install() for unit tests 83ba088 Fix missing _ import in driver_factory 3428cb7 Add support for DBDeadlock handling c10a7df Fix BaseBaremetalTest._assertExpected docstring 9c55103 Updated ramdisk API docstrings 009a9ac Trivial: Change hardcoded values in tempest plugin ddd1b6f Developer guide should not include Python 3.4 abc8037 Add testcases for iLO drivers 08766e2 Deduplicate _assertExpected method in tests 7f2ddb3 Remove unused logging import 6561dc0 Use specific end version since liberty is EOL d0a2e13 Use flake8-import-order 142ae0e Document PXE with Spanning Tree in troubleshooting FAQ dfb46e4 Skip VIF tests for standalone ironic 5a33417 Switch to new location for oslo.db test cases 8058716 Explicitly use python 2 for the unit-with-driver-libs tox target f9d9b33 Add ironic port group CRUD notifications 38d1431 Remove logging import unused bb3229e Update release nodes for Ocata 52b38ee reno 'upgrades' should be 'upgrade' 44817b9 Updated from global requirements 975096d Update docs create port group c0830f4 devstack: Adding a README for ironic-bm-logs directory c9a5d1b Move heartbeat processing to separate mixin class 01c8380 Fix some PEP8 issues and Openstack Licensing Diffstat (except docs and test files) ------------------------------------- api-ref/regenerate-samples.sh | 2 +- api-ref/source/samples/api-v1-root-response.json | 2 +- api-ref/source/samples/port-list-respone.json | 18 - api-ref/source/samples/port-list-response.json | 32 +- devstack/files/apache-ipxe-ironic.template | 12 + devstack/files/apache-ironic-api.template | 40 ++ devstack/files/apache-ironic.template | 12 - devstack/files/debs/ironic | 1 + devstack/files/rpms/ironic | 1 + devstack/lib/ironic | 164 ++++- devstack/plugin.sh | 5 + devstack/upgrade/settings | 24 +- devstack/upgrade/upgrade.sh | 9 +- driver-requirements.txt | 3 +- etc/ironic/ironic.conf.sample | 48 +- install-guide/source/setup-drivers.rst | 10 +- install-guide/source/standalone.rst | 2 +- ironic/__init__.py | 22 - ironic/api/app.py | 4 +- ironic/api/controllers/root.py | 4 +- ironic/api/controllers/v1/__init__.py | 8 +- ironic/api/controllers/v1/notification_utils.py | 5 +- ironic/api/controllers/v1/port.py | 31 +- ironic/api/controllers/v1/portgroup.py | 68 +- ironic/api/controllers/v1/ramdisk.py | 10 +- ironic/api/controllers/v1/utils.py | 2 +- ironic/cmd/__init__.py | 12 + ironic/common/context.py | 3 - ironic/common/driver_factory.py | 17 +- ironic/common/neutron.py | 3 + ironic/common/release_mappings.py | 98 +++ ironic/common/rpc.py | 14 +- ironic/common/service.py | 38 +- ironic/common/utils.py | 2 +- ironic/common/wsgi_service.py | 3 - ironic/conductor/base_manager.py | 72 +-- ironic/conductor/manager.py | 203 +++--- ironic/conductor/rpcapi.py | 7 +- ironic/conductor/task_manager.py | 20 +- ironic/conductor/utils.py | 43 +- ironic/conf/default.py | 14 + ironic/conf/glance.py | 5 +- ironic/db/sqlalchemy/api.py | 48 +- ironic/db/sqlalchemy/models.py | 2 +- ironic/drivers/agent.py | 27 - ironic/drivers/base.py | 40 +- ironic/drivers/fake.py | 18 - ironic/drivers/modules/agent.py | 1 + ironic/drivers/modules/agent_base_vendor.py | 183 +++--- ironic/drivers/modules/console_utils.py | 2 +- ironic/drivers/modules/deploy_utils.py | 34 +- ironic/drivers/modules/ilo/vendor.py | 3 - ironic/drivers/modules/ipminative.py | 702 --------------------- ironic/drivers/modules/network/common.py | 89 ++- ironic/drivers/modules/network/neutron.py | 57 +- ironic/drivers/modules/oneview/deploy.py | 2 +- ironic/drivers/modules/oneview/deploy_utils.py | 46 +- ironic/drivers/modules/oneview/inspect.py | 3 - ironic/drivers/modules/oneview/power.py | 8 + ironic/drivers/pxe.py | 30 - ironic/objects/base.py | 35 + ironic/objects/fields.py | 2 +- ironic/objects/port.py | 10 +- ironic/objects/portgroup.py | 49 ++ .../notes/fix-socat-command-afc840284446870a.yaml | 8 - .../unit/drivers/modules/network/test_common.py | 52 +- .../unit/drivers/modules/oneview/test_deploy.py | 2 +- .../drivers/modules/oneview/test_deploy_utils.py | 58 +- .../unit/drivers/modules/oneview/test_power.py | 113 +++- .../unit/drivers/modules/test_agent_base_vendor.py | 60 +- .../unit/drivers/modules/test_console_utils.py | 2 +- .../unit/drivers/modules/test_deploy_utils.py | 92 ++- .../unit/drivers/third_party_driver_mock_specs.py | 16 - ironic_tempest_plugin/README.rst | 6 +- ironic_tempest_plugin/clients.py | 9 +- ironic_tempest_plugin/common/utils.py | 33 + ironic_tempest_plugin/common/waiters.py | 116 ++-- ironic_tempest_plugin/config.py | 31 +- ironic_tempest_plugin/manager.py | 560 ++++++++++++++++ ironic_tempest_plugin/plugin.py | 13 +- ironic_tempest_plugin/services/baremetal/base.py | 28 +- .../services/baremetal/v1/json/baremetal_client.py | 86 ++- .../scenario/ironic_standalone/test_basic_ops.py | 136 ++++ .../add-db-deadlock-handling-6bc10076537f3727.yaml | 12 + ...attach-vif-to-active-node-55963be2ec269043.yaml | 3 + .../apache-multiple-workers-11d4ba52c89a13e3.yaml | 5 + .../notes/bug-1672457-563d5354b41b060e.yaml | 3 + ...clear-hung-iscsi-sessions-d3b55c4c65fa4c8b.yaml | 3 + ...ate-support-for-glance-v1-8b194e6b20cbfebb.yaml | 6 + .../notes/fix-agent-clean-up-9a25deb85bc53d9b.yaml | 6 + ...oneview-deallocate-server-8256e279af837e5d.yaml | 7 + .../notes/fix-socat-command-afc840284446870a.yaml | 8 + ...ng-node-driver-to-classic-16b0d5ba47e74d10.yaml | 4 + ...tgroup-crud-notifications-91204635528972b2.yaml | 10 + .../remove-iboot-wol-amt-27edaf109d28b663.yaml | 18 - .../remove-ipminative-driver-3367d25bbcc41fdc.yaml | 5 + .../remove-messaging-aliases-0a6ba1ed392b1fed.yaml | 9 + ...ate-proliantutils-version-20ebcc22dc2df527.yaml | 6 + releasenotes/source/current-series.rst | 5 - releasenotes/source/index.rst | 14 +- releasenotes/source/liberty.rst | 6 +- releasenotes/source/mitaka.rst | 6 +- releasenotes/source/newton.rst | 6 +- releasenotes/source/ocata.rst | 6 + releasenotes/source/unreleased.rst | 6 +- requirements.txt | 26 +- setup.cfg | 5 +- setup.py | 2 +- test-requirements.txt | 5 +- tox.ini | 3 + 161 files changed, 4121 insertions(+), 2668 deletions(-) Requirements updates -------------------- diff --git a/driver-requirements.txt b/driver-requirements.txt index af57659..19f3afd 100644 --- a/driver-requirements.txt +++ b/driver-requirements.txt @@ -7,2 +7 @@ -proliantutils>=2.2.0 -pyghmi>=0.8.0 +proliantutils>=2.2.1 diff --git a/requirements.txt b/requirements.txt index 849c9e8..d44b8a7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,2 +4,2 @@ -pbr>=1.8 # Apache-2.0 -SQLAlchemy<1.1.0,>=1.0.10 # MIT +pbr>=2.0.0 # Apache-2.0 +SQLAlchemy>=1.0.10 # MIT @@ -9 +9 @@ eventlet!=0.18.3,>=0.18.2 # MIT -WebOb>=1.6.0 # MIT +WebOb>=1.7.1 # MIT @@ -17 +17 @@ pytz>=2013.6 # MIT -stevedore>=1.17.1 # Apache-2.0 +stevedore>=1.20.0 # Apache-2.0 @@ -20,3 +20,3 @@ oslo.concurrency>=3.8.0 # Apache-2.0 -oslo.config!=3.18.0,>=3.14.0 # Apache-2.0 -oslo.context>=2.9.0 # Apache-2.0 -oslo.db>=4.15.0 # Apache-2.0 +oslo.config>=3.22.0 # Apache-2.0 +oslo.context>=2.12.0 # Apache-2.0 +oslo.db>=4.19.0 # Apache-2.0 @@ -25,2 +25,2 @@ oslo.i18n>=2.1.0 # Apache-2.0 -oslo.log>=3.11.0 # Apache-2.0 -oslo.middleware>=3.0.0 # Apache-2.0 +oslo.log>=3.22.0 # Apache-2.0 +oslo.middleware>=3.10.0 # Apache-2.0 @@ -30 +30 @@ oslo.service>=1.10.0 # Apache-2.0 -oslo.utils>=3.18.0 # Apache-2.0 +oslo.utils>=3.20.0 # Apache-2.0 @@ -32 +32 @@ pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 # BSD -requests!=2.12.2,>=2.10.0 # Apache-2.0 +requests!=2.12.2,!=2.13.0,>=2.10.0 # Apache-2.0 @@ -38 +38 @@ keystonemiddleware>=4.12.0 # Apache-2.0 -oslo.messaging>=5.14.0 # Apache-2.0 +oslo.messaging>=5.19.0 # Apache-2.0 @@ -42 +42 @@ jsonschema!=2.5.0,<3.0.0,>=2.0.0 # MIT -psutil>=3.0.1 # BSD +psutil>=3.2.2 # BSD diff --git a/test-requirements.txt b/test-requirements.txt index 579437b..a46c8a7 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4 +4 @@ -hacking<0.13,>=0.12.0 # Apache-2.0 +hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 @@ -21,0 +22 @@ bashate>=0.2 # Apache-2.0 +flake8-import-order==0.11 # LGPLv3 @@ -24 +25 @@ bashate>=0.2 # Apache-2.0 -sphinx!=1.3b1,<1.4,>=1.2.1 # BSD +sphinx>=1.5.1 # BSD