[release-announce] [openstacksdk] openstacksdk 0.10.0 (queens)

no-reply at openstack.org no-reply at openstack.org
Tue Jan 16 15:18:06 UTC 2018


We joyfully announce the release of:

openstacksdk 0.10.0: An SDK for building applications to work with
OpenStack

This release is part of the queens release series.

Download the package from:

    https://pypi.python.org/pypi/openstacksdk

For more details, please see below.

0.10.0
^^^^^^


Prelude
*******

Fixed a bug where a project was always enabled upon update, unless
"enabled=False" is passed explicitly.

Swiftclient instantiation now provides authentication information so
that long lived swiftclient objects can reauthenticate if necessary.
This should be a temporary situation until swiftclient supports
keystoneauth sessions at which point os-client-config will instantiate
swiftclient with a keystoneauth session.

This release marks the beginning of the path towards removing all of
the 'python-*client' libraries as dependencies. Subsequent releases
should expect to have fewer and fewer library depdencies.


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

* Added a new property, 'current_user_id' which contains the id of
  the currently authenticated user from the token.

* All get and search functions can now take a jmespath expression in
  their filters parameter.

* Add a list_flavor_access method to list all the projects/tenants
  allowed to access a given flavor.

* Added get_server_console method to fetch the console log from a
  Server. On clouds that do not expose this feature, a debug line will
  be logged and an empty string will be returned.

* Added flag "show_all" to list_images. The behavior of Glance v2 to
  only show shared images if they have been accepted by the user can
  be confusing, and the only way to change it is to use
  search_images(filters=dict(member_status='all')) which isn't
  terribly obvious. "show_all=True" will set that flag, as well as
  disabling the filtering of images in "deleted" state.

* Add description parameter to create_user, available on Keystone v3

* Add support for Designate recordsets resources, with the usual
  methods (search/list/get/create/update/delete).

* Add support for Designate zones resources, with the usual methods
  (search/list/get/create/update/delete).

* Add tags support when creating a stack, as specified by the
  openstack orchestration api at [1]

  [1]https://developer.openstack.org/api-ref/orchestration/v1/#create-
  stack

* Add support for host aggregates and host aggregate membership.

* Add support for Magnum baymodels, with the usual methods
  (search/list/get/create/update/delete). Due to upcoming rename in
  Magnum from baymodel to cluster_template, the shade functionality
  uses the term cluster_template. However, baymodel aliases are
  provided for each api call.

* Add support for listing Magnum services.

* Adds support to create and delete server groups.

* Add update_server method to update name or description of a
  server.

* Add the ability to update a keystone service information. This
  feature is not available on keystone v2.0. The new function,
  update_service(), allows the user to update description, name of
  service, service type, and enabled status.

* Added methods for making new cloud connections based on the
  current OpenStackCloud. This should enable working more easily
  across projects or user accounts.

* Added "group" parameter to create_server to allow booting a server
  into a specific server group.

* Swiftclient instantiation now provides authentication information
  so that long lived swiftclient objects can reauthenticate if
  necessary.

* Add support for explicit v2password auth type.

* Add SSL support to VEXXHOST vendor profile.

* Add zetta.io cloud vendor profile.

* Add support for Cinder volume backup resources, with the usual
  methods (search/list/get/create/delete).

* If shade has to create objects in swift to upload an image, it
  will now delete those objects upon successful image creation as they
  are no longer needed. They will also be deleted on fatal import
  errors.

* Add a field to vendor cloud profiles to indicate active,
  deprecated and shutdown status.  A message to the user is triggered
  when attempting to use cloud with either deprecated or shutdown
  status.

* Add new APIs, OperatorCloud.get_compute_quotas(),
  OperatorCloud.set_compute_quotas() and
  OperatorCloud.delete_compute_quotas() to manage nova quotas for
  projects and users

* get_compute_usage now has a default value for the start parameter
  of 2010-07-06. That was the date the OpenStack project started. It's
  completely impossible for someone to have Nova usage data that goes
  back further in time. Also, both the start and end date parameters
  now also accept strings which will be parsed and timezones will be
  properly converted to UTC which is what Nova expects.

* Adds ability to add a config setting to clouds.yaml to disable
  fetching extra_specs from flavors.

* Explicit data model contracts are now defined for Flavors, Images,
  Security Groups, Security Group Rules, and Servers.

* Resources with data model contracts are now being returned with
  'location' attribute. The location carries cloud name, region name
  and information about the project that owns the resource.

* Added new method, delete_autocreated_image_objects that can be
  used to delete any leaked objects shade may have created on behalf
  of the user.

* Added name_or_id parameter to domain operations, allowing an admin
  to update/delete/get by domain name.

* Added support for dual stack networks where the IPv4 subnet and
  the IPv6 subnet have opposite public/private qualities. It is now
  possible to add configuration to clouds.yaml that will indicate that
  a network is public for v6 and private for v4, which is otherwise
  very difficult to correctly infer while setting server attributes
  like private_v4, public_v4 and public_v6.

* Add new method, 'endpoint_for' which will return the raw endpoint
  for a given service from the current catalog.

* Add new APIs, OpenStackCloud.set_server_metadata() and
  OpenStackCloud.delete_server_metadata() to manage metadata of
  existing nova compute instances

* Flavors will always contain an 'extra_specs' attribute. Client
  cruft, such as 'links', 'HUMAN_ID', etc. has been removed.

* name_or_id parameters to search/get methods now support filename-
  like globbing. This means search_servers('nb0*') will return all
  servers whose names start with 'nb0'.

* Allow to retrieve the limits of a specific project

* Allow to retrieve the usage of a specific project

* Added a new API call, OpenStackCloud.get_object(), to download
  objects from swift.

* add granting and revoking of roles from groups and users

* The image and flavor parameters for create_server now accept name
  in addition to id and dict. If given as a name or id, shade will do
  a get_image or a get_flavor to find the matching image or flavor. If
  you have an id already and are not using any caching and the extra
  lookup is annoying, passing the id in as "dict(id='my-id')" will
  avoid the lookup.

* Added ability to create an image from a volume.

* If a cloud does not have a neutron service, it is now assumed that
  Nova will be the source of security groups. To handle clouds that
  have nova-network and do not have the security group extension,
  setting secgroup_source to None will prevent attempting to use them
  at all. If the cloud has neutron but it is not a functional source
  of security groups, set secgroup_source to nova.

* Add support for passing Ironic microversion to the ironicclient
  constructor in get_legacy_client.

* Added list_availability_zone_names API call.

* Implement list_role_assignments for keystone v2, using
  roles_for_user.

* Add 'all_projects' parameter to list_servers and search_servers
  which will tell Nova to return servers for all projects rather than
  just for the current project. This is only available to cloud
  admins.

* Added a flag, 'load_yaml_config' that defaults to True. If set to
  false, no clouds.yaml files will be loaded. This is beneficial if
  os-client-config wants to be used inside of a service where end-user
  clouds.yaml files would  make things more confusing.

* Add version argument to make_rest_client and plumb version
  discovery through get_session_client so that versioned endpoints are
  properly found if unversioned are in the catalog.

* create_object() now has a "metadata" parameter that can be used to
  create an object with metadata of each key and value pair in that
  dictionary

* Add an update_object() function that updates the metadata of a
  swift object

* Added a parameter to create_image 'meta' which allows for
  providing parameters to the API that will not have any type
  conversions performed. For the simple case, the existing kwargs
  approach to image metadata is still the best bet.

* Add min_version and max_version to get_legacy_client and to
  get_session_endpoint. At the moment this is only really fully
  plumbed through for cinder, which has extra special fun around
  volume, volumev2 and volumev3. Min and max versions to both methods
  will look through the options available in the service catalog and
  try to return the latest one available from the span of requested
  versions. This means a user can say volume_api_version=None,
  min_version=2, max_version=3 will get an endpoint from
  get_session_endpoint or a Client from cinderclient that will be
  either v2 or v3 but not v1. In the future, min and max version for
  get_session_endpoint should be able to sort out appropriate
  endpoints via version discovery, but that does not currently exist.

* Removed unneeded calls that were made when deleting servers with
  floating ips.

* Added pagination support for volume listing.

* Added nat_source flag for networks. In some more complex clouds
  there can not only be more than one valid network on a server that
  NAT can attach to, there can also be more than one valid network
  from which to get a NAT address. Allow flagging a network so that it
  can be found.

* Network provider options are now accepted in create_network().

* Support added for configuring metadata about networks for a cloud
  in a list of dicts, rather than in the external_network and
  internal_network entries. The dicts support a name, a
  routes_externally field, a nat_destination field and a
  default_interface field.

* Add new APIs, OperatorCloud.get_network_quotas(),
  OperatorCloud.set_network_quotas() and
  OperatorCloud.delete_network_quotas() to manage neutron quotas for
  projects and users

* Added support for created_at, updated_at, description and
  revision_number attributes for floating ips.

* Image dicts that are returned are now normalized across glance v1
  and glance v2. Extra key/value properties are now both in the root
  dict and in a properties dict. Additionally, cloud and region have
  been added like they are for server.

* Added helper method for constructing OpenStack SDK Connection
  objects.

* server creation errors now include the server id in the Exception
  to allow people to clean up.

* Add the *add_server_security_groups* and
  *remove_server_security_groups* functions to add and remove security
  groups from a specific server.

* Added kwargs and argparse processing for session_client.

* Added a "set_volume_bootable" call to allow toggling the bootable
  state of a volume.

* Added helper method for constructing shade OpenStackCloud objects.

* Implement update_stack to perform the update action on existing
  orchestration stacks.

* get_object now supports streaming output directly to a file.

* Added 'strict' mode, which is set by passing strict=True to the
  OpenStackCloud constructor. strict mode tells shade to only return
  values in resources that are part of shade's declared data model
  contract.

* Added update_endpoint as a new function that allows the user to
  update a created endpoint with new values rather than deleting and
  recreating that endpoint. This feature only works with keystone v3,
  with v2 it will raise an exception stating the feature is not
  available.

* Version discovery is now done via the keystoneauth library. shade
  still has one behavioral difference from default keystoneauth
  behavior, which is that shade will use a version it understands if
  it can find one even if the user has requested a different version.
  This change opens the door for shade to start being able to consume
  API microversions as needed.

* Add new APIs, OperatorCloud.get_volume_quotas(),
  OperatorCloud.set_volume_quotas() and
  OperatorCloud.delete_volume_quotas() to manage cinder quotas for
  projects and users

* Add support for listing volume types.

* Add support for managing volume type access.

* Adds a new pair of options to create_image_snapshot(), wait and
  timeout, to have the function wait until the image snapshot being
  created goes into an active state.

* Adds a new function wait_for_image() which will wait for an image
  to go into an active state.

* New wait_for_server() API call to wait for a server to reach
  ACTIVE status.


Known Issues
************

* If there was only one cloud defined in clouds.yaml os-client-
  config was requiring the cloud parameter be passed. This is
  inconsistent with how the envvars cloud works which WILL work
  without setting the cloud parameter if it's the only cloud.

* Fixed a regression when using latest os-client-config with the
  keystoneauth from stable/newton. Although this isn't a super common
  combination, the added feature that broke the interaction is really
  not worthy of the incompatibility, so a workaround was added.

* Fixed an issue where nodepool could cause config_drive to be
  passed explicitly as None, which was getting directly passed through
  to the JSON. Also fix the same logic for key_name and
  scheduler_hints while we're in there.

* Fixed the logic in delete_ips and added regression tests to cover
  it. The old logic was incorrectly looking for floating ips using
  port syntax. It was also not swallowing errors when it should.

* Images in the cloud with a string property named "properties"
  caused image normalization to bomb.

* Fixed an issue where glance image list pagination was being
  ignored, leading to truncated image lists.


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

* Cluster Templates have data model and normalization now. As a
  result, the detail parameter is now ignored and detailed records are
  always returned.

* The "attach_volume" method now always returns a
  "volume_attachment" object. Previously, "attach_volume" would return
  a "volume" object if it was called with "wait=True" and a
  "volume_attachment" object otherwise.

* shade will now only generate file hashes for glance images if both
  hashes are empty. If only one is given, the other will be treated as
  an empty string.

* Removed designateclient as a dependency. All designate operations
  are now performed with direct REST calls using keystoneauth Adapter.

* Server creation calls are now done with direct REST calls.

* troveclient is no longer a hard dependency. Users who were using
  shade to construct a troveclient Client object should use
  os_client_config.make_legacy_client instead.

* Nova flavor operations are now handled via REST calls instead of
  via novaclient. There should be no noticable difference.

* Nova microversion is being requested. Since shade is not yet
  actively microversion aware, but has been dealing with the 2.0
  structures anyway, this should not affect anyone.

* magnumclient is no longer a direct dependency as magnum API calls
  are now made directly via REST.

* All Nova interactions are done via direct REST calls. python-
  novaclient is no longer a direct dependency of openstack.cloud.

* Removed glanceclient as a dependency. All glance operations are
  now performed with direct REST calls using keystoneauth Adapter.

* The Profile object has been replaced with the use of CloudRegion
  objects from openstack.config.

* The openstacksdk specific Session object has been removed.

* Proxy objects are now subclasses of keystoneauth1.adapter.Adapter.

* REST interactions all go through TaskManager now.

* Removed swiftclient as a dependency. All swift operations are now
  performed with direct REST calls using keystoneauth Adapter.

* Renamed bare-metal to baremetal to align with the official service
  type.

* The block_store service object has been renamed to block_storage
  to align the API with the official service types.

* Renamed cluster to clustering to align with the official service
  type.

* Renamed telemetry to meter to align with the official service
  type.

* If your cloud presents a default split IPv4/IPv6 stack with a
  public v6 and a private v4 address and you have the expectation that
  auto_ip should procure a v4 floating ip, you need to set
  'force_ipv4' to True in your clouds.yaml entry for the cloud.

* keystoneauth version 3.2.0 or higher is required because of
  version discovery.


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

* Renamed session_client to make_rest_client. session_client will
  continue to be supported for backwards compatability.

* external_network and internal_network are deprecated and should be
  replaced with the list of network dicts.

* Renamed simple_client to session_client. simple_client will remain
  as an alias for backwards compat.


Bug Fixes
*********

* [bug 2001080 (https://storyboard.openstack.org/#!/story/2001080)]
  Project update will only update the enabled field of projects when
  "enabled=True" or "enabled=False" is passed explicitly. The previous
  behavior had "enabled=True" as the default.

* Fixed caching the volume list when volumes are in use.

* Fix bug where project_domain_{name,id} was set even if
  project_{name,id} was not set.

* Fixed the volume normalization function when used with cinder v2.

* The create_stack() call was fixed to call the correct iterator
  method and to return the updated stack object when waiting.

* The create_server() API call would not use the supplied 'network'
  parameter if the 'nics' parameter was also supplied, even though it
  would be an empty list. It now uses 'network' if 'nics' is not
  supplied or if it is an empty list.

* The returned data from a create_service() call was not being
  normalized.

* Delete swift objects uploaded in service of uploading images at
  the time that the corresponding image is deleted. On some clouds,
  image uploads are accomplished by uploading the image to swift and
  then running a task-import. As shade does this action on behalf of
  the user, it is not reasonable to assume that the user would then be
  aware of or manage the swift objects shade created, which led to an
  ongoing leak of swift objects.

* Upload swift Large Objects as Static Large Objects by default.
  Shade automatically uploads objects as Large Objects when they are
  over a segment_size threshold. It had been doing this as Dynamic
  Large Objects, which sound great, but which have the downside of not
  deleting their sub-segments when the primary object is deleted.
  Since nothing in the shade interface exposes that the object was
  segmented, the user would not know they would also need to find and
  delete the segments. Instead, we now upload as Static Large Objects
  which behave as expected and delete segments when the object is
  deleted.

* The delete_object() method was not returning True/False, similar
  to other delete methods. It is now consistent with the other delete
  APIs.

* The delete_project() API now conforms to our standard of returning
  True when the delete succeeds, or False when the project was not
  found. It would previously raise an expection if the project was not
  found.

* delete_image used to fail with an AttributeError if an invalid
  image name or id was passed, rather than returning False which was
  the intent. This is worthy of note because it's a behavior change,
  but the previous behavior was a bug.

* When creating a new server, the timeout was not being passed
  through to floating IP creation, which could also timeout.

* Fix for list_networks() ignoring any filters.

* Added missing dependency on futures library for python 2. The
  depend was missed in testing due to it having been listed in test-
  requirements already.

* Fixed an issue where shade could report a floating IP being
  attached to a server erroneously due to only matching on fixed ip.
  Changed the lookup to match on port ids. This adds an API call in
  the case where the workaround is needed because of a bug in the
  cloud, but in most cases it should have no difference.

* Fix for update_domain() where 'name' was not updatable.

* Fixed magnum service_type. shade was using it as 'container' but
  the correct type is 'container-infra'. It's possible that on old
  clouds with magnum shade may now do the wrong thing. If that occurs,
  please file a bug.

* Setting and unsetting flavor extra specs now works. This had been
  broken since the 1.2.0 release.

* Refactor "OpenStackConfig._fix_backward_madness()" into
  "OpenStackConfig.magic_fixes()" that allows subclasses to inject
  more  fixup magic into the flow during "get_one_cloud()" processing.

* Fixed a bug related to neutron endpoints that did not have
  trailing slashes.

* Fixed issue with ports not having a created_at attribute.

* Role assignments were being returned as plain dicts instead of
  Munch objects. This has been corrected.

* Reverse the order of option selction in
  "OpenStackConfig._validate_auth()" to prefer auth options passed in
  (from argparse) over those found in clouds.yaml. This allows the
  application to override config profile auth settings.

* No longer fail in list_router_interfaces() if a router does not
  have the external_gateway_info key.

* Keystone service descriptions were missing an attribute describing
  whether or not the service was enabled. A new 'enabled' boolean
  attribute has been added to the service data.

* Fixed an issue where a section of code that was supposed to be
  resetting the SwiftService object was instead resetting the
  protective mutex around the SwiftService object leading to an
  exception of "__exit__"

* shade now correctly does not try to attach a floating ip with
  auto_ip if the cloud has given a public IPv6 address and the calling
  context supports IPv6 routing. shade has always used this logic to
  determine the server 'interface_ip', but the auto floating ip was
  incorrectly only looking at the 'public_v4' value to determine
  whether the server needed additional networking.

* Added requests and Babel to the direct dependencies list to work
  around issues with pip installation, entrypoints and transitive
  dependencies with conflicting exclusion ranges. Packagers of shade
  do not need to add these two new requirements to shade's dependency
  list - they are transitive depends and should be satisfied by the
  other things in the requirements list. Both will be removed from the
  list again once the python client libraries that pull them in have
  been removed.


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

* HPCloud vendor profile removed due to cloud shutdown.

* RunAbove vendor profile removed due to migration to OVH.

* The contents of x-openstack-request-id are no longer added to
  object returned. Instead, they are logged to a logger named
  'openstack.cloud.request_ids'.

* The shade and os-client-config libraries have been merged into
  python-openstacksdk.

* Started using reno for release notes.

* Add citycloud regions for Buffalo, Frankfurt, Karlskrona and Los
  Angles

* Add new DreamCompute cloud and deprecate DreamHost cloud

Changes in openstacksdk 0.9.19..0.10.0
--------------------------------------

56cc254 Re-enable octavia functional tests
cd9bd1e Remove legacy client factory functions
e068d89 Prefer links dicts for pagination
46135f9 Port wait_for_ methods to use iterate_timeout
30debb7 Add function to make CloudRegion from session
18fe7b4 Rename CloudConfig to CloudRegion
0ff395d Updated from global requirements
1c06fd3 Remove name from zuul project stanza
da99fae Update for new docs PTI
5fd4ec7 Start using Connection in openstack.cloud
c4acd23 Remove self argument from connect helper function
d7c0f11 Add _query_mapping to identity resources
04bd6bf Allow to pass filters like domain to find_project/user
284913f Add reno for tag support on heat stacks
192bb7c Remove python-ironicclient
e8de50f Make the get_service_type() overrides tolernat of no defaults
2f93b98 Add FloatingIP qos_policy_id attribute
41222cb Updated from global requirements
e8a1c2e Updated from global requirements
ce01cfa Add tag support to create_stack
41c5bd9 Remove -U from pip install
3892119 Add osc-tox-unit-tips jobs
f31047c Shift image tests from test_operator
6d8633f Added nat_source flag for networks.
bae63fc Update make_rest_client to work with version discovery
3bb4c37 Protect against p_opt not having prompt attribute
be9da75 Treat clouds.yaml with one cloud like envvars
910fc10 Complete move of baremetal machine tests
dd431c3 Add method to cleanup autocreated image objects
c4aae34 Cleanup objects that we create on behalf of images
f561bfd Remove openstack-tox-pypy jobs
f8b9e82 Set empty Tag list if Network Tag API extension not supported
58bafb6 Avoid tox_install.sh for constraints support
7fb95b9 Fix py35 and pypy tox env
392e2c4 Update the shade-merge document
895db17 Stop osSDK mangling Swift metadata keys
d1b242e Add pools attribute to load balancer heath monitor
1a83a53 Remove use of tox-siblings role
eb9d3a5 Document current_user_id in a release note
dfe2577 Remove reference to context-managers from release note
0b4ee33 Add helper property to get the current user id
a446db5 Add ability to work in other auth contexts
4b8c45e Sort image update results before comparing
1a8cd84 Adds support to retrieve cinder backend pools information
4419c55 Add subnet_id property for FloatingIP
bc2e1be Add block_store support single volume display image message
cc53432 Remove setting of version/release from releasenotes
5fd5e77 Add cluster support force delete parameter when cluster/node delete
688fc5a Remove ansible functional tests for now
2dfe498 Updated from global requirements
3070a6e Avoid default mutable values in arguments
43eff7b Remove bogus and unneeded role from job definition
c469cae Add notes about moving forward
c2de39d Move task_manager and adapter up a level from cloud
4bad718 Rework config and rest layers
a25f8f3 Migrate to testtools for functional tests
240f591 Support filtering servers in list_servers using arbitrary parameters
d9ce1c1 Fix regression for list_router_interfaces
e8b995f Handle glance image pagination links better
d75d4f4 Fix magnum functional test
d25b80e Add jobs for Zuul v3
c39d98c Move role normalization to normalize.py
835d655 Allow domain_id for roles
8cda430 Add method to set bootable flag on volumes
b653090 Image should be optional
fd9c2b5 Add group parameter to create_server
e7ade19 Fix image task uploads
1fcc3e7 Temporarily disable volume and os_image functional tests
a4ee1a3 Merge tox, tests and other support files
6529335 Move shade and os-client-config python content
689d9e8 Consume publish-openstack-sphinx-docs
a3cd1f0 Merge shade and occ releasenotes
94ace70 Updated from global requirements
eafc8be Fix requires_floating_ip
2c24e20 Record server.id in server creation exception
2c23196 Stop using openstack-doc-build
6f72637 Updates for stestr
482b313 Add support for network quota details command
f29d04d Add pypi and doc publication templates
3fb4fec Updated from global requirements
35ae661 Updated from global requirements
f545e8e Fix search_groups
e1cafe3 Remove EndpointCreate and _project_manager
ec797b6 Remove use of legacy keystone client in functional tests
25ef7bf Updated from global requirements
97b98c9 Remove keystoneclient dependency
d0ca641 De-client-ify Endpoint Create
941e179 Refactor the create endpoint code
f3e6225 Reorganize endpoint create code
605301f Switch to constraints version of tox job
8daf38f Convert test_baremetal_machine_patch to testscenarios
960a274 Add openstack-doc-build to shade
ff70995 Switch to normal tox-py35 job
73ef1f5 Switch to using stestr
b817f47 Migrate machine tests related to state transitions
c821c97 Migrate machine inspection tests to requests_mock
e8d37f8 Migrate additional machine tests
8cc1483 De-client-ify Endpoint Update
8afeaf6 De-client-ify List Role Assignments
179430c De-client-ify Endpoint List
eb28fa5 De-client-ify List Roles for User in v2.0
8d310b7 De-client-ify Role Grant and Revoke
a4f94bf De-client-ify Endpoint Delete
76caad4 De-client-ify User Password Update
4de4fb4 Begin converting baremetal node tests
e768960 Remove improper exc handling in is_user_in_group
e42192e De-client-ify Remove User from Group
be9d046 Correct baremetal fake data model
30e0fbc De-client-ify Check User in Group
b82a659 De-client-ify Add User to Group
149a9fb Use direct calls to get_<resource>_by_id
ca0103a De-client-ify User Update
8b47d15 Use new keystoneauth version discovery
469cc5a Fix typo in tox.ini
371c3eb Updated from global requirements
8dc051c Updated from global requirements
78a1aa3 Add tox_install.sh to deal with upper-constraints
8887b48 Support domain_id for user operations
4695f5c Add domain_id to groups
589b765 Add handling timeout in servers cleanup function
1935528 Fix handling timeouts in volume functional tests cleanup
9888573 Connection doc add arguments
68f0947 Fix switched params
7fb83a6 Switch to _is_client_version in list_services
522f51c De-client-ify Service Delete
4cd71a1 De-client-ify Service Update
b05aede Fix cleaning of Cinder volumes in functional tests
bda65e7 De-client-ify Service List
3cfaa4c Add option to force delete cinder volume
20cc034 Updated from global requirements
b5af1ae Updated from global requirements
89e07d9 Fix determining if IPv6 is supported when it's disabled
e72a6cf Don't determine local IPv6 support if force_ip4=True
7466aae Consolidate client version checks in an utility method
d8ddbcf Add functional tests for Neutron QoS policies and rules
15a83da Updated from global requirements
164501c DataCentred supports Keystone V3 and Glance V2.
4e5d46d Support to get resource by id
20ebacc Make get_server_console tests more resilient
d597ee2 Update globals safely
240e259 Update the documentation link for doc migration
eed1cbb Remove OSIC
697cf58 Make QoS rules required parameters to be not optional
2d54752 Use valid_kwargs decorator in QoS related functions
737f9de Add support for get details of available QoS rule type
05b0fe2 Use more specific asserts in tests
99865c9 Add Neutron QoS minimum bandwidth rule commands
420e745 Update reno for stable/pike
8c8f365 Update reno for stable/pike
1521c59 Add Neutron QoS dscp marking rule commands
1d4c124 Updated from global requirements
85d8ada Updated from global requirements
a4fdee5 router: Ignore L3 HA ports when listing interfaces
f66f862 Initial commit of zuulv3 jobs
623593a Manually sync with g-r
1b51cd8 Update the documentation link for doc migration
06b390a Replace six.itervalues with dict.values()
d9091fb Consolidate the use of self._get_and_munchify
e171aa4 De-client-ify Role Delete
2d777b9 De-client-ify Role List
8034894 De-client-ify Role Create
9b2e01d De-client-ify Group Delete
b7f90dc De-client-ify Group Update
57f5c89 De-client-ify Group List
9ca7836 De-client-ify Group Create
67accb5 Updated from global requirements
bf5cd53 Don't remove top-container element in the adapter
262061a Improve doc formatting a bit
a134c10 Added useful links to README
806378f Add Neutron QoS bandwidth limit rule commands
9f78c54 De-client-ify Service Create
a9687a8 Add debug to tox environment
20c1e82 Remove hard-coding of timeout from API
d1eea7a Make sure we don't fail open on bad input to validate
10e6fbe Make sure we pass propert dicts to validate
54d6e1d Add flag to include all images in image list
af0dbbd Add support for list available QoS rule types
4446ba9 Add validation of required QoS extensions in Neutron
29dd83d De-client-ify Domain Search
1bd19cc De-client-ify Domain Get
cac429f De-client-ify Domain List
ecd470d De-client-ify User Create
ab2c4b3 Use the right variable name in userdata encoding
e375362 Add searching for Neutron API extensions
67b053c Add Neutron QoS policies commands
790fffd De-client-ify Domain Update and Delete
1e1c6ac De-client-ify Domain Create
65ce1a2 switch from oslosphinx to openstackdocstheme
20b2f1f reorganize docs using the new standard layout
f74902b use openstackdocstheme html context
071e342 Don't remove top-container element for flavor, zones and server groups
70d8cc3 Updated from global requirements
c016f15 Don't remove top-container element for flavors and clusters
08a1546 Add query filters for find_network
f4668b7 Project update to change enabled only when provided
30c8729 switch from oslosphinx to openstackdocstheme
412f0fd turn on warning-is-error in documentation build
95f44f1 rearrange existing documentation to follow the new standard layout
1069d44 Fix mismatch between port and port-id for REST call
14216dc Remove a direct mocking of _image_client
bc94295 Fix image normalization when image has properties property
74522a1 Fix delete_ips on delete_server and add tests
16cd2cc Fix config_drive, scheduler_hints and key_name in create_server
6334250 Don't fail hard on 404 from neutron FIP listing
45e6899 Only search for floating ips if the server has them
2486e09 Don't try to delete fips on non-fip clouds
10beaf9 Return an empty list on FIP listing failure
410a455 Don't remove top-container element for server REST API calls
5512e46 base64 encode user_data sent to create server
3aee4f5 Remove novaclient from shade's dependencies
56524c1 Translate final nova calls to REST
56244f5 Convert remaining nova tests to requests_mock
a2ec277 Convert host aggregates calls to REST
f177896 Convert host aggregate tests to requests_mock
b1faf5b Convert hypervisor list to REST
d69b81f Convert hypervisor test to requests_mock
0ad0885 Convert Server Groups to REST
3aec23c Convert server group tests to requests_mock
611ce3d Convert FakeSecGroup to dict
fb956cc Remove use of FakeServer from tests
7cd4ef0 Don't remove top-container element for user and project REST API calls
b9a2c29 Convert keypairs calls to REST
caa69b4 Add normalization and functional tests for keypairs
c23611a Remove future document
145a0ab Add text about microversions
587b41b Convert keypairs tests to requests_mock
70365c9 Convert list_servers to REST
83c8bf5 Convert list servers tests to requests_mock
c524564 Remove some unused mocks
35980c1 Break early from volume cleanup loop
c431cc2 Add some release notes we forgot to add
6b32528 Retry to fetch paginated volumes if we get 404 for next link
daabd8c docs: make the first example easier to understand
494d5d1 Properly expand server dicts after rebuild and update
972dcfc Migrate non-list server interactions to REST
8ed5666 Increase timeout for volume tests
4fa316b Skip pagination test for now
9353650 Fix urljoin for neutron endpoint
19cddb5 Remove py34 and pypy in tox
3bb46e4 Replace six.iteritems() with .items()
0d7fc59 Update tests for server calls that aren't list
a0abee2 Convert delete server calls to REST
458b6e9 Convert delete server mocks to requests_mock
c085c4c Convert get_server_by_id
36b659e RESTify create_server
6b61f18 Don't fetch extra_specs in functional tests
9cb4b1d Convert create_server mocks to request_mock
e538989 Add boot from volume unit tests
e657373 Cleanup volumes in functional tests in parallel
081930d De-client-ify Project Update
18f9b64 De-client-ify Project Create
d3df091 De-client-ify Project Delete
9237024 De-client-ify Project List
2b48aed Don't remove top-container element for sec group REST API calls
db83c23 Improve grant docs on when and how use domain arg
5d204c3 Don't remove top-container for stack and zone REST API calls
ebedf17 Updated from global requirements
4fce8d9 Rename obj_to_dict and obj_list_to_dict
75ce1ea Don't remove top-container element for network REST API calls
75ce9ad Convert data from raw clients to Munch objects
40c4f3c Remove unneeded calls to shade_exceptions
f01a7d4 Don't remove top-container element for volume REST API calls
766d622 Use get_discovery from keystoneauth
ba36d44 De-client-ify User Ops
752d01e Add links to user list dict
5a1a3d8 Avoid keystoneclient making yet another discovery call
96c24b1 Use shade discovery for keystone
076a407 Updated from global requirements
641073b Migrate dns to new discovery method
a45848d Generalize version discovery for re-use
751b0a0 Pass hints to Cinder scheduler in create_volume
10cb4f2 Remove designate client from shade's dependencies
c97bac2 Do less work when deleting a server and floating ips
f0fa7e7 Remove designateclient from commands related to recordsets
1a5f734 Add pagination for the list_volumes call
755890b Handle ports with no 'created_at' attribute
014d397 Update test_user_update_password to overlay clouds.yaml
f0c981c Fix legacy clients helpers
6a325df Remove unused occ version tie
92a19df Remove designateclient from commands related to zones
5d987eb Add documentation about shade's use of logging
e167039 Add novaclient interactions to http_debug
f6c74f2 Set some logger names explicitly
58d9b2a Add logging of non-standard error message documents
bf8774b Log specific error message from RetriableConnectionFailure
990cfa3 Don't pop from os.environ
aad00aa Updated from global requirements
462fe81 Fix python3 issues in functional tests
9f393dc Add time reporting to Connection Retry message
b194a4d Log cloud name on Connection retry issues
a4bcf38 Use catalog endpoint on any errors in image version discovery
ba0e945 Pick most recent rather than first fixed address
072001a Allow a user to submit start and end time as strings
12b07e1 Fix get_compute_limits error message
8d34399 Fix get_compute_usage normalization problem
e3d43e7 Find private ip addr based on fip attachment
329b939 Add ability to run any tox env in python3
ee01121 Fix issue with list_volumes when pagination is used
b9872da Make sure security_groups is always a list
c19a797 Updated from global requirements
750e0a9 Remove direct uses of nova_client in functional tests
8235e0c Keep a singleton to support multiple get_config calls
5991a5e Updated from global requirements
892b502 Remove designateclient mock from recordset tests
4199976 Convert list_server_security_groups to REST
f11edd7 Remove two unused nova tasks
dbb42fc Include error message from server if one exists
9ecf600 Optimize the case of versioned image endpoint in catalog
40f66c7 Fix broken version discovery endpoints
e1dfc72 Remove cinderclient from install-tips.sh
a88d41e Fix tips jobs and convert Nova Floating IP calls
dc77e7d Convert first ironic_client test to REST
f94880c Move mocks of designate API discovery calls to base test class
be0a0c9 Fix exception when using boot_from_volume for create_server
a483534 Revert "Revert "Use interface not endpoint_type for keystoneclient""
4493871 Revert "Use interface not endpoint_type for keystoneclient"
1c0a95b Move legacy client constructors to mixin
7a3acde Add ironicclient to constructors list
103bc13 Fix pep8 errors that were lurking
3f76b25 Remove cinder client
3ed9725 Make deprecated client helper method
d3b653f Add 'public' as a default interface for get_mock_url
ef35f02 Add super basic machine normalization
d1d9ed7 Remove designateclient mock from zones tests
61141ae Remove direct calls to cinderclient
fcaf06c Add "Multi Cloud with Shade" presentation
7801de7 Use REST API for volume quotas calls
b6926bb Add pprint and pformat helper methods
347fe82 Add helper method to fetch service catalog
2f8285d extend security_group and _rule with project id
81239f6 Remove neutronclient from shade's dependencies
1a8cb0a Remove cinderclient mocks from quotas tests
e00ff9c Fix Neutron floating IP test
c43f1d8 Use REST API for volume snapshot calls
ad516fb Remove usage of neutron_client from functional tests
55ef136 Enable neutron service in server create and rebuild tests
072be85 Replace neutronclient with REST API calls in FIP commands
81d39a9 Updated from global requirements
b390450 Add assert_calls check testing volume calls with timeout enabled
f7f54d0 Remove has_service mock from Neutron FIP tests
4b75c85 Remove cinderclient mocks from snapshot tests
2449488 Remove neutronclient mocks from floating ips tests
689d3bb Use REST API for volume attach and volume backup calls
f52448d Replace neutronclient with REST API calls in ports commands
f7b1eb5 Don't get ports info from unavailable neutron service
a2aad70 Removing unsed fake methods and classes
77bac2b Replace neutronclient with REST API calls in quotas commands
cbc233d Replace neutronclient with REST API calls in security groups commands
bcc7ea6 Use REST API for volume delete and detach calls
be92751 Use REST API for volume type_access and volume create
f430b94 Refactor the test_create_volume_invalidates test
7abe4e9 Replace neutronclient with REST API calls in router commands
478d4ba Move REST error_messages to error_message argument
944556e Remove two lines that are leftover and broken
17ab75b Convert test_role_assignments to requests mock
05f1600 Remove neutronclient mocks from sec groups tests
2079366 Remove neutronclient mocks from quotas tests
b9073b5 Remove neutronclient mocks from ports tests
e81bec0 Add optional error_message to adapter.request
17debbb Fix interactions with keystoneauth from newton
8a4f997 Add in a bunch of TODOs about interface=admin
a5c49cb Set interface=admin for keystonev2 keystone tests
60569b2 Add a _normalize_volume_backups method
ca2f10b Use requests-mock for the volume backup tests
a71bea8 Remove neutronclient mocks from router tests
8b6ae89 Replace neutronclient with REST API calls in subnet commands
b964757 Define a base function to remove unneeded attributes
66e3168 Remove neutronclient mocks from subnet tests
80ebf88 Replace neutronclient with REST API calls in network commands
1c0c81f Move router related tests to separate module
c214477 Updated from global requirements
65c350f Move subnet related tests to separate module
cee8b6c Fix list_servers tests to not need a ton of neutron
950c450 Remove neutronclient mocks from network create tests
ff2c06c Make _fix_argv() somewhat compatible with Argparse action='append'
d1d6706 Remove neutronclient mocks from network exceptions tests
0a39c01 Remove neutronclient mocks from network delete tests
e61a5c0 Remove neutronclient mocks from network list tests
258a6a3 Use requests-mock for the list/add/remove volume types tests
09af82b Fix create/rebuild tests to not need a ton of neutron
7a2b579 Don't do all the network stuff in the rebuild poll
5dae187 Move unit tests for list networks to test_network.py file
4f807b8 Include two transitive dependencies to work around conflicts
0bfdaf4 Use requests-mock for all the attach/detach/delete tests
5c0f3f5 Remove stray line
d5396cf Strip trailing slashes in test helper method
49fe112 Clarify some variable names in glance discovery
02e6371 _discover_latest_version is private and not used
afed15f Remove extra unneeded API calls
4c67e76 Change versioned_endpoint to endpoint_uri
b459c8d Futureproof keystone unit tests against new occ
3b8ef1b Actually fix the app_name protection
26c834c Replace nova security groups with REST
8d94ef1 Transition nova security group tests to REST
dfec0ca Remove dead ImageSnapshotCreate task
0cbed4f Pass in app_name information to keystoneauth
5adcef0 Use REST for cinder list volumes
64b28d4 Add ability to pass in user_agent
dc6ed69 Upgrade list volumes tests to use requests-mock
15d64f2 Updated from global requirements
8082cdf Pass shade version info to session user_agent
9cd5bf9 Use keystone_session in _get_raw_client
d5982e8 Don't fail on security_groups=None
d12032d Stop defaulting container_format to ovf for vhd
049b4ce Don't run extra server info on every server in list
ccf7cca Use REST for neutron floating IP list
f956aed Migrate create_image_snapshot to REST
aa58173 Add ability to configure extra_specs to be off
413965c Migrate server snapshot tests to requests_mock
cf54ef6 Add test to validate multi _ heat stack_status
97b9ac6 Fixed stack_status.split() exception
88d8a37 Add server security groups to shade
7e92e93 Updated from global requirements
c1984b6 Add bare parameter to get/list/search server
b31e9aa Docs: add a note about rackspace API keys
bb4eede Update tox build settings
b447fa4 Take care of multiple imports and update explanation
b34e06f Reenable hacking tests that already pass
7ac3c03 Enable H201 - don't throw bare exceptions
fe130c6 Enable H238 - classes should be subclasses of object
c9e9ef9 Fix a few minor annoyances that snuck in
0b8a6d0 Don't use project-id in catalog tests
e2cbd32 Change metadata to align with team affiliation
451ec8d Remove out of date comment
8aa8688 Move futures to requirements
01ff292 Stop special-casing idenity catalog lookups
c8c098b Remove python-heatclient and replace with REST
510075d Replace heatclient testing with requests_mock
1252338 Add normalization for heat stacks
8059b3c Add list_availability_zone_names method
52e68c8 Switch list_floating_ip_pools to REST
35ab23e Strip out novaclient extra attributes
76d7850 Convert floating_ip_pools unittest to requests_mock
7ef65f1 Migrate get_server_console to REST
0112f85 Migrate server console tests to requests_mock
da7f7cc Fix old-style mocking of nova_client
9f2287c Accept device_id option when updating ports
204fb73 Get rid of magnumclient dependency
d809981 attach_volume should always return a vol attachment.
9190527 wait_for_server: ensure we sleep a bit when waiting for server
07eca13 delete_server: make sure we sleep a bit when waiting for server deletion
bd0a40e Add designateclient to constructors list
7311bf0 Convert magnum service to requests_mock
360a87f RESTify cluster template tests
f32591a Add normalization for cluster templates
2f009fd Get the ball rolling on magnumclient
5586893 Use data when the request has a non-json content type
f29624a Cleanup some workarounds for old OCC versions
d79de9b add separate releasenotes build
db45323 Update sphinx and turn on warnings-is-error
1c87c8a Convert test_identity_roles to requests mock
8ad6941 change test_endpoints to use requests mock
194e53c OVH supports qcow2
2a8d0c5 Depend on pbr>=2.0.0
a93b3e2 Convert test_services to requests_mock
134bbe7 Only do fnmatch compilation and logging once per loop
38e5eba Use interface not endpoint_type for keystoneclient
b2f7cea Add support for bailing on invalid service versions
dee0749 Put fnmatch code back, but safely this time
0a956c1 modify test-requirement according to requirements project
c58b868 Replace keystone_client mock in test_groups
7883171 Use unicode match for name_or_id
127049f Raise a more specific exception on nova 400 errors
0ecbb22 Don't glob match name_or_id
40c416c [Fix gate]Update test requirement
7080493 Rename ClusterTemplate in OpenStackCloud docs
0613d18 Fix OpenStack and ID misspellings
56ea59b Remove service names in OpenStackCloud docs
d321a14 Pass ironic microversion through from api_version
81e04fc Add ability to skip yaml loading
80709fd Convert test_object to use .register_uris
759b2b4 Convert use of .register_uri to .register_uris
efc41d8 Change request_id logging to match nova format
60ce27e Actually normalize nova usage data
71322c7 Fix several concurrent shade gate issues
e675587 Remove the keystoneclient auth fallback
0e039e6 Add support for overriding mistral service type
cbb38f3 Add helper scripts to print version discovery info
508061a Wait for volumes to detach before deleting them
4f98c8b Add accessor method to pull URLs from the catalog
820885c Convert use of .register_uri to .register_uris
ea83e73 Remove keystoneclient mocks in test_caching for users
aff1f8f Remove mock of keystoneclient for test_caching for projects
76a01bf Remove mock of keystone where single projects are consumed
eee55a8 Rename demo_cloud to user_cloud
d2df08e Add all_projects parameter to list and search servers
b0bbb8c Convert test_project to requests_mock
2fd4bda convert test_domain to use requests_mock
b5fb06e Move mock utilies into base
4161e5c Convert test_users to requests_mock
068470d Add request validation to user v2 test
e100a58 Convert first V3 keystone test to requests_mock
5a3ffeb Cleanup new requests_mock stuff for test_users
23cead4 First keystone test using request_mock
5eb32e5 Add test of attaching a volume at boot time
50efb43 Add support for indicating required floating IPs
93c2e17 pass -1 for boot_index of non-boot volumes
175b256 Pass task to post_task_run hook
6edafb9 Rename ENDPOINT to COMPUTE_ENDPOINT
3cb1ad4 Transition half of test_floating_ip_neutron to requests_mock
994cd99 Start switching neutron tests
7878a9d Port in log-on-failure code from zuul v3
b223649 Honor cloud.private in the check for public connectivity
7102440 Support globbing in name or id checks
5139309 Stop spamming logs with unreachable address message
1dfe5e5 Remove troveclient from the direct dependency list
28fc6b0 Move nova flavor interactions to REST
7d982af Migrate flavor usage in test_create_server to request_mock
2e79cff Migrate final flavor tests to requests_mock
7ca9d76 Move flavor cache tests to requests_mock
32d53d5 Transition nova flavor tests to requests_mock
504cb05 Add ability to create image from volume
cc78a7f Use port list to find missing floating ips
16a058f Process json based on content-type
707adab Update reno for stable/ocata
02116c4 fix location of team tags in README
fa0a133 Copy in needed template processing utils from heatclient
48e7eb0 Upload images to swift as application/octet-stream
14c371e Add ability to stream object directly to file
e71e79c Update coding document to mention direct REST calls
3ac4915 Skip discovery for neutron
a616b64 Add helper test method for registering REST calls
8c0c2db Do neutron version discovery and change one test
b086290 Add raw client constructors for all the things
b7ea6c7 Replace SwiftService with direct REST uploads
362af90 Fix spin-lock behavior in _iterate_timeout.
08b7ce9 Fix typo for baremetal_service_type
cf2d350 Add helper script to install branch tips
3c47e25 Revert "Fix interface_key for identity clients"
cc2b337 Add support for Murano
0f706a7 Basic volume_type access
bedc9c5 Add OpenTelekomCloud to the vendors
0851770 Add support to task manager for async tasks
9d145e0 Added list_flavor_access.
53858f3 Remove 3.4 from tox envlist
091fde1 Use upper-constraints for tox envs
2540585 Removes unnecessary utf-8 encoding
28e2b4c Log request ids when debug logging is enabled
362c6fe Honor image_endpoint_override for image discovery
11d66e3 Rework limits normalization
68a8d51 Handle pagination for glance images
9e818c0 Add support for using the default subnetpool
228b50d Remove link to modindex
197ca1b Fix exception name typo
18916de Add failure check to node_set_provision_state
fcead29 Update swift constructor to be Session aware
33548e5 Add test to verify devstack keystone config
4c1494c Make assert_calls a bit more readable
45737ab Update swift exception tests to use 416
c8a3952 Make delete_object return True and False
9e9e2e7 Switch swift calls to REST
4d9cac2 Stop using full_listing in prep for REST calls
de9a519 Stop calling HEAD before DELETE for objects
29d1587 Replace mocks of swiftclient with request_mock
98f1bd5 Put in magnumclient service_type workaround
a32d451 Let use_glance handle adding the entry to self.calls
0232a12 Combine list of calls with list of request assertions
7d46383 Extract helper methods and change test default to v3
f80d171 Make munch aware assertEqual test method
b3b833c Extract assertion method for asserting calls made
63ead14 Change get_object_metadata to use REST
1beac18 Update test of object metadata to mock requests
ea061e8 Add release notes and an error message for release
6615160 Magnum's service_type is container_infra
e2d1008 Add docutils contraint on 0.13.1 to fix building
7e0fbb3 Add total image import time to debug log
ace76cf Clear the exception stack when we catch and continue
0dff888 Magnum's keystone id is container-infra, not container
485a4c1 Stop double-reporting extra_data in exceptions
916ba38 Pass md5 and sha256 to create_object sanely.
8c0ea00 Convert glance parts of task test to requests_mock
532cab3 Collapse base classes in test_image
8eb6289 Skip volume backup tests on clouds without swift
65f3d49 Add new attributes to floating ips
ecce721 Add test to trap for missing services
a868c0a Change fixtures to use https
766297d Honor image_api_version when doing version discovery
5159813 Replace swift capabilities call with REST
bef38e4 Change register_uri to use the per-method calls
06ea154 Convert test_create_image_put_v2 to requests_mock
bd545ce Remove caching config from test_image
9de5c78 Move image tests from caching to image test file
24acc18 Remove glanceclient and warlock from shade
dd25a3c Remove a few glance client mocks we missed
790d8d8 Change image update to REST
ec2d0c2 Make available_floating_ips use normalized keys
0b47f86 Fix _neutron_available_floating_ips filtering
e6691dd Stop telling users to check logs
37adf27 Plumb nat_destination through for ip_pool case
acef845 Update image downloads to use direct REST
7fc5e7b Move image tasks to REST
d8b26c3 Add support for limits
fa4e1bd Fix interface_key for identity clients
5a54765 Tox: optimize the `docs` target
892abf0 Replace Image Create/Delete v2 PUT with REST calls
29be502 Replace Image Creation v1 with direct REST calls
6613937 Remove test of having a thundering herd
68456a1 Pull service_type directly off of the Adapter
633720c Add compute usage support
93191eb Re-add metadata to image in non-strict mode
3008683 Show team and repo badges on README
5b301ce Added documentation for delete_image()
f7f4bd7 Add an e to the word therefore
cb281e2 Allow server to be snapshot to be name, id or dict
27a5527 Add docstring for create_image_snapshot
f0a50a6 Allow security_groups to be a scalar
48c5322 Remove stray debugging line
8025c63 Start using requests-mock for REST unit tests
7889326 Have OpenStackHTTPError inherit from HTTPError
2a6ae13 Use REST for listing images
873ad6e Create and use a Adapter wrapper for REST in TaskManager
697da6f Normalize volumes
89cea03 Expose visibility on images
ccf8db1 Be specific about protected being bool
3394e23 Remove pointless and fragile unittest
e2a593d Revert "Remove validate_auth_ksc"
1f9e2cd Remove validate_auth_ksc
42bd7d9 Fail up to date check on one out of sync value
2bf2729 Normalize projects
6d9552e Cache file checksums by filename and mtime
f5c37ff Only generate checksums if neither is given
73e39a5 Make search_projects a special case of list_projects
b175fe9 Make a private method more privater
071fb5f Add unit test to show herd protection in action
6bc9e82 Refactor out the fallback-to-router logic
d02bd2c Update floating ip polling to account for DOWN status
f22af7f Use floating-ip-by-router
6996f23 Don't fail on trying to delete non-existant images
958f972 Allow server-side filtering of Neutron floating IPs
9f47acc Add fuga.io to vendors
ea5f8dd list_servers(): thread safety: never return bogus data.
6115b00 Depend on normalization in list_flavors
1f1f5ff Add unit tests for image and flavor normalization
fa80a51 Add strict mode for trimming out non-API data
dd0ee8e list_security_groups: enable server-side filtering
e545865 Don't fail image create on failure of cleanup
f0e9a42 Try to return working IP if we get more than one
b5d65b7 Support token_endpoint as an auth_type
c1129ea Add test for os_keystone_role Ansible module
4dad7b2 Document and be more explicit in normalization
3f525e0 Add support for volumev3 service type
86ade8f Normalize cloud config before osc-lib call
1ac6766 Fix a bunch of tests
422ad9c Clarify how to set SSL settings
e03f54a Add external_ipv4_floating_networks
49f1f19 Logging: avoid string interpolation when not needed
0986a62 Add a devstack plugin for shade
ecb317d Allow setting env variables for functional options
47068d0 Update ECS image_api_version to 1
29e62e7 Add test for os_keystone_domain Ansible module
9986646 Add abililty to find floating IP network by subnet
57f9ac9 Remove useless mocking in tests/unit/test_shade.py
261313e Fix TypeError in list_router_interfaces
78e9997 Merge nova and neutron normalize methods
9acef32 Fix a NameError exc in operatorcloud.py
0087da5 Fix some docstrings
acac3b9 Fix a NameError exception in _nat_destination_port
6806fcf Implement create/get/list/delete volume backups
efdffe4 Move normalize_neutron_floating_ips to _normalize
e27516f Delete image if we timeout waiting for it to upload
6623be2 Revert "Split auth plugin loading into its own method"
bbc8816 Add description field to create_user method
d430104 Allow boolean values to pass through to glance
4bad936 Update location info to include object owner
9e72995 Move and fix security group normalization
7962efc Add location field to flavors
b30ff55 Move normalize_flavors to _normalize
5171f79 Move image normalize calls to _normalize
7ed4740 Add location to server record
7f0b1de Start splitting normalize functions into a mixin
4c17e90 Make sure we're matching image status properly
42e14ba Normalize images
05cfd3b Add helper properties to generate location info
9e2004b Update simple_logging to not not log request ids by default
1653120 Add setter for session constructor
8a8a218 Enable release notes translation
f484736 cloud_config:get_session_endpoint: catch Keystone EndpointNotFound
30039f0 Add simple field for disabled flavors
db4bace List py35 in the default tox env list
d009ea2 remove_router_interface: check subnet_id or port_id is provided
1f81bf1 Add test for os_group Ansible module
afe5485 Using assertIsNone() instead of assertEqual(None, ...)
2d78f1a Update homepage with developer documentation page
bd434bc List py35 in the default tox env list
0a3e056 Fix AttributeError in `get_config`
eec981c modify the home-page info with the developer documentation
c6d2aea Don't create envvars cloud if cloud or region are set
e888d8e Add support for jmespath filter expressions
1c00116 Add libffi-dev to bindep.txt
f91a754 Don't build releasenotes in normal docs build
91eb5e0 Update reno for stable/newton
bda72e4 Use list_servers for polling rather than get_server_by_id
86b100e Add ability to configure Session constructor
4decd44 Fix up image and flavor by name in create_server
a3c9a94 Batch calls to list_floating_ips
8b7859e Split auth plugin loading into its own method
9bbc09d Allow str for ip_version param in create_subnet
f616269 Skip test creating provider network if one exists
3f226d1 Revert per-resource dogpile.cache work
87f90e6 Fix two minor bugs in generate_task_class
42885dc Go ahead and handle YAML list in region_name
5c1371b Change naming style of submitTask
2b52bcf Add prompting for KSA options
522db8e Add submit_function method to TaskManager
24a61fc Refactor TaskManager to be more generic
229f3da Poll for image to be ready for PUT protocol
cf99898 Cleanup old internal/external network handling
6832f73 Support dual-stack neutron networks
4d32169 Rename _get_free_fixed_port to _nat_destination_port
1ad8c92 Log request ids
dd4bd63 Detect the need for FIPs better in auto_ip
72c1cd9 Clean up vendor support list
35b6f9a Delete objname in image_delete
315a11c Move list_server cache to dogpile
dcce123 Ensure per-resource caches work without global cache
2bb6ff9 Support more than one network in create_server
7b3b959 Add support for fetching console logs from servers
4e77726 Allow image and flavor by name for create_server
3dfa847 Allow object storage endpoint to return 404 for missing /info endpoint
376c497 Batch calls to list_floating_ips
1cdf951 Get the status of the ip with ip.get('status')
6b0c38d Stop getting extra flavor specs where they're useless
ae705ec Change deprecated assertEquals to assertEqual
c40cc19 Use cloud fixtures from the unittest base class
829ebda Add debug logging to unit test base class
aa6505a Update HACKING.rst with a couple of shade specific notes
3462561 Only run flake8 on shade directory
332195f Add bindep.txt file listing distro depends
84fe775 Set physical_network to public in devstack test
17f6847 Precedence final solution
9d757b3 Add support for configuring split-stack networks
02a99fb Use "image" as argument for Glance V1 upload error path
552caf5 Honor default_interface OCC setting in create_server
6b3b497 Validate config vs reality better than length of list
53b1fc4 Base auto_ip on interface_ip not public_v4
4bdda71 Add tests to show IP inference in missed conditions
273ea8c Deal with clouds that don't have fips betterer
bd3f071 Infer nova-net security groups better
3326bb7 Add update_endpoint()
71a7058 Protect cinderclient import
cca0fb3 Do not instantiate logging on import
acf010f Don't supplement floating ip list on clouds without
02dd6d7 Move list_ports to using dogpile.cache
b02708a Create and return per-resource caches
ae25137 Lay the groundwork for per-resource cache
a6840f6 Pop domain-id from the config if we infer values
3f968d2 Rename baymodel to cluster_template
2556c33 Make shared an optional keyword param to create_network
a98be6a Add a 'meta' passthrough parameter for glance images
8ab5855 Allow creating a floating ip on an arbitrary port
3ef3864 Add ability to upload duplicate images
600a638 Update Internap information
1a1107a Fix requirements for broken os-client-config
bbd22ab Add new test with betamax for create flavors
864df79 Stop creating cloud objects in functional tests
dd7f0c9 Move list_magnum_services to OperatorCloud
cfa87b1 Add test for precedence rules
ddfed7f Pass the argparse data into to validate_auth
d71a902 Revert "Fix precedence for pass-in options"
37dcc7e Add release notes for 1.19.0 release
9c699ed Add the new DreamCompute cloud
9cdd967 Go ahead and admit that we return Munch objects
1a25bb2 Depend on python-heatclient>=1.0.0
cdea9eb Add update_server method
05b3c93 Fix precedence for pass-in options
1f7ecbc Update citycloud to list new regions
354f38a Remove discover from test-requirements
51a5eb5 Update hacking version
d9e9bb7 Add support for listing a cloud as shut down
9f4805b Change operating to interacting with in README
7dd138c Add floating IPs to server dict ourselves
481be16 Add support for deprecating cloud profiles
8481c6b Treat DELETE_COMPLETE stacks as NotFound
e67b306 Add support for changing metadata of compute instances
891fa1c Refactor fix magic in get_one_cloud()
5f5c925 Use keystoneauth.betamax for shade mocks
2d20407 Add network quotas support
4f36eca Reword the entries in the README a bit
7d63f12 Add shade constructor helper method
d0ce33a Add reno note for create_object and update_object
6a83406 Rename session_client to make_rest_client
cb2e59c Add magnum services call to shade
41ac156 Add helper method for OpenStack SDK constructor
92a3c9e Add function to update object metadata
c56d8e0 incorporate unit test in test_shade.py, remove test_router.py fix tenant_id in router add functional test test_create_router_project to functional/test_router.py add unit/test_router.py add project_id to create_router
8732fa7 Add magnum baymodel calls to shade.
7128a3e Make it easier to give swift objects metadata
49ca650 Add volume quotas support
7f47eb2 Add quotas support
fbe1b38 Add missing "cloud" argument to _validate_auth_ksc
b1343ac Add error logging around FIP delete
74ac5db Be more precise in our detection of provider networks
58faf12 Rework delete_unattached_floating_ips function
a1ab68c Make sure Ansible tests only use cirros images
fb357bd Don't fail getting flavors if extra_specs is off
02e4d1d Add initial setup for magnum in shade
090a265 Workaround bad required params in troveclient
44efe9c Trivial: Remove 'MANIFEST.in'
189a604 Trivial: remove openstack/common from flake8 exclude list
b0fa438 drop python3.3 support in classifier
f728df5 Amend the valid fields to update on recordsets
a53db2c Move cloud fixtures to independent yaml files
e689108 Add support for host aggregates
068028c Add support for server groups
04774d8 Add release note doc to dev guide
31ac451 Add Designate recordsets support
700ab6f Fix formatting in readme file
40a5091 Add support for Designate zones
d9455f6 Fail if FIP doens't have the requested port_id
1872af0 Add public helper method for cleaning floating ips
94dab01 Rework floating ip use test to be neutron based
63566ea Delete floating IP on nova refresh failure
e91245e Retry floating ip deletion before deleting server
04fd7db Have delete_server use the timed server list cache
cb579cd Document create_stack
7de80f9 delete_stack add wait argument
40b30a6 Implement update_stack
fba7207 Fix string formatting
e255657 Add domain_id param to project operations
59a2afd Remove get_extra parameter from get_flavor
7c32cf6 Honor floating_ip_source: nova everywhere
590e6dd Use configured overrides for internal/external
362986e Start stamping the has_service debug messages
f4aa49c Consume floating_ip_source config value
c6017bd Honor default_network for interface_ip
af47ff1 Refactor the port search logic
e734774 Allow passing nat_destination to get_active_server
d9fc340 Add nat_destination filter to floating IP creation
5d42c84 Refactor guts of _find_interesting_networks
1368b7d Search subnets for gateway_ip to discover NAT dest
3f79e8d Consume config values for NAT destination
92dc7a2 Return boolean from delete_project
0f2c7fb Correct error message when domain is required
1028f5a Remove discover from test-requirements.txt
d9f9c05 Add version string
b472097 Add release note about the swift Large Object changes
d5e0745 Delete image objects after failed upload
502a4bb Delete uploaded swift objects on image delete
e0ad4ec Add option to control whether SLO or DLO is used
719c064 Upload large objects as SLOs
19bbb7b Set min_segment_size from the swift capabilities
d8966d5 Don't use singleton dicts unwittingly
8601dd6 Update func tests for latest devstack flavors
5605034 Pull the network settings from the actual dict
aae0b15 Fix search_domains when not passing filters
bceedbc Wrap stack operations in a heat_exceptions
2ed2254 Use event_utils.poll_for_events for stack polling
fdb80ad Clarify one-per-cloud network values
7c43907 Flesh out netowrk config list
9cbe9ae Follow name_or_id pattern on domain operations
74ea5ca Remove conditional blocking on server list
acf9ffd Cache ports like servers
278a761 Change network info indication to a generic list
e43625d Workaround multiple private network ports
b99eb3f Reset network caches after network create/delete
186d57e Fix test_list_servers unit test
32c4fff Fix test_get_server_ip unit test
454d30b Remove duplicate FakeServer class from unit tests
75ee8f9 Mutex protect internal/external network detection
1853a54 Support provider networks in public network detection
c7ebbbf Re-allow list of networks for FIP assignment
18e8bfb Support InsecureRequestWarning == None
5c739ce Add release notes for new create_image_snapshot() args
de36427 Split waiting for images into its own method
d9867f4 Add wait support to create_image_snapshot()
060ce2e Also add server interfaces for server get
a9f4130 Import os module as it is referenced in line 2097
20451c3 Fix grant_role docstring
bd8be72 Add default value to wait parameter
b5e3cd3 Use OpenStackCloudException when _delete_server() raises
35e6af8 Always do network interface introspection
0870ffe Fix race condition in deleting volumes
8a7c609 Use direct requests for flavor extra_specs set/unset
c6f0258 Fix search_projects docstring
abe2505 Fix search_users docstring
e41dabb Add new tasks to os_port playbook
e4ba956 Deal with is_public and ephemeral in normalize_flavors
d133f36 Create clouds in Functional Test base class
e1f6f1c Run extra specs through TaskManager and use requests
55db0a5 Bug fix: Make set/unset of flavor specs work again
e6b60d9 Refactor unit tests to construct cloud in base
d725978 Add constructor param to turn on inner logging
4151feb Log inner_exception in test runs
c7f8a88 Pass specific cloud to openstack_clouds function
ebec668 Make get_stack fetch a single full stack
ee88b23 Add environment_files to stack_create
1e738db Add normalize stack function for heat stack_list
cfd62e4 Add wait_for_server API call.
cb60c7e Update create_endpoint()
b7b6de0 Make delete_project to call get_project
a715114 Update reno for stable/mitaka
cbab18b Add osic vendor profile
82697db Test v3 params on v2.0 endpoint; Add v3 unit
f10f704 Add update_service()
8fda803 Use network in neutron_available_floating_ips
d0709ea Allow passing project_id to create_network
543954d In the service lock, reset the service, not the lock
ff82154 Bug fix: Do not fail on routers with no ext gw
cf43b98 Mock glance v1 image with object not dict
d72262e Use warlock in the glance v2 tests
3850774 Fixes for latest cinder and neutron clients
0f23cb8 Add debug message about file hash calculation
c12d502 Pass username/password to SwiftService
b4411cb Also reset swift service object at upload time
53adfb4 Invalidate volume cache when waiting for attach
a9d155f Use isinstance() for result type checking
34799e9 Add test for os_server Ansible module
f236869 Fix create_server() with a named network
80e7c42 os_router playbook cleanup
795750b Fix heat create_stack and delete_stack
11b834a Catch failures with particular clouds
a7fe252 Allow testing against Ansible dev branch
d097959 Recognize subclasses of list types
03d5659 Update the README a bit
7a4993d Allow session_client to take the same args as make_client
f6bbd31 Add ability to pass just filename to create_image
11a8527 Add support for provider network options
ef263d6 Remove mock testing of os-client-config for swift
35ece66 Fix formulation
7865abc Add release notes
dcc9aad Add a method to download an image from glance
dd1f03c Send swiftclient username/password and token
02b4b4c Add test option to use Ansible source repo
8cb0eb3 Add enabled flag to keystone service data
ab8a196 Clarify Munch object usage in documentation
df379be Add docs tox target
9035ade create_service() should normalize return value
d052121 Prepare functional test subunit stream for collection
6619273 Use release version of Ansible for testing
ef5a1b2 Modify test workaround for extra_dhcp_opts
10a9369 Remove HP and RunAbove from vendor profiles
8264e09 Added SSL support for VEXXHOST
9199c26 Fix for stable/liberty job
e38eea3 granting and revoking privs to users and groups
fe2558a Add support for zetta.io
42727a5 Stop ignoring v2password plugin
cd9d0f3 Add release note for FIP timeout fix.
ae8f4b6 Go ahead and remove final excludes
b2deeef include keystonev2 role assignments
c2058d5 Add release note for new get_object() API call
f2ef884 Pass timeout through to floating ip creation
d7ffabc Fix normalize_role_assignments() return value
a2db877 Don't set project_domain if not project scoped
003f094 Remove a done todo list item
05aacf1 add the ability to get an object back from swift
cfd2919 Clean up removed hacking rule from [flake8] ignore lists
72a3d64 allow for updating passwords in keystone v2
fde5cc0 Support neutron subnets without gateway IPs
2f1d184 set up release notes build
4cefd93 Save the adminPass if returned on server create
25061db Fix unit tests that validate client call arguments
a8532f6 Fix a precedence problem with auth arguments
7e54967 Return empty dict instead of None for lack of file
cd5f16c Pass version arg by name not position
53187f2 Allow inventory filtering by cloud name
f61a487 Use _get_client in make_client helper function
9835daf Add barbicanclient support
cf439dd Add range search functionality
caae8ad Remove openstack-common.conf
cab0469 Add IBM Public Cloud
0b270f0 Replace assertEqual(None, *) with assertIsNone in tests
3b5673c Update auth urls and identity API versions
0bc9e33 Stop hardcoding compute in simple_client
84f4656 correct rpmlint errors
c53ed12 Add tests for stack search API
e19c47e Fix filtering in search_stacks()
a269d53 Bug fix: Cinder v2 returns bools now
59d9135 Normalize server objects
1cd3e5b Update volume API default version from v1 to v2
c514b85 Debug log a deferred keystone exception, else we mask some useful diag
9688f8e Fix README.rst, add a check for it to fit PyPI rules
ecb537d Make server variable expansion optional
594e31a Use reno for release notes
f3678f0 add URLs for release announcement tools
9929eb3 Have inventory use os-client-config extra_config
a39fca8 Fix unittest stack status
7ee7156 Allow filtering clouds on command line
17e019a Munge region_name to '' if set to None
7be6db8 Fix some README typos
77c0365 Fix token_endpoint usage
f765a16 remove python 2.6 os-client-config classifier
c10566c Fix shade tests with OCC 1.13.0
8fa5570 If cloud doesn't list regions expand passed name
95a7be3 No Mutable Defaults
ea85962 Add option to enable HTTP tracing
939862e Fix glance endpoints with endpoint_override
0a25cb5 Allow passing in explicit version for legacy_client
16166c0 Pass endpoint override to constructors
3a34378 Support backwards compat for _ args
22d740b Add backwards compat mapping for auth-token
8681485 Add support for querying role assignments.
88b7e64 Replace assertEqual(None, *) with assertIsNone in tests
d9c283c Add inventory unit tests
837ca71 Allow arbitrary client-specific options
add21aa Fix server deletes when cinder isn't available
f4971b5 Pedantic spelling correction
451e513 Bug fix: create_stack() fails when waiting
fb8ea73 Stack API improvements
8d5abfb Bug fix: delete_object() returns True/False
3b50573 Add wait support for ironic node [de]activate
8d868cb Improve test coverage: container/object list API
44e796a Make a new swift client prior to each image upload
47d2472 Improve test coverage: volume attach/detach API
f4237a8 Add ceilometer constructor to known constructors
d38af94 Bug fix: Allow name update for domains
4c8cfe4 Improve test coverage: network delete API
d7e6167 Bug fix: Fix pass thru filtering in list_networks
c47ec15 Consider 'in-use' a non-pending volume for caching
8696fbd Improve test coverage: private extension API
f0440f8 Improve test coverage: hypervisor list
83159ae Use reno for release notes
d0c70cc Add support for generalized per-region settings
1221ea7 Fix a README typo - hepler is not actually a thing
8eced67 Make client constructor optional
b90f53b Updated README to clarify legacy client usage
5beaeef Add simple helper function for client construction
ed2f34b Add method for registering argparse options
6aecb87 Update vexxhost to Identity v3
99602b5 Improve test coverage: list_router_interfaces API
9922cfb Change the client imports to stop shadowing
833f549 Use non-versioned cinderclient constructor
ca1409e Improve test coverage: server secgroup API
a5f1850 Improve test coverage: container API
eea460d Make sure that cloud always has a name
f16ec05 Improve test coverage: project API
0e6085f Improve test coverage: user API
dcdb20d Provide a better comment for the object short-circuit
1700e19 Remove cinderclient version pin
07ac77c Add functional tests for boot from volume
026a17c Remove optional keystoneauth1 imports
372edf4 Enable running tests against RAX and IBM
2c75369 Don't double-print exception subjects
0d5e7b5 Accept objects in name_or_id parameter
bd2f1cb Normalize volume objects
87309ad Fix argument sequences for boot from volume
02ac37f Make delete_server() return True/False
cc92c92 Add BHS1 to OVH
e1646ac Adjust conditions when enable_snat is specified
c01913d Only log errors in exceptions on demand
9f43f8a Fix resource leak in test_compute
596a5d8 Clean up compute functional tests
0ea32e7 Handle cinder v2
014db17 Stop using nova client in test_compute
4c1418f Retry API calls if they get a Retryable failure
9f23d6e Fix call to shade_exceptions in update_project
7698842 Add test for os_volume Ansible module
31cdee1 Fix for min_disk/min_ram in create_image API
4c7583b Add test for os_image Ansible module
b17bbcd Add support for secure.yaml file for auth info
05bd92c Fix warnings.filterwarnings call
630ce67 boot-from-volume and network params for server create
2cc6257 Do not send 'router:external' unless it is set
c6c1b73 Add test for os_port Ansible module
9d7229f Allow specifying cloud name to ansible tests
27154a9 Fix a 60 second unit test
23b49f8 Make sure timeouts are floats
e9d4223 Remove default values from innner method
c841791 Bump os-client-config requirement
9c59002 Fix lack of parenthesis around boolean logic
10e96bc Only pass timeout to swift if we have a value
ef80430 Add test for os_user_group Ansible module
72190ec Add user group assignment API
0189dd2 Add test for os_user Ansible module
4834756 Add test for os_nova_flavor Ansible module
21438f4 Stop using uuid in functional tests
26412cb Make functional object tests actually run
0aefe15 Fix name of the object-store api key
3e76af9 Refactor per-service key making
e5715de Add Ansible object role
74477b6 Fix for create_object
f5e1b85 Add support for legacy envvar prefixes
b2bc8c5 Four minor fixes that make debugging better
633441f Add new context manager for shade exceptions, final.
1ac8530 Add ability to selectively run ansible tests
cb0e913 Add Ansible testing infrastructure
506d6e8 Fix JSON schema
105ba77 Add new context manager for shade exceptions, cont. again
ef0ccaa Pull server list cache setting via API
a71db08 Plumb fixed_address through add_ips_to_server
397da54 Workaround a dispute between osc and neutronclient
c90de1f Workaround for int value with verbose_level
ce7d716 Remove unneeded workaround for ksc
59ad0ed Add default API version for magnum service
f7ca875 Let os-client-config handle session creation
9df40b0 Remove designate support
ae2bded Remove test reference to api_versions
e557b6e Update dated project methods
4a061ca Fix incorrect variable name
89dd353 Add CRUD methods for keystone groups
13b6fba Work around a bug in keystoneclient constructor
5b99320 Return cache settings as numbers not strings
2339243 Add method to get a mounted session from config
26c8ebd Bump ironicclient depend
3b43304 Make sure cache expiration time is an int
b8874ff Convert floats to string
10836ae Add new context manager for shade exceptions, cont.
d373969 Don't assume pass_version_arg=False for network
059d314 Update network api version in defaults.json
588be01 Dont turn bools into strings
1bf0941 Use requestsexceptions for urllib squelching
2b45428 Use the requestsexceptions library
93d8b79 Don't warn on configured insecure certs
ba3b206 Normalize domain data
5e031a5 Normalization methods should return Munch
b4e7985 Fix keystone domain searching
ac51f44 Normalize int config values to string
1d3128d Add new context manager for shade exceptions
234a2bf teach shade how to list_hypervisors
409134d Update ansible router playbook
6d957b0 Disable spurious urllib warnings
335ed4a Add logging module support
a494b31 Add methods for getting Session and Client objects
27678e5 Update conoha's vendor profile to include SJC
796bfad Use json for in-tree cloud data
5dca987 Stop calling obj_to_dict everwhere
586dbbb Always return a munch from Tasks
b5b3fba Make raw-requests calls behave like client calls
b7ad03e Minor logging improvements
48c0668 Update auro to indicate move to neutron
5f2b64b Copy values in backwards_interface differently
d68e819 Remove another extraneous get for create_server
7c5087d Don't wrap wrapped exception in create_server
0085eff Skip an extra unneeded server get
eba0221 Fix typo in Catalyst region configs
b6e9180 Don't wrap wrapped exceptions in operatorcloud.py
684b8b6 Add docs for create_server
edc5fc2 Update README to not reference client passthrough
91e0148 Move ironic client attribute to correct class
6257821 Move _neutron_exceptions context manager to _utils
f31b206 Fix misspelling of ironic state name.
e2f0253 Timeout too aggressive for inspection tests
0f6203f Split out OpenStackCloud and OperatorCloud classes
fff354e Adds volume snapshot functionality to shade
fedb035 Fix the return values of create and delete volume
96839a5 Remove removal of jenkins clouds.yaml
f826d93 Consume /etc/openstack/clouds.yaml
12e7868 Add logic to support baremetal inspection
80f2a21 node_set_provision_state wait/timeout support
2c63d6e Add warning suppression for keystoneauth loggers
faea2f8 Suppress Rackspace SAN warnings again
0cee250 Aligned a few words in the docs
2aaba84 Sort vendor list
c71ba51 Add conoha public cloud
4ae0426 Allow for templated variables in auth_url
f8804bd Use assertDictEqual to test dict equality
e941434 return additional detail about servers
631a8e5 expand security groups in get_hostvars_from_server
f39cb4b Always pull regions from vendor profiles
8f93623 add list_server_security_groups method
7f5ae95 Add swift object and container list functionality
139a2b5 Translate task name in log message always
c0f0f36 Add debug logging to iterate timeout
aed2026 Change the fallback on server wait to 2 seconds
fa8d018 Add entry for James Blair to .mailmap
bf792d7 handle routers without an external gateway in list_router_interfaces
8cd3b51 Fix projects list/search/get interface
dc45027 Remove unused parameter from create_stack
0ab8b82 Move valid_kwargs decorator to _utils
3d66d1f Add heat support
0bb5192 Abstract out the name of the name key
7aa043e Add heatclient support
da2bfd7 Use OCC to create clouds in inventory
26aff17 novaclient 2.32.0 does not work against rackspace
0a1c7c8 Support private address override in inventory
76b081e Normalize user information
cbc3299 Set cache information from clouds.yaml
0d22456 Make designate record methods private for now
e081dcb Rely on devstack for clouds.yaml
f7afb98 Rename identity_domain to domain
6afb7ad Rename designate domains to zones
a398485 Replace Bunch with compatible fork Munch
862a71a Make a few IP methods private
05f3316 Push filtering down into neutron
790fac9 Clean up cache interface, add support for services
48f352d Make floating IP func tests less racey
16061f9 Make router func tests less racey
65fdacc Create neutron floating ips with server info
ae5e5e0 Undecorate cache decorated methods on null cache
08f2982 Tweak create_server to use list_servers cache
b06adf5 Add Rackspace LON region
1ad1e9a Add API method to list router interfaces
46525cf Handle list_servers caching more directly
7d711f2 Split the nova server active check out
ed9c516 Pass wait to add_ips_to_server
bcd507a Fix floating ip removal on delete server
688ca1f Document filters for get methods
ee1e88b Add some more docstrings
512ca01 Validate requested region against region list
f6681a8 Fix documentation around regions
ec4ebbd Add an API reference to the docs
6113d03 Pass OpenStackConfig in to CloudConfig for caches
c22cc1f Remove shared=False from get_internal_network
8569b81 Make attach_instance return updated volume object
05adc0b Tell git to ignore .eggs directory
1511935 Align users with list/search/get interface
3962a1c Add script to document deleting private networks
baa36a8 Add create/delete for keystone roles
539c145 Accept and emit union of keystone v2/v3 service
7a347bf Use keystone v3 service type argument
801d09a Add auth hook for OpenStackClient
9b03198 Add get/list/search methods for identity roles
1a719d3 Add methods to update internal router interfaces
5dc91cf Add get_server_by_id optmization
310db38 Add option to floating ip creation to not reuse
3609cd5 Adds some lines to complete table formatting
a52c61a Provide option to delete floating IP with server
8f943e1 Update python-troveclient requirement
4f65ac7 Add a private method for nodepool server vars
fc5f41e Update required ironicclient version
cf4effb Split get_hostvars_from_server into two
eb9ce61 Invalidate image cache everytime we make a change
10a3bb1 Use the ipaddress library for ip calculations
be11a20 Optimize network finding
d3b17d1 Fix create_image_snapshot
379962f Add universal=1 to setup.cfg to build python 3 wheels
5a42035 Return IPv6 address for interface_ip on request
0a06226 Plumb wait and timout down to add_auto_ip
12662dd Pass parameters correctly for image snapshots
758630e Fix mis-named has_service entry
14c7fd5 Provide shortcut around has_service
950f22a Provide short-circuit for finding server networks
332e790 Update fake to match latest OCC
a9d5827 Some cleanup
d3c82ab Fix two typos
21ff307 Put in override for Rackspace broken neutron
7d84f10 Support passing force_ipv4 to the constructor
733c04f identity version is 2.0
137458f Dont throw exception on missing service
723b893 Handle OS_CLOUD and OS_REGION_NAME friendly-like
79637b1 Added SWITCHengines vendor file
9f0e6a8 Add functional test for private_v4
bccce18 Attempt to use glanceclient strip_version
8822b7a Fix baremetal port deletion
0ff48d2 Add router ansible test and update network role
a0e1ae1 Trap exceptions in helper functions
4636dd9 Add more info to some exceptions
14831e6 Allow more complex router updates
7ccb6f8 Allow more complex router creation
f3c43e8 Allow creating externally accessible networks
5105613 Handle glance v1 and v2 difference with is_public
20ac047 Get defaults for image type from occ
489314a Use the get_auth function from occ
988e305 update RST for readme so pypi looks pretty
03c1556 Add a NullHandler to all of our loggers
2e350d0 Remove many redundant debug logs
0f08964 Fix a little error with the None auth type
84904f3 Make inner_exception a private member
75954fa Add support for Catalyst as vendor
02cf7ce Just do the error logging in the base exception
5d9bb47 Store the inner exception when creating an OSCException
d084ebd Start using keystoneauth for keystone sessions
7f33416 Change ignore-errors to ignore_errors
8dee656 Handle ksa opt with no deprecated field
aa41f9b Fall back to keystoneclient arg processing
6d25a93 Fix typo in ovh region names
21bb2f3 Move plugin loader creation to try block
0339a9a Convert auth kwargs '-' to '_'
2906d1e Properly handle os- prefixed args in fix_args
aabf143 Test kwargs passing not just argparse
aef90e7 Allow configuring domain id once
54afb28 Add internap to the vendor list
2be0553 Fix typo in comment - we use ksa not ksc
093d7b0 Defer plugin validation to keystoneauth
3f76cc5 Remove an extra line
b0f4161 Add Datacentred to the vendor list
2762241 Add ultimum to list of vendors
d835c47 Add Enter Cloud Suite to vendors list
7bfa633 Add elastx to vendor support matrix
265abb2 Switch the image default to v2
d11d165 Update auro auth_url and region information
53b7b7a Add citycloud to the vendors list
15c6652 Return keystoneauth plugins based on auth args
9a62658 Move keystone to common identity client interface
eb6ed09 Remove duplicate lines that are the same as default
a51ab85 Add default version number for heat
7435437 Bump the default API version for python-ironicclient
24bff5d Update OVH public cloud information
82aea48 Avoid 2.27.0 of novaclient
fb24f1d Handle empty defaults.yaml file
b52d744 unregister_machine blocking logic
337a0ed Fix exception lists in functional tests
e589514 Migrate neutron to the common client interface
bd24a6d Remove last vestige of glanceclient being different
16b0720 Pass timeout to session, not constructors
dcf079e Delete floating ip by ID instead of name
ceb6a1d Move glanceclient to new common interface
2920aa0 Addition of shade unregister_machine timeout
de6cb78 Initial support for ironic enroll state
2726843 Do not treat project_name and project_id the same
a735e12 Add flavor access API
40fdf2b Make client constructor calls consistent
e29ed75 Revert "Revert "Use the correct auth_plugin for token authentication""
085074d Change functional testing to use clouds.yaml
0e3117c Revert "Use the correct auth_plugin for token authentication"
eeae22f Add a developer coding standards doc
13a04f7 Ignore infra CI env vars
dfef01a Use the correct auth_plugin for token authentication
575508d Add flavor functional tests
ef756c4 Bug fix for obj_to_dict()
20b3dd1 Add log message for when IP addresses fail
1ead623 Add methods to set and unset flavor extra specs
ee34c7d Listing flavors should pull all flavors
b55f88b Be consistent with accessing server dict
84e3aae Throw an exception on a server without an IP
80e1fbc Be smarter finding private IP
0af29bd Clarify future changes in docs
a8e8c80 Align to generic password auth-type
264fa42 Remove meta.get_server_public_ip() function
6f09b54 Document create_object
b1ae223 Remove unused server functions
914d82a Fix two typos and one readablity on shade documentation
8218cb2 Pass socket timeout to swiftclient
ad59fe3 Process config options via os-client-config
494cea2 Update ansible subnet test
31eabb9 Fix test_object.py test class name
6e9a52a Fix for swift servers older than 1.11.0
212ce98 Clarify floating ip use for vendors
b2d1075 Add per-service endpoint overrides
5c6aefa Use disable_vendor_agent flags in create_image
856b298 Use os-client-config SSL arg processing
482d6ed Correctly pass the server ID to add_ip_from_pool
21e7628 Add initial designate read-only operations
a9cf85b Always use a fixed address when attaching a floating IP to a server
d6d2cbe Remove requirements.txt from tox.ini
db0480e Catch leaky exceptions from create_image()
b292db7 Remove py26 and py33 from tox.ini
0b69813 Rename 'endpoint_type' to 'interface'
b414543 Have service name default to None
e7241b4 Add flavor admin support
3891816 Remove region list from single cloud
6087135 Fix debug logging lines
62c1f2a Account for Error 396 on Rackspace
8f3a48b Fix small error in README.rst
b74df46 Fix set_default() when used before config init
9ac1517 Allow use of admin tokens in keystone
5709ca8 Fix identity domain methods
ab1c566 Update ansible module playbooks
7965fd2 Rework how we get domains
6523cf6 Specify the config file with environment variable
1065ea4 Add support for configuring region lists with yaml
7ad8db9 Fix "Bad floatingip request" when multiple fixed IPs are present
df195a3 Add Ansible module test for subnet
8a2db7b Add Ansible module test for networks
9d3cc79 Fix rendering issue in Readme
bfa1955 Add a testing framework for the Ansible modules
b3197e9 Support project/tenant and domain vs. None
604c27f Add CRUD methods for Keystone domains
2ab2310 Raise exception for nova egress secgroup rule
01aecee Modify secgroup rule processing
648e4fd Make sure we are returning floating IPs in current domain
235dedc Correctly name the functional TestImage class
fceb193 Locking ironic API microversion
808a50a Add Neutron/Nova Floating IP tests
b12b3b6 Adding SSL arguments to glance client
50f0544 Clean up vendor data
65dd845 Add support for indicating preference for IPv6
0b09988 Remove list_keypair_dicts method
1e447b4 Do not use environment for Swift unit tests
882ad91 Add Neutron/Nova Floating IP attach/detach
5d66693 Fix available_floating_ip when using Nova network
fd36850 Skip Swift functional tests if needed
2b64bbc Fix AttributeError in keystone functional tests
6f93b3a Update keypair APIs to latest standards
f9c72e9 Add Neutron/Nova Floating IP delete (i.e. deallocate from project)
73c0774 Add Neutron/Nova Floating IP create (i.e. allocate to project)
735aae7 Convert ironicclient node.update() call to Task
5369ffc Convert ironicclient node.get() call to Task
fdefa58 Move TestShadeOperator in a separate file
9db26ef Fix intermittent error in unit tests
2979033 Pin cinderclient
b631da8 Normalize project_name aliases
bbcfbc8 Add comment explaining why finding an IP is hard
a998ecd Add IPv6 to the server information too
af32bbb Use accessIPv4 and accessIPv6 if they're there
cb1c0ea Add Neutron/Nova Floating IP list/search/get
7cde7c5 Catch all exceptions around port for ip finding
ebfef54 Centralize exception management for Neutron
6367ead Fix MD5 headers regression
e25936b Ensure that service values are strings
11059de Pass token and endpoint to swift os_options
6098388 Convert ironicclient node.validate() call to Task
208c084 Convert ironicclient node.list() call to Task
03967b1 Return True/False for delete methods
1550cfc Add some accessor methods to CloudConfig
f6c0f80 Add delete method for security group rules
3cee02e Add get_server_external_ipv6() to meta
669af9a Refactor find_nova_addresses()
1f0171b Replace get_server_public_ip() with get_server_external_ipv4()
07f72e1 Add get_server_external_ipv4() to meta
b533b09 Add more parameters to update_port()
20f86ae Improve documentation for create_port()
6f5bf9c Correct get_machine_by_mac and add test
965998c Add create method for secgroup rule
2f499ab Coalesce port values in secgroup rules
120d688 Move _utils unit testing to separate file
78a3b20 Add secgroup update API
eded4b3 Add missing tests
dfcccbf Add very initial support for passing in occ object
de84b79 Add test to check cert and key as a tuple
fd16aa7 Don't emit volume tracebacks in inventory debug
3a81f59 Return new secgroup object
8434026 Use one yaml file per vendor
9f7a506 Raise warning when a vendor profile is missing
d710acc Some cleanup in the README.rst
a2f2524 Add support for OVH Public Cloud
7e605f9 Add SSL documentation to README.rst
0b2a555 Port ironic client port.get_by_address() to a Task
fae69e6 Port ironic client port.get() to a Task
92b4cc3 Add inventory command to shade
2c926e6 Extract logging config into a helper function
95beafe Stringify project details
bc253d6 Raise a warning with conflicting SSL params
b1e562c Change references of "clouds.yaml" for real file
cf0bdc4 Add create method for security groups
50975f5 Add delete method for security groups
8c445b5 Switch to SwiftService for segmented uploads
f02636e Add support to get a SwiftService object
acc2cbd Raise a warning when using 'cloud' in config
038ddd3 Add cloud vendor files config in doc
92040ef Add port resource methods
a4e9d5c Split security group list operations
988ab2a Add keystone endpoint resource methods
da69297 Add Keystone service resource methods
fa0a120 Rely on defaults being present
fd731c1 Consume os_client_config defaults as base defaults
d5d539d Remove hacking select line
a0df677 Provide a helper method to get requests ssl values
2fcf053 Add design for an object interface
eccbd04 Port ironic client node.list_ports() to a Task
6c3b1e5 Port ironic client port.list() to a Task
dc012c3 Split list filtering into _utils
8d9cab2 Cast nova server object to dict after refetch
e763e3b Split iterate_timeout into _utils
7e69d82 Cleanup OperatorCloud doc errors/warnings
ba0986f Add more defaults to our defaults file
b431669 Change naming in vendor doc to match vendors.py
f66aad5 Add auro to list of known vendors
d503f05 Add list of image params needed to disable agents
cb54ac5 Update pbr version pins
daab361 Add set_one_cloud method
b16d6d3 Add tests for get_cloud_names
6daed95 Add flag to indicate handling of security groups
88c5e08 Don't normalize too deeply
2580c0a Add tests for cloud config comparison
9b98ee0 Add inequality method
5c60aad Add an equality method for CloudConfig
5a4f809 Capture the filename used for config
f3eb3d4 Normalize all keys down to _ instead of -
a5dd46a Expose method for getting a list of cloud names
353875b Set metadata headers on object create
b51f9f8 Rename cloud to profile
434d51a Don't pass None as the cloud name
24385ad Always refresh glanceclient for tokens validity
be3ddcd Don't cache keystone tokens as KSC does it for us
39eefc1 Make sure glance image list actually runs in Tasks
f574339 Make caching work when cloud name is None
1dc1d25 Handle novaclient exception in delete_server wait
1cb9b20 Support PUT in Image v2 API
88a12a9 Make ironic use the API version system
6d654bc Catch client exceptions during list ops
ef47a50 Replace ci.o.o links with docs.o.o/infra
5af9a9d Pass OS_ variables through to functional tests
5d9ab44 Improve error message on auth_plugin failure
a0a36b8 Handle novaclient exceptions during delete_server
569fe40 Add floating IP pool resource methods
9bcf259 Don't error on missing certs
cbdc7c7 Change overriding defaults to kwarg
e71bee3 Stop leaking server objects
948aa01 Add tests for OSC usage
3328cc7 Use fakes instead of mocks for data objects
4b40133 Use appdirs for platform-independent locations
9b9e3d0 Add UnitedStack
508c240 Expose function to get defaults dict
b16c49c Add default versions for trove and ironic
b9cdb76 Sort defaults list for less conflicts
2f1e6c1 Only add fall through cloud as a fall through
78df129 Update images API for get/list/search interface
1981431 Rewrite extension checking methods
731cfab Update server API for get/list/search interface
33634dd Add flag to indicate where floating ips come from
f6d0876 get_one_cloud should use auth merge
dc8d21d Also accept .yml as a suffix
cecbc2a Fix delete_server when wait=True
2e3498d Return Bunch objects instead of plain dicts
760d996 Switch tasks vs put on a boolean config flag
f495ebd Enhance the OperatorCloud constructor
f2a86ce Convert node_set_provision_state to task
545d3f0 Update recent Ironic exceptions
f62cf08 Enhance error message in update_machine
912af15 Remove crufty lines from README
08f330d Rename get_endpoint() to get_session_endpoint()
ace6d92 Update vendor support to reflect v2 non-task
a417f38 Make warlock filtering match dict filtering
4d80851 Fix exception re-raise during task execution for py34
5984807 Add more tests for server metadata processing
e1c2cd9 Add thread sync points to Task
be87e99 Add early service fail and active check method
896f844 Add a method for getting an endpoint
2c4d909 Raise a shade exception on broken volumes
3b64ee6 Split exceptions into their own file
abdb5ca Add minor OperatorCloud documentation
87000d9 Allow for int or string ID comparisons
3f8431a Add flag to trigger task interface for rackspace
7468d11 Change ironic maintenance method to align with power method
128a62f Add Ironic machine power state pass-through
a540167 Update secgroup API for new get/list/search API
aa092ba Fix functional tests to run against live clouds
930a8b1 Add functional tests for create_image
0a3cd47 Do not cache unsteady state images
41ef641 Add tests and invalidation for glance v2 upload
59041cc Allow complex filtering with embedded dicts
788dd1b Call super in OpenStackCloudException
4d4d555 Add Ironic maintenance state pass-through
6ac348d Add update_machine method
34c1ad9 Replace e.message with str(e)
746a1a8 Update flavor API for new get/list/search API
cd2a8a6 Add a docstring to the Task class
3f1c99c Remove REST links from inventory metadata
8908ebd Have get_image_name return an image_name
3b72d6f Fix get_hostvars_from_server for volume API update
e351f50 Add test for create_image with glance v1
3e3f525 Explicitly request cloud name in test_caching
10e123f Add test for caching in list_images
9605377 Test flavor cache and add invalidation
2deadb0 Fix major update_user issues
31d07b4 create_user should return the user created
457db08 Test that deleting user invalidates user cache
cb66731 Use new getters in update_subnet and update_router
c72204f Update volume API for new getters and dict retval
f351d4f Search methods for networks, subnets and routers
c408583 Update unregister_machine to use tasks
a591e3e Invalidate user cache on user create
9dfa4b8 Update register_machine to use tasks
8ebba2a Add test of OperatorCloud auth_type=None
3f6f25c Allow name or ID for update_router()
9ac0ef5 Allow name or ID for update_subnet()
fbe5fd0 Add test for user_cache
0fd99ac MonkeyPatch time.sleep in unit tests to avoid wait
94e392c Add patch_machine method and operator unit test substrate
5566571 Wrap ironicclient methods that leak objects
3cfc64c Basic test for meta method obj_list_to_dict
fdccd14 Change Ironic node lookups to support names
c28877d Add meta method obj_list_to_dict
b55de0e Document vendor support information
b7f38ff Reset cache default to 0
ebf2dba Add test for invalidation after delete
a6cd1a9 Deprecate use of cache in list_volumes
3634823 Invalidate volume list cache when creating
0e3e496 Make cache key generator ignore cache argument
05ba6a5 Add get_subnet() method
f2e943e add .venv to gitignore
825e5b5 Move region_names out of auth dict
ce65022 Add runabove to vendors
5bc39ae Add image information to vexxhost account
d42de63 Add API method update_subnet()
5ec5104 Add API method delete_subnet()
c5d350c Add API method create_subnet()
6ec4801 Add vexxhost
db39e98 Add DreamCompute to vendors list
ffafb52 Allow overriding envvars as the name of the cloud
7e682d3 Put env vars into their own cloud config
2ac9258 Add keystoneclient to test-requirements
52e6766 Actually put some content into our sphinx docs
557f488 Unsteady state in volume list should prevent cache
bd78c48 Test volume list caching
0478c32 Allow passing config into shade.openstack_cloud
da1e06f Refactor caching to allow per-method invalidate
021c75f Add tests for caching
b5bde90 Rename auth_plugin to auth_type
854efa4 Update os-client-config min version
ff5444e Fix volume operations
0511982 Fix exception in update_router()
5ca933a Add API auto-generation based on docstrings
8c36014 Fix docs nit - make it clear the arg is a string
7eb7c4c Poll on the actual image showing up
b03f1f3 Add delete_image call
a0d0d71 Skip passing in timeout to glance if it's not set
4fbc21b Add some unit test for create_server
0a7479d Migrate API calls to task management
d9f4965 Fix naming inconsistencies in rebuild_server tests
fbac3c0 Add task management framework
1c756b8 Namespace caching per cloud
c713eb3 Allow for passing cache class in as a parameter
5ce06cc Add 'rebuild' to shade
f5c647e Let router update to specify external gw net ID
3de1b73 Create swift container if it does not exist
1bd2a10 Fix a use of in where it should be equality
afd2b10 Disable warnings about old Rackspace certificates
23d38f9 Pass socket timeout to all of the Client objects
ff25b8e Add methods for logical router management
a517079 Add api-level timeout parameter
79a1c48 Update .gitreview for git section rename
0dc9165 Custom exception needs str representation
924be2b Add basic unit test for shade.openstack_cloud
85cac59 Small fixes found working on ansible modules
792703e Disable dogpile.cache if cache_interval is None
9869fa3 Add support for keystone projects
52a28ba Fix up and document input parameters
74b90e8 Handle image name for boot from volume
7cb9d2b Clean up race condition in functional tests
63e1630 Change dogpile cache defaults
738d215 Add initial compute functional tests to Shade
e5d2782 Add cover to .gitignore
99e8540 Add cover to .gitignore
d5931d4 Flesh out api version defaults
3b5a20e Handle project_name/tenant_name in the auth dict
df91dcf Add two newlines to the ends of files
6fff9fe Rename auth_plugin to auth_type
55d04bf Add ironic node deployment support
4ad95b3 Align cert, key, cacert and verify with requests
5ce3b22 Add methods to create and delete networks
62616f3 Add behavior to enable ironic noauth mode
1ccad8c Add support for configuring dogpile.cache
f99dc5f Fix coverage report
15cbdf7 Add more testing of vendor yaml loading
e483abc More comprehensive unit tests for os-client-config
9752feb Allow keystone validation bypass for noauth usage
076e9bd Add basic unit test for config
1d0e7fd Reorder envlist to avoid the rm -fr .testrepository when running tox -epy34
acfcf55 Make image processing work for v2
5bffc4e Utilize dogpile.cache for caching
6d31937 Add support for volume attach/detach
93ce50c Do not allow to pass *-cache on init
cec22cd Import from v2 instead of v1_1
637b5b2 Add unit test for meta.get_groups_from_server
47435af Add unit tests for meta module
7d39596 Add a method to create image snapshots from nova.
76c77d1 Return extra information for debugging on failures
804b2f3 Don't try to add an IP if there is one
084df16 Revamp README file
3d165ae Add hasExtension method to check cloud capabilities
2bad9da Don't compare images when image is None
23ab18e Add service_catalog property
91bc405 Remove unnecessary container creation
7e4927e Make is_object_stale() a public method
7385528 Prefer dest value when option is depricated
56b7515 Allow region_name to be None
89d1e4d Don't return the auth dict inside the loop
01d7728 Make sure we're deep-copying the auth dict
2067982 Fix broken object hashing
37069cb Adds some more swift operations
0cba0b8 Adds get_network() and list_networks function
1e572aa Add support for creating/deleting volumes
eeaf473 Get auth token lazily
106e556 Pass service_name to nova_client constructor
fcc1086 Create a neutron client
d3daf5b Port to use keystone sessions and auth plugins
8f1ca24 Add consistent methods for returning dicts
4d1fae6 Add get_flavor method
bea5220 Make get_image return None
4bb72f8 Use the "iterate timeout" idiom from nodepool
2bbcb63 Remove runtime depend on pbr
569197d Provide Rackspace service_name override
70b58cf Fix obj_to_dict type filtering
c22531d Adds a method to get security group
ab117cf Pull in improvements from nodepool
5342d25 Remove positional args to create_server
37cf9b8 Don't include deleted images by default
9c9de96 Add image upload support
abc21aa Refactor glance version call into method
a81d18d Support uploading swift objects
13a455f Debug log any time we re-raise an exception
bc56088 Start keeping default versions for all services
c75daaa Support keystone auth plugins in a generic way.
621a863 Replace defaults_dict with scanning env vars
f0a21c8 Remove py26 support
e242087 Explain obj_to_dict
88f5f26 Fix python3 unittests
65fe04d Change meta info to be an Infra project
a56767a Fix flake8 errors and turn off hacking
5b3c005 Fix up copyright headers
3235321 Add better caching around volumes
cdb3e37 Workflow documentation is now in infra-manual
ca54d72 Corrections to readme
98d3de9 Use yaml.safe_load instead of load.
1c025d5 Throw error if a non-existent cloud is requested
4673bea Support boot from volume
b348382 Make get_image work on name or id
8f1bb10 Fix a missed argument from a previous refactor
9c540a2 Add some additional server meta munging
0ed767e Map CloudConfig attributes to CloudConfig.config
313fb39 Support injecting mount-point meta info
86f2c2b Move ironic node create/delete logic into shade
54a4606 Refactor ironic commands into OperatorCloud class
caa65d7 fix typo in create_server
4b1cdaa Don't die if we didn't grab a floating ip
f8a5ff7 Process flavor and image names
77fce7d Stop prefixing values with slugify
0968f76 Don't access object members on a None
1faac01 Make all of the compute logic work
ddb1118 Add delete and get server name
a046b70 Fixed up a bunch of flake8 warnings
7fabe4b Add in server metadata routines
470f6ea Add support for argparse Namespace objects
b03d6e5 Add support for command line argument processing
a234518 Plumb through a small name change for args
293745e Consume project_name from os-client-config
91afaeb Handle lack of username for project_name defaults
0aa553c Handle the project/tenant nonesense more cleanly
aa79645 add Ironic client
b1bb75a Add cache control settings
215425f Handle no vendor clouds config files
67f1fbd Remove unused class method get_services
21e3eca Updates to use keystone session
2c2a295 Add clouds-public.yaml
cb9e505 Prep for move to stackforge
7bd5ff6 Handle missing vendor key
b8382c3 Make env vars lowest priority
1113d05 Handle null region
e3bef24 Discover Trove API version
1277d4c Update the README file for more completeness
c938bb9 Offload config to the os-client-config library
69d2a3e Get rid of extra complexity with service values
9bbb4f3 Remove babel and add pyyaml
6efe00d Port in config reading from shade
edadf14 Initial Cookiecutter Commit.
64292c8 Add example code to README
ccdd146 Add volumes and config file parsing
4fd77e7 Fix log invocations
f18e9e8 Remove some extra lines from the README
97c316f Add the initial library code
c046b39 Initial cookiecutter repo


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

.gitignore                                         |    1 +
.mailmap                                           |    5 +-
.stestr.conf                                       |    3 +
.testr.conf                                        |    8 -
.zuul.yaml                                         |  241 +
CONTRIBUTING.rst                                   |   47 +-
HACKING.rst                                        |   51 +-
README.rst                                         |  137 +-
SHADE-MERGE-TODO.rst                               |  140 +
bindep.txt                                         |   12 +
devstack/plugin.sh                                 |   54 +
.../contributor/create/examples/resource/fake.py   |   29 +
.../create/examples/resource/fake_service.py       |   13 +
.../contributors/create/examples/resource/fake.py  |   29 -
.../create/examples/resource/fake_service.py       |   13 -
.../user/examples/create-server-name-or-id.py      |   25 +
.../user/examples/service-conditional-overrides.py |    5 +
.../users/guides/clustering/profile_type.rst       |   44 +
.../users/resources/bare_metal/v1/chassis.rst      |   12 -
.../users/resources/bare_metal/v1/driver.rst       |   12 -
.../users/resources/bare_metal/v1/port_group.rst   |   12 -
.../users/resources/baremetal/v1/chassis.rst       |   12 +
.../users/resources/baremetal/v1/port_group.rst    |   12 +
.../users/resources/block_storage/v2/snapshot.rst  |   21 +
.../users/resources/block_storage/v2/type.rst      |   13 +
.../users/resources/block_storage/v2/volume.rst    |   21 +
.../users/resources/block_store/v2/snapshot.rst    |   21 -
.../users/resources/block_store/v2/volume.rst      |   21 -
.../users/resources/cluster/v1/build_info.rst      |   12 -
.../users/resources/cluster/v1/cluster_policy.rst  |   13 -
.../users/resources/cluster/v1/policy_type.rst     |   12 -
.../users/resources/cluster/v1/profile_type.rst    |   12 -
.../users/resources/clustering/v1/action.rst       |   12 +
.../users/resources/clustering/v1/build_info.rst   |   12 +
.../users/resources/clustering/v1/cluster.rst      |   12 +
.../resources/clustering/v1/cluster_policy.rst     |   13 +
.../users/resources/clustering/v1/policy.rst       |   12 +
.../users/resources/clustering/v1/policy_type.rst  |   12 +
.../users/resources/clustering/v1/profile.rst      |   12 +
.../users/resources/clustering/v1/profile_type.rst |   12 +
.../users/resources/clustering/v1/receiver.rst     |   12 +
.../users/resources/telemetry/v2/capability.rst    |   12 -
.../users/resources/telemetry/v2/resource.rst      |   12 -
.../users/resources/telemetry/v2/statistics.rst    |   12 -
examples/cluster/__init__.py                       |    0
examples/cluster/policy.py                         |   73 -
examples/cluster/policy_type.py                    |   33 -
examples/cluster/profile.py                        |   82 -
examples/cluster/profile_type.py                   |   33 -
examples/clustering/__init__.py                    |    0
examples/clustering/policy.py                      |   73 +
examples/clustering/policy_type.py                 |   33 +
examples/clustering/profile.py                     |   82 +
examples/clustering/profile_type.py                |   33 +
examples/connect.py                                |   30 +-
extras/delete-network.sh                           |   14 +
openstack/__init__.py                              |  136 +
openstack/_adapter.py                              |  155 +
openstack/_log.py                                  |   28 +
openstack/bare_metal/__init__.py                   |    0
openstack/bare_metal/bare_metal_service.py         |   24 -
openstack/bare_metal/v1/__init__.py                |    0
openstack/bare_metal/v1/_proxy.py                  |  619 --
openstack/bare_metal/v1/chassis.py                 |   63 -
openstack/bare_metal/v1/driver.py                  |   39 -
openstack/bare_metal/v1/node.py                    |  135 -
openstack/bare_metal/v1/port.py                    |   82 -
openstack/bare_metal/v1/port_group.py              |   78 -
openstack/bare_metal/version.py                    |   31 -
openstack/baremetal/__init__.py                    |    0
openstack/baremetal/baremetal_service.py           |   24 +
openstack/baremetal/v1/__init__.py                 |    0
openstack/baremetal/v1/_proxy.py                   |  619 ++
openstack/baremetal/v1/chassis.py                  |   63 +
openstack/baremetal/v1/driver.py                   |   39 +
openstack/baremetal/v1/node.py                     |  135 +
openstack/baremetal/v1/port.py                     |   82 +
openstack/baremetal/v1/port_group.py               |   78 +
openstack/baremetal/version.py                     |   31 +
openstack/block_storage/__init__.py                |    0
openstack/block_storage/block_storage_service.py   |   24 +
openstack/block_storage/v2/__init__.py             |    0
openstack/block_storage/v2/_proxy.py               |  197 +
openstack/block_storage/v2/snapshot.py             |   65 +
openstack/block_storage/v2/stats.py                |   34 +
openstack/block_storage/v2/type.py                 |   35 +
openstack/block_storage/v2/volume.py               |  105 +
openstack/block_store/__init__.py                  |    0
openstack/block_store/block_store_service.py       |   25 -
openstack/block_store/v2/__init__.py               |    0
openstack/block_store/v2/_proxy.py                 |  189 -
openstack/block_store/v2/snapshot.py               |   65 -
openstack/block_store/v2/type.py                   |   35 -
openstack/block_store/v2/volume.py                 |  103 -
openstack/cloud/__init__.py                        |    0
openstack/cloud/_heat/__init__.py                  |    0
openstack/cloud/_heat/environment_format.py        |   56 +
openstack/cloud/_heat/event_utils.py               |   98 +
openstack/cloud/_heat/template_format.py           |   69 +
openstack/cloud/_heat/template_utils.py            |  314 +
openstack/cloud/_heat/utils.py                     |   61 +
openstack/cloud/_normalize.py                      | 1108 +++
openstack/cloud/_tasks.py                          |  110 +
openstack/cloud/_utils.py                          |  665 ++
openstack/cloud/cmd/__init__.py                    |    0
openstack/cloud/cmd/inventory.py                   |   70 +
openstack/cloud/exc.py                             |   43 +
openstack/cloud/inventory.py                       |   85 +
openstack/cloud/meta.py                            |  556 ++
openstack/cloud/openstackcloud.py                  | 8808 ++++++++++++++++++++
openstack/cloud/operatorcloud.py                   | 2597 ++++++
openstack/cluster/__init__.py                      |    0
openstack/cluster/cluster_service.py               |   27 -
openstack/cluster/v1/__init__.py                   |    0
openstack/cluster/v1/_proxy.py                     | 1138 ---
openstack/cluster/v1/action.py                     |   73 -
openstack/cluster/v1/build_info.py                 |   29 -
openstack/cluster/v1/cluster.py                    |  183 -
openstack/cluster/v1/cluster_attr.py               |   33 -
openstack/cluster/v1/cluster_policy.py             |   44 -
openstack/cluster/v1/event.py                      |   56 -
openstack/cluster/v1/node.py                       |  169 -
openstack/cluster/v1/policy.py                     |   66 -
openstack/cluster/v1/policy_type.py                |   33 -
openstack/cluster/v1/profile.py                    |   64 -
openstack/cluster/v1/profile_type.py               |   33 -
openstack/cluster/v1/receiver.py                   |   62 -
openstack/cluster/v1/service.py                    |   39 -
openstack/cluster/version.py                       |   31 -
openstack/clustering/__init__.py                   |    0
openstack/clustering/clustering_service.py         |   27 +
openstack/clustering/v1/__init__.py                |    0
openstack/clustering/v1/_proxy.py                  | 1153 +++
openstack/clustering/v1/action.py                  |   73 +
openstack/clustering/v1/build_info.py              |   29 +
openstack/clustering/v1/cluster.py                 |  191 +
openstack/clustering/v1/cluster_attr.py            |   33 +
openstack/clustering/v1/cluster_policy.py          |   44 +
openstack/clustering/v1/event.py                   |   56 +
openstack/clustering/v1/node.py                    |  177 +
openstack/clustering/v1/policy.py                  |   66 +
openstack/clustering/v1/policy_type.py             |   33 +
openstack/clustering/v1/profile.py                 |   64 +
openstack/clustering/v1/profile_type.py            |   33 +
openstack/clustering/v1/receiver.py                |   62 +
openstack/clustering/v1/service.py                 |   39 +
openstack/clustering/version.py                    |   31 +
openstack/compute/v2/_proxy.py                     |   84 +-
openstack/compute/v2/keypair.py                    |    2 +-
openstack/compute/v2/limits.py                     |    6 +-
openstack/compute/v2/metadata.py                   |    2 +-
openstack/compute/v2/server.py                     |    2 +-
openstack/compute/v2/server_ip.py                  |    2 +-
openstack/compute/v2/service.py                    |    2 +-
openstack/config/__init__.py                       |   38 +
openstack/config/cloud_config.py                   |   24 +
openstack/config/cloud_region.py                   |  440 +
openstack/config/defaults.json                     |   27 +
openstack/config/defaults.py                       |   52 +
openstack/config/exceptions.py                     |   25 +
openstack/config/loader.py                         | 1258 +++
openstack/config/schema.json                       |  121 +
openstack/config/vendor-schema.json                |  223 +
openstack/config/vendors/__init__.py               |   37 +
openstack/config/vendors/auro.json                 |   11 +
openstack/config/vendors/bluebox.json              |    7 +
openstack/config/vendors/catalyst.json             |   15 +
openstack/config/vendors/citycloud.json            |   19 +
openstack/config/vendors/conoha.json               |   14 +
openstack/config/vendors/datacentred.json          |   11 +
openstack/config/vendors/dreamcompute.json         |   11 +
openstack/config/vendors/dreamhost.json            |   13 +
openstack/config/vendors/elastx.json               |   10 +
openstack/config/vendors/entercloudsuite.json      |   16 +
openstack/config/vendors/fuga.json                 |   15 +
openstack/config/vendors/ibmcloud.json             |   13 +
openstack/config/vendors/internap.json             |   17 +
openstack/config/vendors/otc.json                  |   13 +
openstack/config/vendors/ovh.json                  |   15 +
openstack/config/vendors/rackspace.json            |   29 +
openstack/config/vendors/switchengines.json        |   15 +
openstack/config/vendors/ultimum.json              |   11 +
openstack/config/vendors/unitedstack.json          |   16 +
openstack/config/vendors/vexxhost.json             |   15 +
openstack/config/vendors/zetta.json                |   13 +
openstack/connection.py                            |  437 +-
openstack/database/v1/instance.py                  |   14 +-
openstack/exceptions.py                            |  134 +-
openstack/identity/v2/extension.py                 |    2 +-
openstack/identity/v3/_proxy.py                    |    8 +-
openstack/identity/v3/credential.py                |    4 +
openstack/identity/v3/domain.py                    |   17 +-
openstack/identity/v3/endpoint.py                  |    4 +
openstack/identity/v3/group.py                     |    4 +
openstack/identity/v3/project.py                   |   20 +-
openstack/identity/v3/region.py                    |    4 +
openstack/identity/v3/service.py                   |    4 +
openstack/identity/v3/user.py                      |    7 +
openstack/identity/version.py                      |    2 +-
openstack/image/v2/_proxy.py                       |   17 +-
openstack/image/v2/image.py                        |   12 +-
openstack/key_manager/v1/secret.py                 |    6 +-
openstack/load_balancer/v2/_proxy.py               |   12 +-
openstack/load_balancer/v2/health_monitor.py       |    3 +
openstack/load_balancer/v2/l7_rule.py              |   11 +-
openstack/message/v1/_proxy.py                     |    6 +-
openstack/message/v1/claim.py                      |    2 +-
openstack/message/v1/message.py                    |    4 +-
openstack/message/v1/queue.py                      |    2 +-
openstack/message/v2/_proxy.py                     |    2 +-
openstack/message/v2/claim.py                      |    8 +-
openstack/message/v2/message.py                    |   10 +-
openstack/message/v2/queue.py                      |    8 +-
openstack/message/v2/subscription.py               |    8 +-
openstack/meter/__init__.py                        |    0
openstack/meter/alarm/__init__.py                  |    0
openstack/meter/alarm/alarm_service.py             |   24 +
openstack/meter/alarm/v2/__init__.py               |    0
openstack/meter/alarm/v2/_proxy.py                 |  129 +
openstack/meter/alarm/v2/alarm.py                  |   91 +
openstack/meter/alarm/v2/alarm_change.py           |   52 +
openstack/meter/meter_service.py                   |   24 +
openstack/meter/v2/__init__.py                     |    0
openstack/meter/v2/_proxy.py                       |  167 +
openstack/meter/v2/capability.py                   |   37 +
openstack/meter/v2/meter.py                        |   42 +
openstack/meter/v2/resource.py                     |   44 +
openstack/meter/v2/sample.py                       |   52 +
openstack/meter/v2/statistics.py                   |   62 +
openstack/module_loader.py                         |   29 -
openstack/network/v2/_proxy.py                     |  200 +-
openstack/network/v2/agent.py                      |    8 +-
openstack/network/v2/flavor.py                     |    4 +-
openstack/network/v2/floating_ip.py                |    9 +-
openstack/network/v2/network.py                    |    2 +-
openstack/network/v2/port.py                       |    2 +-
openstack/network/v2/router.py                     |   18 +-
openstack/network/v2/subnet.py                     |    2 +-
openstack/network/v2/subnet_pool.py                |    2 +-
openstack/network/v2/tag.py                        |    2 +-
openstack/object_store/v1/_base.py                 |   17 +-
openstack/object_store/v1/_proxy.py                |   16 +-
openstack/object_store/v1/container.py             |    6 +-
openstack/object_store/v1/obj.py                   |   11 +-
openstack/orchestration/v1/_proxy.py               |    6 +-
openstack/orchestration/v1/stack.py                |    2 +-
openstack/orchestration/v1/stack_files.py          |    2 +-
openstack/orchestration/v1/template.py             |    2 +-
openstack/profile.py                               |   35 +-
openstack/proxy.py                                 |   52 +-
openstack/proxy2.py                                |   52 +-
openstack/resource.py                              |   66 +-
openstack/resource2.py                             |  228 +-
openstack/service_filter.py                        |    2 -
openstack/session.py                               |  352 -
openstack/task_manager.py                          |  203 +
openstack/telemetry/__init__.py                    |    0
openstack/telemetry/alarm/__init__.py              |    0
openstack/telemetry/alarm/alarm_service.py         |   24 -
openstack/telemetry/alarm/v2/__init__.py           |    0
openstack/telemetry/alarm/v2/_proxy.py             |  129 -
openstack/telemetry/alarm/v2/alarm.py              |   91 -
openstack/telemetry/alarm/v2/alarm_change.py       |   52 -
openstack/telemetry/telemetry_service.py           |   24 -
openstack/telemetry/v2/__init__.py                 |    0
openstack/telemetry/v2/_proxy.py                   |  167 -
openstack/telemetry/v2/capability.py               |   37 -
openstack/telemetry/v2/meter.py                    |   42 -
openstack/telemetry/v2/resource.py                 |   44 -
openstack/telemetry/v2/sample.py                   |   52 -
openstack/telemetry/v2/statistics.py               |   62 -
.../ansible/roles/client_config/tasks/main.yml     |    7 +
.../ansible/roles/keystone_domain/tasks/main.yml   |   19 +
.../ansible/roles/keystone_domain/vars/main.yml    |    1 +
.../ansible/roles/keystone_role/tasks/main.yml     |   12 +
.../ansible/roles/keystone_role/vars/main.yml      |    1 +
.../ansible/roles/security_group/tasks/main.yml    |  123 +
.../ansible/roles/security_group/vars/main.yml     |    1 +
.../functional/block_storage/v2/test_snapshot.py   |   68 +
.../functional/block_storage/v2/test_volume.py     |   48 +
.../functional/block_store/v2/test_snapshot.py     |   68 -
.../functional/cloud/test_cluster_templates.py     |  109 +
.../functional/cloud/test_floating_ip_pool.py      |   50 +
.../cloud/test_qos_bandwidth_limit_rule.py         |  106 +
.../functional/cloud/test_qos_dscp_marking_rule.py |   75 +
.../cloud/test_qos_minimum_bandwidth_rule.py       |   75 +
.../load_balancer/v2/test_load_balancer.py         |  196 +-
.../functional/meter/alarm/v2/test_alarm_change.py |   44 +
.../functional/network/v2/test_address_scope.py    |   30 +-
.../network/v2/test_agent_add_remove_network.py    |   30 +-
.../network/v2/test_agent_add_remove_router.py     |   21 +-
.../network/v2/test_auto_allocated_topology.py     |   19 +-
.../functional/network/v2/test_floating_ip.py      |  135 +-
.../network/v2/test_network_ip_availability.py     |   58 +-
.../network/v2/test_qos_bandwidth_limit_rule.py    |   52 +-
.../network/v2/test_qos_dscp_marking_rule.py       |   44 +-
.../network/v2/test_qos_minimum_bandwidth_rule.py  |   46 +-
.../functional/network/v2/test_rbac_policy.py      |   44 +-
.../network/v2/test_router_add_remove_interface.py |   67 +-
.../functional/network/v2/test_security_group.py   |   26 +-
.../network/v2/test_security_group_rule.py         |   42 +-
.../functional/network/v2/test_service_profile.py  |   30 +-
.../functional/network/v2/test_subnet_pool.py      |   38 +-
.../functional/object_store/v1/test_account.py     |   17 +-
.../functional/object_store/v1/test_container.py   |   26 +-
.../functional/orchestration/v1/test_stack.py      |   57 +-
.../functional/telemetry/alarm/v2/__init__.py      |    0
.../functional/telemetry/alarm/v2/test_alarm.py    |   58 -
.../telemetry/alarm/v2/test_alarm_change.py        |   50 -
.../functional/telemetry/v2/test_capability.py     |   27 -
.../functional/telemetry/v2/test_statistics.py     |   26 -
.../unit/bare_metal/test_bare_metal_service.py     |   28 -
.../block_storage/test_block_storage_service.py    |   28 +
.../unit/block_store/test_block_store_service.py   |   28 -
.../unit/cloud/test_create_volume_snapshot.py      |  127 +
.../unit/cloud/test_delete_volume_snapshot.py      |  101 +
.../unit/cloud/test_qos_bandwidth_limit_rule.py    |  397 +
.../unit/cloud/test_qos_minimum_bandwidth_rule.py  |  294 +
.../unit/cloud/test_server_delete_metadata.py      |   75 +
.../unit/load_balancer/test_health_monitor.py      |    2 +
.../unit/orchestration/v1/test_stack_files.py      |    4 +-
.../unit/telemetry/alarm/test_alarm_service.py     |   28 -
.../unit/telemetry/alarm/v2/test_alarm_change.py   |   74 -
openstack/utils.py                                 |   56 +
openstack/workflow/v2/execution.py                 |    3 +-
openstack/workflow/v2/workflow.py                  |    3 +-
playbooks/devstack/legacy-git.yaml                 |   11 +
playbooks/devstack/post.yaml                       |    4 +
playbooks/devstack/pre.yaml                        |    8 +
playbooks/devstack/run.yaml                        |    3 +
.../add-current-user-id-49b6463e6bcc3b31.yaml      |    4 +
.../add-jmespath-support-f47b7a503dbbfda1.yaml     |    4 +
.../add-list_flavor_access-e038253e953e6586.yaml   |    4 +
.../notes/add-server-console-078ed2696e5b04d9.yaml |    6 +
.../add-show-all-images-flag-352748b6c3d99f3f.yaml |    9 +
...d_description_create_user-0ddc9a0ef4da840d.yaml |    3 +
...ignate_recordsets_support-69af0a6b317073e7.yaml |    4 +
...d_designate_zones_support-35fa9b8b09995b43.yaml |    4 +
.../add_heat_tag_support-135aa43ba1dce3bb.yaml     |    7 +
...dd_host_aggregate_support-471623faf45ec3c3.yaml |    4 +
...d_magnum_baymodel_support-e35e5aab0b14ff75.yaml |    7 +
...d_magnum_services_support-3d95f9dcc60b5573.yaml |    3 +
.../add_server_group_support-dfa472e3dae7d34d.yaml |    3 +
.../notes/add_update_server-8761059d6de7e68b.yaml  |    3 +
.../notes/add_update_service-28e590a7a7524053.yaml |    6 +
.../alternate-auth-context-3939f1492a0e1355.yaml   |    5 +
...-detail-cluster-templates-3eb4b5744ba327ac.yaml |    5 +
.../boot-on-server-group-a80e51850db24b3d.yaml     |    4 +
.../notes/bug-2001080-de52ead3c5466792.yaml        |   10 +
.../cache-in-use-volumes-c7fa8bb378106fe3.yaml     |    4 +
.../catch-up-release-notes-e385fad34e9f3d6e.yaml   |   22 +
...e-attach-vol-return-value-4834a1f78392abb1.yaml |    8 +
...er_volume_backups_support-6f7ceab440853833.yaml |    4 +
.../notes/cinderv2-norm-fix-037189c60b43089f.yaml  |    3 +
.../notes/cleanup-objects-f99aeecf22ac13dd.yaml    |    6 +
.../cloud-profile-status-e0d29b5e2f10e95c.yaml     |    6 +
.../notes/compute-quotas-b07a0f24dfac8444.yaml     |    3 +
.../compute-usage-defaults-5f5b2936f17ff400.yaml   |    9 +
.../config-flavor-specs-ca712e17971482b6.yaml      |    4 +
.../notes/create-stack-fix-12dbb59a48ac7442.yaml   |    4 +
...create_server_network_fix-c4a56b31d2850a4b.yaml |    6 +
.../create_service_norm-319a97433d68fa6a.yaml      |    3 +
.../notes/data-model-cf50d86982646370.yaml         |    8 +
.../notes/default-cloud-7ee0bcb9e5dd24b9.yaml      |    7 +
.../notes/delete-autocreated-1839187b0aa35022.yaml |    5 +
.../delete-image-objects-9d4b4e0fff36a23f.yaml     |   18 +
.../notes/delete-obj-return-a3ecf0415b7a2989.yaml  |    5 +
.../notes/delete_project-399f9b3107014dde.yaml     |    5 +
...ain_operations_name_or_id-baba4cac5b67234d.yaml |    4 +
.../dual-stack-networks-8a81941c97d28deb.yaml      |    8 +
.../endpoint-from-catalog-bad36cb0409a4e6a.yaml    |    4 +
...false-not-attribute-error-49484d0fdc61f75d.yaml |    6 +
.../feature-server-metadata-50caf18cec532160.yaml  |    3 +
.../notes/fip_timeout-035c4bb3ff92fa1f.yaml        |    4 +
...pat-with-old-keystoneauth-66e11ee9d008b962.yaml |    7 +
.../notes/fix-config-drive-a148b7589f7e1022.yaml   |    6 +
.../notes/fix-delete-ips-1d4eebf7bc4d4733.yaml     |    6 +
.../notes/fix-list-networks-a592725df64c306e.yaml  |    3 +
.../fix-missing-futures-a0617a1c1ce6e659.yaml      |    5 +
...x-properties-key-conflict-2161ca1faaad6731.yaml |    4 +
.../fix-supplemental-fips-c9cd58aac12eb30e.yaml    |    7 +
.../notes/fix-update-domain-af47b066ac52eb7f.yaml  |    3 +
.../notes/fixed-magnum-type-7406f0a60525f858.yaml  |    6 +
.../notes/flavor_fix-a53c6b326dc34a2c.yaml         |    7 +
.../notes/fnmatch-name-or-id-f658fe26f84086c8.yaml |    5 +
.../notes/get-limits-c383c512f8e01873.yaml         |    3 +
releasenotes/notes/get-usage-72d249ff790d1b8f.yaml |    3 +
.../notes/get_object_api-968483adb016bce1.yaml     |    3 +
.../glance-image-pagination-0b4dfef22b25852b.yaml  |    4 +
.../grant-revoke-assignments-231d3f9596a1ae75.yaml |    3 +
.../image-flavor-by-name-54865b00ebbf1004.yaml     |    9 +
.../notes/image-from-volume-9acf7379f5995b5b.yaml  |    3 +
.../infer-secgroup-source-58d840aaf1a1f485.yaml    |    9 +
.../ironic-microversion-ba5b0f36f11196a6.yaml      |    4 +
.../notes/less-file-hashing-d2497337da5acbef.yaml  |    5 +
.../notes/list-az-names-a38c277d1192471b.yaml      |    3 +
...e-assignments-keystone-v2-b127b12b4860f50c.yaml |    3 +
...list-servers-all-projects-349e6dc665ba2e8d.yaml |    6 +
releasenotes/notes/load-yaml-3177efca78e5c67a.yaml |    7 +
.../notes/log-request-ids-37507cb6eed9a7da.yaml    |    5 +
.../notes/magic-fixes-dca4ae4dac2441a8.yaml        |    6 +
.../notes/make-rest-client-dd3d365632a26fa0.yaml   |    4 +
...-client-version-discovery-84125700f159491a.yaml |    6 +
...ject_metadata_easier.yaml-e9751723e002e06f.yaml |    5 +
...ge-shade-os-client-config-29878734ad643e33.yaml |    4 +
.../notes/meta-passthrough-d695bff4f9366b65.yaml   |    7 +
.../min-max-legacy-version-301242466ddefa93.yaml   |   15 +
.../notes/multiple-updates-b48cc2f6db2e526d.yaml   |   14 +
.../notes/nat-source-field-7c7db2a724616d59.yaml   |    6 +
.../notes/net_provider-dd64b697476b7094.yaml       |    3 +
.../notes/network-list-e6e9dafdd8446263.yaml       |   10 +
.../notes/network-quotas-b98cce9ffeffdbf4.yaml     |    3 +
.../new-floating-attributes-213cdf5681d337e1.yaml  |    4 +
.../no-more-troveclient-0a4739c21432ac63.yaml      |    6 +
.../norm_role_assignments-a13f41768e62d40c.yaml    |    4 +
.../notes/normalize-images-1331bea7bfffa36a.yaml   |    6 +
.../nova-flavor-to-rest-0a5757e35714a690.yaml      |    5 +
.../nova-old-microversion-5e4b8e239ba44096.yaml    |    5 +
.../notes/option-precedence-1fecab21fdfb2c33.yaml  |    7 +
.../remove-magnumclient-875b3e513f98f57c.yaml      |    4 +
.../notes/remove-novaclient-3f8d4db20d5f9582.yaml  |    5 +
.../removed-glanceclient-105c7fba9481b9be.yaml     |    9 +
.../notes/removed-profile-437f3038025b0fb3.yaml    |    8 +
.../removed-swiftclient-aff22bfaeee5f59f.yaml      |    5 +
.../notes/renamed-bare-metal-b1cdbc52af14e042.yaml |    4 +
.../renamed-block-store-bc5e0a7315bfeb67.yaml      |    4 +
.../notes/renamed-cluster-743da6d321fffcba.yaml    |    4 +
.../notes/renamed-telemetry-c08ae3e72afca24f.yaml  |    4 +
.../notes/router_ext_gw-b86582317bca8b39.yaml      |    4 +
.../notes/sdk-helper-41f8d815cfbcfb00.yaml         |    4 +
.../server-create-error-id-66c698c7e633fb8b.yaml   |    4 +
.../server-security-groups-840ab28c04f359de.yaml   |    4 +
.../service_enabled_flag-c917b305d3f2e8fd.yaml     |    5 +
.../notes/session-client-b581a6e5d18c8f04.yaml     |    6 +
.../set-bootable-volume-454a7a41e7e77d08.yaml      |    4 +
.../notes/shade-helper-568f8cb372eef6d9.yaml       |    4 +
.../notes/stack-update-5886e91fd6e423bf.yaml       |    4 +
.../notes/started-using-reno-242e2b0cd27f9480.yaml |    3 +
.../notes/stream-to-file-91f48d6dcea399c6.yaml     |    3 +
.../notes/strict-mode-d493abc0c3e87945.yaml        |    6 +
.../notes/swift-upload-lock-d18f3d42b3a0719a.yaml  |    5 +
.../notes/update_endpoint-f87c1f42d0c0d1ef.yaml    |    8 +
.../notes/use-interface-ip-c5cb3e7c91150096.yaml   |   13 +
.../notes/vendor-updates-f11184ba56bb27cf.yaml     |    4 +
.../notes/version-discovery-a501c4e9e9869f77.yaml  |   13 +
.../notes/volume-quotas-5b674ee8c1f71eb6.yaml      |    3 +
.../notes/volume-types-a07a14ae668e7dd2.yaml       |    4 +
.../wait-on-image-snapshot-27cd2eacab2fabd8.yaml   |    7 +
.../notes/wait_for_server-8dc8446b7c673d36.yaml    |    3 +
...orkaround-transitive-deps-1e7a214f3256b77e.yaml |    9 +
releasenotes/source/_static/.placeholder           |    0
releasenotes/source/_templates/.placeholder        |    0
releasenotes/source/conf.py                        |  280 +
releasenotes/source/index.rst                      |   10 +
releasenotes/source/mainline.rst                   |    5 +
releasenotes/source/mitaka.rst                     |    6 +
releasenotes/source/newton.rst                     |    6 +
releasenotes/source/ocata.rst                      |    6 +
releasenotes/source/pike.rst                       |    6 +
releasenotes/source/unreleased.rst                 |   11 +
requirements.txt                                   |   22 +-
setup.cfg                                          |    6 +-
test-requirements.txt                              |   12 +-
tools/keystone_version.py                          |   89 +
tools/nova_version.py                              |   56 +
tox.ini                                            |   91 +-
900 files changed, 66812 insertions(+), 12054 deletions(-)


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

diff --git a/requirements.txt b/requirements.txt
index b4d574e..f131da0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,5 +5,7 @@ pbr!=2.1.0,>=2.0.0 # Apache-2.0
-jsonpatch>=1.16 # BSD
-six>=1.9.0 # MIT
-stevedore>=1.20.0 # Apache-2.0
-os-client-config>=1.28.0 # Apache-2.0
-keystoneauth1>=3.2.0 # Apache-2.0
+PyYAML>=3.10 # MIT
+appdirs>=1.3.0 # MIT License
+requestsexceptions>=1.2.0 # Apache-2.0
+jsonpatch!=1.20,>=1.16 # BSD
+six>=1.10.0 # MIT
+os-service-types>=1.1.0 # Apache-2.0
+keystoneauth1>=3.3.0 # Apache-2.0
@@ -10,0 +13,10 @@ deprecation>=1.0 # Apache-2.0
+
+munch>=2.1.0 # MIT
+decorator>=3.4.0 # BSD
+jmespath>=0.9.0 # MIT
+ipaddress>=1.0.16;python_version<'3.3' # PSF
+futures>=3.0.0;python_version=='2.7' or python_version=='2.6' # BSD
+iso8601>=0.1.11 # MIT
+netifaces>=0.10.4 # MIT
+
+dogpile.cache>=0.6.2 # BSD
diff --git a/test-requirements.txt b/test-requirements.txt
index 40cb356..4584371 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -6 +5,0 @@ hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
-beautifulsoup4>=4.6.0 # MIT
@@ -8,0 +8 @@ doc8>=0.6.0 # Apache-2.0
+extras>=1.0.0 # MIT
@@ -9,0 +10 @@ fixtures>=3.0.0 # Apache-2.0/BSD
+jsonschema<3.0.0,>=2.6.0 # MIT
@@ -11,3 +12,2 @@ mock>=2.0.0 # BSD
-openstackdocstheme>=1.17.0 # Apache-2.0
-os-testr>=1.0.0 # Apache-2.0
-requests>=2.14.2 # Apache-2.0
+python-subunit>=1.0.0 # Apache-2.0/BSD
+oslotest>=1.10.0 # Apache-2.0
@@ -15 +15 @@ requests-mock>=1.1.0 # Apache-2.0
-sphinx>=1.6.2 # BSD
+stestr>=1.0.0 # Apache-2.0
@@ -18 +18 @@ testscenarios>=0.4 # Apache-2.0/BSD
-testtools>=1.4.0 # MIT
+testtools>=2.2.0 # MIT






More information about the Release-announce mailing list