[openstack-announce] [new][ironic] ironic 6.1.0 release (newton)

no-reply at openstack.org no-reply at openstack.org
Thu Aug 11 12:19:51 UTC 2016

We are excited to announce the release of:

ironic 6.1.0: OpenStack Bare Metal Provisioning

This release is part of the newton release series.

With source available at:


Please report issues through launchpad:


For more details, please see below.


New Features

* OneView drivers now support dynamic allocation of nodes in
  OneView, allowing for better resource sharing with non-OpenStack
  users since Server Hardware will be allocated only when the node is
  scheduled to be used. To enable the new allocation feature for a
  node, set the flag "dynamic_allocation=True" on the node's
  "driver_info". More information is available at

* Adds a "resource_class" field to the node resource, which will be
  used by Nova to define which nodes may quantitatively match a Nova
  flavor. Operators should populate this accordingly before deploying
  the Ocata version of Nova.

* Exposes the "local_link_connection" and "pxe_enabled" properties
  of the Port resource to the REST API, raising the API maximum
  version to 1.19.

  * The "pxe_enabled" field indicates whether this Port should be
    used when PXE booting this Node.

  * The "local_link_connection" field may be used to supply the port
    binding profile.

* A new dictionary field "internal_info" is added to the port API
  object. It is readonly from the API side, and can contain any
  internal information ironic needs to store for the port.
  "cleaning_vif_port_id" is being stored inside this dictionary.

* Adds support for socat-based serial console to ipmitool-based
  drivers. These are available by using the "agent_ipmitool_socat" and
  "pxe_ipmitool_socat" drivers.

* The ironic-api service now supports logging audit messages of API
  calls. The following configuration parameters have been added. By
  default auditing of ironic-api service is turned off.

  * "[audit]/enabled"

  * "[audit]/ignore_req_list"

  * "[audit]/audit_map_file"

  Further documentation for this feature is available at

* Adds support for collecting deployment logs from the IPA ramdisk.
  Five new configuration options were added:

  * "[agent]/deploy_logs_collect"

  * "[agent]/deploy_logs_storage_backend"

  * "[agent]/deploy_logs_local_path"

  * "[agent]/deploy_logs_swift_container"

  * "[agent]/deploy_logs_swift_days_to_expire".

* Ironic now emits timing metrics for all API methods to statsd, if
  enabled by the "[metrics]" and "[metrics_statsd]" configuration

* RESTful access to every API resource may now be controlled by
  adjusting policy settings. Defaults are set in code, and remain
  backwards compatible with the previously-included policy.json file.
  Two new roles are checked by default, "baremetal_admin" and
  "baremetal_observer", though these may be replaced or overridden by
  configuration.  The "baremetal_observer" role grants read-only
  access to Ironic's API.

* New API endpoint for deploy ramdisk lookup "/v1/lookup". This
  endpoint is not authenticated to allow ramdisks to access it without
  passing the credentials to them.

* New API endpoint for deploy ramdisk heartbeat
  "/v1/heartbeat/<NODE>". This endpoint is not authenticated to allow
  ramdisks to access it without passing the credentials to them.

* Adds multitenant networking support.

  Ironic now has the concept of "network interfaces" for a node, which
  represent a networking driver.

  There are three network interfaces available:

  * "flat": this replicates the old flat network behavior and is the
    default when using neutron for DHCP.

  * "noop": this replicates the old flat behavior when not using
    neutron for DHCP, and is the default when the configuration option
    "[DHCP]/dhcp_provider" is set to "none".

  * "neutron": this allows for separating the provisioning and
    cleaning networks from the tenant networks, and provides isolation
    from tenant network to tenant network, and tenant network to
    control plane. The following configuration options must be set if
    the neutron interface is enabled, or ironic-conductor will fail to

    * "[neutron]/provisioning_network_uuid"

    * "[neutron]/cleaning_network_uuid"

  A "[DEFAULT]/enabled_network_interfaces" option (which must be set
  for both ironic-api and ironic-conductor services) controls which
  network interfaces are available for use.

  A network interface is set for a node by setting the
  "network_interface" field for the node via the REST API. This field
  is available in API version 1.20 and above. Changing the network
  interface may only be done in the "enroll", "inspecting", and
  "manageable" states.

  The configuration option "[DEFAULT]/default_network_interface" may
  be used to specify which network interface is defined when a node is

  **WARNING: don't set the option
  ``[DEFAULT]/default_network_interface`` before upgrading to this
  release without reading the upgrade notes about it, due to data
  migrations depending on the value.**

* Adds the ability for ironic conductor to pass configurations for
  agent metrics on lookup. When paired with a sufficiently new ironic
  python agent, this will configure the metrics backends.

* Extend the root device hints to identify whether a disk is
  rotational or not.

* Added support to validate iLO SSL certificate in iLO drivers. A
  new configuration option "[ilo]/ca_file" is added to specify the iLO
  CA certificate file. If "[ilo]/ca_file" is specified, the iLO
  drivers will validate iLO SSL certificates.

Upgrade Notes

* Adds a "resource_class" field to the node resource, which will be
  used by Nova to define which nodes may quantitatively match a Nova
  flavor. Operators should populate this accordingly before deploying
  the Ocata version of Nova.

* Collecting logs on deploy failure is enabled by default and the
  logs will be saved to the local disk at the location specified by
  the configuration option "[agent]/deploy_logs_local_path" (by
  default, "/var/log/ironic/deploy"). Operators upgrading may want to
  disable this feature, enable some form of rotation for the logs or
  change the configuration to store the logs in Swift to avoid disk
  space problems.

* During an upgrade, it is recommended that all deployers re-
  evaluate the settings in their "/etc/ironic/policy.json" file. This
  file should now be used only to override default configuration, such
  as by limiting access to the ironic service to specific tenants or
  restricting access to specific API endpoints. A "policy.json.sample"
  file is provided that lists all supported policies.

* Changes the way to configure access credentials for OpenStack
  services clients. For each service, both Keystone session options
  (timeout, SSL-related ones) and Keystone auth_plugin options
  (auth_url, auth_type and corresponding auth_plugin options) should
  be specified in the configuration section for this service.
  Configuration sections affected are:

  * "[neutron]" for Neutron service user

  * "[glance]" for Glance service user

  * "[swift]" for Swift service user

  * "[inspector]" for Ironic Inspector service user

  * "[service_catalog]" *new section* for Ironic service user, used
    to discover Ironic endpoint from Keystone Catalog

  This enables fine tuning of authentication for each service.

  Backward-compatible options handling is provided using values from
  "[keystone_authtoken]" config section, but operators are advised to
  switch to the new config options as the old options are deprecated.
  The old options will be removed during the Ocata cycle. For more
  information on sessions, auth plugins and their settings, please
  refer to http://docs.openstack.org/developer/keystoneauth/.

* Small change in semantics of default for "[neutron]/url" option

  * default is changed to None.

  * For the case when "[neutron]/auth_strategy" is "noauth", default
    means use "http://$my_ip:9696".

  * For the case when "[neutron]/auth_strategy" is "keystone",
    default means to resolve the endpoint from Keystone Catalog.

* New config section "[service_catalog]" for access credentials used
  to discover Ironic API URL from Keystone Catalog. Previously
  credentials from "[keystone_authtoken]" section were used, which is
  now deprecated for such purpose.

* A new configuration option "[api]/restrict_lookup" is added, which
  restricts the lookup API (normally only used by ramdisks) to only
  work when the node is in specific states used by the ramdisk, and
  defaults to True. Operators that need this endpoint to work in any
  state may set this to False, though this is insecure and should not
  be used in normal operation.

* "[DEFAULT]/default_network_interface" configuration option is
  introduced, with empty default value. If set, the specified
  interface will be used as the network interface for nodes that don't
  have "network_interface" field set. If it is not set, the network
  interface is determined by looking at the "[dhcp]/dhcp_provider"
  value. If it is "neutron" - "flat" network interface is the default,
  "noop" otherwise.

  The network interface will be set for all nodes without
  network_interface already set via a database migration. This will be
  set following the logic above. When running database migrations for
  an existing deployment, it's important to check the above
  configuration options to ensure the existing nodes will have the
  expected network_interface. If "[DEFAULT]/default_network_interface"
  is not set, everything should go as expected. If it is set, ensure
  that it is set to the value that you wish existing nodes to use.

* Note that if the configuration option
  "[DEFAULT]/default_network_interface" is set, it must be set in the
  configuration file for both the API and conductor hosts.

* If "neutron" network interface is specified for the configuration
  option "[DEFAULT]/enabled_network_interfaces", then
  "[neutron]/provisioning_network_uuid" and
  "[neutron]/cleaning_network_uuid" configuration options are
  required. If either of them is not specified, the ironic-conductor
  service will fail to start.

Deprecation Notes

* Deprecates pre-allocation feature for the OneView drivers since it
  requires resource allocation to Ironic prior to boot time, which
  makes Server Hardware unavailable to non-OpenStack OneView users.
  Pre-allocation will be removed in the OpenStack "P" release. All
  nodes with "dynamic_allocation=False" set, or that don't have the
  "dynamic_allocation" flag set, will be assumed to be in pre-
  allocation. Users may use the REST API or the "ironic-oneview-cli"
  to migrate nodes from pre-allocation to dynamic allocation. More
  information is available at

* Agent vendor passthru is deprecated and will be removed in Ocata
  release. Operators should update their IPA image to the Newton
  version to use the new replacement API. Driver developers should
  stop using the agent vendor passthru.

* The "[ilo]/clean_priority_erase_devices" configuration option is
  deprecated and will be removed in the Ocata cycle. Please use the
  "[deploy]/erase_devices_priority" option instead.

* The "[keystone_authtoken]" configuration section is deprecated for
  configuring clients for other services (but is still used for
  configuring API token authentication), in favor of the
  "[service_catalog]" section. The ability to configure clients for
  other services via the "[keystone_authtoken]" section will be
  removed during the Ocata cycle.

* The configuration option "[agent]/heartbeat_timeout" was renamed
  to "[api]/ramdisk_heartbeat_timeout". The old variant is deprecated.

* "create_cleaning_ports" and "delete_cleaning_ports" methods in
  DHCP providers are deprecated and will be removed completely in the
  Ocata release. The logic they are implementing should be moved to a
  custom network interface's "add_cleaning_network" and
  "remove_cleaning_network" methods respectively. After that, the
  methods themselves should be removed from DHCP provider so that the
  custom network interface is used instead. "flat" network interface
  does not require "[neutron]/cleaning_network_uuid" for now so as not
  to break standalone deployments upon upgrade, but it will be
  required in the Ocata release if the "flat" network interface is

* Putting periodic tasks on a driver object (rather than interface)
  is deprecated. Driver developers should move periodic tasks from
  driver objects to interface objects.

Security Issues

* Previously, access to Ironic's REST API was "all or nothing".
  With this release, it is now possible to restrict read and write
  access to API resources to specific cloud roles.

Bug Fixes

* Adoption feature logic was updated to prevent ramdisk creation and
  default to instance creation where appropriate based on the driver.

* Adoption documentation has been updated to note that the
  boot_option should likely be defined for nodes by a user leveraging
  the feature.

* Adoption documentation has been updated to note that a user may
  wish to utilize the "noop" network interface that arrived with API
  version 1.20.

* Fixes the issue of not attaching virtual media during cleaning
  operation for vmedia based drivers.

* A node using the "agent_ilo" or "iscsi_ilo" driver now has its
  "driver_info/ilo_deploy_iso" field validated during node validation.

* Clear target_power_state of the nodes locked by the conductor on
  its startup.

* Fixed a bug where the ironic python agent ramdisk was not creating
  an ephemeral partition because the ephemeral partition size was not
  being passed correctly to the agent.

* Do not rely on keystonemiddleware config options for instantiating
  clients for other OpenStack services. This allows changing
  keystonemiddleware options from legacy ones and thus support
  Keystone V3 for token validation.

Other Notes

* The "continue_deploy" and "reboot_to_instance" methods in the
  "BaseAgentVendor" class stopped accepting ** arguments. They were
  never used anyway; drivers should stop passing anything there.

Changes in ironic 6.0.0..6.1.0

9f24731 Refactor OneView dynamic allocation release notes
0fe585a Clean up release notes for 6.1.0
0594cce Refactor multitenant networking release notes
e362836 Updated Dev quickstart for viewing doc changes
eeb81dd Remove duplicate parameters from local.conf example
054eeb6 Check keyword arguments
8c842ec Deprecate putting periodic tasks on a driver object
2f94f9e Updated from global requirements
600e2e4 Update devstack configure_ironic_ssh_keypair
a5291b9 Trivial: Remove useless function call in glance service test
0a8d39a Simplify code by using mask_dict_password (again)
2f84daa Officially deprecate agent passthru classes and API
8af7429 Timing metrics: pxe boot and iscsi deploy driver
5a3c91b Fix the mistakes in Installation Guide doc
dcd93a5 Use devstack test-config phase
4f34242 Rename BaseApiTest.config to app_config
ce19e50 Documentation fixes for iLO SSL Certificate feature
93d2ba4 Metrics for agent client
6ad8529 Simplify code by using mask_dict_password
fd8192b OneView driver docs explaining Dynamic Allocation
6cbea41 Docs: Run py34 tox test before py27
cd7507f Collect deployment logs from IPA
a580593 Fix typo
7eb2b4a Remove oslo-incubator references
8bdd538 Promote agent vendor passthru to core API
fc92d5c Update add nova user to baremetal_admin behaviour
15ab363 Fix typo in Install-guide.rst file
bfdf369 Replacing generic OneViewError w/ InvalidNodeParameter
4483de3 Add Dynamic Allocation feature for the OneView drivers
fd9614d Fix __all__ module attributes
24e02f9 Fix tempest realted exceptions during docs build
c7da7a6 Add keystone policy support to Ironic
e481aab Follow up to keystoneauth patch
1514b2a Add a data migration to fill node.network_interface
906af9e Test that network_interface is explicitly set on POST/PATCH
bedfbf3 Updated from global requirements
e9ea064 Create a custom StringField that can process functions
30fc692 Revert "Devstack should use a prebuilt ramdisk by default"
288f4e6 Fix for "db type could not be determined" error message
ff5347b Update devstack plugin with new auth options
f9ea26e Migrate to using keystoneauth Sessions
be8577b Updating dev quickstart to include compatiblity for newest distros
ced53d5 Update nova scheduler_host_manager config docs
bacc872 Extend the "configuring ironic-api behind mod_wsgi" guide
204a6b2 Add metrics for the ipmitool driver
92edcab Timing metrics for agent deploy classes
84bf484 Pass agent metrics config via conductor
c81bd9e Minor docstring and unittests fixes for IPMIConsole
cedff4e Move default network_interface logic in node object
10ba46f Updated from global requirements
5b752d2 Devstack should use a prebuilt ramdisk by default
8baf29f Updated tests for db migration scripts
46fcfb3 Centralize config options - [agent]
ae6e628 Log full config only once in conductor
f16c657 Add node.resource_class field
395069c Add api-ref for new port fields
295b35c Add support for the audit middleware
641ab43 Change comment regarding network_interface
7706af3 Fix rendering for version 1.14
c5a7385 Use 'UUID', not 'uuid' in exception strings
857372a IPMITool: add IPMISocatConsole and IPMIConsole class
cd88db1 Use assertEqual() instead of assertDictEqual()
4ae92b4 Remove unused code when failing to start console
b90f3c3 Trivial: Fix a trivial flake8 error
a351fd6 Centralize config options - [deploy]
2de6e17 Centralize config options - [api]
7a0d22c Added note to local.conf addressing firewall/proxy blocking Git protocol
f95be90 Bug fixes and doc updates for adoption
56d75b9 Do the VM setup only when requested
2f3864f Remove unused import
4136f65 Remove duplicate copyright.
a9e48a3 Add build-essential to required packages for development
a9216bb Implement new heartbeat for AgentDeploy
430b815 Add Python 3.5 tox venv
f2eda99 Updated from global requirements
67f2eaf Doc update for in-band cleaning support on more drivers
662c566 Updated from global requirements
d36bd6f Support to validate iLO SSL certificate in iLO drivers
4cb3365 Update {configure|cleanup}ironic_provision_network.
9084c64 Add test to verify ironic multitenancy
ad5a06c Add multitenancy devstack configuration examples.
598dee2 Following the hacking rule for string interpolation at logging
6f0aea9 Centralize config options - [DEFAULT]
dac5aee Add py35 to tox environments
15c3665 Metric chassis, driver, node, and port API calls
6c1aa56 Fix fake.FakeBoot.prepare_ramdisk() signature
47985ea Follow-up to 317392
c46da47 Follow-up patch of 0fcf2e8b51e7dbbcde6d4480b8a7b9c807651546
b9ff262 Updated from global requirements
c62e1be Expose node's network_interface field in API
8b2a7bd Update devstack section of quickstart to use agent_ipmitool
2bfd136 Grammar fix in code contribution guide
0fcf2e8 Deprecate [ilo]/clean_priority_erase_devices config
75fc071 Add configure_provision_network function
8fe3207 Update Ironic VM network connection
af78314 Centralize config options - [neutron]
6d84659 Follow-up fixes to 206244
22a80f7 Nova-compatible serial console: socat console_utils
787b9de Updated from global requirements
0a55496 Add multitenancy-related fields to port API object
5041703 Update the deploy drivers with network flipping logic
ab97fa0 Add 'neutron' network interface
f146610 Fix docstring warnings
170ba4f Add and document the "rotational" root device hint
cde1161 Add network interface to base driver class
1805765 Increase devstack BM VM RAM for coreos to boot
8abcf2e Config variable to configure [glance] section
6edfdfa Add support for building ISO for deploy ramdisk
3bc5ebf Add a doc about appending kernel parameters to boot instances
b287c6a Trivial grammar fixes to the upgrade guide
b56f168 Remove unused expected_filter in the unit test
9e9ceec Updated from global requirements
32ac108 Remove white space between print and ()
3ca8ab0 Remove IBootOperationError exception
068c4be Delete bios_wsman_mock.py from DRAC driver
4359979 Correct reraising of exception
219a690 Allow to enroll nodes with oneview driver
0a5bb69 Add internal_info field to ports and portgroups
dbdd01b Centralize config options - [glance]
8458f9b Document API max_limit configuration option
e5c23a2 Fix two types in ironic.conf.sample
790fcef Remove unused LOG
e65fb13 Remove iterated form of side effects
1bdf197 Improve the readability of configuration drive doc part
f30f48e Drop IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA from documentation
58fbfab Allow to use network interfaces in devstack
648f00a Updated from global requirements
28f74a8 Centralize config options - [virtualbox]
4938c8e Centralize config options - [swift]
b054914 Centralize config options - [ssh]
c3d8918 Centralize config options - [snmp]
b203d98 Add Ironic specs process to the code contribution guide
b186297 Add network_interface node field to DB and object
1e2e413 Fix typo in inspection.rst
e5a13e3 Add missing translation marker to clear_node_target_power_state
957e8d1 Throwing an exception when creating a node with tags
e75ff03 Follow-up patch of 9a1aeb76da2ed53e042a94ead8640af9374a10bf
41a489d Fix releasenotes formatting error
86666e7 Improve tests for driver's parse_driver_info()
31e80ab Centralize config options - [seamicro]
de43a33 Centralize config options - [oneview]
d6a9f08 Centralize config options - [keystone]
038d600 Centralize config options - [irmc]
700ad05 Centralize config options - [ipmi]
fffd741 Centralize config options - [inspector]
ba30be8 Centralize config options - [ilo]
97f9664 Introduce new driver call and RPC for heartbeat
f5e6e79 Remove unnecessary calls to dict.keys()
13d25d4 Fail early if ramdisk type is dib, and not building
088f099 Add dbapi and objects functions to get a node by associated MAC addresses
dd0420c Drop references to RPC calls from user-visible errors
0c50ee3 Centralize config options - [iboot]
474251e Updated from global requirements
8e95cdf Replace dict.get(key) in api & conductor tests
b0565fa Use PRIVATE_NETWORK_NAME for devstack plugin
e6c1c16 Create common neutron module
9721dad Updated from global requirements
2e07167 Properly set ephemeral size in agent drivers
2eab1ee Add validation of 'ilo_deploy_iso' in deploy.validate()
e84051e Restore diskimage-builder install
146f6b4 Updated from global requirements
d52077f Clear target_power_state on conductor startup
5f22364 Fix test in test_agent_client.py
9a1aeb7 Fix parameter create-node.sh
b9cf7d4 Add Link-Local-Connection info to ironic port
b12d184 Deployment vmedia operations to run when cleaning

Diffstat (except docs and test files)

api-ref/source/baremetal-api-v1-nodes-ports.inc    |   3 +
api-ref/source/baremetal-api-v1-ports.inc          |  17 +
api-ref/source/parameters.yaml                     |  37 +-
.../source/samples/node-port-detail-response.json  |   9 +-
api-ref/source/samples/port-create-request.json    |   7 +-
api-ref/source/samples/port-create-response.json   |   9 +-
.../source/samples/port-list-detail-response.json  |   9 +-
api-ref/source/samples/port-update-response.json   |   9 +-
devstack/files/debs/ironic                         |   1 +
devstack/files/rpms/ironic                         |   1 +
devstack/lib/ironic                                | 394 +++++++--
devstack/plugin.sh                                 |  15 +
devstack/tools/ironic/scripts/configure-vm.py      |   9 +-
devstack/tools/ironic/scripts/create-node.sh       |  47 +-
devstack/tools/ironic/templates/vm.xml             |   5 +-
etc/ironic/ironic.conf.sample                      | 924 +++++++++++++++++----
etc/ironic/ironic_api_audit_map.conf.sample        |  29 +
etc/ironic/policy.json                             |   6 +-
etc/ironic/policy.json.sample                      |  72 ++
ironic/api/__init__.py                             |  57 --
ironic/api/acl.py                                  |  34 -
ironic/api/app.py                                  |  52 +-
ironic/api/config.py                               |   4 +-
ironic/api/controllers/v1/__init__.py              |  28 +-
ironic/api/controllers/v1/chassis.py               |  34 +
ironic/api/controllers/v1/driver.py                |  31 +
ironic/api/controllers/v1/node.py                  | 207 ++++-
ironic/api/controllers/v1/port.py                  |  97 ++-
ironic/api/controllers/v1/ramdisk.py               | 150 ++++
ironic/api/controllers/v1/types.py                 |  94 +++
ironic/api/controllers/v1/utils.py                 | 101 +++
ironic/api/controllers/v1/versions.py              |  12 +-
ironic/api/hooks.py                                |  29 +-
ironic/api/middleware/__init__.py                  |   4 +-
ironic/cmd/conductor.py                            |  31 +-
ironic/cmd/dbsync.py                               |   4 +-
ironic/common/context.py                           |   5 +-
ironic/common/driver_factory.py                    |  91 +-
ironic/common/exception.py                         |  62 +-
ironic/common/fsm.py                               |   2 +-
ironic/common/glance_service/v2/image_service.py   |  97 +--
ironic/common/hash_ring.py                         |  33 +-
ironic/common/image_service.py                     |  54 +-
ironic/common/images.py                            |  23 +-
ironic/common/keystone.py                          | 194 ++---
ironic/common/network.py                           |  12 +-
ironic/common/neutron.py                           | 259 ++++++
ironic/common/paths.py                             |  22 +-
ironic/common/policy.py                            | 210 ++++-
ironic/common/rpc.py                               |   5 -
ironic/common/service.py                           |  19 +-
ironic/common/swift.py                             |  94 +--
ironic/common/utils.py                             |  50 +-
ironic/conductor/base_manager.py                   |  10 +-
ironic/conductor/manager.py                        |  70 +-
ironic/conductor/rpcapi.py                         |  15 +-
ironic/conf/__init__.py                            |  44 +
ironic/conf/agent.py                               |  91 ++
ironic/conf/api.py                                 |  68 ++
ironic/conf/audit.py                               |  38 +
ironic/conf/auth.py                                |  79 ++
ironic/conf/console.py                             |   8 +-
ironic/conf/default.py                             | 203 +++++
ironic/conf/deploy.py                              |  68 ++
ironic/conf/glance.py                              | 153 ++++
ironic/conf/iboot.py                               |  42 +
ironic/conf/ilo.py                                 |  87 ++
ironic/conf/inspector.py                           |  39 +
ironic/conf/ipmi.py                                |  41 +
ironic/conf/irmc.py                                |  73 ++
ironic/conf/keystone.py                            |  27 +
ironic/conf/metrics.py                             |  55 ++
ironic/conf/metrics_statsd.py                      |  36 +
ironic/conf/neutron.py                             |  66 ++
ironic/conf/oneview.py                             |  53 ++
ironic/conf/opts.py                                | 103 +--
ironic/conf/seamicro.py                            |  34 +
ironic/conf/service_catalog.py                     |  33 +
ironic/conf/snmp.py                                |  41 +
ironic/conf/ssh.py                                 |  38 +
ironic/conf/swift.py                               |  36 +
ironic/conf/virtualbox.py                          |  27 +
ironic/db/api.py                                   |  10 +
...0b163d4481e_add_port_portgroup_internal_info.py |  35 +
...c14cef6dfedf_populate_node_network_interface.py |  44 +
.../dd34e1f1303b_add_resource_class_to_node.py     |  33 +
.../e294876e8028_add_node_network_interface.py     |  31 +
ironic/db/sqlalchemy/api.py                        |  49 +-
ironic/db/sqlalchemy/models.py                     |   5 +
ironic/dhcp/neutron.py                             | 222 ++---
ironic/drivers/agent.py                            |  19 +
ironic/drivers/base.py                             |  97 ++-
ironic/drivers/fake.py                             |  11 +
ironic/drivers/modules/agent.py                    | 399 ++++-----
ironic/drivers/modules/agent_base_vendor.py        | 652 ++++++++-------
ironic/drivers/modules/agent_client.py             |  37 +-
ironic/drivers/modules/amt/vendor.py               |   4 +-
ironic/drivers/modules/console_utils.py            | 133 ++-
ironic/drivers/modules/deploy_utils.py             | 197 +++--
ironic/drivers/modules/drac/management.py          |   7 +-
ironic/drivers/modules/fake.py                     |   2 +-
ironic/drivers/modules/iboot.py                    |  26 +-
ironic/drivers/modules/ilo/boot.py                 |   7 +-
ironic/drivers/modules/ilo/common.py               |  42 +-
ironic/drivers/modules/ilo/deploy.py               |  86 +-
ironic/drivers/modules/ilo/management.py           |  30 +-
ironic/drivers/modules/ilo/power.py                |  17 +-
ironic/drivers/modules/ilo/vendor.py               |   4 +-
ironic/drivers/modules/image_cache.py              |  13 +-
ironic/drivers/modules/inspector.py                |  29 +-
ironic/drivers/modules/ipminative.py               |  22 +-
ironic/drivers/modules/ipmitool.py                 | 117 ++-
ironic/drivers/modules/irmc/boot.py                |  36 +-
ironic/drivers/modules/irmc/common.py              |  37 +-
ironic/drivers/modules/irmc/inspect.py             |  38 +-
ironic/drivers/modules/iscsi_deploy.py             | 122 ++-
ironic/drivers/modules/network/__init__.py         |   0
ironic/drivers/modules/network/flat.py             | 121 +++
ironic/drivers/modules/network/neutron.py          | 212 +++++
ironic/drivers/modules/network/noop.py             |  59 ++
ironic/drivers/modules/oneview/common.py           |  88 +-
ironic/drivers/modules/oneview/deploy.py           | 264 ++++++
ironic/drivers/modules/oneview/deploy_utils.py     | 317 +++++++
ironic/drivers/modules/oneview/management.py       |   4 -
ironic/drivers/modules/oneview/power.py            |  14 +-
ironic/drivers/modules/oneview/vendor.py           |   3 +-
ironic/drivers/modules/pxe.py                      |  10 +
ironic/drivers/modules/seamicro.py                 |  20 +-
ironic/drivers/modules/snmp.py                     |  18 +-
ironic/drivers/modules/ssh.py                      |  20 +-
ironic/drivers/modules/virtualbox.py               |  10 +-
ironic/drivers/oneview.py                          |  31 +-
ironic/drivers/pxe.py                              |  19 +
ironic/drivers/utils.py                            | 109 +++
ironic/netconf.py                                  |  34 -
ironic/objects/fields.py                           |  33 +
ironic/objects/node.py                             |  33 +-
ironic/objects/port.py                             |   6 +-
ironic/objects/portgroup.py                        |   4 +-
.../unit/drivers/modules/amt/test_management.py    |   3 +-
.../unit/drivers/modules/drac/bios_wsman_mock.py   | 273 ------
.../unit/drivers/modules/irmc/test_management.py   |   2 +-
.../drivers/modules/msftocs/test_management.py     |   3 +-
.../drivers/modules/msftocs/test_msftocsclient.py  |   2 +-
.../unit/drivers/modules/msftocs/test_power.py     |   3 +-
.../unit/drivers/modules/network/test_flat.py      |  85 ++
.../unit/drivers/modules/network/test_neutron.py   | 231 ++++++
.../unit/drivers/modules/oneview/test_common.py    | 142 +++-
.../unit/drivers/modules/oneview/test_deploy.py    | 144 ++++
.../drivers/modules/oneview/test_deploy_utils.py   | 349 ++++++++
.../unit/drivers/modules/oneview/test_vendor.py    |  11 +-
.../unit/drivers/modules/test_agent_base_vendor.py | 425 ++++++----
.../unit/drivers/modules/test_agent_client.py      |   5 +-
.../unit/drivers/modules/test_console_utils.py     | 136 ++-
.../unit/drivers/modules/test_deploy_utils.py      | 249 ++++--
.../unit/drivers/modules/test_iscsi_deploy.py      | 109 ++-
.../unit/drivers/third_party_driver_mock_specs.py  |   2 +
ironic_tempest_plugin/config.py                    |   3 +
.../add-agent-erase-fallback-b07613a7042fe236.yaml |   2 +-
...ynamic-allocation-feature-2fd6b4df7943f178.yaml |  20 +
.../add-node-resource-class-c31e26df4196293e.yaml  |  13 +
...-port-advanced-net-fields-55465091f019d962.yaml |  10 +
.../add-port-internal-info-b7e02889416570f7.yaml   |   6 +
...dd-socat-console-ipmitool-ab4402ec976c5c96.yaml |   5 +
.../adding-audit-middleware-b95f2a00baed9750.yaml  |  13 +
.../adoption-feature-update-d2160954a2c36b0a.yaml  |  11 +
releasenotes/notes/agent-api-bf9f18d8d38075e4.yaml |   5 +
.../notes/bug-1570283-6cdc62e4ef43cb02.yaml        |   4 +
.../notes/bug-1592335-7c5835868fe364ea.yaml        |   5 +
...r-node-target-power-state-de1f25be46d3e6d7.yaml |   4 +
.../collect-deployment-logs-2ec1634847c3f6a5.yaml  |  18 +
.../deprecate-agent-passthru-67d1e2cf25b30a30.yaml |   6 +
...mit-metrics-for-api-calls-69f18fd1b9d54b05.yaml |   5 +
...x-ipa-ephemeral-partition-1f1e020727a49078.yaml |   5 +
...se-device-priority-config-509661955a11c28e.yaml |   5 +
.../implement-policy-in-code-cbb0216ef5f8224f.yaml |  22 +
.../notes/keystone-auth-3155762c524e44df.yaml      |  51 ++
.../notes/lookup-heartbeat-f9772521d12a0549.yaml   |  17 +
.../multitenant-networking-0a13c4aba252573e.yaml   |  77 ++
...config-to-agent-on-lookup-6db9ae187c4e8151.yaml |   7 +
.../periodic-tasks-drivers-ae9cddab88b546c6.yaml   |   5 +
...t-device-hints-rotational-c21f02130394e1d4.yaml |   4 +
...validate-ilo-certificates-3ab98bb8cfad7d60.yaml |   7 +
requirements.txt                                   |  18 +-
setup.cfg                                          |  13 +
test-requirements.txt                              |   8 +-
tools/config/ironic-config-generator.conf          |   2 +
tox.ini                                            |   8 +-
278 files changed, 13318 insertions(+), 3921 deletions(-)

Requirements updates

diff --git a/requirements.txt b/requirements.txt
index 94e5339..fc37041 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -12 +12 @@ netaddr!=0.7.16,>=0.7.12 # BSD
-paramiko>=2.0 # LGPL
+paramiko>=2.0 # LGPLv2.1+
@@ -15,2 +15,2 @@ python-glanceclient>=2.0.0 # Apache-2.0
-python-keystoneclient!=1.8.0,!=2.1.0,>=1.7.0 # Apache-2.0
-ironic-lib>=1.3.0 # Apache-2.0
+keystoneauth1>=2.10.0 # Apache-2.0
+ironic-lib>=2.0.0 # Apache-2.0
@@ -19 +19 @@ pytz>=2013.6 # MIT
-stevedore>=1.10.0 # Apache-2.0
+stevedore>=1.16.0 # Apache-2.0
@@ -23 +23 @@ oslo.concurrency>=3.8.0 # Apache-2.0
-oslo.config>=3.10.0 # Apache-2.0
+oslo.config>=3.14.0 # Apache-2.0
@@ -26 +26 @@ oslo.db>=4.1.0 # Apache-2.0
-oslo.rootwrap>=2.0.0 # Apache-2.0
+oslo.rootwrap>=5.0.0 # Apache-2.0
@@ -33 +33 @@ oslo.service>=1.10.0 # Apache-2.0
-oslo.utils>=3.11.0 # Apache-2.0
+oslo.utils>=3.16.0 # Apache-2.0
@@ -43 +43 @@ retrying!=1.3.0,>=1.2.3 # Apache-2.0
-oslo.versionedobjects>=1.9.1 # Apache-2.0
+oslo.versionedobjects>=1.13.0 # Apache-2.0
@@ -46 +46 @@ psutil<2.0.0,>=1.1.1 # BSD
-futurist>=0.11.0 # Apache-2.0
+futurist!=0.15.0,>=0.11.0 # Apache-2.0
diff --git a/test-requirements.txt b/test-requirements.txt
index a470e5e..86db171 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -14 +14 @@ psycopg2>=2.5 # LGPL/ZPL
-python-ironicclient>=1.1.0 # Apache-2.0
+python-ironicclient>=1.6.0 # Apache-2.0
@@ -24 +24 @@ bashate>=0.2 # Apache-2.0
-sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 # BSD
+sphinx!=1.3b1,<1.3,>=1.2.1 # BSD
@@ -28,2 +28,2 @@ oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0
-reno>=1.6.2 # Apache2
-os-api-ref>=0.1.0 # Apache-2.0
+reno>=1.8.0 # Apache2
+os-api-ref>=0.4.0 # Apache-2.0

More information about the OpenStack-announce mailing list