[openstack-announce] [release][ironic] ironic-inspector 3.1.0 release (mitaka)

no-reply at openstack.org no-reply at openstack.org
Thu Mar 10 15:26:57 UTC 2016


We are amped to announce the release of:

ironic-inspector 3.1.0: Hardware introspection for OpenStack Bare
Metal

This release is part of the mitaka release series.

With source available at:

    http://git.openstack.org/cgit/openstack/ironic-inspector

Please report issues through launchpad:

    http://bugs.launchpad.net/ironic-inspector

For more details, please see below.

3.1.0
^^^^^


New Features
************

* Introduced API "POST /v1/introspection/<UUID>/abort" for aborting
  the introspection process.

* New condition plugins "contains" and "matches" allow to match
  value against regular expressions.

* Added new condition plugin "is-empty", which allows to match empty
  string, list, dictionary or None.

* Add a new node_not_found hook - enroll, which allows automatically
  discover Ironic's node.

* Conditions now support comparing fields from node info;

* Actions support formatting to fetch values from introspection
  data. See http://docs.openstack.org/developer/ironic-
  inspector/usage.html #introspection-rules

* Introspection rules conditions got a new generic "invert"
  parameter that inverts the result of the condition.


Upgrade Notes
*************

* Switch required Ironic API version to '1.11', which supports
  'enroll' state.

* Minimum possible value for the "max_concurrency" setting is now 2.

* Removed deprecated support for passing "node_patches" and
  "ports_patches" arguments to processing hooks.

* Ramdisk logs are no longer part of data stored to Swift and
  returned by the API.

* Introspection rules actions 'set-attribute', 'set-capability' and
  'extend-attribute' no longer have the opposite effect on nodes that
  do not match a rule.


Deprecation Notes
*****************

* The rollback actions for introspection rules are deprecated. No
  in- tree actions are using them, 3rdpart should stop using them as
  soon as possible.

* Using the root_device_hint alias for the raid_device plugin is
  deprecated.


Bug Fixes
*********

* Fixed extra_hardware plugin connection to Swift.

* Only issue iptables calls when list of active MAC's changes.

* Dropped rollback actions from 'set-attribute', 'set-capability'
  and 'extend-attribute' introspection rules actions, as they were
  confusing, completely undocumented and broke some real world use
  cases (e.g. setting driver field).

* Introspection rules (e.g. set-attribute action) now accept 'path'
  field without leading forward slash as Ironic cli does.


Other Notes
***********

* Switched to Futurist library for asynchronous tasks.

* Log level for error when node was not found in Inspector cache was
  changed from error to info level. It was done because not_found_hook
  may handle this case, so this wouldn't be error anymore.

Changes in ironic-inspector 3.0.0..3.1.0
----------------------------------------

dab4217 Allow specify log level for Error exception
8688bb3 Updated from global requirements
bc1d71f Deprecate root_device_hint name for raid_device plugin
eb9891b Remove redundant data copying in tests
dfddcd5 Update the troubleshooting guide
3471ec9 Officially deprecate rollback for introspection rules
3975337 Generate API documentation from Python modules
2597501 Fixed warnings during the docs build
8b07533 Refactor service init, shutdown and run into a separate class
48aa522 Fix incorrect string formatting in the SSL code
51f5690 Refactor base test classes
b804efe Move ironic options to common/ironic
b71a3d9 Use dedicated config file for config generator
2f8e105 Recommend using dhcp-sequential-ip in the dnsmasq configuration
e8ecb99 Correct method call to to_dict
5b02024 Use futurist library for asynchronous tasks
59e0f92 [devstack] Improve virtual machines logs
0f8b5de Split ironic-related functions from utils to separate common.ironic module
a5c8c2a Add db migrations tests
cb83e95 Clarify that we don't maintain compatibility for stored data
5086d93 Add enroll_node_not_found hook
8a0b514 Logging configuration options at startup
b5fd510 Add invert option to rule conditions
bbe44d2 Updated from global requirements
f6c60eb Updated from global requirements
d8de403 Fix gate broken by sudden remove of SERVICE_TENANT_NAME variable
061d839 Add new condition: is-empty
a181378 Updated from global requirements
bf86545 Extend conditions and actions
ea93510 Small ValidateInterfacesHook cleanup
31f7a5a Drop rollback actions for set-XX and extend-XX rules actions
f56bf0c Do not set Swift parameters defaults in keyword arguments
e86cec3 Stop storing ramdisk logs with the introspection data
b49021b Expand instructions for DNS on Ubuntu
61d0b85 Always generate fresh uuid in test cases
11899a1 Updated from global requirements
17274a6 Add forward slash for node path patch
7cbbd2d Remove "ramdisk" mentioning in func test contrib
7a3d937 Introduce API for aborting introspection
daa20e2 Do not update firewall rules if list of MAC's did not change
88bac30 Update example.conf
cc422c0 Remove deprecated support for passing patches lists into hooks
c926e1e [devstack] Use the coreos builder for the source build of the ramdisk
40c17e3 Enable Keystone v3 endpoints for Inspector
7ee29da Register the keystone service and endpoint in the devstack plugin
800dedc Clean up documentation on introspection rules conditions
c5a2dd6 Updated from global requirements
b28f1a7 Update translation setup
6dd0de0 Use new introspection data save command in exercise.sh
7477959 Set timeout in gate to 10 minutes
570fd43 Updated from global requirements
d6ff54f Add new conditions: matches and contains
f34b1aa Updated from global requirements
cdf2287 Check whether agent tarball exists

Diffstat (except docs and test files)
-------------------------------------

.gitignore                                         |   1 +
CONTRIBUTING.rst                                   |  17 +-
config-generator.conf                              |   9 +
devstack/exercise.sh                               |   2 +-
devstack/plugin.sh                                 |  39 ++-
example.conf                                       | 134 +++-----
.../locale/ironic-inspector-log-critical.pot       |  39 ---
.../locale/ironic-inspector-log-error.pot          |  55 ---
.../locale/ironic-inspector-log-info.pot           |  86 -----
.../locale/ironic-inspector-log-warning.pot        |  91 -----
ironic-inspector/locale/ironic-inspector.pot       | 220 ------------
ironic_inspector/common/i18n.py                    |   2 +-
ironic_inspector/common/ironic.py                  | 176 ++++++++++
ironic_inspector/common/swift.py                   |  47 ++-
ironic_inspector/conf.py                           |  62 +---
ironic_inspector/db.py                             |   1 +
ironic_inspector/dbsync.py                         |   8 +-
ironic_inspector/firewall.py                       |  20 +-
ironic_inspector/introspect.py                     |  66 +++-
ironic_inspector/main.py                           | 219 +++++++-----
...9a4a81d88_add_invert_field_to_rule_condition.py |  37 ++
ironic_inspector/node_cache.py                     |  38 ++-
ironic_inspector/plugins/base.py                   |  17 +-
ironic_inspector/plugins/discovery.py              | 102 ++++++
ironic_inspector/plugins/example.py                |   3 -
ironic_inspector/plugins/raid_device.py            |   7 +
ironic_inspector/plugins/rules.py                  |  55 +--
ironic_inspector/plugins/standard.py               |  71 ++--
ironic_inspector/process.py                        |  42 ++-
ironic_inspector/rules.py                          |  85 ++++-
ironic_inspector/test/base.py                      |  67 ++--
ironic_inspector/test/functional.py                |  87 ++++-
ironic_inspector/test/test_common_ironic.py        | 118 +++++++
ironic_inspector/test/test_firewall.py             |  56 ++-
ironic_inspector/test/test_introspect.py           | 113 +++++-
ironic_inspector/test/test_main.py                 | 111 +++---
ironic_inspector/test/test_migrations.py           | 380 +++++++++++++++++++++
ironic_inspector/test/test_node_cache.py           | 135 ++++++--
ironic_inspector/test/test_plugins_discovery.py    | 128 +++++++
ironic_inspector/test/test_plugins_rules.py        |  95 +++---
ironic_inspector/test/test_plugins_standard.py     |  12 +-
ironic_inspector/test/test_process.py              |  82 +++--
ironic_inspector/test/test_rules.py                | 105 +++++-
ironic_inspector/test/test_swift.py                |  12 +
ironic_inspector/test/test_utils.py                | 115 +------
ironic_inspector/utils.py                          | 114 +------
.../abort-introspection-ae5cb5a9fbacd2ac.yaml      |   4 +
.../notes/contains-matches-ee28958b08995494.yaml   |   4 +
.../notes/deprecate-rollback-dea95ac515d3189b.yaml |   4 +
...eprecate-root-device-hint-909d389b7efed5da.yaml |   3 +
.../notes/empty-condition-abc707b771be6be3.yaml    |   4 +
.../notes/enroll-hook-d8c32eba70848210.yaml        |   6 +
.../notes/extend-rules-9a9d38701e970611.yaml       |   5 +
.../extra-hardware-swift-aeebf299b9605bb0.yaml     |   3 +
releasenotes/notes/futurist-557fcd18d4eaf1c1.yaml  |   5 +
.../googbye-patches-args-071532024b9260bd.yaml     |   4 +
.../less-iptables-calls-759e89d103df504c.yaml      |   3 +
...nfo-not-found-cache-error-afbc87e80305ca5c.yaml |   5 +
.../no-logs-stored-data-6db52934c7f9a91a.yaml      |   4 +
.../notes/no-rollback-e15bc7fee0134545.yaml        |  10 +
.../patch-head-backslash-24bcdd03ba254bf2.yaml     |   4 +
.../notes/rules-invert-2585173a11db3c31.yaml       |   4 +
requirements.txt                                   |  13 +-
setup.cfg                                          |  23 +-
test-requirements.txt                              |   4 +
tox.ini                                            |   9 +-
71 files changed, 2425 insertions(+), 1361 deletions(-)


Requirements updates
--------------------

diff --git a/requirements.txt b/requirements.txt
index ca0b5f0..fb076cf 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -6 +6 @@ Babel>=1.3 # BSD
-eventlet>=0.17.4 # MIT
+eventlet!=0.18.3,>=0.18.2 # MIT
@@ -7,0 +8 @@ Flask<1.0,>=0.10 # BSD
+futurist>=0.11.0 # Apache-2.0
@@ -13 +14 @@ pbr>=1.6 # Apache-2.0
-python-ironicclient>=0.8.0 # Apache-2.0
+python-ironicclient>=1.1.0 # Apache-2.0
@@ -16,2 +17,2 @@ python-swiftclient>=2.2.0 # Apache-2.0
-oslo.concurrency>=2.3.0 # Apache-2.0
-oslo.config>=3.2.0 # Apache-2.0
+oslo.concurrency>=3.5.0 # Apache-2.0
+oslo.config>=3.7.0 # Apache-2.0
@@ -19 +20 @@ oslo.db>=4.1.0 # Apache-2.0
-oslo.i18n>=1.5.0 # Apache-2.0
+oslo.i18n>=2.1.0 # Apache-2.0
@@ -22 +23 @@ oslo.rootwrap>=2.0.0 # Apache-2.0
-oslo.utils>=3.4.0 # Apache-2.0
+oslo.utils>=3.5.0 # Apache-2.0
diff --git a/test-requirements.txt b/test-requirements.txt
index 87e394c..c77cbb7 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -10,0 +11,4 @@ reno>=0.1.1 # Apache2
+fixtures>=1.3.1 # Apache-2.0/BSD
+testresources>=0.2.4 # Apache-2.0/BSD
+testscenarios>=0.4 # Apache-2.0/BSD
+oslotest>=1.10.0 # Apache-2.0





More information about the OpenStack-announce mailing list