Train Series Release Notes


Bug Fixes

  • Fixes normalization of bare metal machines in the patch_machine call.

  • Fixes API version negotiation in the following bare metal node calls:

    • set_node_provision_state

    • set_node_power_state

    Previously an unexpectingly low version could be negotiated, breaking certain features, for example calling the provide provisioning action with a node name.


Upgrade Notes

  • Due to the fix in microversion support in keystoneauth, Servers will be fetched using microversion 2.72. Code that assumes the existence of a field in the Server record should be removed, as it does not exist in new microversions and cannot be filled in behind the scenes.

Bug Fixes

  • In April 2019 the microversion support for the Server resource was increased to 2.72. Unfortunately, due to an issue with version discovery documents, this increase never actually became effective. A fix is coming in 3.17.2 of keystoneauth which will unbreak version discovery and cause the microversion support to start working.


New Features

  • Add possibility to report API metrics into InfluxDB.

Bug Fixes

  • Fixes conversion of the bare metal fields argument from SDK to server-side field names (e.g. instance_id to instance_uuid).

  • Fixes using a full Node object as an argument to start_introspection.


New Features

  • Added new option for Connection, strict_proxies. When set to True, Connection will throw a ServiceDiscoveryException if the endpoint for a given service doesn’t work. This is useful for OpenStack services using sdk to talk to other OpenStack services where it can be expected that the deployer config is correct and errors should be reported immediately.


New Features

  • Adds support for fetching specific fields when getting bare metal Node, Port, PortGroup, Chassis and Allocation resources.

  • Added support for setting global_request_id on a Connection. If done, this will cause all requests sent to send the request id header to the OpenStack services. Since Connection can otherwise be used multi-threaded, add a method global_request that returns a new Connection based on the old Connection but on which the new global_request_id has been set. Since a Connection can be used as a context manager, this also means the global_request method can be used in with statements.


Bug Fixes

  • Fixed issue where the dns methods were returning False instead of None when resources were not found.

  • Fixed jsonification under python3.

Other Notes

  • Update betacloud region for Germany


New Features

  • Implements add/remove/set traits API for bare metal nodes.


Bug Fixes

  • Basic networking list calls in the cloud layer been fixed to return an empty list if neutron is not running.

  • Fixed a bug related to metadata’s key name. An exception was raised when setting it to “delete”,” clear” or “key”


Bug Fixes

  • Updated the Rackspace vendor entry to use “False” for the value of xenapi_use_agent instead of false, because that’s what the remote side expects. The recent update to use the Resource layer exposed the incorrect setting causing image uploads to Rackspace to fail.


New Features

  • has_{service_type} is a boolean config option that allows asserting that a given service does not exist or should not be used in a given cloud. Doing this will now cause the corresponding service Proxy object to not be created and in its place is an object that will throw exceptions if used.

  • {service_type}_disabled_reason is a new string config option that can be set to indicate a reason why a service has been disabled. This string will be used in exceptions or log warnings emitted.

Bug Fixes

  • The baremetal calls wait_for_nodes_provision_state, wait_for_allocation and the baremetal introspection call wait_for_introspection now raise ResourceFailure on reaching an error state instead of a generic SDKException.


New Features

  • Added the ability to create a Connection from an oslo.config CONF object. This is primarily intended to be used by OpenStack services using SDK for inter-service communication.


New Features

  • Add support for staging image data.

  • Add possibility to automatically invoke vendor hooks. This can be done either through extending profile (vendor_hook), or passing vendor_hook parameter to the connection. The format of the vendor_hook is the same as in the setuptools ( The hook will get connection as the only parameter.

  • Allows updating name and extra fields of a baremetal allocation.

  • Added dns_domain parameter into the create_network and update_network methods.


New Features

  • Adds support for dns service.

  • Add floating IP Port Forwarding related methods.

  • Add image service info discovery (import constraints and supported stores)

  • In microversion 1.1, Masakari returns recovery_workflow_details information of the notification in GET /notifications/{notification_id} API. Added recovery_workflow_details attribute to Notification class to read the recovery_workflow_details of the notification.

  • When generating a config drive for baremetal, “mkisofs” and “xorrisofs” are now supported beside the already available “genisoimage” binary. This is useful on environment where the “genisoimage” binary is not available but “mkisofs” and/or “xorrisofs” are available.

  • Adds support for the bare metal introspection service.

  • Implements updating the baremetal Node’s maintenance_reason.

  • Adds support for changing bare metal resources by providing a JSON patch. Adds the following calls to the bare metal proxy: patch_node, patch_port, patch_port_group and patch_chassis.

  • Supports Bare Metal API version 1.56, which allows building a config drive on the server side from a provided dictionary.

  • Added methods to manage object store temp-url keys and generate signatures needed for FormPost middleware.

  • The auth_url will be used for the default value of identity_endpoint_override in the absence of project or system-scope information. This should simplify some actions such as listing available projects.

  • Added support for collecting and reporting stats on calls made to statsd and prometheus.

Upgrade Notes

  • When a known service cannot be resolved to a supported version, an exception is now thrown instead of just returning a blank Proxy object. This allows returning sane errors to users.

Deprecation Notes

  • The set_node_instance_info call is deprecated, use patch_machine with the same arguments instead.

  • The purge_node_instance_info call is deprecated, use patch_machine or update_machine instead.

  • Requesting volumes or backups with details from block_storage will return objects of classes Volume and Backup correspondingly, instead of VolumeDetail and BackupDetail.

  • Listing servers with details servers(details=True) will return instances of the Server class instead of ServerDetails.

Bug Fixes

  • The get_server_by_id method is supposed to return None if the server in question can’t be found, but a regression was introduced causing it to raise ResourceNotFound instead. This has been corrected and get_server_by_id returns None correctly again.

  • Fixes to actually handle the network_data argument.

Other Notes

  • openstack.resource.Resource.find now can use the database back-end to filter by name. If the resource class has “name” in the query parameters, this function will add this filter parameter in the “list” command, instead of retrieving the whole list and then manually filtering.