[release-announce] [ironic] ironic 8.0.0 (pike)

no-reply at openstack.org no-reply at openstack.org
Wed Apr 5 10:07:56 UTC 2017


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





More information about the Release-announce mailing list