[new][ironic] ironic 6.1.0 release (newton)
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:
http://git.openstack.org/cgit/openstack/ironic
Please report issues through launchpad:
http://bugs.launchpad.net/ironic
For more details, please see below.
6.1.0 ^^^^^
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 http://docs.openstack.org/developer/ironic/drivers/oneview.html.
* 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 http://docs.openstack.org/developer/ironic/deploy/api-audit- support.html.
* 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 sections.
* 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 start:
* "[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 created.
**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 http://docs.openstack.org/developer/ironic/drivers/oneview.html.
* 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 enabled.
* 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
participants (1)
-
no-reply@openstack.org