Mitaka Series (2.3.0 - 3.2.x) Release Notes


Bug Fixes

  • Use only single quotes for strings inside SQL statements. Fixes a crash when PostgreSQL is used as a database backend.


Bug Fixes

  • The “size” root device hint is now always converted to an integer for consistency with IPA.


Bug Fixes

  • Fixes a problem which caused an unhandled TypeError exception to bubble up when inspector was attempting to convert some eDeploy data to integer.

  • Fixed a regression in the firewall code, which causes re-running introspection for an already inspected node to fail.

  • Fixed the “is-empty” condition to return True on missing values.


New Features

Bug Fixes

  • Don’t fail on finish power off if node in ‘enroll’ state. Nodes in ‘enroll’ state are not expected to have power credentials.


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;

  • 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.



Starting with this release, ironic-python-agent becomes the default introspection ramdisk, with the old bash-based ramdisk being deprecated.

New Features

  • Inspector no longer requires old-style “local_gb”, “memory_mb”, “cpus” and “cpu_arch” fields from the introspection ramdisk. They are still supported, though, for compatibility with the old ramdisk.

Upgrade Notes

  • Removed support for introspecting nodes in maintenance mode, deprecated in the liberty cycle. Use “inspecting”, “manageable” or “enroll” states instead.

  • The root_disk_selection processing hook will now error out if root device hints are specified on ironic node, but ironic-python-agent is not used as an introspection ramdisk.

Deprecation Notes

  • Using old bash-based ramdisk is deprecated, please switch to ironic-python-agent as soon as possible.

Bug Fixes

  • The data processing API endpoint now validates that data received from the ramdisk is actually a JSON object instead of failing the internal error later (issue

Other Notes

  • Make debug-level logging more compact by removing newlines from firewall logging and disabling some 3rdparty debug messages by default.

  • Improve logging for ramdisk logs collection.

  • Logging during processing is now more consistent in terms of how it identifies the node. Now we try to prefix the log message with node UUID, BMC address and PXE MAC address (if available). Logging BMC addresses can be disabled via new “log_bmc_address” option in the “processing” section.



This release includes automatic docs generation via Sphinx.

Critical Issues

Security Issues

Bug Fixes

  • Log a warning when add_ports is set to pxe, but no PXE MAC is returned from the ramdisk.

  • Acquire a lock on a node UUID when handling it.

Other Notes

  • IPA (ironic-python-agent) is now fully supported in the devstack plugin and will become the default ramdisk in the next release.

  • Allow autogeneration of database migrations.

  • Introduced new docs generation via Sphinx and ReST.

    • Separate doc folder includes source and build

    • Integration with tox as docs target

    • makefile for manual building

    • Openstack Theme support