[Bug 1280522] Re: Replace assertEqual(None, *) with assertIsNone in tests

OpenStack Infra 1280522 at bugs.launchpad.net
Wed Nov 15 18:29:49 UTC 2017


Reviewed:  https://review.openstack.org/518128
Committed: https://git.openstack.org/cgit/openstack/python-openstacksdk/commit/?id=535f2f48ff7003d1ec6eee014710dae9a332d9e0
Submitter: Zuul
Branch:    master

commit a4ee1a3f098e97f0e6bdc0f3d20c3021d06cb343
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 4 13:06:22 2017 -0500

    Merge tox, tests and other support files
    
    Change-Id: I5a4759e36089f1f4fab0c75412c94d051d8b16a7

commit 65293358a0d3cd7055987b18e16b9be5e8a0261b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 4 12:39:43 2017 -0500

    Move shade and os-client-config python content
    
    Make shade be openstack.cloud and os-client-config be openstack.config.
    
    Change-Id: I1d28be82a72cc1a30d6be306257fc1f0736ed604

commit a3cd1f0faff25b6b43a80e8357b134ccd7437f99
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Sep 20 10:29:27 2017 -0500

    Merge shade and occ releasenotes
    
    Change-Id: I4d25c654ee3c298de03907b14161096a59d098db

commit 94ace709e2bf860567a0920c3f836263432862ea
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Sat Sep 16 23:21:20 2017 +0000

    Updated from global requirements
    
    Change-Id: I1bbda934cc65d508f1cece8c5adc714e9f464707

commit eafc8bed564d41f2a0c6a050e7a301241309fa59
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Sep 16 13:13:25 2017 -0500

    Fix requires_floating_ip
    
    This isn't a required piece of the config, so it might be unset. Use get
    instead of [].
    
    Change-Id: I1bbbcb4ac63a4f6d4399c0fa8881c21264a03e4b

commit 2c24e204a6d75313447298bdcd7c458fa5107ba6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Sep 15 10:55:43 2017 -0600

    Record server.id in server creation exception
    
    If an error happens in the initial creation, no id is returned
    to the server can't be cleaned up.
    
    Change-Id: Ieb818dcf9ded062f016a3f96342f320dc203edd0

commit 2c23196f23be244cd747c1e26c5a55c203f3e7be
Author: Paul Belanger <pabelanger at redhat.com>
Date:   Fri Sep 15 12:52:57 2017 -0400

    Stop using openstack-doc-build
    
    We are in the process of moving openstack-doc-build to project-config,
    stop running for now.
    
    Change-Id: I409929a61044b397eedebe730b43b7897816141f
    Signed-off-by: Paul Belanger <pabelanger at redhat.com>

commit 6f72637fb6356d39adee82a2718118156ae4a6bf
Author: Dean Troyer <dtroyer at gmail.com>
Date:   Thu Sep 14 16:57:42 2017 -0500

    Updates for stestr
    
    Change-Id: I344cd6ce38d8db8fe24e1611c9c61e1ffa1b586d

commit 482b313b10149bfcb67f5c059da17f08426f7a7a
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Thu Sep 14 12:02:02 2017 -0600

    Add support for network quota details command
    
    Neutron recently introduced API call to get details
    about current usage of quota by given project.
    This patch adds support for this command in Shade.
    
    Related-Bug: #1716043
    Change-Id: I74682c6b2a287f54acef91686e7281f45cbe9684

commit f29d04dcf903fc6ac10f276badaff3edf3f09b7a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Sep 9 11:01:53 2017 -0500

    Add pypi and doc publication templates
    
    Change-Id: Iaa2b3742d04135a6da35f42f4a787937b9bc81eb
    Depends-On: I01ea35061ba92c2e466c6269c61e640461d6da99
    Depends-On: I4f1aea66fcbb623f554ded4d7ce63ff4c1168e45

commit 3fb4fec1d6ab2c72f72997533792fbe5d05936de
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Wed Sep 13 13:00:03 2017 +0000

    Updated from global requirements
    
    Change-Id: I6ecb4e80d2944bf592a2cbd41695643bc49f832d

commit 35ae661b2c6b8890d6535bd485129238e6730e4c
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Wed Sep 13 12:48:14 2017 +0000

    Updated from global requirements
    
    Change-Id: I17ac8b33f1db658ea5571ac5e954c68bf3fa3ca7

commit f545e8ebeafbfa56a1c337ab1c369e6f0be2adf0
Author: Sam Yaple <sam at yaple.net>
Date:   Tue Sep 12 17:33:36 2017 -0400

    Fix search_groups
    
    Change-Id: Ibb79be4ea42994b481ff484d5ae2b0aa0a97f4db
    Related-Id: I5be672c3eae5e013525cc7c0a4d73f9166f379ba

commit e1cafe3aa22809b34515340b05452ba8457dbd96
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Sep 12 13:12:43 2017 -0600

    Remove EndpointCreate and _project_manager
    
    They're not used anymore.
    
    Change-Id: I9858bbd4d753d16c113e7df70a5f316ccbce6493

commit ec797b62cc7404db3a70d466e2d80cc00b673b39
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Sep 4 09:01:42 2017 -0500

    Remove use of legacy keystone client in functional tests
    
    We use it here to verify the new user account information works. We can
    do the same thing by just grabbing a catalog.
    
    Change-Id: I55c981a29f4386a53472a88c1618b390f4b64a08

commit 25ef7bf24446905e3a33083202acaeec58cb04dd
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Mon Sep 11 21:34:25 2017 +0000

    Updated from global requirements
    
    Change-Id: I3833b1f450b969e54a9869af9effe2c82a4b4a83

commit 97b98c97e779a29587e2155bbd6b1b7f7056e746
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Mon Sep 11 14:37:32 2017 -0300

    Remove keystoneclient dependency
    
    Since all the keystone client calls have been moved to direct REST calls
    to keystone server, the dependency can be removed.
    
    If someone is getting a legacy keystone client from shade directly, they
    will be warned to 'pip install keystoneclient' themselves.
    
    Change-Id: I653dead3992be09c003aab911dda7cbf892cc9c1

commit d0ca641f8e42893cffcb98bb960cf4d98941f0a4
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Sun Sep 10 10:45:44 2017 -0300

    De-client-ify Endpoint Create
    
    Change-Id: I916dea906886955e8c7d074d5d1d69f29ff5bdf3

commit 941e179e535a2a4ba0df8387abe2d4391644b36c
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Sun Sep 10 10:45:44 2017 -0300

    Refactor the create endpoint code
    
    The code is rather complex, this patches improves its readability
    
    Change-Id: I0b79217b89fdd636cbf8da241cd7e1af24f07371

commit f3e62250438c347424969fafe3b90a04ecf62890
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Sun Sep 10 10:17:55 2017 -0300

    Reorganize endpoint create code
    
    Group the code for v2.0 in a single if statement. Idem for v3
    
    Change-Id: I12f9a571b33b38e9e0e75fe11c877cca4905e78c

commit 605301f99af38d388af3b0500e734c8afc2528a8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Sep 8 18:45:22 2017 -0500

    Switch to constraints version of tox job
    
    Change-Id: I4c874df5b0c7f6d28b4dea6b25b32aba95cf6db9

commit 8daf38fb6ace805383fae63ac60b500756decd0a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Sep 7 07:46:06 2017 -0500

    Convert test_baremetal_machine_patch to testscenarios
    
    We have a helper library that handles this sort of thing.
    
    Change-Id: I58f50663ab9c026918088845cceecf78ff15d8c8

commit 960a27447c3c18ba9a68dfe91e01cc629cd3b16f
Author: Paul Belanger <pabelanger at redhat.com>
Date:   Fri Sep 1 17:43:47 2017 -0400

    Add openstack-doc-build to shade
    
    Validate shade is able to build docs using openstack-doc-build with
    constraints.
    
    Change-Id: If419a417d717fe4d5a6da452adf65f63bb8d93e6
    Depends-On: Ib998f83135a4fcb796a205e52c435ab29b7cab7b
    Signed-off-by: Paul Belanger <pabelanger at redhat.com>

commit ff709954362cf37c21bbe5ede8c4d4ed81d64f48
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Sep 2 15:24:58 2017 -0500

    Switch to normal tox-py35 job
    
    Change-Id: Id307bd15b0c1b43ce7fba15ac5230c7d26b2a5bc

commit 73ef1f549c922759ba6c74f2bb6c0f1a4c72e6c2
Author: Matthew Treinish <mtreinish at kortar.org>
Date:   Fri Aug 4 15:21:38 2017 -0400

    Switch to using stestr
    
    stestr is a fork of testrepository, designed specifically to concentrate
    on being a dedicated test runner. [1] The testrepository project is
    basically not active anymore and has several long standing bugs and
    useablility issues. stestr is still actively maintained and fixes a
    large number of those issues with testrepository.
    
    [1] https://github.com/mtreinish/stestr
    
    Change-Id: I9b8049fd2c78d8f90aed5a8b35c0a9b40ad8c463

commit b817f47782b05416c7b14ae67d0786b1e380d134
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Fri Sep 8 18:53:52 2017 +0000

    Migrate machine tests related to state transitions
    
    Migrating the machine tests where state transitions
    occur, such as turning power on/off, maintenance mode,
    hardware inspection, and general provision state changes
    such as activating a node and deactivating a node.
    
    Change-Id: I88663fecb79247d5473c47847f9c7405f447a80d

commit c821c977b937285d16adff7ba7ee154931852fdb
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Fri Sep 8 04:05:56 2017 +0000

    Migrate machine inspection tests to requests_mock
    
    Change-Id: I53bfeff53d569a8075b40e4fb1087357f7eb4da0

commit e8d37f8281192838fe5ca1b1dc86b4a69b44f061
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Thu Sep 7 06:10:27 2017 +0000

    Migrate additional machine tests
    
    Migrated a number of simpler machine tests to using rest calls,
    while removing the mocked client versions of the tests.
    
    Added additional patch_machine tests, which raised the fact that
    patch method was not normalizing the data being returned.
    
    Added normalization since those fields are not normally returned
    by get_machine.
    
    Change-Id: I1c5f4ebd06fff40da45dbcc0d6ea0f7b108ce8fa

commit 8cc1483cc153254b54d96dd615dd174e4dc3c6c5
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Wed Sep 6 13:55:26 2017 -0300

    De-client-ify Endpoint Update
    
    Change-Id: I823414cbee3b8f38fcbddd16271ff61005eaf35d

commit 8afeaf60b164120c240b54fbbb36ccf5b73ca299
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Wed Sep 6 10:53:43 2017 -0300

    De-client-ify List Role Assignments
    
    Change-Id: Ief3fd56ccab977399c71cd603e42b52296e2a002

commit 179430c9868321bbc91f12376f44c4e1433fa7fb
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Wed Sep 6 07:14:38 2017 -0300

    De-client-ify Endpoint List
    
    Change-Id: If711f71ec05a03e5613cf25849c7b6a68f23eb55

commit eb28fa57510267b63d9a8647bb12e31d94539430
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Wed Sep 6 06:46:52 2017 -0300

    De-client-ify List Roles for User in v2.0
    
    Change-Id: Ic652a38ba86594540ac4a4f5d944a8cd627d60f5

commit 8d310b7818798d828d0fac8c90553bccb26228d9
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Tue Sep 5 20:59:55 2017 -0300

    De-client-ify Role Grant and Revoke
    
    Change-Id: Ie0a9748132ef7f417aabf976be21ec2d32085c8b

commit a4f94bf4def73704ff4947f9874845bca314239d
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Tue Sep 5 14:51:32 2017 -0300

    De-client-ify Endpoint Delete
    
    Change-Id: Ieea67d733a20af6ecb7fde88d6af85f8b0cf2c18

commit 76caad4d420abe16895b54d40fa89462397f8240
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Tue Sep 5 14:14:09 2017 -0300

    De-client-ify User Password Update
    
    Change-Id: Idfafc845e44c5a2eb9c6f334a1a4d7eb83c7ce2c

commit 4de4fb4a5aeb25e05f85d4696d60cd2794084348
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Sep 5 09:46:41 2017 -0500

    Begin converting baremetal node tests
    
    Shamelessly based upon pre-existing requests mock code in
    shade, with the attempt to replace the existing baremetal
    client mock testing.
    
    This updates the way we're creating the ironic_client so that it
    always does discovery, which _baremetal_client will always have
    to do because of how the versioned discovery document is in ironic.
    
    It also puts in a workaround for a bug that was found in keystoneauth's
    new version discovery that we should eventually take out.
    
    Change-Id: I0e811d69c3cba50f164cb2a3a1302b88fba51308

commit e76896046dcafe3832beb19927621225e9bdecb9
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Mon Sep 4 11:01:27 2017 -0300

    Remove improper exc handling in is_user_in_group
    
    Since we are already catching the expected exceptions for that operation
    there is no need to catch Exception in that method. Also, the message
    was saying "error in adding user to group", but that method is just
    checking ...
    
    Change-Id: I3b6fb28773a6c52b223bca4964dba4ccc27f9787

commit e42192e8393f01e825a8b8f5628f7813ae49c4bb
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Wed Aug 30 18:50:42 2017 -0300

    De-client-ify Remove User from Group
    
    Change-Id: Ica1cc5e472cfc14f9afeb05db5fa82cfd8ece500

commit be9d046925ecc204bef5a69212b123ce9c3a1039
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Tue Sep 5 00:22:10 2017 +0000

    Correct baremetal fake data model
    
    In preparation for rewriting tests to use mock_requests,
    we should need to correct the object naming to match
    what is defined by the baremetal API.
    
    Change-Id: I55c4c895e9fd1f09992bcc9059b7ca132af977cf

commit 30e0fbcfd77286fa25b50061637976cd94c2710f
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Wed Aug 30 18:46:01 2017 -0300

    De-client-ify Check User in Group
    
    Change-Id: Ia4ff42cf25b3ccad54b4870cde5a5a7e7c6acad6

commit b82a659f7958d39de62e34558987086e6f02bebf
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Wed Aug 30 18:29:15 2017 -0300

    De-client-ify Add User to Group
    
    Change-Id: If80267260c6db0440b36ac2e8ce74691eb1948da

commit 149a9fbc7841d70b9f9db1ab109eb3060a12bfff
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Thu Aug 17 12:58:03 2017 +0000

    Use direct calls to get_<resource>_by_id
    
    This commit adds a `use_direct_get` flag to the OpenStackCloud
    object. The goal is to enable direct calls to the
    get_<resource>_by_id methods when a UUID is passed and default
    to the `list` and `search` calls otherwise.
    
    Change-Id: I6aebfe7cb40adace0568d8f131e64d6555736712
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit ca0103a0a2e4f2772895f904b52e02cd6cd2ccc4
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Wed Aug 30 16:56:06 2017 -0300

    De-client-ify User Update
    
    Change-Id: I2f0917eed4464944b4552972baca838be8e6866e

commit 8b47d15fd5a3f67072e82ca8fc4928f57d9c96c8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Aug 14 10:05:19 2017 -0500

    Use new keystoneauth version discovery
    
    We can remove a ton of our logic. We still need SOME because we have a
    different fallback strategy that isn't appropriate for keystoneauth
    generally.
    
    There are a couple of tests removed, since they were testing shade code
    that was removed. Also it's worth noting that there are tests in
    test_domain_params and test_image that are mocking the client rather
    than mocking the requests and we should fix those.
    
    Co-authored-by: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
    Change-Id: I78019717cdee79cab43b0d11e737327aa281fd03

commit 469cc5ae49ef4cfcaee302b95ce81dccf9faa945
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Sep 1 08:13:22 2017 -0500

    Fix typo in tox.ini
    
    Change-Id: I320460d9226f3f4dba782047f83466c0dbbd7e56

commit 371c3ebc0ee28c5e6c0d942c6efc8b16553b80db
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Fri Sep 1 12:44:43 2017 +0000

    Updated from global requirements
    
    Change-Id: I7b1217cd50a3e3c89edcb5bda1d22cded90e9b4b

commit 8dc051ce3f0a885f2bfab748ba412e5b0239cc5d
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Fri Sep 1 12:34:00 2017 +0000

    Updated from global requirements
    
    Change-Id: I2b75a24df0ad5779ac9b2f0a87453ffcc49b3dbe

commit 78a1aa3b931b2ad7fd2820292ba4060eb6feb043
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Aug 31 08:38:33 2017 -0500

    Add tox_install.sh to deal with upper-constraints
    
    shade is in global requirements and upper-constraints now, which means
    we need to use the tox_install.sh script so that constraints don't break
    install of shade itself.
    
    Change-Id: Id286b634046519e34ac2c01461391d5bc61cd919

commit 8887b483e193cebc5b4a8df12b3325ec4e8938c5
Author: Sam Yaple <sam at yaple.net>
Date:   Thu Aug 24 12:34:49 2017 -0400

    Support domain_id for user operations
    
    When using ldap you cannot list all users across all domains. You must
    explicitly declare the domain you want to list.
    
    Change-Id: I83d8e313a86a527ea4ccf83cb8c329a7123c2943

commit 4695f5c1b6960c475632e80eccce63bb4d8c39f9
Author: Sam Yaple <sam at yaple.net>
Date:   Thu Aug 24 14:04:03 2017 -0400

    Add domain_id to groups
    
    When groups are hosted in ldap you must query the domain explictly to
    list the groups
    
    Change-Id: I5be672c3eae5e013525cc7c0a4d73f9166f379ba

commit 589b765574d457d2ed9f87b4fd41cf38b4634d1e
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Tue Aug 29 21:58:40 2017 +0200

    Add handling timeout in servers cleanup function
    
    In functional tests in method which cleans server and
    volumes attached to it, there was sometimes reached timeout,
    probably because one of resources stuck in "deletion" state
    for longer than 180 seconds.
    This patch adds handling such timeout and in such case,
    try to call delete of server and each volume but without
    waiting for deletion to be completed and with "force" option
    in case of volumes.
    
    Change-Id: I7a8caf2e89348ae0931a7e7e30ce2a83c4d12e5a

commit 1935528ed750b6f3d3d0be6c95a61d511d63076c
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Tue Aug 29 21:34:45 2017 +0200

    Fix handling timeouts in volume functional tests cleanup
    
    This patch adds handle for fixture.TimeoutException in same way
    as it was done for OpenStackCloudTimeout.
    
    It also changes cleanup function that it will not wait for
    delete of volumes if volume was stuck in "deletion" state.
    Delete volume with "force=True" will now be call with
    "wait=False"
    
    Change-Id: Ie6a8c7aecaf36b07247b61296d68afd923280440

commit 68f0947ba09baeb545474f0bbb808262613439d6
Author: Sam Yaple <sam at yaple.net>
Date:   Fri Aug 25 21:17:51 2017 -0400

    Fix switched params
    
    Fixes a reversal of params in get_domain()
    
    Change-Id: I3f6e763a2378f52954c9d835a233867fb46f3e56

commit 7fb83a668d73b53e84d8994a802b1e6b14ecde32
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Thu Aug 24 06:33:45 2017 -0300

    Switch to _is_client_version in list_services
    
    Change-Id: Ie7e77c4a766d01557222decdab48fb206086e57f

commit 522f51cdf60ed214f07430d0fe01e1638654322c
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Mon Jul 10 12:53:35 2017 -0400

    De-client-ify Service Delete
    
    Change-Id: I9a034bf240450574dfcc6ab8074db708002d0659

commit 4cd71a139db8745d63b12389ed2029e1e762072c
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Mon Jul 10 12:12:06 2017 -0400

    De-client-ify Service Update
    
    Change-Id: I161b680c6f165d298538ec4e13264deeb92a8453

commit b05aede84bbcb3707be1c4da0c596844ae1f2a60
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Wed Aug 23 21:34:04 2017 +0000

    Fix cleaning of Cinder volumes in functional tests
    
    There is some issue, probably with Cinder which cause sometimes
    problem with removing of volumes. Such volumes stuck in "deleting"
    state in Cinder.
    
    This patch changes cleanup method from functional Cinder test that
    it will not raise exception (and make test fails) if volumes will
    not be cleaned properly.
    In such case cleaning will try to delete volume once again with
    "force=True" and will move forward if it also fails.
    
    This change shouldn't cause any new problem with reached volumes quota
    limits becasue before this patch such volumes were also not removed
    properly.
    
    Change-Id: I984f863b55b46fe6eba4a7ec31434ee4d2baa16f

commit bda65e7265247b2d20d8d18d0cbf344bee119425
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Mon Jul 10 12:19:42 2017 -0400

    De-client-ify Service List
    
    Change-Id: I22149f4dd2d63b0f3b809015f4e9633f20a0a1d0

commit 3cfaa4c63b0ff54f45da59ee48fcb9e5ea57dde5
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Thu Aug 17 21:07:54 2017 +0000

    Add option to force delete cinder volume
    
    Cinder's API gives possibility to force delete volume
    which is in state 'deleting' or 'error deleting'.
    This patch adds support for such force delete of volume
    to shade.
    
    Change-Id: Iffede494e5af250a6bfea98e1fbfd8014eff0b02

commit 20cc034f65a7591c85bfd3c31204c4004375800c
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Fri Aug 18 13:29:21 2017 +0000

    Updated from global requirements
    
    Change-Id: I00bdd8c84248ed6f8df6c2b5e593dfe21acc07ec

commit b5af1ae9367db42a50fa926f0f0bcd3f2ea56e9a
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Fri Aug 18 11:39:22 2017 +0000

    Updated from global requirements
    
    Change-Id: I805c30c0a522c03721a97118594030b9c8dfcd51

commit 89e07d905a94525a0813e6e467da9f5cd94a1c8d
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Wed Aug 16 20:36:01 2017 +0000

    Fix determining if IPv6 is supported when it's disabled
    
    On systems where IPv6 is completly disabled there can be
    AttributeError when shade tries to determine if IPv6 is
    supported or not on local system.
    Now it's fixed by returning False always when AF_INET6
    isn't available in netifaces.
    
    Change-Id: I45138bd42cb63ff59b6aed85f33da11aab43aaba
    Related-Bug: #2001001

commit e72a6cf6da2456c888d925b849ea544bba92f357
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Wed Aug 16 20:31:27 2017 +0000

    Don't determine local IPv6 support if force_ip4=True
    
    In case when user set in config to force usage of IPv4 shade
    will not try to check if IPv6 is locally supported or not.
    
    Change-Id: Id12df5de0de58bbe427301c8a32d4c622dfbcc99
    Related-Bug: #2001001

commit 7466aaedfa202dc416fbb02b2a672fb8d94c4f92
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Mon Aug 14 13:26:46 2017 -0400

    Consolidate client version checks in an utility method
    
    Change-Id: I8da6f940a5983ce38a4a5bdc054f203088c51c48

commit d8ddbcf749f695288a16f3488e12022c62a620e6
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Sun Aug 6 15:20:37 2017 +0000

    Add functional tests for Neutron QoS policies and rules
    
    This patch adds functional tests for create/list/update/delete
    QoS policies and rules.
    
    Change-Id: Iebff3309423bea1fa871612c5e824940c13926c1

commit 15a83dab9a8fa68f983903a65fb656104379da5d
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Sat Aug 12 11:50:13 2017 +0000

    Updated from global requirements
    
    Change-Id: Iad6eba535f48d0f09e5507db32399623f63a4f88

commit 164501c71570eac15c7be55d0400c400e502bc8b
Author: Sean Handley <sean.handley at gmail.com>
Date:   Fri Aug 11 14:12:12 2017 +0100

    DataCentred supports Keystone V3 and Glance V2.
    
    Change-Id: Ia8c656e2c6b97c877f5028fef8a94a2c41909bc5

commit 4e5d46df7661051db37b48d84ffc5c096be63a55
Author: Rui Chen <chenrui.momo at gmail.com>
Date:   Wed Aug 9 18:02:37 2017 +0800

    Support to get resource by id
    
    For finding specified resource, we list all the resources in
    get_xxx(name_or_id) method, then find the result in list result loop,
    that might have poor performance and slow response when there are many
    resources in a project. OpenStack API support to get resource by id
    directly, and part of them had been implemented in Shade, like:
    get_server_by_id(), get_user_by_id(), get_volume_snapshot_by_id.
    
    The patch aims to support more:
    
    - flavor
    - image
    - volume
    - network
    - subnet
    - port
    - floatingip
    - security group
    - ...
    
    Change-Id: Icb0af21c2d7e8bda07c072cc6098269304b7ab88
    Closes-Bug: #1709577

commit 20ebacce1493e00410aeac4fbe0460dbc8b39817
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Aug 10 15:56:20 2017 -0500

    Make get_server_console tests more resilient
    
    The current tests can fail if the cloud just doesn't return real
    content. That's not what we want to test though - we want to test that
    the shade method calls the remote method and gets a result.
    
    Change-Id: I2238598c07d5ec51bd11ab019cf3f666ee2eaf7d

commit d597ee271e1085e10f89fa9632491b3647ed95b1
Author: Joshua Harlow <jxharlow at godaddy.com>
Date:   Mon Aug 7 15:37:37 2017 -0700

    Update globals safely
    
    The right way to update these globals is to use a lock
    and ensure that nobody else is updating them at the same
    time. Also update a temporary dictionary before setting
    the global one so that nobody sees partial updates to the
    global one.
    
    This should help fix the thread-safety of shade (and other
    tooling built ontop of this library).
    
    Change-Id: Ie0e0369d98ba6a01edcbf447378a786eec3f13f9

commit 240e2594b969fee06be5e5a38e414e6a12d5ba6e
Author: lingyongxu <lyxu at fiberhome.com>
Date:   Mon Aug 7 15:10:02 2017 +0800

    Update the documentation link for doc migration
    
    This patch is proposed according to the Direction 10 of doc
    migration(https://etherpad.openstack.org/p/doc-migration-tracking).
    
    Change-Id: Ida458338d353cbd6cc0162263db25f533b0bd9fd

commit eed1cbb8cdbb9a1214277b5d38a4b75123ec14ef
Author: Andreas Jaeger <aj at suse.com>
Date:   Sat Aug 5 18:52:47 2017 +0200

    Remove OSIC
    
    OSIC has been decommissioned, remove the now useless vendor data.
    
    Change-Id: I57c6043018e96c0069c7db777b9f585cb7d535e7
    Related-Change: I2d1b0710e875bd1ebc305fb5b184b68bf18f2ef7

commit 697cf58c826c56ee1599d23ec1271933e8aae54b
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Fri Aug 4 19:19:58 2017 +0000

    Make QoS rules required parameters to be not optional
    
    Some of QoS rules parameters, like max_kbps for bandwidth limit rule,
    dscp_mark for dscp marking rule or min_kbps for minimum bandwidth
    are not optional on Neutron's side so it shouldn't be optional in
    shade client.
    This commit changes them to be required in create methods.
    
    Change-Id: I6919690d5fe024698dc76bf9808ec8ada80d2ae8

commit 2d547522572962760f2c7081e795a40694296f51
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Tue Aug 1 21:41:56 2017 +0000

    Use valid_kwargs decorator in QoS related functions
    
    This patch switches all QoS related functions to create/update
    policies and rules to use _utils.valid_kwargs() decorator instead
    of validating manually if each argument is None or not None.
    
    Change-Id: Ieea34d653e60a97963f7030424ea0f3138c169c2

commit 737f9de574b57f33d748368415df9822a48b44c4
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Tue Aug 1 21:09:42 2017 +0000

    Add support for get details of available QoS rule type
    
    Neutron with QoS plugin enabled can return details about
    details of support specific rule type in existing cloud.
    This patch adds support for getting such details in shade.
    
    Change-Id: I95d10f67f9d1c83eb9adb17127d9d7bba766ad6e

commit 05b0fe25ccb82b69a986a1ebda3b65506c73b5d1
Author: Béla Vancsics <vancsics at inf.u-szeged.hu>
Date:   Tue Aug 1 10:17:58 2017 +0200

    Use more specific asserts in tests
    
    Instead of assertTrue and assertFalse use more specific asserts.
    They are compatible with Python 2.7[1] and 3.5[2]
    
    [1]: https://docs.python.org/2.7/library/unittest.html
    [2]: https://docs.python.org/3.5/library/unittest.html
    
    Change-Id: Ie2e117935e12b9fb56c0b6070924786f9693421e

commit 99865c9f77b9825498d60c7895c9784ffdaf70f5
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Mon Jul 31 20:46:32 2017 +0000

    Add Neutron QoS minimum bandwidth rule commands
    
    Create/Update/List/Get/Delete QoS minimum bandwidth
    rules is now possible to do with shade.
    
    Change-Id: Ibe2b28d15a9a8de58e9605330e241328c1cd242b

commit 420e7454de7a2812f3938e84ee074b479620bd46
Author: OpenStack Release Bot <infra-root at openstack.org>
Date:   Fri Jul 28 21:08:43 2017 +0000

    Update reno for stable/pike
    
    Change-Id: I03e74702143f0d8ba248c12aba2c179d6cbaafdd

commit 8c8f365a9f143f2159339584f15a48bdf185b63d
Author: OpenStack Release Bot <infra-root at openstack.org>
Date:   Fri Jul 28 21:04:06 2017 +0000

    Update reno for stable/pike
    
    Change-Id: Ie69ff1e5a5d3cf3a762d6915c5d596de4f919931

commit 1521c59999ad9ef8acfd3e1486a4b9f7903242c0
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Sun Jul 16 08:29:15 2017 +0000

    Add Neutron QoS dscp marking rule commands
    
    Create/Update/List/Get/Delete QoS DSCP marking rules is
    now possible to do with shade.
    
    Change-Id: I3b233c28c28cfa27e2d15599e34bae60bad83d75

commit 1d4c124bb1c94ce475ca494b86dd69b09cbae0b4
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Thu Jul 27 20:30:31 2017 +0000

    Updated from global requirements
    
    Change-Id: I611163aecdc4810e6fd1d7e47e60171d72db0ea3

commit 85d8adaec6ac976a4c95f0796eaaca2ff15d4f67
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Thu Jul 27 20:19:00 2017 +0000

    Updated from global requirements
    
    Change-Id: I2da0ea1c58865c47396b001f1aa66c54ece57bfb

commit a4fdee57310f9bca644e84e43787f04c5996ab98
Author: Lee Yarwood <lyarwood at redhat.com>
Date:   Mon Jul 10 14:15:31 2017 +0100

    router: Ignore L3 HA ports when listing interfaces
    
    L3 HA ports do not correspond to a router interface and should be
    ignored when listing these interfaces.
    
    Change-Id: I7fb5add36af09cc22084c8c034bf9f3cd0fbb442

commit f66f86207361d733faef7fc4c4712ae828eb4821
Author: Paul Belanger <pabelanger at redhat.com>
Date:   Fri Jul 14 15:37:46 2017 -0400

    Initial commit of zuulv3 jobs
    
    Here we are adding shade to zuulv3.o.o to aid in testing.
    
    Add UPPER_CONSTRAINTS_FILE to tox whitelist of variables.
    
    Change-Id: I4bc3bd751a80308df3b2114f95886bd104516dd2
    Depends-On: Ib9f0a787998f34414c8072074113d29cdb8cdb59
    Signed-off-by: Paul Belanger <pabelanger at redhat.com>

commit 623593a6933da69000967abd7b6d3e2cf7cec954
Author: Dirk Mueller <dirk at dmllr.de>
Date:   Sat Jul 15 20:26:43 2017 +0200

    Manually sync with g-r
    
    Change-Id: I4298bb7c2d66632b716b0dbeae64c9dca2b3434d

commit 1b51cd83de845e4e4a5abbad22c6c94cd7a3f0f8
Author: rajat29 <rajat.sharma at nectechnologies.in>
Date:   Fri Jul 21 12:26:43 2017 +0530

    Update the documentation link for doc migration
    
    Change-Id: Idd4909d94c07220425fbdce938c133d890c4be86

commit 06b390ad7c8971a8ce5bf51a05eea40b48b83d94
Author: rajat29 <rajat.sharma at nectechnologies.in>
Date:   Thu Jul 20 19:05:26 2017 +0530

    Replace six.itervalues with dict.values()
    
    We should avoid using six.itervalues to achieve iterators.
    We can use dict.values instead, as it willreturn iterators
    in PY3 as well. And dict.items/values will more
    readable.
    
    Change-Id: I81fcf7cfdbd24784039ec2aca6a0c1f503a76502

commit d9091fb8ad63210fbdf72084d2d4a98305a45a1d
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Thu Jul 20 06:48:38 2017 -0400

    Consolidate the use of self._get_and_munchify
    
    Replace meta.get_and_munchify with self._get_and_munchify in
    operatorcloud.py
    
    Change-Id: I411a1d740ea96bd7a1ac9c3ae67d8d518bf619f7

commit e171aa4f6aeb34a830db1839ce11578b8adae379
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Wed Jul 19 07:26:42 2017 -0400

    De-client-ify Role Delete
    
    Change-Id: I97c4e7a2cd9e6e3de9b5d03dc5b5476a9e595108

commit 2d777b911f1e26ee2d7002040099c6769e177f84
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Mon Jul 10 14:45:49 2017 -0400

    De-client-ify Role List
    
    Change-Id: I3e5a093f0d3b09b897afda7ed793a18a5732513a

commit 8034894d81e05d8a790098c02805e9931f48718d
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Mon Jul 10 13:28:00 2017 -0400

    De-client-ify Role Create
    
    Change-Id: I0b01b10907939cc93adfee9e53109893abfe62b1

commit 9b2e01d962bb1cfb3717c943a564a8d9fef48419
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Wed Jul 19 06:33:15 2017 -0400

    De-client-ify Group Delete
    
    Change-Id: I07785bcee5cd312293ba9a3eed9aec8820378332

commit b7f90dc661636c5ea50f4d18188d45e2d71953f6
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Wed Jul 19 06:26:03 2017 -0400

    De-client-ify Group Update
    
    Change-Id: Iff584891a07a619b57a1700351a7fe5f19ca8a57

commit 57f5c896e088c7d69a13fb26d536c8fb391c39cd
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Wed Jul 19 06:07:06 2017 -0400

    De-client-ify Group List
    
    Change-Id: If2b1f2aa064e33629307f457b94ba52b2dc02230

commit 9ca78367fd49763c20d2dbb92def2819f366fe80
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Wed Jul 19 06:01:32 2017 -0400

    De-client-ify Group Create
    
    Change-Id: Id7674f3aacdfa1448c243fe0e3932dc5f303e9ba

commit 67accb5b099eeab26d402d33073dd09bcedeb9b6
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Wed Jul 19 17:59:42 2017 +0000

    Updated from global requirements
    
    Change-Id: I96229428c485ca9ea9af79c3b5d5dbb43840f169

commit bf5cd53cbf79f35d4a08987bfc432e9a56489a01
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Sat Jul 15 22:37:38 2017 +0000

    Don't remove top-container element in the adapter
    
    Change-Id: I0b375b5c6f3575216cbecc59285a6980fbe14314
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit 262061afd05e9fd097e11f7b073a7dd0e3f44627
Author: Akihiro Motoki <amotoki at gmail.com>
Date:   Wed Jul 12 06:43:50 2017 +0000

    Improve doc formatting a bit
    
    After migrating to openstackdocstheme, some shade document became
    not easy to read. This commit fixes them a bit.
    
    - openstackdocstheme assumee only one title per page.
      Use a different level of title for the title.
      Otherwise, titles with the same level are not shown.
    - Release notes page has a lot of sections. It leads to a long TOC
      in the user guide index page.
      Use maxdepth=1 explicitly for the release notes.
    - Add a link to a simple example to usage.rst.
      It helps users who access the user guide directly.
    
    Change-Id: If51afa471505296b502bed3288cc9bcf30a69ba3

commit a134c10ea443ff74aa558aa7e83a651083d0d910
Author: Sorin Sbarnea <ssbarnea at redhat.com>
Date:   Tue Jul 11 12:23:46 2017 +0100

    Added useful links to README
    
    Fixes #2001116
    
    Change-Id: I43c313fffe8ff0c0e8aa583adce7676872ce357b

commit 806378f4f37f5dd421535b7961d705b0bc7f071a
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Mon Jul 10 20:45:37 2017 +0000

    Add Neutron QoS bandwidth limit rule commands
    
    Create/Update/List/Get/Delete QoS bandwidth limit rules is
    now possible to do with shade.
    
    Change-Id: Ife015dd3f9584df901462b3998a4d775374073cf

commit 9f78c543498c3c419418d3161ffe8bf5ea3d4253
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Mon Jul 10 11:38:10 2017 -0400

    De-client-ify Service Create
    
    Change-Id: Ifc71043cbb40d2888cd9c8341f135e832c553d00

commit a9687a82fc14e3e9f6ce9925d27bf5699308914d
Author: Lee Yarwood <lyarwood at redhat.com>
Date:   Mon Jul 10 14:41:49 2017 +0100

    Add debug to tox environment
    
    The oslotest package distributes a shell file that may be used to assist
    in debugging python code. The shell file uses testtools, and supports
    debugging with pdb.
    
    To enable debugging, run tox with the debug environment. Below are the
    following ways to run it.
    
    * tox -e debug module
    * tox -e debug module.test_class
    * tox -e debug module.test_class.test_method
    
    Change-Id: If0b06dcf094682401c4b09dd72493c678ea2a6b0

commit 20c1e82fa7c639a9f88fcd1cbcc57226ca6729c1
Author: Abhijeet Kasurde <akasurde at redhat.com>
Date:   Sun Jul 9 21:48:22 2017 +0530

    Remove hard-coding of timeout from API
    
    This patch adds a fix for removing hardcoding of timeout variable
    in _upload_image_put method by adding method argument timeout.
    
    Change-Id: I01ac7d590bfc4aea1adf571bd56d52048723d570
    Signed-off-by: Abhijeet Kasurde <akasurde at redhat.com>

commit d1eea7a720bb14f6781ec5abadbc27fafdf85e1e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jun 28 12:52:40 2017 -0500

    Make sure we don't fail open on bad input to validate
    
    Passing arbitrary dicts to validate does not validate that that's what
    we're sending to the API. Put in a validation check that the keys we're
    sending are the ones validate does something about.
    
    It's possible there is another param to validate we're not listing. If
    we hit a test that needs it, we can always add it.
    
    Change-Id: I75b24f4f640b7cf6ffebff494e1627569d74755a

commit 10e6fbe44f53a0beff2a2e4d2243b3c2e7f96d8c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jun 28 12:38:05 2017 -0500

    Make sure we pass propert dicts to validate
    
    In register_uris, validate takes a dict that matches the dict one
    normally passes to requests_mock - that is, it can take json, headers,
    etc.
    
    Unfortunately, our fixture doesn't error when one passes a normal dict
    to it thinking you're passing a json dict for it to validate.
    
    This fixes the call sites - the associated tests need to be fixed.
    
    Change-Id: I16f265fe41219be0f3b031eb8be26f740a65d665

commit 54d6e1d1847b0bd18e4ef1276be2b7044ab5b8f8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Jul 7 12:10:06 2017 -0500

    Add flag to include all images in image list
    
    Recent Glance v2 hides images that are shared but not accepted. The
    way to see them is to send member_status=all, which is a bit low-level
    for a shade user to need to know.
    
    Add a show_all to list_images that defaults to False so that behavior
    doesn't change. Don't add it to search_images, because at the
    search_images level the user has the ability to pass in whatever filters
    they want.
    
    Change-Id: Ida2ea943168f5be56a60a94576bdcc6c8e1a9d24

commit af0dbbd86f671c4c33841a11a63698ace1e4869b
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Thu Jul 6 21:16:58 2017 +0000

    Add support for list available QoS rule types
    
    Neutron with QoS plugin enabled can return list of
    rule types which are available in current cloud deployment.
    This patch adds support for listing such available rule
    types in shade.
    
    Change-Id: I005b34b129bfe8e1ac4deb6dbeefad2ffe5ce023

commit 4446ba9920315ff57b8bd39bc2fdfaeec02d056b
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Thu Jul 6 17:46:14 2017 +0000

    Add validation of required QoS extensions in Neutron
    
    Before operations on QoS policies shade can now check if required
    extensions (qos and qos-default) are available in cloud.
    
    Change-Id: I81727e25b72580d748757ead2c9a38708160d6c5

commit 29dd83d4e0fedcc9ae36576ff3293ac4d2252d27
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Tue Jun 27 20:54:02 2017 -0400

    De-client-ify Domain Search
    
    Change-Id: If3e2d677cbc8f936144ae1e433eb3f23540e90eb

commit 1bd19cca5cab0792c906bb1417c771ee960e10ca
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Tue Jun 27 20:39:42 2017 -0400

    De-client-ify Domain Get
    
    Change-Id: I43dab8b2cbc9f3f9f2e34fdd7d0cec915d3abdb8

commit cac429f4a9fe940fc03dc0f06c8f79e64f95d2df
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Tue Jun 27 19:38:53 2017 -0400

    De-client-ify Domain List
    
    Change-Id: I08332dc617fe2f77ddefa6dded86fe964b4fd1e0

commit ecd470db33bd1458a346f95355b111882073d43f
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Wed Jun 14 21:37:00 2017 -0400

    De-client-ify User Create
    
    Change-Id: I29b8502883f6ce58e6d2dcfb72df38d6989c18f9

commit ab2c4b314fc0a58c138dd2798a947be1fd957208
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jul 5 08:56:49 2017 -0500

    Use the right variable name in userdata encoding
    
    The variable is "userdata" not "text".
    
    Change-Id: I1fecdf088f3aba744b5060e36dcfe62674772d1b

commit e3753627042e53ecc9086736ed47ecf4b1e623ff
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Tue Jul 4 22:08:04 2017 +0000

    Add searching for Neutron API extensions
    
    Shade client can now check if required API extension is available
    in Neutron.
    
    Change-Id: I9ffe431b23ac8586d327489347abaa40b0c1d775

commit 67b053c7b1a640de98bc5d243d8db3db227a2dac
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Sun Jul 2 20:49:34 2017 +0000

    Add Neutron QoS policies commands
    
    Create/Update/List/Get/Delete QoS policies is now possible
    to do with shade.
    
    Change-Id: I127463dff9f73307aaac7ebb6927ef23599d3682

commit 790fffd37a4fa1ab584c40c0abeb56b7373d53df
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Tue Jun 27 19:31:00 2017 -0400

    De-client-ify Domain Update and Delete
    
    Change-Id: I56e661ca38e9a94ab43ccc3c0cc45a42976eac3d

commit 1e1c6ac1d8c1bc9e994bef3610d07ed3b44b8ff9
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Tue Jun 27 14:39:01 2017 -0400

    De-client-ify Domain Create
    
    Change-Id: I09426fd4fd374bdb64f42f3b31862dd3b898310d

commit 65ce1a22896e52ff59a23a393e3bc4227f55f006
Author: Doug Hellmann <doug at doughellmann.com>
Date:   Fri Jun 30 10:14:38 2017 -0400

    switch from oslosphinx to openstackdocstheme
    
    Change-Id: I83c5856a49cdfd912eb2d62314848a4cc4905fe1
    Signed-off-by: Doug Hellmann <doug at doughellmann.com>

commit 20b2f1f0c0402f28b6dde1e8ff0c5416edb6d21e
Author: Doug Hellmann <doug at doughellmann.com>
Date:   Fri Jun 30 10:07:41 2017 -0400

    reorganize docs using the new standard layout
    
    Move the docs around a little to allow the new templated docs.o.o site
    link to things like the user and install guides in the expected location.
    
    Change-Id: I7f3b625c04aa6cd2a7ebe5f2ce4a398cf464b1cc
    Signed-off-by: Doug Hellmann <doug at doughellmann.com>

commit f74902b0b9f82e221b1ae1af7f254dc2918f96b8
Author: Doug Hellmann <doug at doughellmann.com>
Date:   Fri Jun 23 14:53:54 2017 -0400

    use openstackdocstheme html context
    
    Set some of the new config values and enable openstackdocstheme as an
    extension so it will inject values into the page context as it writes
    each documentation page. This ensures the pages link to the right bug
    tracker, etc.
    
    Change-Id: Id9cc61e81aa43f4b69883d338090716005477d0a
    Signed-off-by: Doug Hellmann <doug at doughellmann.com>

commit 071e3429103a027fb579399907f4976b894ffd12
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Tue Jun 27 22:15:42 2017 +0000

    Don't remove top-container element for flavor, zones and server groups
    
    Change-Id: If85a133be034b27253bd6ddd36cf8a9224ab1673
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit 70d8cc39df1093a69618ba1d1a6eb41ef1842baa
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Tue Jun 27 12:07:54 2017 +0000

    Updated from global requirements
    
    Change-Id: Id6df6784e14fa6dfd4543ab54f9c2e01c87c69cf

commit c016f15867d53b7054e8d8561dd5de4d995adc3c
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Mon Jun 26 23:20:09 2017 +0000

    Don't remove top-container element for flavors and clusters
    
    Change-Id: Ie48b477a35f448bfddd561bec68f30a5eb452e97
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit f4668b7c6f0a2578ae6a96516e02ec1ff754c1b4
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Fri Jun 23 10:48:51 2017 -0400

    Project update to change enabled only when provided
    
    The project update call considers enabled=True as the default, causing
    the project to always become enabled unless enabled=False is passed
    explicitly.
    
    This patch removes that default and only touches the enable field when
    it is explicitly provided as enabled=False or enabled=True.
    
    Closes-Bug: #2001080
    
    Change-Id: I0a3b926b42be0321d06ebc370e4f51eba4150a50

commit 30c8729f782c0c13ca872260085d5b7b7c37df61
Author: Doug Hellmann <doug at doughellmann.com>
Date:   Thu Jun 22 15:26:16 2017 -0400

    switch from oslosphinx to openstackdocstheme
    
    Change-Id: Ie45909df0b5a118d0200a1ee71277f4dbfe41d08
    Signed-off-by: Doug Hellmann <doug at doughellmann.com>

commit 412f0fdd8503d4a5b67d5ec55021fd0a9f452984
Author: Doug Hellmann <doug at doughellmann.com>
Date:   Thu Jun 22 15:17:54 2017 -0400

    turn on warning-is-error in documentation build
    
    Change-Id: I18cdecec84f8dd5f11741ac1ffc35630f7eb64b8
    Signed-off-by: Doug Hellmann <doug at doughellmann.com>

commit 95f44f171c614cb0bb1650eb0062baea5c96f25d
Author: Doug Hellmann <doug at doughellmann.com>
Date:   Thu Jun 22 15:15:52 2017 -0400

    rearrange existing documentation to follow the new standard layout
    
    Depends-On: Ia750cb049c0f53a234ea70ce1f2bbbb7a2aa9454
    Change-Id: Ib68812eda4ab0ce09c6d438f9f236111d61ef38b
    Signed-off-by: Doug Hellmann <doug at doughellmann.com>

commit 1069d44810c57aaa3191ec77dc766001c7bd6327
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jun 21 04:20:35 2017 +0100

    Fix mismatch between port and port-id for REST call
    
    The old novaclient parameter is port-id, but the rest wants port.
    
    We should really stop having so much logic in os_server.
    
    Story: 2001075
    Task: 4700
    Change-Id: Ia16f8effca705e04b01fee5c2e899d90d084acb4

commit 14216dc5c9b7ab338d264d96b02db6c1f902b634
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jun 21 02:39:00 2017 +0100

    Remove a direct mocking of _image_client
    
    Change-Id: I21505fc5b0b043f9c32c3ee568b48db9c32ff23e

commit bc942953bc4a39c7696624dab6b59d06ad4f3298
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jun 21 02:15:12 2017 +0100

    Fix image normalization when image has properties property
    
    In the somewhat pathological case of an image having a property named
    properties already that contains a non-dict value, image normalizaiton
    becomes quite unhappy. Fix it.
    
    Change-Id: I2ce4dd4e3b7a4a9b46ff2bf699d2c8517e1ce7ce
    Story: 2001073
    Task: 4697

commit 74522a1a224a5379649645ad57e916fe003638bd
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 20 16:10:01 2017 -0500

    Fix delete_ips on delete_server and add tests
    
    This codepath was basically completely untested and essentially
    completely broken. Fix the break, but also add tests for it.
    
    Also add tests for config_drive while we're in there.
    
    Change-Id: I9f44474000213bab9e08266a376e41fecc4fbc1f

commit 16cd2cc88b19130769b6dd5b7f3c3ce8752bdb9d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 20 23:49:03 2017 +0100

    Fix config_drive, scheduler_hints and key_name in create_server
    
    We don't want to pass these if they're None. Turns out - we don't want
    to pass them if they're False either.
    
    Change-Id: I421b4e537892deead1866ddc979565e86fbcb211

commit 6334250493624aa56a7062c394442026dea5dfca
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 20 14:37:49 2017 -0500

    Don't fail hard on 404 from neutron FIP listing
    
    We do a filtered FIP listing from _delete_servers, which has exposed our
    list_floating_ips method as dying hard when it can't find a match.
    That's pretty inconsistent with the rest of the API - return a [] in
    that case but keep logging the big error message. The user should really
    mark the cloud has floating_ip_source: None if they want the error
    message to go away - which is indicated in the error message.
    
    Change-Id: I76493e7cc004831c1a0620de9fbe004fdbc39e45

commit 45e689942676f52f5a405262b41c0d60a0d681ab
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 20 14:47:24 2017 -0500

    Only search for floating ips if the server has them
    
    We have a server dict, which has an addresses dict. If the addresses
    dict does not list any floating ips, then there is no need to spend the
    API call to look for the fip ids needed to do the delete.
    
    Change-Id: Iaf7583fe29bd197a59ae2728fd52d8de2ac1d411

commit 2486e09b67c20254f780a1f2cee941c4345553d1
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 20 07:44:30 2017 -0500

    Don't try to delete fips on non-fip clouds
    
    There is no need to even go through the logic. We have a flag for this.
    
    Change-Id: I103a2f346344d7a1eed5c54b58d279f04a1f76a3

commit 10beaf9c43a19220b61b7e979f6e46f0056410c5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 20 07:42:59 2017 -0500

    Return an empty list on FIP listing failure
    
    We don't want a 404 - we want an empty list.
    
    Change-Id: Ia30077d4093b224485b9953c5ad9d2d7c811ec50

commit 410a4558db80874dd34352ebc2c761b18404f0a7
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Mon Jun 19 19:37:27 2017 +0000

    Don't remove top-container element for server REST API calls
    
    Change-Id: Ic44e99b95a546bbc62562634340f14033ae1e346
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit 5512e46933b894d447c4b19917e1cd1cfebae6f7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jun 19 08:17:43 2017 -0500

    base64 encode user_data sent to create server
    
    user_data is base64 encoded, which novaclient did for us previously.
    Since we no longer use novaclient, we need to base64 encode it
    ourselves.
    
    Change-Id: Idf2320f43ba81b3ddc3b1c0016c7f872b5c5319b

commit 3aee4f5e6ea3ec4a49442c905a4bd43b1e7b13a9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Jun 18 12:54:05 2017 -0500

    Remove novaclient from shade's dependencies
    
    All calls to nova are now done via REST. This means we can remove the
    dependency.
    
    Only two more to go ...
    
    Change-Id: I01a0afef5986b7452fd73e04c48568ebb9817681

commit 56524c16a82f0b75cb9e576eb74982d8b19fb105
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Jun 18 12:50:24 2017 -0500

    Translate final nova calls to REST
    
    Change-Id: I89e0e59ec1ed6a81843da61bd3fce49d57da7c17

commit 56244f54103c076444a1e8793fa78b6753350961
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Jun 18 12:22:27 2017 -0500

    Convert remaining nova tests to requests_mock
    
    Change-Id: Iff4341f2c83493c901f5e18570f82b0b5f7f3ad5

commit a2ec277bf5f6ee63b7396894975a104401dfd284
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Jun 18 12:09:45 2017 -0500

    Convert host aggregates calls to REST
    
    Change-Id: Ic250e904e1a51d659c2599591e2b4274ebc5d1c0

commit f1778968de1125f48165efb1694be4c1a951aab9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Jun 18 11:51:07 2017 -0500

    Convert host aggregate tests to requests_mock
    
    Change-Id: Ia2f5ef2798c57c88a0b3735db3381e1fbc20d9fa

commit b1faf5bdd12fdd2cb08c0f08e05223f103171dcd
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Jun 18 10:53:59 2017 -0500

    Convert hypervisor list to REST
    
    Change-Id: Ie08b2e2e9ef0b27e9faa27d38934e97c74c76305

commit d69b81fe00627b527a8c999bd9ce7ac9ac689d30
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Jun 18 10:50:53 2017 -0500

    Convert hypervisor test to requests_mock
    
    Change-Id: Ie9acb8582ab52580c90b3511acf5e28eed2f9abf

commit 0ad08858a543d67f66e6576c49e7988c53038a28
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Jun 18 10:41:20 2017 -0500

    Convert Server Groups to REST
    
    Change-Id: If779c02521d0cf07d43f19ff9a11666838e4ac3b

commit 3aec23cfd2a0477693e6684a97bfb3abbd3cd937
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Jun 18 10:34:34 2017 -0500

    Convert server group tests to requests_mock
    
    Change-Id: Ic4b137073e0c662d26cac254611708b3f31734e0

commit 611ce3dca1bf7b320ab075b4f05294c1f24fd4e3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Jun 18 10:05:19 2017 -0500

    Convert FakeSecGroup to dict
    
    Change-Id: I0e0e1b87b0b32e8c015ba1f9944faf3b0e0738c1

commit fb956cce7b528eebc7332377d76c156cddcbd6ed
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Jun 18 08:19:21 2017 -0500

    Remove use of FakeServer from tests
    
    FakeServer is a Fake of a novaclient object. Use actual json instead.
    
    Speaking of - transform the dict through json dump/load so that it's
    unicode where it's supposed to be. This makes diffs easier to make.
    
    Change-Id: I45c1136078f604c73c1fea54a9eb52bbbc8c69b5

commit 7cd4ef000153c7c4b8b3a43910ccb2bc4439c6c5
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Sun Jun 18 00:47:12 2017 +0000

    Don't remove top-container element for user and project REST API calls
    
    Change-Id: I5d2ca9426f629014069f98ed9521556392c9d71d
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit b9a2c296e618d6ea07f8e91d995cc29885fe63c0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Jun 16 18:23:07 2017 -0500

    Convert keypairs calls to REST
    
    Change-Id: Iea7c8267e87c5b5beb83e9315f41a61ae714005f

commit caa69b4117ebe5f75d45adc805f67035d1d55855
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Jun 17 08:46:23 2017 -0500

    Add normalization and functional tests for keypairs
    
    Keypairs didn't have functional tests, although they do have ansible
    tests. Also, there was no normalization. Add both.
    
    Change-Id: Ib6fab25cf4c88e5f9d224e831a8b5f297b263aea

commit c23611a093290b0f8882a4995cb0ab04de13888b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 20 10:33:14 2017 -0500

    Remove future document
    
    This is a write up of an idea from several years ago which is both long
    in the tooth and honestly never going to happen. Go ahead and remove it.
    
    Change-Id: I4377cfb24c468f2333ac470a2a58fa97cf35d4bd

commit 145a0ab7a3662615a9b5df5cad28b92dfb30884a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 20 10:29:53 2017 -0500

    Add text about microversions
    
    We aren't doing anything with microversions yet, but since we just wrote
    down algorithms for version discovery, let's go ahead and talk about
    how microversions should work. Also, mention that it's important to
    fetch information about them as part of discovery.
    
    Change-Id: Iadd48cd53488240e33db83797a88af689b1497dc

commit 587b41b0f6612c147fad93966369836b3e953a18
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Jun 16 18:10:34 2017 -0500

    Convert keypairs tests to requests_mock
    
    Change-Id: I85a9d19959e750995fed20a882eb8a9cae9add64

commit 70365c9f65cc04b711f96a418aac3ae23dc2fbec
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Jun 15 22:41:08 2017 -0500

    Convert list_servers to REST
    
    Change-Id: Id3e60a9df87c3ca64fcabcb5c6d30b2b0bcb0b24

commit 83c8bf5a3439c8bf732604ca0de9098af312d6b0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Jun 15 21:50:52 2017 -0500

    Convert list servers tests to requests_mock
    
    Also, found a few others that had been missed before.
    
    Change-Id: I9dfbabd2b5318a59b91edf4d8a62ccc0ccb9baa0

commit c5245648edcd2041d1df1f94f68c5d612fda6be9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Jun 15 21:38:56 2017 -0500

    Remove some unused mocks
    
    Change-Id: I25c59933cd61eff31d02b3c763f6ebd5551d3231

commit 35980c1da8977db1cffb66975145ee5532a83fe8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 13 21:35:02 2017 -0500

    Break early from volume cleanup loop
    
    Change-Id: I540c4d860a60810d6ae6838ec558cc48cff67cf8

commit c431cc2c4bed6b8b181fd94b6d57098b32c68c83
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jun 14 18:08:27 2017 -0500

    Add some release notes we forgot to add
    
    Change-Id: I05c31400e6f2e584a656c8ab422875be2d6f6bfe

commit 6b325282d3ab2f848de372a80def36b01b6ba6f4
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Fri Jun 16 18:13:15 2017 +0000

    Retry to fetch paginated volumes if we get 404 for next link
    
    When we get a volume list, it's possible for a volume to disappear
    causing the pagination to bork. When that happens we retry to
    get the list from scratch for 5 times. If all the attempts fail
    we just return what we found.
    
    Change-Id: Ia88d1d8a6b3558f7d5d364a9c78bbf834836d3f7
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit daabd8cb9cded99ffeef9de34321bd9439d722b8
Author: Markus Zoeller <mzoeller at de.ibm.com>
Date:   Fri Jun 16 11:21:41 2017 +0200

    docs: make the first example easier to understand
    
    The very first example of the usage of shade is easier to understand
    if there is also an example of the needed `clouds.yml` file. Without
    it, it is unclear what the meaning of the key `mordred` means.
    
    Change-Id: Iad3aba66b0c6344157da30f374e191d01e938b2b

commit 494d5d1e0fe2d600b43dd4ae9f7c9657a08bbc88
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 13 14:57:39 2017 -0500

    Properly expand server dicts after rebuild and update
    
    Change-Id: I60568206c6b8900560ebd4f202aaaa5cd9f0d71e

commit 972dcfcdf71feca95d166e1d9c152fcc097567fd
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 13 12:27:31 2017 -0500

    Migrate non-list server interactions to REST
    
    Change-Id: I999ea383909d01317f361ef55bee73db9fc1afbf

commit 8ed5666501966ca8a2d9bfed8b9111f612b4dddf
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Wed Jun 14 23:22:17 2017 +0000

    Increase timeout for volume tests
    
    Creating and deleting volumes is slow so tests like
    test_list_volumes_pagination are often timing out
    
    Change-Id: I87f59bdfb527326a2a90a03d524e38d632ea7377
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit 4fa316b778a88c92e4fcfd57480631d45cc2df5e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jun 14 14:43:13 2017 -0500

    Skip pagination test for now
    
    The pagination test, although awesome, is killing the cinder in the gate
    and we're seeing an unworkable increase in timeouts.
    
    Skip the test for now allowing us to work on fixing the test without
    killing everything else.
    
    Change-Id: If83abbad9398cb97ca7fdc1d3f6d2d5473343664

commit 9353650d1d8325bc8836980f84fa14bbfd37d746
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jun 14 06:28:12 2017 -0500

    Fix urljoin for neutron endpoint
    
    We just add a '/v2.0' to the catalog endpoint for neutron. However, if
    the catalog endpoint does not end in a /, this can turn
    https://domain.tld/neutron into https://domain.tld/v2.0 instead of
    https://domain.tld/neutron/v2.0 as intended.
    
    Change-Id: If16dc64dd9a4c9e525d042190632d0f4f0a4fb63

commit 19cddb559180ea22e26b7171f26ea692c32ee967
Author: deepakmourya <deepak.mourya at nectechnologies.in>
Date:   Wed Jun 14 11:54:08 2017 +0530

    Remove py34 and pypy in tox
    
    No gate check for py34 and pypy
    
    Change-Id: Idcc0dd485d94ab66e52e086c6d5cda268c5aea07

commit 3bb46e4f7fb01484fc1d855d58b3b02b644ea96e
Author: rajat29 <rajat.sharma at nectechnologies.in>
Date:   Wed Jun 14 11:45:44 2017 +0530

    Replace six.iteritems() with .items()
    
    1.As mentioned in [1], we should avoid usingg
    six.iteritems to achieve iterators. We can
    use dict.items instead, as it will return
    iterators in PY3 as well. And dict.items/keys
    will more readable. 2.In py2, the performance
    about list should be negligible, see the link [2].
    [1] https://wiki.openstack.org/wiki/Python3
    [2] http://lists.openstack.org/pipermail/openstack-dev/2015-June/066391.html
    
    Change-Id: Iffdaadabccd6314643f668147f486103378a55eb

commit 0d7fc5940a566cc21965ce68efaa0ef99edc593a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 13 14:16:35 2017 -0500

    Update tests for server calls that aren't list
    
    Change-Id: I6abe198fc690fc04b35c0a90c3c3ee7a08cfdd08

commit a0abee2c5cd48501ea73a5e661a9acd15421ded3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 13 07:53:27 2017 -0500

    Convert delete server calls to REST
    
    Also, remove the GetServer task which was missed earlier.
    
    Change-Id: Ic7e5bf011193efc842f68de6b038942af6f23b7d

commit 458b6e9c96c7a3e961f11be938718008cf644086
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 13 07:53:15 2017 -0500

    Convert delete server mocks to requests_mock
    
    Change-Id: I1615aa825dffbddd33e5effc014415945a694e76

commit c085c4c5f911133a9add0b50e63c1f6c85f3121f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 13 06:56:55 2017 -0500

    Convert get_server_by_id
    
    Already did all the tests during create_server.
    
    Change-Id: I10ade7ff0bf682691e4842e639726195253e1300

commit 36b659eed403aea3ecf8666a68524b8e0f8ef494
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jun 12 09:57:23 2017 -0500

    RESTify create_server
    
    In order to create passing tags to the nics parameter of create_server,
    we need to support microversions. In order to support microversions, we
    need to be using REST. Yolanda needs to pass tags to the nics parameter,
    so let's go ahead and transition create_server since we want to anyway.
    
    Tests are modified to remove an extra GET call that novaclient makes
    that we don't actually need.
    
    A follow up to this will add microversion discovery, and then will add
    support for 'tags' being in the nics list.
    
    Change-Id: I04c3b08d80cf496dabec8ce7000ca5fb679fe3b9

commit 6b61f18ea20f622029939230730048e49e523fe6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jun 12 15:34:25 2017 -0500

    Don't fetch extra_specs in functional tests
    
    We don't need to get these with every list_flavors and they make the
    logs harder to read.
    
    Change-Id: I642f6e0f05b13b67e95ed2cefdf7230c2cda5e5c

commit 9cb4b1dcf73de64dd0cc79bbbd9b4c32878c619e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jun 12 12:00:34 2017 -0500

    Convert create_server mocks to request_mock
    
    Next patch will convert create_server. Note: this found a few bugs in
    the tests.
    
    Change-Id: Ia1c9d3a02e52b63756f61dbff77b90dc35e45d24

commit e5389891214837b50c15987b4337a0f4678422f8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jun 12 17:28:37 2017 -0500

    Add boot from volume unit tests
    
    The boot from volume parameters are complex and we don't test them.
    
    Change-Id: Ia4b8db8792d8343d1bc1c5525e24065f67b4646c

commit e6573737638383ba7f7b0c4021b3ceb381cf2bc2
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 13 15:25:01 2017 -0500

    Cleanup volumes in functional tests in parallel
    
    We spin up 8 volumes for pagination, but then we try to clean them up in
    series. That's bad for our timeout. Let's take a page from nodepool and
    just poll the list.
    
    Change-Id: Icda01fd21dca06e459fbdd3c1cbd31441b95cd7a

commit 081930d3a925e7f0c8ed6fe9cd9d95818e3eca8a
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Mon Jun 12 21:04:55 2017 -0400

    De-client-ify Project Update
    
    Change-Id: I2c9c6ebe594268b1be78af7b1e25f110605a076d

commit 18f9b64ced1aa7d294d844976a7ddde8a58bafc0
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Mon Jun 12 18:48:28 2017 -0400

    De-client-ify Project Create
    
    Change-Id: I4003cda72ac6f4bfc083722983159409673d3098

commit d3df09107ead9d690461e9166c420b28050baadb
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Mon Jun 12 20:54:07 2017 -0400

    De-client-ify Project Delete
    
    Change-Id: I24522698dbb333edc7eec6087637a252c0f92ff1

commit 92370249542302cfd288b0843c61170659b819e6
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Mon Jun 12 17:46:11 2017 -0400

    De-client-ify Project List
    
    Change-Id: I13cb90a46ca61716b04989574483cfb4b04fa6b1

commit 2b48aed90d7f236b0a72dbc90698ae7aa30bdfcf
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Mon Jun 12 23:28:13 2017 +0000

    Don't remove top-container element for sec group REST API calls
    
    Change-Id: I81cdf17fede6414bdbbd7c7ea0a7eb5efc8aced3
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit db83c23be7d04debc3804906e12613a1616814cb
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Mon Jun 12 18:03:33 2017 -0400

    Improve grant docs on when and how use domain arg
    
    Change-Id: I76184b229d48d8bd3268c803400c2ab9d3fcab17

commit 5d204c32696456c4789985e6da503a30b118c854
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Mon Jun 12 15:56:12 2017 +0000

    Don't remove top-container for stack and zone REST API calls
    
    Change-Id: I502c7a7bcae7a7efd6541d50cc9837c04d48cb63
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit ebedf176c7e6e00cf4ae6110f2cb5ace5a8c66e9
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Sat Jun 10 21:35:01 2017 +0000

    Updated from global requirements
    
    Change-Id: I363e82513bb504ee7691c9283ab9763c40471fb6

commit 4fce8d91f401249c06db5a7d7b264588dcd547e4
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Sat Jun 10 16:07:38 2017 +0000

    Rename obj_to_dict and obj_list_to_dict
    
    Since we are actually to munch objects and not dict,
    let's rename them to obj_to_munch and obj_list_to_munch.
    
    Change-Id: Id4d77520237503bbfede89638675402d143fffcd
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit 75ce1eae85c53cc517520d7208eb1091a9f7374d
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Thu Jun 8 21:53:38 2017 +0000

    Don't remove top-container element for network REST API calls
    
    Change-Id: I2cde7add2bc0c85afbcfd03992dd500ce3ec7a8c
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit 75ce9ad924c9315d747529e40788a9f4ccb35138
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Fri Jun 9 13:49:05 2017 +0000

    Convert data from raw clients to Munch objects
    
    Change-Id: Ib6fcb0b18e550c75248eaf00f4a305f5882e6cdf
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit 40c4f3ca15f990572e3ebeb93f484b74ac9d392b
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Thu Jun 8 17:56:32 2017 +0000

    Remove unneeded calls to shade_exceptions
    
    Change-Id: I3dce6e9a9e25e763e4daa2be0495521876a27fd4
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit f01a7d43ca3423650e9d2e0b90eea0b61dfde92f
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Thu Jun 8 13:40:35 2017 +0000

    Don't remove top-container element for volume REST API calls
    
    This is a first step in the process of removing the logic
    from the shade.Adapter that removes top-container element from
    the REST PAI response. The goal is to simplify the logic and
    move it into the REST API calls.
    
    Change-Id: I885ba0c8d1df8c6f33bd3e2e92d052a1614a917f
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit 766d6227a39f485ae7fbcb29acd68036d0bd5bc7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 6 16:59:00 2017 -0500

    Use get_discovery from keystoneauth
    
    If we use the get_discovery call, we'll re-use the keystoneauth cache.
    This removes the last stupid extra discovery call.
    
    While doing this, noticed the dns version discovery was wrong, but we
    weren't noticing because adapter magic. Fix it.
    
    Change-Id: I01d07554d094fffd498f21a9291710c8eb0041f6

commit ba36d445a71fb1c98168240a6a284e75154039f6
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Wed May 24 14:39:42 2017 -0700

    De-client-ify User Ops
    
    Remove keystoneclient from some user CRUD ops.
    
    Change-Id: I95ab2b58e2895c7735cc5a65dbf401bbd7715ccf

commit 752d01eb270c24a9058060be25cc51112669df25
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 6 15:18:56 2017 -0500

    Add links to user list dict
    
    This is what keystone returns, so it's what our mock should return too.
    
    Change-Id: I7d4b428a48d3f4779994f4ac7d41744cf74d549d

commit 5a1a3d813b89e19f3f85da1a6ac363ae759c4f53
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 6 10:40:22 2017 -0500

    Avoid keystoneclient making yet another discovery call
    
    Even with an endpoint_override set, keystoneclient will make one
    discovery call if the keystoneclient.client.Client constructor is used.
    Because we're not going to make that extra discovery call after we've
    already made a discovery call when we do ksa calls, directly instantiate
    the v2 or v3 objects ourselves. This lets us avoid the extra discovery
    call so that we can remove it from our test fixtures. The discovery
    call sequence now should be identical for ksa vs. ksc.
    
    There is still an inefficiency here due to our discovery not using ksa
    discovery. But we can optimize that later.
    
    Change-Id: If7f8625745f80334b9a78d742dc4a9250a4eb72c

commit 96c24b1108f5eca3d679a6b17a29c475a433c2e5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 6 09:39:35 2017 -0500

    Use shade discovery for keystone
    
    Use the new discovery method for identity client. HOWEVER - also use it
    for ksc by setting an endpoint_override. This prevents us from having
    multiple competing discovery stacks while we transition from ksc to ksa.
    
    discovery is still less optimized. Our discovery isn't making use of the
    ksa discovery cache so it double discovers identity. We'll fix that
    next.
    
    Change-Id: Ieae669c1ea1155434a642dbc89f78f85a3563567

commit 076a407eac78d1d04efa65f5ad660da6f5a3c5de
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Tue Jun 6 05:59:39 2017 +0000

    Updated from global requirements
    
    Change-Id: I5b98af79293aae245f2e37eb585ed87b9153c940

commit 641073bba93e90e4373e08e7113d7de853355ab9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Jun 4 23:30:01 2017 -0500

    Migrate dns to new discovery method
    
    Change-Id: I66cdb189a87e94df35fbdb720c48e59f24ca51cb

commit a45848d5b97270685904653635b2bb4b248d7139
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Jun 4 10:34:46 2017 -0500

    Generalize version discovery for re-use
    
    This will eventually all push down into keystoneauth, but for now we
    need it in a few places. Let's just make one method rather than cutting
    and pasting it for each service.
    
    Change-Id: I190f3abfc403af337d671e8c420915c009964cf3

commit 751b0a0411941490e5d1be678e0a3ca4ad1b8db5
Author: Jakub Jursa <jakub.jursa1 at gmail.com>
Date:   Mon Jun 5 15:16:50 2017 +0200

    Pass hints to Cinder scheduler in create_volume
    
    This commit adds support for passing 'scheduler_hints'
    as kwarg in create_volume.
    
    Change-Id: I85915fab03f2bff77a21802791f2f6a7579815f2

commit 10cb4f2d592908b74ca92cd1e61d21ab6b6dbab9
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Fri Jun 2 16:48:03 2017 +0000

    Remove designate client from shade's dependencies
    
    All calls to Designate API are now done with REST calls made
    via keystoneauth1
    Shade don't require python-designateclient package since now.
    
    Change-Id: I55393dc04ec9eeaba885fee849e6466f199be479

commit c97bac299751775294e8abc5f01d1bfb7bb681cf
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Jun 1 16:46:27 2017 -0500

    Do less work when deleting a server and floating ips
    
    When we delete a server with floating ips, we tell get_server to not
    fetch a bare server, which does the work to fill in the network info
    from neutron. Then we look in the server for the floating ip address and
    look up the port it goes with.
    
    This is not necessary.
    
    We can tell get_server to get us a bare server, then look up floating
    ips by device_id. Then just delete them.
    
    Change-Id: I5ec04dc2a356aa20cf561866e8f43f9e28b2db21

commit f0fa7e71c00a8dbda25db704a16c4b46ae1c3f75
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Thu Jun 1 20:11:08 2017 +0000

    Remove designateclient from commands related to recordsets
    
    All commands related to recordsets, like create/update/list/get/delete
    recordset are now made using keystoneauth1 client and direct REST
    calls to cloud.
    
    Change-Id: I40339ec188b75668211d87d4410e5f9b8961424f

commit 1a5f7343fd462ad703b42046823c9ac33ee2df9f
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Mon May 22 22:22:33 2017 +0000

    Add pagination for the list_volumes call
    
    This commit adds support for pagination when it is enforced
    by the cinder server because the length of the volumes list
    requested is longer then CONF.osapi_max_limit.
    
    Change-Id: Ibd234e521884d4de746cb002988a5a6540c9f043
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit 755890ba413a67806ceb40a9d413c95cdd233f95
Author: Sylvain Baubeau <sbaubeau at redhat.com>
Date:   Thu Jun 1 16:10:27 2017 +0200

    Handle ports with no 'created_at' attribute
    
    Change-Id: I1ff4635365acd803878212787fa98c622c69a41b

commit 014d3979cfca4b9229faba7ef5bbbfea8b17031f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed May 31 07:10:57 2017 -0500

    Update test_user_update_password to overlay clouds.yaml
    
    Rather than adding a bunch of v2/v3 logic, just use the demo cloud entry
    in clouds.yaml but with the new user_id/password.
    
    To make sure this works, go ahead and assign the member role to the
    user, so that the project settings in the file will work too.
    
    Change-Id: I1adc271d60c0ded25c639962d0974242009c7c9b

commit f0c981cfc4873b46710628a7de394e0a826cdd6a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue May 30 08:48:19 2017 -0500

    Fix legacy clients helpers
    
    There is no method called _create_or_return_legacy_client.
    
    Also, you have to pass a variable to a format.
    
    Change-Id: I559416d29c34b6cfea944f405c8608714ad81508

commit 6a325df8b6423d004d91eae51a270d2ccfb8ec0a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue May 30 09:52:03 2017 -0500

    Remove unused occ version tie
    
    We have a trap for old os-client-config versions so that we can use
    set_session_constructor. Problem is - we don't actually use
    set_session_constructor. So it's a bogus trap that's just making life
    hard.
    
    Also disable a part of test_update_user_password. Our keystone v3
    devstack doesn't have a v2 endpoint anymore, and this went south.
    
    Change-Id: I1299c6d33f301a6b1deed848737bfb561129a031

commit 92a19dfa2f545de5d56059e55a8380cad3246aee
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Fri May 26 20:57:41 2017 +0000

    Remove designateclient from commands related to zones
    
    All commands related to zones, like create/update/list/delete
    zone are now made using keystoneauth1 client and direct REST
    calls to cloud.
    
    Change-Id: Id3a0fc0aa55e62832fd6fb85cafda8d55023d01f

commit 5d987eb31e8c620dd69fe11a3c3ce8458bb45332
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu May 25 10:18:58 2017 -0500

    Add documentation about shade's use of logging
    
    shade logs to some specific named loggers for various things. They are
    defined and intentional, but are not documented. So let's document them.
    
    Change-Id: If52553e5478d4e2f8a56f5d899e93fd2b4fe3c2d

commit e167039f581b51995de0f9bdb8562b1b799d246b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu May 25 10:21:23 2017 -0500

    Add novaclient interactions to http_debug
    
    While hopefully novaclient will be gone soon, it's here now.
    
    We set up novaclient logging in our unit tests so that we can see what's
    going on. Do the same in simple_logging at least until we've gotten rid
    of novaclient.
    
    Change-Id: I105af3acbe215fb8d0cdc3dd7e5670eb4379d668

commit f6c74f25f0bd6e8cd1341701f3bc135f46691fe7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu May 25 10:16:19 2017 -0500

    Set some logger names explicitly
    
    In the next patch we'll add documentation about what shade logs to what
    logging facilities. To make sure that those named facilities are
    maintained as part of the interface a consumer can count on, set
    non-root logger names explicitly.
    
    Also, this changes the logger name for the "waiting" messages from
    shade._utils to shade.iterate_timeout. _utils is an implemenation detail
    and such subject to change. The logger for it is not.
    
    Change-Id: I2ff413062c4cc3b49872fa8fd24e5daade063187

commit 58d9b2a713544ed84a7abd68a019899d4588e47b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu May 25 09:45:22 2017 -0500

    Add logging of non-standard error message documents
    
    Sometimes we get non-standard repsonses that include things like
    html errors. Log them to a special logger if they are there so that
    someone can opt in to seeing them.
    
    Change-Id: Ife1ce58b0484c610d6b43a9adb39113f387eff77

commit bf8774b80970357048e1d9353383a42ebe811c2c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu May 25 09:29:30 2017 -0500

    Log specific error message from RetriableConnectionFailure
    
    There are more than one error from keystoneauth that can match
    RetriableConnectionFailure. We retry on all of them, but logging the
    whole message can be useful for debugging.
    
    Change-Id: I2fd3bf62a3a755281d34ff5d3624b835281604fb

commit 990cfa3ce24d0a92c7578b52ae1fea02d69f7e87
Author: Matthew Booth <mbooth at redhat.com>
Date:   Thu May 25 13:26:48 2017 +0100

    Don't pop from os.environ
    
    It's rude to other users and subsequent callers.
    
    Change-Id: I7789f381c99311bfd1c1e0a9869cbacbc96b17d6

commit aad00aa01e737b4b553c17eb22c4c5211f6767f5
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Wed May 24 23:11:29 2017 +0000

    Updated from global requirements
    
    Change-Id: I1a52a58baccd8dd3b6f04bd8baa8d20654ce366d

commit 462fe8178bc10bbef0618f608eff94c826d9934d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed May 24 12:34:52 2017 -0500

    Fix python3 issues in functional tests
    
    Change-Id: I86e28616403c36672603a6ad6cb0477722da4594

commit 9f393dcbc89390a08d5f20a44cbdeb96ae9be5e4
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed May 24 12:24:41 2017 -0500

    Add time reporting to Connection Retry message
    
    Change-Id: I38415e88fd3415022d003f710d95131a4dc314d8

commit b194a4d58a4eec557232a5d485b45da4a2382554
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed May 24 11:40:58 2017 -0500

    Log cloud name on Connection retry issues
    
    It's hard in a complex environment like nodepool to know what to debug
    otherwise.
    
    Change-Id: I5885fc136c89a37ac405ce1d859a33d1c1f9cf1a

commit a4bcf38f5518579363bb5f33ef9b7c5651f44575
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed May 24 09:37:11 2017 -0500

    Use catalog endpoint on any errors in image version discovery
    
    If we can't do version discovery for whatever reason, just use what's in
    the catalog. While we do that, try to detect what version it is so that
    we can at least take the correct actions.
    
    Change-Id: I2be381c1a0af9ee576f22b6c03b7a2e577503aed

commit ba0e9451e664743dbc5d24307ca5a3829ee3e91b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue May 23 16:05:15 2017 -0500

    Pick most recent rather than first fixed address
    
    If there are multiple fixed ips for a server after nat_destination
    filtering, we pick one arbitrarily. The thing we really want to do is
    pick the most recent one - since it's the one with the greatest chance
    of success.
    
    Removed a test that wasn't actually testing anything.
    
    Change-Id: I73fe5fe58269931ae9a7e52b79c3211d96e69a92

commit 072001a6289bee6594a97fe30dd5ab53bb1d9e99
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue May 23 09:04:25 2017 -0500

    Allow a user to submit start and end time as strings
    
    get_compute_usage currently requires a user to provide a datetime
    object. That's actually fairly unfriendly. Also, it turns out if you
    happen to produce one of those with timezone offset information, Nova
    will return a 400 error. It's pretty easy to convert a datetime with
    timezone info to a datetime in UTC without it - so do that first.
    
    Now a user can submit a fully compliant ISO 8601 datetime with whatever
    info they want and we'll make it meet nova's standards. They can also
    supply a datetime if they prefer.
    
    Also - do date parsing before project get - to avoid an API call if the
    validation that doesn't need an API call fails.
    
    Finally, supply a default for 'start' of the first day OpenStack
    existed.
    
    Change-Id: I53989d47f0d24695c19c1023e35acb315bec9eea

commit 12b07e12e2f6f43eb7dd9230d25acff2c6ac8343
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue May 23 08:13:19 2017 -0500

    Fix get_compute_limits error message
    
    We're currently using name_or_id in the error message whether it's there
    or not.
    
    Change-Id: Ieaddc57e52f7c26b410ebe0178e2c30f48897769

commit 8d34399714297d5eaa12ae7428bf93392e2b4108
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue May 23 07:55:38 2017 -0500

    Fix get_compute_usage normalization problem
    
    When we normalize an empty usage report, start and end can be empty, so
    the pop() call fails. Don't fail on that.
    
    Also, stop forcing interface=admin in operator_cloud. We stopped adding
     this elsewhere already, because it turns out it's NOT actually a thing
     anyone should ever do by default. (It's an old keystone v2 thing -
    jamielennox says it should be avoided like the plague) Make
    operator_cloud consistent. (This will still honor interface=admin if
    it's in the clouds.yaml file)
    
    Change-Id: I432dc58d60fb56ce13332443435138354d66e9e1

commit e3d43e7396d95d6cfaa4ca0113108cbef22225b6
Author: Clark Boylan <clark.boylan at gmail.com>
Date:   Mon May 22 12:10:24 2017 -0700

    Find private ip addr based on fip attachment
    
    In the case of multiple private ip addresses we previous returned the
    first private ip address found. That can cause problems if that IP
    address isn't valid. Since the IPs are private the only real validity
    check we can use is if the private IP address has a floating IP
    attaached. Update shade to return the private IP that is attached to a
    floating IP when there are multiple private IPs.
    
    Change-Id: I86807c5149dfad72948ff6832a6697b594d1f195

commit 329b939241a218e09e03cb41ad4ac8f3bec3c2f4
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri May 19 09:44:11 2017 -0500

    Add ability to run any tox env in python3
    
    To test this I ran the pep8 tox env with python3 set - and lo and behold
    there was a python3 mistake in a functional test. Whoops.
    
    Change-Id: Ia93a2a85e420d164d67abee479ad498b5e6d3167

commit ee0112182a8e4a0c01546d472bb097f85ea2d8e3
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Thu May 18 15:14:49 2017 +0000

    Fix issue with list_volumes when pagination is used
    
    Change-Id: Iecf478d8c6352744bd58cfa437d34caf0f47021b
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>
    Fixes: bug 2001022

commit b9872da5f0bc95ed0b0aa196517e28ebe0fb3842
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed May 17 12:02:31 2017 -0500

    Make sure security_groups is always a list
    
    In https://github.com/ansible/ansible/issues/24675 we see that sometimes
    security_groups is coming back None. The data model in shade says it's a
    list, so make sure it is one.
    
    Change-Id: I6db45ba7c3d630812ea58353d3eaddbb98cb8c1f

commit c19a797066348f44b8f478c60c28842083cfcc7f
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Wed May 17 03:45:54 2017 +0000

    Updated from global requirements
    
    Change-Id: I245f8b4e10a57d133443683ba115274ce2332bfd

commit 750e0a98032c27e2db7d3fbce75ddb1d613dad10
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon May 15 18:00:50 2017 -0500

    Remove direct uses of nova_client in functional tests
    
    We use nova_client in a few places for setup/teardown - but we're solid
    enough at this point to just use ourselves for these functions. We're
    _pretty_ good at deleting servers consistently.
    
    Change-Id: Ifd12488752c036e4453c308a1aa6573c57d52944

commit 8235e0ce6cff00bfa84501865a3cf48511cdf2ec
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue May 16 18:12:41 2017 -0500

    Keep a singleton to support multiple get_config calls
    
    We are destructive to os.environ in the OpenStackConfig constructor- so
    it really should only ever be called once. Make sure get_config does
    this.
    
    Change-Id: I279bdf68408a807ec18fba634df3769c9b8fc4dc
    Closes-Bug: #1691294

commit 5991a5e72214a8c7bd12e7478f91f4aaa3a05d2f
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Tue May 16 12:18:08 2017 +0000

    Updated from global requirements
    
    Change-Id: I034286a50f55350269777e13331cda536f9c8b4f

commit 892b502251c08a930d62b146df5aac6f8bfe3f5c
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Wed May 10 16:54:59 2017 +0000

    Remove designateclient mock from recordset tests
    
    Designate client mock is replaced by requests_mocks
    
    Change-Id: I839a4d83bb53214980fd87beb79454251335721b

commit 4199976762d53583814b371f51672eb4a7a06a50
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon May 15 16:09:37 2017 -0500

    Convert list_server_security_groups to REST
    
    The tests for this are already covered, the call just didn't get
    converted.
    
    Change-Id: I78f91dca0ec41207c433597bcf0fc6284bed73c7

commit f11edd7fdd6196ac4a74c33679efd5bbdba96e10
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon May 15 16:00:18 2017 -0500

    Remove two unused nova tasks
    
    ServerConsoleGet and NovaImageList were both used but still in the file.
    
    Change-Id: I91a609b241eed497842a2a28ed41d2b1205913ca

commit dbb42fc6ffec6dad484c1813639d5ce0643bd644
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon May 15 15:42:19 2017 -0500

    Include error message from server if one exists
    
    Nova includes bodies in error responses that look like this:
    
      {
        "badRequest": {
          "message": "Invalid input for field/attribute fixed_address.",
          "code": 400
        }
      }
    
    I recently had to look at HTTP debug logs to figure out a bug. Let's
    include that data in our exceptions already.
    
    Change-Id: I4b4b4702d772739b8f930ff6a3c1ad83987fed17

commit 9ecf600397aedd54236cbbb72bc8a080ea2f7a27
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon May 15 11:14:27 2017 -0500

    Optimize the case of versioned image endpoint in catalog
    
    We have version discovery for glance. However, if someone asks for a
    version, and it's the version that they get from the catalog, we can
    skip doing a full discovery run. Do that.
    
    Change-Id: I2c0694ffc70bf2801de1fc187ba7b38e6a1b9d09

commit 40f66c70c3703e1ffd499562a99d724cffbe2c53
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon May 15 10:46:21 2017 -0500

    Fix broken version discovery endpoints
    
    In the version discovery spec, it is noted that both schema and netloc
    on endpoints reported by version discovery documents are known to be
    able to be broken, but shade was only fixing scheme. Update the code to
    do the right thing. Also, add a test to ensure that this behavior occurs
    correctly. While we're in the tests for this, have the discovery call
    return a 300, which is what it returns. There are no bugs in this area,
    but 300 is correct so we should test it that way.
    
    Story: 2001027
    Change-Id: Id04f6f033c9277e791b602f193d1eaf6ac73047f

commit e1dfc7228da2729919b54a03825a5d1840718510
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun May 14 07:53:12 2017 -0500

    Remove cinderclient from install-tips.sh
    
    It's removed from requirements - missed it in the install-tips helper
    script.
    
    Change-Id: If798251387bdb81da980ef9e8d9869f2b0738cbe

commit a88d41e3026497cc98b0779d82fb05ee8ea4e720
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 27 18:46:04 2017 -0500

    Fix tips jobs and convert Nova Floating IP calls
    
    The script to install the git versions of the libraries wasn't working
    because it wasn't installing over top of the versions already installed
    by pip. So by adding an uninstall first, we ensure that the git version
    is actually installed.
    
    Also, add a pbr freeze to the end so that we can verify, and some +x so
    that we can see the output of our scripts.
    
    And: novaclient 8.0 doesn't have these calls anymore. However, the tests we
    had on legacy clouds were erroneously installing the wrong version of
    novaclient so we did not catch it. Doh. This has to do the tests and the
    calls in the same patch because the fix to the gate job to install the
    correct verison of the library exposed the fact that we had be broken
    for these for a few minutes.
    
    Depends-On: I208e8c009d0438de19cd3eb08dc45ddebb45d3e9
    Change-Id: I4fd882aeb8373b94c7f6b54d97b457042b324361

commit dc77e7d6c266d0278c13cdcaf5d46b2d07faeb96
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu May 11 21:11:31 2017 -0400

    Convert first ironic_client test to REST
    
    Add the various plumbing and convert one test.
    
    Also, ironicclient prepends "v1" to all of its calls (joy) so there is
    an ugly transition related to version discovery coming with this one.
    For now just prepend it in our mock base class. When we convert calls,
    we'll have to prepend v1 at the call site until we're done with the
    transition. Then we can do a followup patch that'll do discovery and
    remove the v1 from the code. Gross.
    
    Change-Id: Icfd70267910d19a7da2ae8e9b9e4f24d2077b87d

commit f94880c6d835cda4cd33e5b55f7d81d3608b8f52
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Sun May 14 09:34:09 2017 +0000

    Move mocks of designate API discovery calls to base test class
    
    As API discovery call has to be mocked in each Designate's
    test case it's better to move it to base test class and reuse
    later.
    This commit moves it to tests.unit.base.RequestsMockTestCase that
    it can be added to mocks in setUp() method before each test.
    
    Change-Id: I3f00c2d51619d634e4e44f3ebf276949544c8575

commit be0a0c99f3ebcb80e7a71226557bd2a96f75af73
Author: Paul Belanger <pabelanger at redhat.com>
Date:   Sat May 13 15:10:17 2017 -0400

    Fix exception when using boot_from_volume for create_server
    
    It is possible for create_server to accept a dict for image, however
    _get_boot_from_volume_kwargs did expect that. This created the following exception:
    
     Traceback (most recent call last):
       File "/opt/stack/new/nodepool/nodepool/nodepool.py", line 358, in _run
         self._launchNode()
       File "/opt/stack/new/nodepool/nodepool/nodepool.py", line 290, in _launchNode
         volume_size=self._label.volume_size)
       File "/opt/stack/new/nodepool/nodepool/provider_manager.py", line 235, in createServer
         return self._client.create_server(wait=False, **create_args)
       File "<decorator-gen-6>", line 2, in create_server
       File "/opt/stack/new/nodepool-venv/local/lib/python2.7/site-packages/shade/_utils.py", line 393, in func_wrapper
         return func(*args, **kwargs)
       File "/opt/stack/new/nodepool-venv/local/lib/python2.7/site-packages/shade/openstackcloud.py", line 5517, in create_server
         volumes=volumes, kwargs=kwargs)
       File "/opt/stack/new/nodepool-venv/local/lib/python2.7/site-packages/shade/openstackcloud.py", line 5333, in _get_boot_from_volume_kwargs
         cloud=self.name, region=self.region_name))
     OpenStackCloudException: Image {'id': u'1cb47019-08a4-4b9c-ae62-737b547648b6'} is not a valid image in devstack:RegionOne
    
    Now, check if image is a dictonary, like we did in create_server. Also
    add an ansible test for os_server so we additional code coverage.
    
    Change-Id: If58cd96b0b9ce4569120d60fbceb2c23b2f7641d
    Signed-off-by: Paul Belanger <pabelanger at redhat.com>

commit a483534123640eca2bcbf7c06920be3a2a01b090
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat May 13 08:45:26 2017 -0500

    Revert "Revert "Use interface not endpoint_type for keystoneclient""
    
    Unrevert the endpoint_type/interface patch. But this time around, put in
    a check for API version 2.0 and only apply the interface arg if it's for
    v3.
    
    This reverts commit 4493871824839782846c3825c754895876f8d08e.
    
    Change-Id: Ib347ec686d4d01788ee943c4c4f809aad06d9ccf

commit 4493871824839782846c3825c754895876f8d08e
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Wed May 3 13:11:10 2017 +0000

    Revert "Use interface not endpoint_type for keystoneclient"
    
    This reverts commit 38e5eba621e48d74c05315da2b89e6c801f4c43f.
    
    This patch introduced a bug when using Keystone v2. With this patch, the
    following works:
    
    python -c "import os_client_config; print(os_client_config.make_client('identity', auth_url='http://localhost/identity_admin', username='admin', project_name='admin', password='testtest', identity_api_version='3').roles.list())"
    
    But changing identity_api_version from 3 to 2.0 raises an exception.
    
    Without this patch, both 3 and 2.0 works.
    
    Change-Id: I8d2ad71ff51a08af1166d36805b740ea272939ed

commit 1c0a95ba8f9fda57e0a094c86393bae546f89f23
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri May 12 10:58:46 2017 -0500

    Move legacy client constructors to mixin
    
    Remove them from the main class to make them slightly less obvious.
    
    Change-Id: I72b32d992c71777155c22b51ce4c7868e19d44c1

commit 7a3acde3ed8a68acc15596be2d297426ee357084
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri May 12 12:05:50 2017 -0500

    Add ironicclient to constructors list
    
    Change-Id: I29db3c830759a80d8ea9f0d93a213b4bae4c8b59

commit 103bc13862639e6bfe942843c095230f3d6ddf89
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri May 12 11:52:41 2017 -0500

    Fix pep8 errors that were lurking
    
    Something about how we were doing legacy client constructors
    was causing pep8 to fail open. The next patch fixes that, but these are
    the pep8 errors that snuck in while it wasn't working.
    
    Change-Id: I080fd1730fcbc4cd30860963a89dad6ccf3d4f2f

commit 3f76b25798984cb3a4dabaf91ca5338782254465
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Wed May 10 14:48:05 2017 +0000

    Remove cinder client
    
    Change-Id: I585da9a60757da8020b8e1086ae8d8375a9ce364
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit 3ed97257ec51c3bf42c39d5db142426f8c51dab8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri May 12 09:45:36 2017 -0500

    Make deprecated client helper method
    
    We had a bunch of cargo-culted code inside of the deprecated
    client factory methods. Make a helper method so that it's easy to mark
    one as deprecated correctly as we do.
    
    Change-Id: Iedc859876c4adc4ccdadd580c5b686e0bda798f0

commit d3b653f23cef0cb0aef45e2a322a54e0626a7336
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu May 11 21:09:47 2017 -0400

    Add 'public' as a default interface for get_mock_url
    
    The calls are almost always 'public'. Make it the default.
    
    Change-Id: I0923b79d88e839aa4331afb987d27a3200b3b01f

commit ef35f02ea61a96ef025923cc3653bb67b4ef03ad
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu May 11 21:08:38 2017 -0400

    Add super basic machine normalization
    
    In prep for ironic_client conversion to REST, make sure we're
    removing the novaclient artifacts.
    
    Change-Id: I8ef1c5e87492310821c1a0e8ab7e2144c6a10dbc

commit d1d9ed7cd428e55a8e6b7f124a90659da739b69a
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Tue May 9 21:46:20 2017 +0000

    Remove designateclient mock from zones tests
    
    This patch adds also dns service to service catalog
    mock used in tests.
    
    Change-Id: Ic7ce778f58e9fd28951eb02067f6bbf86a14b0cd

commit 61141ae9cff44f20e6ad7ce8dfd71b47ef088b2c
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Mon May 8 19:23:12 2017 +0000

    Remove direct calls to cinderclient
    
    Change-Id: Iad89e4a0c13e28f545b2d164417b60ee39cb5b12
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit fcaf06c3f2d1738590c2ff81a5de45c510a341df
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun May 7 07:30:32 2017 -0500

    Add "Multi Cloud with Shade" presentation
    
    Check it out - when we write presentations in presentty, we can
    add them to our docs!
    
    First given at the 2017 Boston OpenStack Summit.
    
    Change-Id: Ia46a6f32b6b374974fba7b620b202f8eadc774a1

commit 7801de73ed57c015758ce7b2d69f53199f3410ae
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Mon May 8 14:40:14 2017 +0000

    Use REST API for volume quotas calls
    
    Change-Id: I73c5448edbd5ba7bc36f7e709c128136916073fb
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit b6926bb8e5e07b425809beb5773aa39b64feda98
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon May 8 09:48:11 2017 -0400

    Add pprint and pformat helper methods
    
    Because of munch - using pprint directly is weird. Make a helper
    method that does what the user expects.
    
    Change-Id: I617b75034a59118c170895ad20b86fb8a1eab386

commit 347fe82c929bb9b8aba5aee504bbe3eaf1e8bf04
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon May 8 07:20:53 2017 -0400

    Add helper method to fetch service catalog
    
    Grabbing the catalog is weird. OCC should help.
    
    Change-Id: I6e7176568311c1f0e644a8e8876f56c3e153d6e8

commit 2f8285db7211b7b59f3ddb996f40a175990edf89
Author: Christian Zunker <christian.zunker at codecentric.de>
Date:   Fri May 5 10:46:57 2017 +0200

    extend security_group and _rule with project id
    
    This allows admins to manage security groups and rules across
    projects.
    
    Story: #4193
    Change-Id: Iaea4d14baec377f1885bd2e00fafcc889ca1ba94

commit 81239f6742a22415492fe65873f9606b6734173d
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Sun May 7 22:15:15 2017 +0000

    Remove neutronclient from shade's dependencies
    
    All calls to Neutron API are now done with REST calls made
    via keystoneauth1.
    Shade don't require python-neutronclient package for now.
    
    Change-Id: I0aa6f32b10986e99d6f86cad9640d9d95b5d2cef

commit 1a8cb0aac20479309cca1da71d027aa23e047d64
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Sun May 7 17:30:50 2017 +0000

    Remove cinderclient mocks from quotas tests
    
    Change-Id: Ibce1d58309cf63a23ad8fb0e9ce89fb3b3de21fe
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit e00ff9c7194e7b62c34c2a13ac5d2e73ca67cf9c
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Sun May 7 19:50:03 2017 +0000

    Fix Neutron floating IP test
    
    Test test_create_floating_ip_no_port was did wrong during
    transition from neutronclient mocks to request_mocks. This test
    expects raising error and error was raised but from wrong reason.
    Now test is using proper data and exception is raised with
    good reason.
    
    Change-Id: Ic965c66c2507fe4adbd42f159c11666199208b39

commit c43f1d81e3c02e6781684097407cbc5c18806c66
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Sat May 6 20:48:52 2017 +0000

    Use REST API for volume snapshot calls
    
    Change-Id: If6fda6bcc0455d086779d134e00417d72f1f4e92
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit ad516fba6de1dd0a619083cd3ef1392f7070aaff
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Sun May 7 15:26:18 2017 +0000

    Remove usage of neutron_client from functional tests
    
    Neutron client was used in functional tests to add/remove
    router interface and to remove external_gw from router.
    Now shade can do such operations so shadeis used for that
    and neutron client is no longer needed there.
    
    Change-Id: Idf3e0329eef8c3ad6aebe7dd132f146d54f767cb

commit 55ef1369b63d5590e6b88b50d143cd259ae47aac
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Sun May 7 11:14:04 2017 +0000

    Enable neutron service in server create and rebuild tests
    
    Instead of mocking Neutron client calls to Neutron are now
    mocked by request_mocks in tests for create and rebuild servers.
    
    Change-Id: Ic90ad8f8468254a935e9e134348f599fa3079bba

commit 072be85da12914624f287f80dc9f57696b01e84c
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Sun May 7 11:06:42 2017 +0000

    Replace neutronclient with REST API calls in FIP commands
    
    All commands related to Neutron's floating IPs like
    list/create/attach/detach/delete are now made via
    keystoneauth
    
    Change-Id: Ifd739bbb2fe170cea2114816830d002c55ce2e45

commit 81d39a9ea0265c72bb46238e8a9989538be735aa
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Sat May 6 19:23:35 2017 +0000

    Updated from global requirements
    
    Change-Id: I3e7455e3f1bed53cbb3e9d64351d1536c82dc650

commit b39045069fc2e562f4b7b1e36316628b0fc59e16
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Sat May 6 16:04:05 2017 +0000

    Add assert_calls check testing volume calls with timeout enabled
    
    Change-Id: I4203f0de012b3d84ece3ba7749568f39c92dcfeb
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit f7f54d0ddbc8695f7efd9b8b27a95b04a686efc5
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Sat May 6 15:16:37 2017 +0000

    Remove has_service mock from Neutron FIP tests
    
    As we switched FIP related tests to use request_mocks
    and Neutron is in service catalog in tests there
    is no need to mock has_service() method anymore.
    
    Additionally one useless mock of get_server() method
    was also removed.
    
    Change-Id: Idb6a8afbba7720548faefad1ab60b1bc582d1c10

commit 4b75c85e184fed7f5bbad292c5d1f11bd076a926
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Fri May 5 23:40:01 2017 +0000

    Remove cinderclient mocks from snapshot tests
    
    Change-Id: Ib753f7db64cad35bc47fb6abf20bccf41202cd2e
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit 24494880f8241fee38cf75afbe4b594cd4f6dd60
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Fri May 5 23:23:08 2017 +0000

    Remove neutronclient mocks from floating ips tests
    
    Neutronclient mock is replaced by mocking REST calls using
    base.RequestsMockTestCase class
    
    Change-Id: I5fcdd0c07d2ec3627e73598615940b555883612a

commit 689d3bb9ddb69897238e48eb1dfb13763d2a3ec9
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Tue May 2 13:18:35 2017 +0000

    Use REST API for volume attach and volume backup calls
    
    * Also remove unneeded call to shade_exception
      in the detach_volume method.
    
    Change-Id: Ic8f63453ab11e39a28fbfe5027f95ba41c59fadc
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit f52448d8cb4af6ee46434f34c87368eca2f3544e
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Tue May 2 20:45:29 2017 +0000

    Replace neutronclient with REST API calls in ports commands
    
    All ports related commands to Neutron like
    list/create/update/delete are now made via
    keystoneauth
    
    Change-Id: I145b9347cf0be5e459bb025f9d92958176e6e7a2

commit f7b1eb5c60f83374fa8f5e3d5bad188a7565beeb
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Tue May 2 20:33:34 2017 +0000

    Don't get ports info from unavailable neutron service
    
    In shade.meta._get_supplemental_addresses() Neutron API was
    called to get ports list even if cloud.has_service('neutron')
    returned False.
    Now it's done only if Neutron service is available.
    
    Change-Id: I30ff7a8d049ef0bac025ac21185deb50760144cf
    Closes-Bug: https://storyboard.openstack.org/?#!/story/2001011

commit a2aad709fb76a46716311193868d5358c2555e3e
Author: Mike Perez <thingee at gmail.com>
Date:   Tue May 2 10:07:34 2017 -0700

    Removing unsed fake methods and classes
    
    These are being mocked otherways now.
    
    Change-Id: Ica242ff6a48508f616ca5dde90a77d588f8d2bdb

commit 77bac2b9d03c1a7a3b53cf4ae388354ffc553568
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Mon May 1 11:27:08 2017 +0000

    Replace neutronclient with REST API calls in quotas commands
    
    All quotas related commands to Neutron like
    list/create/update/delete
    are now made via keystoneauth
    
    Change-Id: I5f0cb3e174c2f5453d2fe760bb39b2140fe1f201

commit cbc233d0e70fb603004c16cace3698f9ef3bbe4b
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Mon May 1 14:00:54 2017 +0000

    Replace neutronclient with REST API calls in security groups commands
    
    All security groups and security group rules related commands
    to Neutron like list/create/update/delete
    are now made via keystoneauth
    
    Change-Id: I875e8780ac28cbeb46c80f67629f98a86fd57160

commit bcc7ea694ab78e0903c3a2075102afe3bb47eda2
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Mon May 1 01:42:49 2017 +0000

    Use REST API for volume delete and detach calls
    
    Change-Id: I0267899b4fb1dbb277ef969663ff82eadf465879
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit be9275178185feceaf95dd859afacec3979b8320
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Sun Apr 30 22:11:42 2017 +0000

    Use REST API for volume type_access and volume create
    
    Change-Id: Ibf3e16d7e2faab3ed9afe7e2b69216b59aceecdf
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit f430b9483eabcbf9796e0ec6ca043c94159554be
Author: Rosario Di Somma <rosario.disomma at gmail.com>
Date:   Wed Apr 26 17:20:26 2017 -0700

    Refactor the test_create_volume_invalidates test
    
    Simplify the logic a little bit to make the switch
    to the REST API call easier.
    
    Change-Id: I8eee73f7d59d4def45b788be08c5170c1f6820c2
    Signed-off-by: Rosario Di Somma <rosario.disomma at gmail.com>

commit 7abe4e9422d907f281c86aa09a48d8fabc3c48d3
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Thu Apr 27 11:20:25 2017 +0000

    Replace neutronclient with REST API calls in router commands
    
    All router related commands to Neutron like
    list/create/update/delete/add_interface/remove_interface
    are now made via keystoneauth
    
    Change-Id: I81592285268030e4868ef6b522bc7937a31c756e

commit 478d4ba101b1c1f581ab48cb1bdf82917a928e52
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Apr 30 10:35:57 2017 -0500

    Move REST error_messages to error_message argument
    
    The with shade_exceptions is not doing what is expected here - since it
    passes OpenStackCloudException objects on unmodified. Instead, use the
    new error_message parameter to continue to give friendly error messages.
    
    Also - wow, we were mocking _compute_client for the nova extensions
    tests. I believe that was become those pre-dated our use of
    requests_mock. Anyway, that's super lame (and also broke because of this
    patch), so it's now fixed.
    
    Change-Id: Ia764cc76d724a8a732fa2b1209a138634a25a9e1

commit 944556e992eb21f060adb04cdf7093bc8ac4fbb9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Apr 30 10:23:46 2017 -0500

    Remove two lines that are leftover and broken
    
    Not really sure how these crept in - they never would have made sense.
    Also not sure how this codepath _worked_ in the live test I used (with
    the results in IRC) - but they definitely break as they should when
    triggered in unit tests.
    
    Change-Id: Iddc69cbd325c7a3a25cde48a2b2bddb01826c0ff

commit 17ab75b0a3350bcc87673d11cce12551fcec2a77
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Tue Mar 21 16:58:29 2017 -0700

    Convert test_role_assignments to requests mock
    
    Stop mocking keystoneclient objects directly.
    
    Change-Id: Ibb441ba7a3de50201e96310b9aca5bea628fae01

commit 05f16004187a8e1fbf42d1b164e37b5d98deef7f
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Sat Apr 29 20:45:41 2017 +0000

    Remove neutronclient mocks from sec groups tests
    
    Neutronclient mock is replaced by mocking REST calls using
    base.RequestsMockTestCase class
    
    Change-Id: I2a9516e7d7da7f604efb7a4c747674dc761de192

commit 20793660ec0b0429c5aacaa1c5fd70c8ea8f576c
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Fri Apr 28 20:59:01 2017 +0000

    Remove neutronclient mocks from quotas tests
    
    Neutronclient mock is replaced by mocking REST calls using
    base.RequestsMockTestCase class
    
    Change-Id: Ic6fc4f4f29bb28cd865e39191c2ed79977500cd5

commit b9073b5698a708e82dc0cddd218cb922871fdcd5
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Fri Apr 28 20:40:26 2017 +0000

    Remove neutronclient mocks from ports tests
    
    Neutronclient mock is replaced by mocking REST calls using
    base.RequestsMockTestCase class
    
    Change-Id: If6cbe3c926ead8e0fbabcf602cf0ea8db9fec922

commit e81bec084a7154a8bac206eded94587dafb950b0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Apr 28 08:12:45 2017 -0500

    Add optional error_message to adapter.request
    
    When we make REST cals, sometimes we want to provide a more helpful
    error string. Add an optional argument to the calls to allow this.
    
    Change-Id: I797e34cda9f27c18d66a42fd5860fe572fa55ada

commit 17debbb09907b83d5781ad683f4b72c9eb1ce221
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Apr 28 12:46:44 2017 -0500

    Fix interactions with keystoneauth from newton
    
    keystoneauth in newton did not have app_name or app_version
    as Session parameters. Although it isn't a super common combination,
    user agent strings aren't a reason to break something. Add a
    simple workaround.
    
    Change-Id: Ib5774389fefdbc190a4b78dd6784c8006afbb270

commit 8a4f99720f9b84f49dee9793c7712b4646485420
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 27 19:42:01 2017 -0500

    Add in a bunch of TODOs about interface=admin
    
    keystone v2 needs to use the admin interface for a set of calls. We
    can't change that on a per-call basis until we're using REST - but once
    we are, by golly, make it happen.
    
    Change-Id: I8e77c1b0babb44bb44411f87b6567118a99d1aeb

commit a5c49cb0ef04b9e076546527cd03d775ab5b81ff
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 27 19:01:30 2017 -0500

    Set interface=admin for keystonev2 keystone tests
    
    Keystone v2 needs to perform admin tasks over the admin interface.
    Be explicit about doing that.
    
    Change-Id: If3352fccd244a5515af8d4f95c9992df74cfb39d

commit 60569b2fbc24c8a07c07d47b0608744e654d807d
Author: Rosario Di Somma <rosario.disomma at gmail.com>
Date:   Wed Apr 26 07:40:25 2017 -0700

    Add a _normalize_volume_backups method
    
    Change-Id: I597a8a8b113ebded06efb727169998dd0ba98c2c
    Signed-off-by: Rosario Di Somma <rosario.disomma at gmail.com>

commit ca2f10b2e65cddf634d5b9d6f7b252e43e4bc93b
Author: Rosario Di Somma <rosario.disomma at gmail.com>
Date:   Tue Apr 25 17:27:55 2017 -0700

    Use requests-mock for the volume backup tests
    
    Change-Id: I88d7351a2fc147224542898d08e2a769a62577a0
    Signed-off-by: Rosario Di Somma <rosario.disomma at gmail.com>

commit a71bea882d9157d19e829dd2cc61fe6ec48575a3
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Tue Apr 25 21:39:41 2017 +0000

    Remove neutronclient mocks from router tests
    
    Neutronclient mock is replaced by mocking REST calls using
    base.RequestsMockTestCase class
    
    Change-Id: I54769c34fef4f64150461fef47881bd400313335

commit 8b6ae89268f90e90c6b564e5fcd0615476448c88
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Tue Apr 25 12:07:00 2017 +0000

    Replace neutronclient with REST API calls in subnet commands
    
    All subnet related commands to Neutron (list/create/update/delete)
    are now made via keystoneauth
    
    Change-Id: I0e0f16f5fb9be7d288b5aa503f4fa6ad51a17aea

commit b964757de8dbf9bf0ea7d79923fd5f040816ece4
Author: Rosario Di Somma <rosario.disomma at gmail.com>
Date:   Mon Apr 24 11:22:02 2017 -0700

    Define a base function to remove unneeded attributes
    
    Many of the _normalize_* methods are removing the same
    attributes, let's have just define a base function that
    does that.
    
    Change-Id: I5fb9f8fdb14db0889b2f7a63415218b8774cc7bc
    Signed-off-by: Rosario Di Somma <rosario.disomma at gmail.com>

commit 66e3168f954082173d0bce78df9f2c6bcf1ec29e
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Mon Apr 24 21:37:53 2017 +0000

    Remove neutronclient mocks from subnet tests
    
    Neutronclient mock is replaced by mocking REST calls using
    base.RequestsMockTestCase class
    
    Change-Id: Id6cf281d9a9e8f891812ad081c32272a3e7f3438

commit 80ebf88bc28be12ea4d09135fc996787b8baec2b
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Sat Apr 22 19:00:52 2017 +0000

    Replace neutronclient with REST API calls in network commands
    
    All network related commands to Neutron (list/create/delete)
    are now made via keystoneauth
    
    Change-Id: Ifa179c062c164d7e48e8a09c52e554dce5ddd1cb

commit 1c0c81fe09ba69413e6b6e55d8823741dc58be47
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Sun Apr 23 20:19:31 2017 +0000

    Move router related tests to separate module
    
    All router tests were in common test_shade.py file.
    Now all those tests are in separate test module,
    like it is done for network related tests.
    
    Change-Id: I9eee8c676280ea08b8e2c5fb70c1b63f746f4819

commit c21447733a40db1fa4a21440118295cba4176e29
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Sun Apr 23 20:41:20 2017 +0000

    Updated from global requirements
    
    Change-Id: I1318331dd1b8bae151416b35016e11e7223c34e8

commit 65c350f7847ded8cc98b6a5993d07d53ce11f53f
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Sun Apr 23 20:09:17 2017 +0000

    Move subnet related tests to separate module
    
    All subnet tests were in common test_shade.py file.
    Now all those tests will be in separate test module,
    like it is already done for network related tests.
    
    Change-Id: Id026ba11d4ea26dc94fb3670ec93ab2f46813236

commit cee8b6c56440819d5f14ce947cfc511d4f83021d
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Sun Apr 23 19:58:34 2017 +0000

    Fix list_servers tests to not need a ton of neutron
    
    It was fixed for rebuild/create servers in
    Ia877232b8dc167a8414f1601ea82708ff5aa2be9
    but same issue was also in test_list_servers_all_projects
    and this commit fixes it for this test.
    
    Change-Id: Id901c307f1e11e2da48e41b29c363870d4c61bdf

commit 950c4500e2f2bcff370146d88f016e6ef84e56ad
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Sat Apr 22 20:06:57 2017 +0000

    Remove neutronclient mocks from network create tests
    
    Neutronclient mock is replaced by mocking REST calls using
    base.RequestsMockTestCase class
    
    Change-Id: Ied57f41694d1c4f934439c52799f4c87794db0a5

commit ff2c06c30538edb9cb47b83f0a194f7893a7f458
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Sun Apr 23 17:42:47 2017 +0200

    Make _fix_argv() somewhat compatible with Argparse action='append'
    
    Python Argparse supports the 'append' action [1] which is super handy to allow
    a user to repeat several times the same argument, each time with different
    values.
    
    This doesn't work with occ that tries to "fix argv" but raises this error:
    
    os_client_config.exceptions.OpenStackConfigException: The following options
    were given: '--foo,--foo' which contain duplicates except that one has _
    and one has -. There is no sane way for us to know what you're doing.
    Remove the duplicate option and try again
    
    This patch tweak the _fix_argv() function so that it doesn't explode
    if the duplicate option has no '_' not '-' in its name.
    
    Change-Id: I4f06b6aff8d3ab1df45637399bc3a9b4b61764a9
    Related-bug: #1685630

commit d1d670666ba81faed8cc7898ab0dc77ef80ac05e
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Sun Apr 23 08:15:21 2017 +0000

    Remove neutronclient mocks from network exceptions tests
    
    Neutronclient mock is replaced by mocking REST calls using
    base.RequestsMockTestCase class
    
    Change-Id: I488de8613a2e2580f49533b319603d159f7dc832

commit 0a39c015bccebd86af331bb39709e670631b2a9e
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Sat Apr 22 20:43:00 2017 +0000

    Remove neutronclient mocks from network delete tests
    
    Neutronclient mock is replaced by mocking REST calls using
    base.RequestsMockTestCase class
    
    Change-Id: I71df04e886d0c08ca29fe141f41961d833138b74

commit e61a5c0418db13da8d9d13f460b9a7acccdd8b97
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Fri Apr 21 20:28:50 2017 +0000

    Remove neutronclient mocks from network list tests
    
    Neutronclient mock is replaced by mocking REST calls using
    base.RequestsMockTestCase class
    
    Change-Id: I8fd72845afa62fa5fdf351c666d23aae31757bba

commit 258a6a33ba375fbf638426fd178aae498d8e86d6
Author: Rosario Di Somma <rosario.disomma at gmail.com>
Date:   Fri Apr 21 16:16:40 2017 -0700

    Use requests-mock for the list/add/remove volume types tests
    
    Change-Id: I03aac75375b0f34678f8dc0b953fb2a0cd797150
    Signed-off-by: Rosario Di Somma <rosario.disomma at gmail.com>

commit 09af82b11770a4586dca8714f907bffd65dab3c2
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Apr 21 17:44:01 2017 -0500

    Fix create/rebuild tests to not need a ton of neutron
    
    The tests are testing nova interactions, but because of _expand_server
    they call neutron a bunch. This is hidden with neutronclient for some
    reason - I'd look in to that more but we're deleting neutronclient
    anyway.
    
    To avoid us having to add a bunch of network mocks that are noise to the
    tests, fake out has_service to return false for neutron to skip the
    calls. We can then add them in on a case-by-case basis as needed.
    
    Change-Id: Ia877232b8dc167a8414f1601ea82708ff5aa2be9

commit 7a2b5792522a14c0fc39490e407bbddddc8d7189
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Apr 21 17:20:26 2017 -0500

    Don't do all the network stuff in the rebuild poll
    
    When we're polling for completeness during rebuild server, we do not
    need to make all of the network calls to fill in network info.
    
    If we wait for the server though, we do return the server to the user,
    so fill in the info once at the end.
    
    Change-Id: I78aaf995cb83a88fef9414c17b6bd7fca21fe3c3

commit 5dae1875ec70ef32791be41acd0a4a441b7afbd4
Author: Sławek Kapłoński <slawek at kaplonski.pl>
Date:   Fri Apr 21 21:03:58 2017 +0000

    Move unit tests for list networks to test_network.py file
    
    This file is place where all tests related to networks
    lives so tests for list_networks should be also there.
    
    Change-Id: I3aa7254f66a100d269deefef725dff036488efd2

commit 4f807b8c60f32f61003d5008ed715e802f0df039
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Apr 21 09:57:09 2017 -0500

    Include two transitive dependencies to work around conflicts
    
    For people installing released shade from pip and then trying to use it
    somehow through entrypoints, 1.20.0 is currently broken because of some
    transitive dependencies, ordering issues and conflicting exclusion
    ranges.
    
    While this is by no means a comprehensive or sustainable solution to the
    problem, it does unbreak the end users currently broken and is not
    terribly onerous. Both of these additions are tracked in g-r and both
    can be removed when the dependencies that pull in conflicting ranges of
    things are removed.
    
    Change-Id: I6a4a1ab5ab109f0650873201868e0f1c4d09c564

commit 0bfdaf4e0bda20cb9aa8d2a22688eb4b55da0d6e
Author: Rosario Di Somma <rosario.disomma at gmail.com>
Date:   Wed Apr 19 07:05:07 2017 -0700

    Use requests-mock for all the attach/detach/delete tests
    
    Change-Id: Ibc70e1b9565d1494e196e818274c5fcee6e8bc05
    Signed-off-by: Rosario Di Somma <rosario.disomma at gmail.com>

commit 5c0f3f5a5de0a128a4a02342c83415fb73895705
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 20 10:55:57 2017 -0500

    Remove stray line
    
    Thanks Jens!
    
    Change-Id: I88801842705dcb1374640b3178423f6f987799e4

commit d5396cf35cd5d4b792d24590375401aa1177ad0e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Apr 19 10:40:22 2017 -0500

    Strip trailing slashes in test helper method
    
    A recent patch by Rosario pointed out a flaw in get_mock_url. Luckily,
    it's an easy fix.
    
    Change-Id: Iff12fb36832a5757321bbcc36728b959899b45cd

commit 49fe112b85a80935065809f0c6b80b4c867caae5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Apr 19 07:41:21 2017 -0500

    Clarify some variable names in glance discovery
    
    I'm bad at naming things. This was unreadable. Update the variable names
    so it makes sense and add a comment.
    
    Change-Id: Iacbaeed91d71dca35c6fdd7d07999bd5956430fa

commit 02e6371b8115fb1e8c2a0d9288e49a3f9712b302
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Tue Apr 18 17:20:49 2017 -0300

    _discover_latest_version is private and not used
    
    Change-Id: I978fd77457791e2005edd1050886ce5840daf8d4

commit afed15f37130b841d6e523a468cd9d6cfcdfc791
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 18 13:57:58 2017 -0500

    Remove extra unneeded API calls
    
    The create and update calls to nova security groups return the security
    group. There is no need to issue a GET.
    
    Change-Id: I068ae5b46954d0c3b0c8be67b80f3eed1be1f55b

commit 4c67e76376569cb6f33653c4554b2f9ec514d33d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 18 11:53:55 2017 -0500

    Change versioned_endpoint to endpoint_uri
    
    In this context, the word versioned_endpoint is confusing.
    
    Change-Id: I89b6faadbb3666e867e61d321e1cc096589589cf

commit b459c8de5cba1692db0c21e8e45d04a11d182e7e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 18 11:30:59 2017 -0500

    Futureproof keystone unit tests against new occ
    
    We have a version of OCC coming out that fixes how keystoneclient is
    constructed. The fix is good - however, it breaks a couple of places
    where we're mocking to the old behavior. This will all go away once
    we're done with keystoneclient-ectomy, so for now just put in a version
    detection switch.
    
    Change-Id: I9d4908ef12d40868dc207b130e3244577b9870e9

commit 3b8ef1b88abe01b9b7510d8a0cd4179e3f0e59d5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 18 11:13:02 2017 -0500

    Actually fix the app_name protection
    
    The previous "fix" just disabled the app_name protection for python3. Go
    with Jens' suggestion (the easy route) of trying, and if that doesn't
    work, retrying.
    
    Change-Id: Ie4d1091b0f1fc6e1c9d9a2c935a458ea5ce55af3

commit 26c834c10efbcb338d26ca02fabf79f704e3b6de
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 18 09:49:29 2017 -0500

    Replace nova security groups with REST
    
    One more set of things down.
    
    Change-Id: I02f81382693e30513a3fe85c49450f84f8c3d64d

commit 8d94ef15a485ef83cda4f42ecea78758c1b228f0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 18 05:01:48 2017 -0500

    Transition nova security group tests to REST
    
    novaclient v8 doesn't support these calls anymore. Transition them.
    
    A few fixes in the non-test areas related to normalization. Also, we
    allow users to pass in a dict to bypass server lookup, but then we
    assume an object when we use it.
    
    mocking the clients hides terible things. Yay requests_mock.
    
    Change-Id: I39952800414058d7f8a77dfca7610bc8c1fcfd18

commit dfec0ca2afe4035c62d3f3e99b5ab973e9dbb698
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 18 04:32:29 2017 -0500

    Remove dead ImageSnapshotCreate task
    
    We removed the use of this already. Remove the task.
    
    Change-Id: Iba30a78f591257ba7a10f90b823f95cc91bb98b6

commit 0cbed4fbafb7d9adff2f43a9dba342084aec80d6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Apr 12 09:59:25 2017 -0500

    Pass in app_name information to keystoneauth
    
    keystoneauth (and os-client-config) support passing through app_name
    and app_version. These affect the user-agent string. Allow our users
    to set app_name and app_version.
    
    So as not to cause an os-client-config minimum bump, check the arg list
    of the occ constructor and only pass in app_name/app_version if it
    accepts them. (This is informative and neat, but not, you know,
    essential)
    
    Change-Id: I515f93168adf35adc2521339255369b1ccfdfe0a

commit 5adcef04eb6f42d80c93a8875a2090cfd424aad5
Author: Rosario Di Somma <rosario.disomma at gmail.com>
Date:   Tue Apr 18 07:22:01 2017 -0700

    Use REST for cinder list volumes
    
    Change-Id: Ifacc5fac67f08b62886ac64652996263d6642cfd
    Signed-off-by: Rosario Di Somma <rosario.disomma at gmail.com>

commit 64b28d42eda595a6fb4ee8b46d93cd61e612aae1
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Apr 2 11:22:34 2017 -0500

    Add ability to pass in user_agent
    
    keystoneauth supports adding a user_agent info to the Session and
    Adapter via app_name. Allow users to add app_name/app_name and versions as
    desired. Also, add os-client-config into additional_user_agent.
    
    As an example, once this is landed and plumbed through shade,
    nodepool will set app_name='nodepool' and we'll have:
    
      User-Agent: nodepool/0.4.0 os-client-config/1.26.1 shade/1.19.1
                  keystoneauth1/2.18.0 python-requests/2.13.0 CPython/2.7.12
    
    Change-Id: I1eb4dbd2587dcbe297b5c060c3c34b68ef51ef5e

commit dc6ed6965537ab3f3bfb4666f5b82676cc7eefb8
Author: Rosario Di Somma <rosario.disomma at gmail.com>
Date:   Thu Apr 13 12:04:05 2017 -0700

    Upgrade list volumes tests to use requests-mock
    
    Replace the python-cinderclient with a direct REST
    call for the `list_volumes` method.
    
    Change-Id: I2859d73a70a78236c254aa5cf8a18c3e3d93df1e
    Signed-off-by: Rosario Di Somma <rosario.disomma at gmail.com>

commit 15d64f2af5d9f45ba91bc7f4f5f48402ab8c339b
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Mon Apr 17 17:11:00 2017 +0000

    Updated from global requirements
    
    Change-Id: I84c807adf93913bc411954c59040ab780e2eb04e

commit 8082cdff7129c999ab0bee3961bb6cf5369e24cf
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 13 08:59:55 2017 -0500

    Pass shade version info to session user_agent
    
    After chatting with jamielennox, the better way to deal with user agent
    setting in shade is to push it onto the additional user agent stack.
    
    Older keystoneauth doesn't have this attribute, so protect it with a
    hasattr.
    
    Change-Id: I35985c834a899a6ef3279dae25eb453d953ff70f

commit 9cd5bf900437101476e447d4e15eddf144199a23
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 13 09:06:39 2017 -0500

    Use keystone_session in _get_raw_client
    
    We're bypassing our local session object when we construct the adapter
    and instead getting a raw one from occ. This becomes aparent when we try
    to do things to our local one and they don't show up in the one used by
    the adapter.
    
    Change-Id: I91673527ebe1e1446dfc6efb8c495694a4a65c6b

commit d5982e8ffd75f51af1eeeb9568bf34bd9a2e482c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Apr 12 09:18:11 2017 -0500

    Don't fail on security_groups=None
    
    We currently put whatever is in security_groups into a list to be
    friendly, but this breaks if security_groups is None. It should stay
    None if it's None.
    
    Change-Id: I571c05bf8353f2ec5ad34ed31040032f2daefd25
    Story: 2000828

commit d12032d14752a7574e414ad0e089d39f34cba2ef
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 11 15:13:57 2017 -0500

    Stop defaulting container_format to ovf for vhd
    
    It turns out a basic vhd file is in bare format, not ovf - and bare is
    a perfectly sensible thing for vhd files to be.
    
    Actually, even past that, it turns out that container_format is
    essentially ignored by glance, not being very useful. disk_format is the
    important bit for external consumers.
    
    Also, we grab disk_format twice.
    
    Change-Id: Idc90a8542e1351da641e42aa67d8fa1c37b544e1

commit 049b4cef420d239210148790d7b627bfb5197435
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 6 10:26:29 2017 -0500

    Don't run extra server info on every server in list
    
    If someone is just doing a get, there is no reason to fill in the extra
    information for EVERY server in the list. This makes ansible modules
    especially slow.
    
    Instead, if get_server is called, prevent list_servers from doing the
    expansion and instead do it late just on the one requested.
    
    Fixes: ansible/ansbile#23354
    
    Change-Id: I42773b292b11f1faa26cf9193b2d0435d9455dd0

commit ccf7cca47372249f6df392670e8c1baa061278b7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 6 09:23:40 2017 -0500

    Use REST for neutron floating IP list
    
    Wow, turns out we already had the tests fixed. How did we do that?
    
    Change-Id: I1c26a6f817ef7e7d67ba2e560da1149bc4345fbc

commit f956aed405c2837bcef48e0e7ddd34e06ad046a5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Apr 2 11:14:31 2017 -0500

    Migrate create_image_snapshot to REST
    
    Change-Id: I6cb8a26bf9d6189ecc18ee7fbde44f37c131aaa8

commit aa58173f0d60a8f04318b51ff6d1490e7ee10cfb
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Apr 2 15:53:06 2017 -0500

    Add ability to configure extra_specs to be off
    
    We fetch flavor extra_specs for each flavor for consistency with old
    behavior. However, it's costly and often just simply not needed.
    
    Query clouds.yaml for extra client settings and if "get_flavor_extra_specs" is
    set to false, set the default for list_flavors to false.
    
    Change-Id: Iaea1c41e8e0ae504cb080d7d37407de12be96fd1

commit 413965c33101197ed86b742e3f8aee1764fda323
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Apr 2 09:11:02 2017 -0500

    Migrate server snapshot tests to requests_mock
    
    Change-Id: Ic6a489ac25688b7666a6a130f7daf43841909f30

commit cf54ef6b9203d9afcb9c9e50ab19bad73094015d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Mar 31 11:58:00 2017 -0500

    Add test to validate multi _ heat stack_status
    
    According to the Heat API docs, there is a status of IN_PROGRESS which
    can cause the old code to fail. Add a test that sets that stack_status
    so that we ensure we don't regress on splitting the stack_status.
    
    Change-Id: Ibb1143ffd47465d1640f17bf4319425e6db1f4d1

commit 97b9ac6beb730b00201351bad4efed32cf0fc605
Author: Sorin Sbarnea <ssbarnea at redhat.com>
Date:   Fri Mar 31 17:56:43 2017 +0100

    Fixed stack_status.split() exception
    
    Change-Id: Idc76dde81ee71a0a81dfb9db33627c15e878268f
    Signed-off-by: Sorin Sbarnea <ssbarnea at redhat.com>

commit 88d8a37cfae9b23acfeda76b354880e68de8c96f
Author: Jamie Lennox <jamielennox at gmail.com>
Date:   Wed Mar 29 11:11:59 2017 +1100

    Add server security groups to shade
    
    We need a way to add and remove security groups to a server in shade.
    This will let us modify them from ansible.
    
    Change-Id: I5602e44720485e20491cf4930605362312274b20

commit 7e92e93104cfef6a2e6271d8d81fb4f2961f0c50
Author: OpenStack Proposal Bot <openstack-infra at lists.openstack.org>
Date:   Thu Mar 30 14:03:25 2017 +0000

    Updated from global requirements
    
    Change-Id: I87c2f41a041ebf80a97f1f4b6100800b68f4f137

commit c1984b636ee9fc6101c28bb57723d2d490b04586
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Mar 29 03:53:14 2017 -0500

    Add bare parameter to get/list/search server
    
    The bare parameter tells shade to skip all additional calls it makes to
    fill in extra information on the server record from other services, such
    as fixing the addresses dict. This is useful internally in shade where
    there are times when one is getting the server dict just to get its id
    so other operations, such as getting the console log or attaching
    security groups, can be performed.
    
    Change-Id: Ic9cc6e8be4f4e30f76d3abb655d9a3cf0cb9918b

commit b31e9aa777a028e34814499d6821ac1c1bfbb881
Author: Jim Rollenhagen <jim at jimrollenhagen.com>
Date:   Wed Mar 29 16:54:30 2017 -0400

    Docs: add a note about rackspace API keys
    
    Some users are forced to use these instead of passwords (whether because
    they use 2-factor auth or by policy). Document it so they know how.
    
    Change-Id: I558c2e8d3e8b0fad0a96a361232f14443e82a35f

commit bb4eededb059efc42b1b0b251f21305f00bbee26
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Mar 29 05:13:18 2017 -0500

    Update tox build settings
    
    Remove heatclient and magnumclient from install-tips
    
    We do not consume them anymore, so do not need to install them as part
    of our tips testing.
    
    Install from pip using upper-constraints. To ensure we work with
    OpenStack releases.
    
    Change-Id: I98f39d2e2a591eb84a1ebcd033eb51e1758f1f39

commit b447fa4356c9af229f9fb49226f02711d936f390
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Mar 25 17:22:23 2017 -0500

    Take care of multiple imports and update explanation
    
    The explanation for what's up with pep8 checks is a little different
    than it used to be. Get it up to current.
    
    Change-Id: I2c03a5aec02dd41ed5cdfb4c4082e17339ed2765

commit b34e06f81b251a405638ac0698fef7943f3d3bfc
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Mar 25 17:12:28 2017 -0500

    Reenable hacking tests that already pass
    
    Several of the ignores are things we're already clean on. Just reenable
    them.
    
    Change-Id: Ic6ac2123ca2574a089aa2882f84cf0d4a9d47b1e

commit 7ac3c0321246816abb4fb59011dbb259590e78d4
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Mar 15 18:21:46 2017 +0100

    Enable H201 - don't throw bare exceptions
    
    I agree - bare except is bad - it can cause ctrl-c to stop working,
    which is totally evil. (I mean, unless that is the intent, in which case
    it's the right thing to do. None of these cases are cases when we desire
    ctrl-c to stop working)
    
    Change-Id: Ieffa26e8da77199c9ef7238a6c9f0704fc581ba6

commit fe130c620b9eb39eb30dccf853d973b829056db3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Mar 15 18:19:59 2017 +0100

    Enable H238 - classes should be subclasses of object
    
    As shade is no longer an Infra project, it's no longer appropriate to
    ignore hacking. Luckily, shade is mostly hacking clean anyway, so this
    isn't terribly disruptive.
    
    Change-Id: I607f1835abb328e3b4a4a33d80a1848ab11779be

commit c9e9ef9f43dce18e6cdcd528414a05b9ad78134a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Mar 15 18:06:28 2017 +0100

    Fix a few minor annoyances that snuck in
    
    We had the normal infra pep8 ignores marked, but follow some of them by hand
    in this codebase anyway. While E12* are not valid pep8, the prevailing style
    of shade is in agreement with them. While we weren't enforcing them, a few
    instances snuck in. Fix them and just turn the flags on.
    
    Change-Id: Iea2bd9a99eb8b20dd40418ac8479b809d3872de8

commit 0b8a6d0718b614522e88217b10d28363ec047a58
Author: Jamie Lennox <jamielennox at gmail.com>
Date:   Wed Mar 29 11:15:34 2017 +1100

    Don't use project-id in catalog tests
    
    Nova shouldn't need the project-id in operations any more. Whether it
    uses it or not will be based on the URL that comes from the catalog so
    it's not going to break existing deployments that do need it.
    
    Change-Id: I484254054377b5760a68c2792bc1391a8de48482

commit e2cbd3253e8595c50b2f07a38edb0b2fcd872525
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Mar 28 16:10:24 2017 -0500

    Change metadata to align with team affiliation
    
    Shade is its own team now, update "author" to be OpenStack.
    
    Note, the homepage setting does not exist until we tag a release after
    the depends-on project-config patch lands. But this metadata also will
    not go to PyPI until we tag a release - thus the depends-on.
    
    Depends-On: Id3a087a41491eb8bf8eb51a0247183c6b91a297a
    Change-Id: I4fc7ed2ecca0d218be7f1e1e34dcfa4c4b623d4e

commit 451ec8daadfb6702841878cac1a8d4e6012b838d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Mar 28 10:59:32 2017 -0500

    Remove out of date comment
    
    Change-Id: I8a26f5952456a96429ff1413b90aef3091a8b5bf

commit 8aa8688ba8a578728ed5c33dc14c0eecf631225b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Mar 28 07:48:17 2017 -0500

    Move futures to requirements
    
    Wow. We had futures in our test-requirements so we never noticed it
    wasn't in our regular requirements.
    
    Change-Id: I6ae3434effc778524908d009627e9c0da6258f7c

commit 01ff292e078206e487751228be4a7062ba0c6048
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Mar 27 09:16:35 2017 -0500

    Stop special-casing idenity catalog lookups
    
    We have a special case to work around a thing we're pretty sure
    keystoneclient used to do but apparently doesn't do anymore. Remove the
    workaround.
    
    Co-Authored-By: Jamie Lennox <jamielennox at gmail.com>
    Change-Id: I873ad91816150b593d4aef13dcd1520e8c91b22a

commit c8c098b3f5232616dccb8564b91805354c13452a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Mar 27 09:35:34 2017 -0500

    Remove python-heatclient and replace with REST
    
    The changes in the unittests are because testtools does explicit
    exception matching, not subclass matching. Also the first GET call is
    actually supposed to be a 302 redirect. I do not understand why the
    first form worked with heatclient.
    
    Change-Id: I4b23304c09a1b985cc595a75587dbbc0472d450a

commit 510075d49451bfb699ec09faf2b1ac119f808f0f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Mar 26 12:18:56 2017 -0500

    Replace heatclient testing with requests_mock
    
    Change-Id: Ib5aa24911e5ffc7426ed5d3e651367cc86e03269

commit 12523389a811fc3ee15ddfaabf16e4f57ffa2980
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Mar 26 11:27:45 2017 -0500

    Add normalization for heat stacks
    
    Change-Id: I564268d910a558288e661c15e279ca7fdfcc80f3

commit 8059b3c80416297c9ebbfdf689c6c27611ff8ed7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Mar 27 11:32:39 2017 -0500

    Add list_availability_zone_names method
    
    Nodepool would like to do smart things with scheduling across AZs. In
    order for it to that, it needs a list of them, which we can provide.
    
    Change-Id: I9a3b97ccb797ea7a66a832b03da2bd4afd659097

commit 52e68c810a5a3a69239fa0b78b4f4a8440b3f14b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Mar 25 09:57:03 2017 -0500

    Switch list_floating_ip_pools to REST
    
    Change-Id: I28cb3e901b81fa34f3e36f4e3ad70eb798fb3114

commit 35ab23efc8bdf7bdc97b127d7712662e596f2b69
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Mar 25 09:55:13 2017 -0500

    Strip out novaclient extra attributes
    
    Change-Id: Iec82b2d1b2d03ddc47e19646bf13148255d92bc4

commit 76d78507fa6c40e98b732cda9d014f9713a5a9c2
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Mar 25 09:53:02 2017 -0500

    Convert floating_ip_pools unittest to requests_mock
    
    Change-Id: I95057bb5357757767f2513eccc0e2a1a864bcdeb

commit 7ef65f109b06151391344c37017f0f73400d64c2
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Mar 24 09:23:12 2017 -0500

    Migrate get_server_console to REST
    
    It was using an unfortunate 'feature' of shade's TaskManager ...
    raw=True. Since we're migrating to REST anyway, just go ahead and do
    this one.
    
    Change-Id: Id44b89af66fbf4df202653c6f658603518537944

commit 0112f8522db493d428e3db47fb560ed2be1439c9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Mar 24 08:49:27 2017 -0500

    Migrate server console tests to requests_mock
    
    Change-Id: Ic585d1c7ba43a4ba65b0fcfbe03fe9445a9c6ad6

commit da7f7ccb2165b24e00eb749ad099611efafc391a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Mar 24 08:37:31 2017 -0500

    Fix old-style mocking of nova_client
    
    When we assign to nova_client, rather than using the decorator form, it
    persists through the process lifetime, which pollutes other tests. This
    shows up when you start trying to replace nova_client mocks with
    requests_mock.
    
    Change-Id: I056085c9b80868a78c95ddda0aeae11865015ad1

commit 9f2287c2df9030db1be1415b75a1a910545f0d8d
Author: Eric Lafontaine <eric.lafontaine1 at gmail.com>
Date:   Wed Mar 22 15:54:59 2017 -0400

    Accept device_id option when updating ports
    
    This sets device_id as a valid kwarg so that it can be passed in when
    updating ports.
    
    Fixes ansible/ansbile#22662
    
    Change-Id: I8d1f481e22ed5e667687b8cd793da2a31fa6a105

commit 204fb73dcdf54b7952e2ab34488a6168b7e03a2a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Mar 20 11:12:19 2017 -0500

    Get rid of magnumclient dependency
    
    One more client library down.
    
    Note there is a change to one of the tests. That's mainly because
    testtools is not matching the exception the way an end user would. We'll
    follow up on it, but it's not a real issue.
    
    Change-Id: Ic6d7a37799e72bfb1bef7aeaf8f4894aed27dcea

commit d809981e5b967bddf46b4eed917af90bf58d78b0
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Thu Feb 16 16:01:15 2017 +0100

    attach_volume should always return a vol attachment.
    
    attach_volume method has inconsistent return value: if we pass it
    wait=True, the methods returns a volume object but if we pass it
    wait=False it returns a volume_attachment object.
    
    We should always return a volume_attachment object.
    
    Also don't try to be too clever in pre-emptively refusing to detach
    a volume that we think is not attached. It prevents the following
    calls, which looks good without knowing Shade internals:
    server = create_server(...); volume = create_volume(...);
    attach_volume(server, volume); detach_volume(server, volume)
    
    Change-Id: Ia1da29ec6286dbbed0a77d6abcf89e95a055ac9a

commit 91905270213d034d05ced25b19f849a5ac676684
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Tue Mar 21 19:13:40 2017 +0100

    wait_for_server: ensure we sleep a bit when waiting for server
    
    If we call wait_for_server() then self._SERVER_AGE is
    the 'sleeping time' between 2 calls to 'get_server'. But by default
    self._SERVER_AGE is 0, so we are hitting the Nova server hard.
    
    This patch is to make sure that we wait for some time (2sec) if
    self._SERVER_AGE has not been tweaked.
    
    Change-Id: Ib9a93e922ff2e26f90d8d2e72f5cf6589054078a

commit 07eca13c5fac9523538cbed3f9f2f1f530ea28a6
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Tue Mar 21 18:53:35 2017 +0100

    delete_server: make sure we sleep a bit when waiting for server deletion
    
    If we call delete_server(.., wait=True) then self._SERVER_AGE is
    the 'sleeping time' between 2 calls to 'get_server'. But by default
    self._SERVER_AGE is 0, so we are hitting the Nova server hard.
    
    This patch is to make sure that we wait for some time (2sec) if
    self._SERVER_AGE has not been tweaked.
    
    Change-Id: I4aa7b3554348bd0b8fec3069fe8d0e3142e47bb3

commit bd0a40ecc646e9fe1d8bad7eb21abc58b1d9baaa
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Mar 20 11:19:08 2017 -0500

    Add designateclient to constructors list
    
    We've had this mapping over in shade for a while. No sense in keeping
    the fun all to ourselves.
    
    Change-Id: Icb2b98b621cfa8cff86c534bfba8f5de2c818e95

commit 7311bf01879cf1572a368ae6237e697663c753d0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Mar 20 10:15:12 2017 -0500

    Convert magnum service to requests_mock
    
    Also add documentation and normalization, of which there was previously
    not.
    
    Change-Id: Ib4ba4fc748117ae4339683ae9fd4f9f958c3cc0e

commit 360a87fe1690df4f0102c5a0975fe9af3d8fe681
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Mar 20 09:30:58 2017 -0500

    RESTify cluster template tests
    
    Change-Id: Id8d00657f714e9dee7f42fe1fc6b9e151964e1ae

commit f32591ab21bbd7395fe9f77a102c982ee733a4a1
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Mar 20 09:18:05 2017 -0500

    Add normalization for cluster templates
    
    Every time the magic of flexible return schemas rears its ugly head, a
    pony becomes a less happy pony.
    
    It's worth noting that this changes behavior to _always_ get detailed
    records. This is consistent with our other things and should not break
    anyone.
    
    Change-Id: I4932e424ec7db8b6cea014ec668b30bb29f3e1f9

commit 2f009fd4b86d45ecf4ed8db126cdef31b7872142
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Mar 20 07:52:02 2017 -0500

    Get the ball rolling on magnumclient
    
    I think I can get this done on the plane.
    
    Also - WOAH
    
    Change-Id: I69aa673b1ea114999fb66e836fd23345106a06bb

commit 55868939c7995641dc0fcb1b4e405c7292312ba8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Mar 20 11:27:12 2017 -0500

    Use data when the request has a non-json content type
    
    Using the json= argument to the request call when the content/type is not
    intended to be application/json is crossing wires, and in those cases we
    should call data=json.dumps(). This actually breaks older versions of
    keystoneauth, which are otherwise perfectly fine. For newer, it works
    either way, but maybe let's just learn to send json payloads as data in
    any case where the content-type isn't application/json.
    
    Change-Id: Ie93840625e1418eaffa442fb0d93080040d2a06d

commit f29624aced9f872e04bb0a4623c7b843b41fa4a8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Mar 20 07:06:52 2017 -0500

    Cleanup some workarounds for old OCC versions
    
    We don't need to pass constructor objects to os-client-config -
    os-client-config is quite happy to do this for us.
    
    We do need to bump the os-client-config version, because the magnum
    container workaround didn't go in until then.
    
    Change-Id: I6a7958eaf6745e6714a0c03b7e829c29c4059b07

commit d79de9b860dbf255f3fa28692aed716e0beb8d4d
Author: Doug Hellmann <doug at doughellmann.com>
Date:   Thu Mar 16 13:46:59 2017 -0400

    add separate releasenotes build
    
    Add the sphinx files needed for a separate release notes document build.
    
    Change-Id: I176e70614051e0d830fb59b05da2248bd484e57a
    Signed-off-by: Doug Hellmann <doug at doughellmann.com>

commit db45323809b208cc098f2a60fd9ddf4b66790ea9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Mar 16 12:17:51 2017 +0100

    Update sphinx and turn on warnings-is-error
    
    In order to do that, fix the warnings that are now errors.
    
    Change-Id: I1e582a6763fc82496e4ab33f60ced193b0534f28

commit 1c87c8aa0d8310cc4dd121931a6b3e4b6c8a6171
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Tue Mar 14 15:31:38 2017 -0700

    Convert test_identity_roles to requests mock
    
    convert test_identity_roles to requests mock instead of direct client mock.
    
    Change-Id: Ia382fa2f0c8ee8cdf9820ee35ed98f304dd4df4d

commit 8ad6941b9dec9c593de6c597143436d0d931c33c
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Fri Mar 10 15:43:34 2017 -0800

    change test_endpoints to use requests mock
    
    change test_endpoints to use requests mock.
    
    Change-Id: I5ba1557af61512334bf85d96bfb90bbc10a7cfd3

commit 194e53c84e32d2fde851f03992788d3b95fab3e3
Author: Clark Boylan <clark.boylan at gmail.com>
Date:   Mon Mar 13 11:36:28 2017 -0700

    OVH supports qcow2
    
    OVH supports qcow2 images too. Update the docs and vendor json file to
    reflect this. You can continue to use raw images just fine as well.
    
    Change-Id: Ic7dc4c70c681947a0475bbabf5621672825dfb3c

commit 2a8d0c57b2903215f6b30d667ad33e93447a8012
Author: Thanh Ha <thanh.ha at linuxfoundation.org>
Date:   Fri Mar 10 15:33:41 2017 -0500

    Depend on pbr>=2.0.0
    
    Several of shade's dependencies now require pbr>=2.0 however the cap
    is preventing `pip install shade` from just working after install
    completes. Update shade to also require pbr>=2.0.0.
    
    Change-Id: I5aa5081c200d24f9f43253d409f7b80e52c8841f
    Signed-off-by: Thanh Ha <thanh.ha at linuxfoundation.org>

commit a93b3e2af4461cdb0812745b7a2cf19b11ec2c47
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Fri Mar 10 11:15:21 2017 -0800

    Convert test_services to requests_mock
    
    convert tests in test_services to use requests_mock
    
    Change-Id: I2128025cfe981288cd4f7f1538f153b9d5e60f33

commit 134bbe79c693665911f8d697e7d669064af4bac2
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Mar 10 08:29:15 2017 -0600

    Only do fnmatch compilation and logging once per loop
    
    We don't need to compile the fnmatch regex in every loop pass - so
    compile it at the top of the loop. Also, logging about a bad regex on
    every loop is silly. Only log if we don't have a match at the end.
    
    Change-Id: Iffa039237042d6a2f75aa08f2c949d508b367ec4

commit 38e5eba621e48d74c05315da2b89e6c801f4c43f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Mar 9 09:32:15 2017 -0600

    Use interface not endpoint_type for keystoneclient
    
    keystoneclient wants the interface argument.
    
    Change-Id: I5898d8621259256f962fc006df38049d0cb059f8

commit b2f7ceadb1a99bd0f5fb17b9298c6f962414aa9f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Feb 28 09:07:27 2017 -0600

    Add support for bailing on invalid service versions
    
    At least for cinder for now, allow a consumer of get_legacy_client to
    express the minimum version they find acceptable. This will use
    cinder_client logic to figure out the version from the url.
    
    As a follow on, expand this to all of the clients and make it support
    microversions for the clients that support microversions. (Right now
    it's just going to be major versions, so min_version=1 will throw an
    exception if the cinder service returns a v1 endpoint.
    
    Also, because we override the volume/volumev2/volumev3 service type
    stuff, we need to do extra special logic in get_session_endpoint to try
    all three in the case where do not have a configured api_version.
    
    Change-Id: I7b6b3588fec9a6be892cf20d344667f0b9a62f0a

commit dee0749330a0c9d6b99553b97467c3b2457e5ce0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Mar 8 11:46:59 2017 -0600

    Put fnmatch code back, but safely this time
    
    If we do a strict equality test FIRST, then the fnmatch, then we don't
    have to remove the fnmatch functionality, but we should also be able to
    match normal names with wildcards in them.
    
    This reverts commit 0ecbb22547c470fca6d50cfad2ee94e1241f83f4.
    
    Change-Id: Ibc08cc09e0e3db2e194f1b8d0cf98c08500d87c5

commit 0a956c1d281d8ffe984fac0bd5588fad5d00a00d
Author: xhzhf <guoyongxhzhf at 163.com>
Date:   Tue Feb 21 17:44:56 2017 +0800

    modify test-requirement according to requirements project
    
    the OpenStack requirements project has modify version requirement of docutils/oslosphinx.
    The link is below
    https://review.openstack.org/#/c/418772/
    So modify test-requirement like other project
    Closes-Bug: #1666149
    
    Change-Id: I145ba596926cac0efab75fb4a1548eea338a2d5a

commit c58b86838c00bbc53461a37576dc91d23508da4c
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Wed Mar 8 12:37:33 2017 -0800

    Replace keystone_client mock in test_groups
    
    Replace keystone_client direct mocks with requests_mock in
    test_groups.
    
    Change-Id: I31fa69950488292d8765908fc193c288e9c18b20

commit 7883171eca469ab0314369d11c1e401e284ec66e
Author: Ian Wienand <iwienand at redhat.com>
Date:   Fri Mar 3 15:10:31 2017 +1100

    Use unicode match for name_or_id
    
    The name_or_id field might be a unicode string.  Make sure we don't
    run into problems comparing it by converting all comparison objects.
    
    This is a follow-on to Id89bbf6306adebe96c1db417a4b8b5ae51023af0 based
    on/as an alternative to I546b1fbd3375861173f411a7cfdb9e1baa5e6250
    
    Closes-Bug: 1668849
    Change-Id: I4e7fa49bd8525148961f02b0e0d7b567145a68b6
    Co-Authored-By: Liu Qing <liuqing at chinac.com>

commit 127049fe53ee93fa64472571f8cd0f860c79f701
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Mar 3 08:18:20 2017 -0800

    Raise a more specific exception on nova 400 errors
    
    We may want to take some actions in nodepool, such as cache
    invalidation, when we specifically get BadRequest errors. We may not,
    but throwing the more specific exception doesn't hurt.
    
    Change-Id: I748519daba2781bf83d6dc0151a1c12dd12d0e3f

commit 0ecbb22547c470fca6d50cfad2ee94e1241f83f4
Author: Ian Wienand <iwienand at redhat.com>
Date:   Fri Mar 3 14:06:34 2017 +1100

    Don't glob match name_or_id
    
    I was trying to bring up a host on vexxhost using the image name
    "Ubuntu 16.04.1 LTS [2017-03-02]".  As described in the change,
    because this gets run through fnmatch() directly it makes everything
    barf as "[2017-03-02]" gets matched as an incorrect glob character
    class.
    
    This is a little tricky because all the external list_*, search_*,
    get_* API functions basically pass name_or_id through directly.  None
    of them have ever explicitly said that you could use globbing,
    although it probably would have worked.  Any such use would have been
    relying on implementation details of the _util functions, and I feel
    like the fact it's _underscore_utils means that you probably had fair
    warning not to do that.  And obviously the "filters" argument is meant
    for this type of filtering.
    
    Additionally, fnmatch() says that it normalises case depending on OS
    filename case-sensitivity, which seems like incorrect behaviour for
    these functions which are not actually related to filenames.
    
    Thus I believe the matching should be just be a straight string
    comparison.
    
    I have added a test for this, but we also have to remove the tests for
    globbing behaviour as they are incorrect now.
    
    Change-Id: Id89bbf6306adebe96c1db417a4b8b5ae51023af0

commit 40c416cbad77d74d7d8fb964193b309d77ecb628
Author: ricolin <rico.lin at easystack.cn>
Date:   Thu Mar 2 22:26:45 2017 +0800

    [Fix gate]Update test requirement
    
    Since pbr already landed and the old version of hacking seems not
    work very well with pbr>=2, we should update it to match global
    requirement.
    Partial-Bug: #1668848
    
    Change-Id: I09ae994782889aae05250a8e5bf9f5b630b2d502

commit 708049351fcf13634d84e05e97eae3b0a5f0972c
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Wed Mar 1 15:54:16 2017 -0300

    Rename ClusterTemplate in OpenStackCloud docs
    
    There is no ClusterTemplate object in shade. A
    cluster template is a resource in shade as any
    other, such as a project or a server, which is
    returned as a dict.
    
    This patch renames "ClusterTemplate" to "cluster
    template" in order to be consistent with how shade
    refers to the rest of the resources in the
    OpenStackCloud docs.
    
    In addition, it is not useful for shade users to
    know ClusterTemplate is the new name for BayModel.
    If shade had ever supported a BayModel resource,
    it would still support it.
    
    Change-Id: Icbf4b310c5bbfb912c902f66974e11d8cefe1e23

commit 0613d189f750a566366e694ca77511df9eadb396
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Wed Mar 1 14:04:36 2017 -0300

    Fix OpenStack and ID misspellings
    
    Change-Id: I7d8c04268a95164f2c6e2f740d1c79499c93d3bb

commit 56ea59b13fbbfd70cd54f2742150aaab396ba80e
Author: Samuel de Medeiros Queiroz <samueldmq at gmail.com>
Date:   Wed Mar 1 13:38:30 2017 -0300

    Remove service names in OpenStackCloud docs
    
    OpenStackCloud users are not necessarily admins.
    They do not need to map cloud resources to the
    underlying services managing them.
    
    Change-Id: I2b52680ef620191c71e75eed4f035985c4125e3d

commit d321a14ecbe79c888e891424250c1b5bdfd2ea65
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Feb 28 11:22:30 2017 -0600

    Pass ironic microversion through from api_version
    
    If someone sets baremetal_api_version to 1.29 right now, we don't really
    do anything with that information. Pass it through to the constructor
    for ironicclient in get_legacy_client().
    
    Change-Id: I470fbb8852eac7d5cb35aef549ac591d63f3636f

commit 81e04fcec6cb333a7d44124c045358c4904cf765
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Feb 27 09:34:24 2017 -0600

    Add ability to skip yaml loading
    
    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.
    
    Change-Id: Idbc82bb931e9edf1bbcc575237c0e202e219c218

commit 80709fd9a488d83563ed5c5354cca6628c08445a
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Wed Feb 15 13:20:09 2017 -0800

    Convert test_object to use .register_uris
    
    Convert test_object tests to use .register_uris. .register_uri is
    no longer used and deleted.
    
    Change-Id: Iee156afd5ee5931ca4087a70dd92bb3b0df2f62d

commit 759b2b4845fcfe2b7865ccd4469797c980c17720
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Wed Feb 15 10:16:59 2017 -0800

    Convert use of .register_uri to .register_uris
    
    This patch converts the use of .register_uri to .register_uris for the
    following files: test_image, test_project, test_meta.
    
    Change-Id: Ibf909d4b81361fab690c5514e616870bf9274a60

commit efc41d8624becbd7835e7f17eedccecd0a29fa2f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Feb 16 07:38:55 2017 -0600

    Change request_id logging to match nova format
    
    Nova has a very nice format for logging request_ids that is more
    readable than what we were putting into the logs. Copy it. Also, stop
    trying to log request ids for objects we get from python*client. They
    already have loggers.
    
    Change-Id: Ibe4bff3cf91f282920138fe1d9fe7be3198ba6e3

commit 60ce27ea81bc178783ec54a2f7771f7dd7242dda
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Feb 15 13:39:53 2017 -0600

    Actually normalize nova usage data
    
    Turns out usage reports are empty when there is no usage - so direct
    passthrough is not so much a thing. Fix it.
    
    Change-Id: I6a2f2e737f792ba74a191d688b3380dc333e34fe

commit 71322c7bbc70e24b119d30d6f1aab02934a83583
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Feb 15 11:05:41 2017 -0600

    Fix several concurrent shade gate issues
    
    This is a big patch because there are more than one issue happening at
    the same time and we have to fix all of them to fix any of them.
    
    Force nova microversion to 2.0
    
    The current use of novaclient is to get the latest microversion. So far
    this has not been a problem, as shade deals with different payloads
    across clouds all the time. However, the latest microversion to nova
    broke shade's expectations about how usage reports work. Actual
    microversion support is coming soon to shade, but is too much of a task
    for a gate fix. In the meantime, pin to 2.0 which is available on all of
    the clouds.
    
    Produce some debug details about nova usage objects
    Capture novaclient debug logging
    
    In chasing down the usage issue, we were missing the REST interactions
    we needed to be effective in chasing down the problem. novaclient passes
    its own logger to keystoneauth Session, so we needed to include it in
    the debug logging setup.
    
    Also, add a helper function to make adding things like this easier.
    
    Consume cirros qcow2 image if it's there
    
    The move from ami to qcow2 for cirros broke shade's finding of it as a
    candidate image. Move pick_image into the base class so that we can include
    add_on_exception and error messages everywhere consistently.
    
    Add image list to debug output on failure.
    When we can't find a sensible image, add the list of images to the test
    output so that we can examine them.
    
    Change-Id: Ifae65e6cdf48921eaa379b803913277affbfe22a

commit e6755872ada4978f585bdf15edf623dbcf72c4ee
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Feb 15 10:30:12 2017 -0600

    Remove the keystoneclient auth fallback
    
    OSC doesn't use this codepath anyway (to my knowledge) and it masks
    errors in exceptionally strange ways.
    
    Change-Id: I15ec5aacb037813a98ac9ea8e9504a5d1cc90837

commit 0e039e67c2e3496628141b7b48aff2ff541096c6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Feb 15 09:31:12 2017 -0600

    Add support for overriding mistral service type
    
    The mistral team copied the heinous pervsion that the cinder team
    propagated upon the world and appended a version to their service_type.
    That's ok - there is nice copy-pastable code here we can use to prevent
    users from feeling the pain.
    
    Change-Id: Icf280f932014e4d9abeab3e944aece125988562e

commit cbb38f38bceee7977952651bd0466902c087de8d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Feb 9 13:13:58 2017 -0600

    Add helper scripts to print version discovery info
    
    These are simple scripts I made to investigate things. Each show the
    version discovery info for all of the clouds in a clouds.yaml.
    
    Change-Id: I742a59c737c53c05851015b9734c7aa85a5466ca

commit 508061a2a04ace3036c30ab5e5b494d408deae7a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Feb 12 09:55:25 2017 -0600

    Wait for volumes to detach before deleting them
    
    In our functional tests, we keep hitting errors with deleting volumes.
    It would stand to reason that the problem is that we try to delete them
    too quickly after deleting the server so cinder doens't yet know they're
    detached. Put in a wait loop to try to get to a state where the volume
    can be deleted.
    
    If this works, it may be worth adding a method to shade itself to expose
    this - or alternatively a wait_for_detach flag to delete server that
    would not return until volumes are also detached. Or to add a
    "delete_volumes" flag to delete server. However, deleting volumes
    involves deleting data, so maybe it's fine.
    
    Change-Id: Ic460b6bc7f65e8761b2d765b88502ef6b5a79973

commit 4f98c8b23d82ea15151ef0ffb49f39987eb088b0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Feb 10 09:43:18 2017 -0600

    Add accessor method to pull URLs from the catalog
    
    It's handy sometimes and the specifics of how to do so is complex.
    
    Change-Id: I90d5c8c2709cf9d8bd76c3dbcbe171c7d75572a8

commit 820885c1a164bf01365dd1bd57fddd58dc664e56
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Mon Feb 13 14:59:49 2017 -0800

    Convert use of .register_uri to .register_uris
    
    This patch converts all use of .register_uri to .register_uris for
    the following files: test_caching, test_create_server, test_domains,
    test_flavors, test_floating_ip_neutron, test_users.
    
    Change-Id: I48d90465f22bfa27e9de552e135f42967a9e21fa

commit ea83e73be05a47ea93ac1d8428c033897e480d20
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Mon Feb 13 11:55:08 2017 -0800

    Remove keystoneclient mocks in test_caching for users
    
    Remove the direct keystoneclient mocks in test_caching for user cases.
    This implements "register_uris" which takes a list of dictionaries
    describing the mocked URIs for ease of reading when dealing with
    highly complex request mocking such as the
    test_modify_user_invalidates_cache test case.
    
    Change-Id: I75f62a7b2c6d0838dd4a4bdf10cb74e4baf4aa7e

commit aff1f8f8b6868960d5fd02923d105b5c977156b2
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Mon Feb 13 11:14:21 2017 -0800

    Remove mock of keystoneclient for test_caching for projects
    
    Update test_caching to use requests_mock instead of direct mocking
    of the keystoneclient when calling keystoneclient to get projects.
    
    Change-Id: I865d2320c28c52318c243c9a927baa71324a7311

commit 76a01bf851c437698d03dc246a28b7ebf5ff5fe2
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Sun Feb 12 14:19:23 2017 -0800

    Remove mock of keystone where single projects are consumed
    
    Any case that mocked keystoneclient for simple get of a single
    project has been updated to now use requests mock. This change
    required some minor adjusting to the base RequestMock test case
    to make it easy to mock out for projects without needing to
    duplicate a ton of code.
    
    Change-Id: Ic19ec7ea199759a0aa69d107636fadbaf27dae5e

commit eee55a8966898f1c610c052c5aad7aed2d8d0959
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Feb 11 08:37:24 2017 -0600

    Rename demo_cloud to user_cloud
    
    The operator cloud is "operator_cloud" which is clear. Even though the
    devstack user is called "demo" - the point of the non-operator cloud is
    that it's an end-user connection. Rename demo to user to remove any
    confusion/ambiguity. (also, it's the same number of letters so pep8
    doesn't get borked)
    
    Change-Id: Icfd2dd1687099798ed2cdf9349cc5b7d27dade58

commit d2df08ecd82da45b2cb0076978f9c3342aa1540e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Feb 10 10:44:29 2017 -0600

    Add all_projects parameter to list and search servers
    
    It is possible to tell nova to return the servers for all of the
    projects rather than just for the currently scoped project. Expose that.
    
    Change-Id: I4308758ac1c37ee7c1e63e0f2f58699966eb8364

commit b0bbb8ca0809b60536113bbe5c280679bdc25965
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Fri Feb 10 21:13:34 2017 -0800

    Convert test_project to requests_mock
    
    Convert tests from test_project to requests_mock instead of direct
    mock of keystoneclient.
    
    Change-Id: I73fef17367dcaa7d66a3d3d3661775b880225cea

commit 2fd4bdaff149be49430878135cf62fc2fa5c3326
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Fri Feb 10 15:50:30 2017 -0800

    convert test_domain to use requests_mock
    
    convert all of the test_domain cases to use requests_mock.
    
    Change-Id: I3f24eaaab236c136690d3314b242c1e6ae5b6720

commit b5fb06e8e4b0ca5094e3bb9b3181842512b330a1
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Fri Feb 10 14:40:17 2017 -0800

    Move mock utilies into base
    
    Move the utilities developed to mock keystoneclient calls into
    base test and make more generic for other non-keystone uses.
    
    Change-Id: I82d8cf9ff4a5f207890d01a19aee68385f3ff0a3

commit 4161e5c79aead7861ed8c4737164bad914a0fdb5
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Fri Feb 10 13:51:50 2017 -0800

    Convert test_users to requests_mock
    
    Convert the remaining tests for test_users to use requests mock.
    
    Change-Id: I504cc3c0be883c8e5c6323cd535a04834eb97119

commit 068470d4a58908c269d482380109635d3f9cf2ce
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Feb 10 10:04:19 2017 -0600

    Add request validation to user v2 test
    
    We need to check that we are sending what we think we're sending.
    
    Change-Id: Ib8dea57cd04582d60c7e44492daeb2f24067e4c7

commit e100a5846370de54a3a22c5010f42d65f45760be
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Thu Feb 9 15:43:22 2017 -0800

    Convert first V3 keystone test to requests_mock
    
    This introduces further cleanup needed for the first v3 test to be
    converted to using requests mock and converts create_user_v3 to
    use requests_mock
    
    Change-Id: Ieb5299eb9ca774576070f8fcfe2eb583ef591fb1

commit 5a3ffeb31f674bee7f6a2668056b5f375ad2ffc5
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Thu Feb 9 14:53:29 2017 -0800

    Cleanup new requests_mock stuff for test_users
    
    Cleanup the requests_mock to be replicated for the rest of test_users
    
    Change-Id: Ie38689adc33c3035a6f1def7d350e2a8b961a235

commit 23cead49192fce6703d263b8125be8022fb91fc3
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Thu Feb 9 12:31:58 2017 -0800

    First keystone test using request_mock
    
    Update and correct issues with shade to support use of request_mock
    instead of keystoneclient. This solves issues with the catalog v2,
    the discovery.json, and leans on the fixes for the test_create_user_v2.
    
    Change-Id: I78666d44d0a2ff9f013a68c09c76d092fea3a586

commit 5eb32e562b850b4808ba63b8a1121987bcdd42d1
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Feb 7 16:51:41 2017 -0600

    Add test of attaching a volume at boot time
    
    In addition to booting from volume, we also support booting from image
    and attaching a volume. Test it to make it true.
    
    Run of this test without the previous patch fixing it:
    
    http://logs.openstack.org/68/430468/2/check/gate-shade-dsvm-functional-neutron/51ab62a/console.html
    
    Change-Id: Ia7a76cefa9d01909723f6df1f9055e3f73c0f703

commit 50efb434d874ca74e6c89424c43389408ab9b584
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Feb 8 08:25:21 2017 -0600

    Add support for indicating required floating IPs
    
    Some clouds require that users add a floating IP to a server if the user
    wants that server to be able to talk to things that are not on the
    cloud. Some clouds do not require this and instead give servers a
    directly attached IP. The only way a user can know is to boot a server,
    then ask neutron for the port associated with that server, then find the
    network the port came from and then try to infer whether or not that
    network has the ability to route packets northbound. Of course, networks
    don't actually communicate that quality directly, (router:external
    doesn't mean a network routes externally, it means the network can have
    a router attached to it to provide floating ips) so it's still hit and
    miss.
    
    Where we can, save the user the stress and strain of not knowing how
    their cloud wants them to get an externally routable IP.
    
    Change-Id: I1baf804ce28bc1997b2347c4648c5cc56c750ead

commit 93c2e17c8ec1280fec4473e9f583cb2b29c03073
Author: Doug Hellmann <doug at doughellmann.com>
Date:   Tue Feb 7 22:35:19 2017 +0000

    pass -1 for boot_index of non-boot volumes
    
    Although the API documentation for nova [1] says to pass None to
    indicate a volume that should not be used for booting, doing so produces
    an error because None is not an integer. Change shade to use '-1' (to
    comply with the declared string type) instead of None.
    
    [1] http://developer.openstack.org/api-ref/compute/?expanded=create-server-detail#create-server
    
    Change-Id: I5732575501005f4acc6320578882a079adc8be38
    Signed-off-by: Doug Hellmann <doug at doughellmann.com>

commit 175b256161d15916e44a62d5b3cdebacdedb84cc
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Feb 6 17:21:05 2017 -0600

    Pass task to post_task_run hook
    
    It's hard for consumers to do anything useful in post_task_run without a
    copy of the task. Also - not adding this as an optional becaues the
    consumer this was written for, nodepool, has not started using it yet,
    and I find it VERY hard to believe anyone else will have picked up on
    this.
    
    Change-Id: Ib48fe54feb8b6ed10da3e5fa9accf985e4b22623

commit 6edafb98ea5778e42a6e5f7eaa70ca1742071336
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Feb 6 16:41:29 2017 -0600

    Rename ENDPOINT to COMPUTE_ENDPOINT
    
    Wow, there is more than one type of endpoint after all!!!
    
    Change-Id: I1a3dd675d6ad9bfed51a3a8aa05502ed22f42203

commit 3cb1ad4683b1eee9395b52391e868235c789eb8c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Feb 4 08:51:56 2017 -0600

    Transition half of test_floating_ip_neutron to requests_mock
    
    There is too much going on here for a single patch, and my brain hurts
    too.
    
    We need to come back through and refactor test_auto_ip_pool_no_reuse.
    The resources involved are all accurate (took them from a live
    interaction with citycloud for verification purposes) but doing complex
    tests that way is a pile of copy-pasta.
    
    Also, found a logic error in the flow of having created a server and
    then separately requested a FIP be attached to it with reuse=False. The
    logic error is that the check to see if the server has a FIP already is
    using a stale copy of the server dict which cannot possibly have a FIP
    attached.
    
    Change-Id: Ia38294cf48bcb46c18892605fd52da7dadaeefc8

commit 994cd9992c51764246e91a6d71e853bb9a4aa10f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Feb 4 06:55:24 2017 -0600

    Start switching neutron tests
    
    Change-Id: I87a02155de3fb8330256bc51cf4499c9e7e339a2

commit 7878a9daf60d5b65115fb930ff6ffcda3f5eb07b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Feb 4 07:32:10 2017 -0600

    Port in log-on-failure code from zuul v3
    
    Zuul v3 picked up a great technique for logging a ton of useful
    information for errors but also not blowing out the subunit stream on
    success.
    
    We do it a little differently here - we don't have the need for the
    flexibility in logging config that zuul has. Also, add the ability to
    set an env var and print the logging even on success. (useful when
    developing single tests when one wants to inspect that a success really
    did what we think.
    
    Change-Id: Ibcb9a4aa33c16450df252c5e0f32a62c5cc821bc

commit b223649239ac124a118e450882d667f6384b1daa
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Feb 1 08:36:21 2017 -0600

    Honor cloud.private in the check for public connectivity
    
    While we don't want to do connectivity checks on private addresses most
    of the time, if we've been told that we prefer private addreses to
    public, then we can expect to be able to connect to those.
    
    Change-Id: Ia81df87de7d8f4ba3d4ecc9c68906f14efffa6bc

commit 7102440687bc0c49601bfdc4e2925f731a9134da
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Feb 1 11:09:40 2017 -0600

    Support globbing in name or id checks
    
    The ansible os_server_facts module support doing this, and a recent
    change to add support for returning servers by ids there made it seem
    like perhaps the functionality should get rolled up into the shade layer
    and be available to everyone.
    
    Change-Id: Ib1096d606840767ce884e6dd58a6928fee0ae6e2

commit 5139309492261927e9724dfabc0cd2157ef565c5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 31 18:14:00 2017 -0600

    Stop spamming logs with unreachable address message
    
    We emit a helpful debug warning when we have to pick from amongst random
    addresses and we couldn't choose one based on being able to reach it.
    However, there are a number of addresses for a server that EXPECT to not
    be reachable. We call them private addresses. Or maybe non-routable. Or
    something fancier and full of more networking acronyms that I'm not cool
    enough to know.
    
    In any case, only emit the warning when we expect to be able to route to
    the address and we still can't figure it out.
    
    Change-Id: I72d6f4745fe9f4169671bc933e92871358cebbf2

commit 1dfe5e54fb71876ff21e2aade623cd6ada4ab782
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 31 13:38:08 2017 -0600

    Remove troveclient from the direct dependency list
    
    We don't even actually use troveclient in shade other than the
    constructor. Make it an optional import.
    
    Change-Id: I60b924eb8dfb48c53da0befb39cf84e6c1ea8863

commit 28fc6b02faed384337b187a13e7dc7ce01e3b318
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 31 11:33:52 2017 -0600

    Move nova flavor interactions to REST
    
    One REST call is removed because python-novaclient made an extra get
    that we do not need to make.
    
    Change-Id: Idfc72a0f353c248e5749aea926031e70dcdf4f94

commit 7d982af93e849ee75ad0c1cd24684a96188d32c3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 31 10:07:47 2017 -0600

    Migrate flavor usage in test_create_server to request_mock
    
    Don't fix the whole tests, since it does a bunch of neutron
    introspection. Also, make sure it doesn't call neutron yet. We'll get to
    that when we migrate neutron calls.
    
    Change-Id: I9faaecedb6c888119e0c1370e9c6ca1a2f6a2fb8

commit 2e79cffb982087117cd8bfb0186b999f7856dfeb
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 31 09:56:58 2017 -0600

    Migrate final flavor tests to requests_mock
    
    There were some tests in test_shade that should really be in
    test_flavors. Move them there, then transition them to requests_mock. To
    support the actions they need, add some additional flavors to the fake
    flavor list.
    
    Change-Id: Ide92fb0a926ba69b03132205f1467816844377d8

commit 7ca9d762f14ec5292e073b207844e66b142b255f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 31 09:19:52 2017 -0600

    Move flavor cache tests to requests_mock
    
    Move the fake flavors from test_flavors to fakes so we can reuse them.
    
    This also fixes two small bugs that were found. extra_specs were Munch
    if fetched from nova and plain dict if they were defaulted. Also, if
    there was a problem fetching extra_specs, we defaulted them to empty
    list which is just plain wrong. Also, we were letting the request_ids
    attribute sneak through.
    
    Change-Id: I8ecf05580c557b21d123097e1f4be5c5664d366c

commit 32d53d58ce0190e05dc9cf8e7b414f7c950f9008
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 31 08:16:02 2017 -0600

    Transition nova flavor tests to requests_mock
    
    We had added a betamax fixture for create_flavor, but the requests_mock
    approach is actually working out much better. Go ahead and replace it to
    simplify the test suite a little bit.
    
    Remove _by_flavor tests as they tested a behavior that's actually invalid but
    worked in the test by happenstance.
    
    Transition the rest of the file while we're in there.
    
    Change-Id: Ic2457d7380a8af41ed7bf6b264cbdc2240780ff3

commit 504cb0565836376b4d271a4d8324d3684b7f39fb
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 31 12:19:07 2017 -0600

    Add ability to create image from volume
    
    OpenStack has the ability to create an image from a volume - expose it.
    
    It should be noted that literally nothing about this API is documented,
    although it is exposed in python-cinderclient and
    python-openstackclient.
    
    Change-Id: Icb06d43a63d0b120a17ce6c19807abcb3de71bcb

commit cc78a7fbad1ef7bfb71d0775280d6e891686ab7a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jan 23 13:21:24 2017 +0100

    Use port list to find missing floating ips
    
    It's possible for a cloud to have multiple private networks with overlapping
    IP ranges. In that case, the check for missing floating ips can
    erroneously match a floating ip for a different server.
    
    Ports are actually unique, and are the foreign key between these things.
    Instead of starting with list_floating_ips, start with listing the ports
    for the server. In the case where OpenStack isn't broken, this will be
    the same number of API calls. In the case where it is, there will be one
    extra call per server, but ultimately the output will be more correct -
    and the fix for the extra load on the cloud is to fix the nova/neutron
    port mapping.
    
    Also, fixed the spelling of supplemental.
    
    Story: 2000845
    Change-Id: Ie53a2a144ca2ed812d5441868917996f67b6f454

commit 16a058f16e552668d6db8d806242dd1211559a6d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Jan 26 15:09:44 2017 -0600

    Process json based on content-type
    
    OpenStack provides content-type which we can respond to. That we do not
    currently provide it in our unittests is our fault. So let's provide it.
    
    Change-Id: Ib20f4df950cbedf404c0fbe3ef4c39660eb1b70f
    Depends-On: Iaef2a140e33fc48f8bfa8ff4769eded37ce152c6

commit 707adab1bc8726a7bf9c910e5bd2650bfe420ad1
Author: OpenStack Release Bot <infra-root at openstack.org>
Date:   Tue Jan 31 21:04:24 2017 +0000

    Update reno for stable/ocata
    
    Change-Id: Iace25f1919632b5de8d6bf81add7ce0416a874ef

commit 02116c41ef7cbf05698cfd01d28ce276d3f4f23d
Author: Doug Hellmann <doug at doughellmann.com>
Date:   Tue Jan 31 16:03:05 2017 -0500

    fix location of team tags in README
    
    Remove the extraneous title markup and move the team tag include
    instructions below the main project title in the readme so it renders
    more nicely.
    
    Change-Id: Icd384c81a455a3e1a86abd1f2ef84e775e06c307
    Signed-off-by: Doug Hellmann <doug at doughellmann.com>

commit fa0a133a2f477836f912ae0d34da8d799b5f4f51
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Jan 21 17:31:03 2017 +0100

    Copy in needed template processing utils from heatclient
    
    There is a LOT of client-side file processing that goes on before
    uploading heat templates to the cloud. Rather than reimplement it all
    from scratch, copy in the relevant bits. With this done, removing
    heatclient itself should be fairly easy. This will also allow us to fix
    a long-standing bug, which is that heat event polling bypassed the
    TaskManager since the utils make their own API calls.
    
    Depends-On: Id608025d610de2099d7be37dcff35de33c10b9d5
    Change-Id: I384f81b6198f874e78a434515123f955017e0172

commit 48e7eb06cd6467bb50b28f110800b9e9d507d41b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jan 23 19:12:39 2017 +0100

    Upload images to swift as application/octet-stream
    
    To be fair, this should have been pretty obvious when we wrote it. Of
    course glance images are application/octet-stream.
    
    Also, update the comment about the swift bug, since it's not a swift bug
    - it's doing exactly what we told it to do.
    
    Change-Id: Id992ef12e017d84a01249555518c86fb20280053

commit 14c371e944eabafa213142bfe35a4932f1bf00e0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Jan 21 12:15:22 2017 +0100

    Add ability to stream object directly to file
    
    For object downloads, allow the user to specify a file to write the
    content to, rather than returning it all in memory.
    
    Change-Id: Ic926fd63a9801049e8120d7597df9961a5f9e657

commit e71e79c397385a245c319400f74aba8f06e0b295
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Jan 21 16:35:21 2017 +0100

    Update coding document to mention direct REST calls
    
    Now that we've got glance and swift done and have started on neutron,
    let's update the doc to tell people that it's the way forward.
    
    Change-Id: I16f7ae58f5ae280bc4b1533f62bf3e3a09dbaeb0

commit 3ac4915109235d1456585a96af48ebef7ce669f7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Jan 21 09:34:22 2017 +0100

    Skip discovery for neutron
    
    It's a waste of energy to do discovery. We can always revert if we find
    some place where it's a problem.
    
    Change-Id: I8c15a8d775df8a19110dc9ceb6c8e5c8df8fdee0

commit a616b64402c658c09632bb8b5961878cd06b0d26
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Jan 21 08:49:29 2017 +0100

    Add helper test method for registering REST calls
    
    We have a pattern in our tests where we tell requests_mock about a URI
    we're going to call, then we save a list of the things we want to check
    to see have been called. There is more duplicated data thre than I tend
    to feel like typing. SO - make a helper method that allows us to
    register a call (and optionally some things to check) and save it to the
    list of things to assert at the end.
    
    Change-Id: Ie542efd55dc61999c7bad4787427f7664c0ecfb0

commit 8c0c2db7fc75c05258d80788f29ba6cccba84fa0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Jan 21 07:58:26 2017 +0100

    Do neutron version discovery and change one test
    
    Make the neutron client perform version discovery. (Note: do we really
    want to do this and not just cheat and append a v2.0 to the URL?)
    
    More importantly, convert one of the unit tests. Note that neutronclient
    doesn't seem to do version discovery itself.
    
    Change-Id: I57a78736e48eae52f51f4d9315e117de861240e8

commit b08629040eecfa15aec8a02eab9d21a956b47425
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Jan 19 09:00:30 2017 -0600

    Add raw client constructors for all the things
    
    We want to start taking new functionality in with raw REST. However,
    before we point people at doing that, we kind of need for there to be
    clients people can use to make REST calls.
    
    Go ahead and add everything os-client-config has default api versions
    for.
    
    Note - we could almost certainly get fancy with some sort of
    metaprogramming to avoid the copy-pasta here - but I do not think the
    complexity is worth it - it's not that much pasta.
    
    Change-Id: I4691bc7c4943136b1e3fb9a9a8981e682b42ec8a

commit b7ea6c7150cad5e17404edb5401d5eead827041d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Dec 29 07:37:06 2016 -1000

    Replace SwiftService with direct REST uploads
    
    SwiftService uploads large objects using a thread pool. (The pool
    defaults to 5 and we're not currently configuring it larger or smaller)
    Instead of using that, spin up upload threads on our own so that we can
    get rid of the swiftclient depend.
    
    A few notes:
    - We're using the new async feature of the Adapter wrapper, which rate
      limits at the _start_ of a REST call. This is sane as far as we can
      tell, but also might not be what someone is expecting.
    - We'll skip the thread pool uploader for objects that are smaller than
      the default max segment size.
    - In splitting the file into segments, we'd like to avoid reading all of
      the segments into RAM when we don't need to - so there is a file-like
      wrapper class which can be passed to requests. This implements a
      read-view of a portion of the file. In a pathological case, this could
      be slower due to disk seeking on the read side. However, let's go back
      and deal with buffering when we have a problem - I imagine that the
      REST upload will be the bottleneck long before the overhead of
      interleaved disk seeks will be.
    
    Change-Id: Id9258980d2e0782e4e3c0ac26c7f11dc4db80354

commit 362af901d00b8e46ef734a9e33e29f831fbc4a24
Author: Roberto Polli <robipolli at gmail.com>
Date:   Thu Jan 19 09:21:20 2017 +0100

    Fix spin-lock behavior in _iterate_timeout.
    
    Change-Id: I95dc8f1500c954951afaf4d5c7d3b4094010d536

commit 08b7ce9331a32731533cc5158d3fa3d3bf03a0d3
Author: Andy Botting <andy at andybotting.com>
Date:   Thu Jan 19 15:30:25 2017 +1100

    Fix typo for baremetal_service_type
    
    Fix a copy-and-paste error for the baremetal service.
    
    Change-Id: Ifbef9d0ad01c57bd98f06f7f10f9d632753d8221

commit cf2d3500271469fcec692c2c96ad358e22c831c9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jan 18 16:39:28 2017 -0600

    Add helper script to install branch tips
    
    shade has a functional test that intends to test shade against the
    current tip of client libs. Unfortunately, what it's really doing is
    installing latest release of the library into the shade virtualenv
    that's used for functional testing and using tip of library for the
    OpenStack install.
    
    This is not a combo we care about.
    
    Instead, install the library tips into the virtualenv. To do this, make
    a functional-tips venv for tox, and make the post_test_hook optionally
    use it.
    
    Change-Id: Ibac2982e88439362c7af933c3a07c4d581ee6f2b

commit 3c47e251c978cf9c5e393f032c0c70d67c1dcb00
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jan 18 14:25:53 2017 -0600

    Revert "Fix interface_key for identity clients"
    
    This patch breaks stable/newton devstack-gate of shade.
    
    This reverts commit fa4e1bd21db4bee2a0ee779067cdd659e647d7fc.
    
    Change-Id: I31a7831693f567a0717a9b41c242453fb937d6d7

commit cc2b337dcd55d8d2edd53b6000f1dd128636b529
Author: Andy Botting <andy at andybotting.com>
Date:   Wed Jan 18 15:54:00 2017 +1100

    Add support for Murano
    
    Add Murano support with the service name 'application-catalog'
    
    Change-Id: I42794993b8f6208d40786e83ec80ee64a0879415

commit 0f706a7ded8ace403c5bfac0e58d3a644285a6f3
Author: Roberto Polli <robipolli at gmail.com>
Date:   Fri Dec 23 13:03:07 2016 +0100

    Basic volume_type access
    
    Change-Id: I86405e7272c4101f6f03841ff65deec057fbed0b

commit bedc9c57c2f28f30bdc200f7c6edf653db4cde90
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 19 16:17:13 2016 -0500

    Add OpenTelekomCloud to the vendors
    
    Change-Id: I82fad53ad2078f58ba14e16a7199b7b730a37457

commit 0851770b0f56eb3b48e50eb8b5bd6ad8b41e882e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Dec 25 08:41:30 2016 -0600

    Add support to task manager for async tasks
    
    In order to support replacing SwiftService, we need to be able to spin
    some tasks into async threads. We'll allow for calculation of rate
    limiting to match with the start of the call, but will return a Future
    to the call site. This patch is followed by a patch to Nodepool to have
    Nodepool's TaskManager subclass shade's TaskManager.
    
    Co-Authored-By: David Shrewsbury <shrewsbury.dave at gmail.com>
    
    Change-Id: Ib473ceece7169d76dd37702d66b188a841ec3f59

commit 9d145e0be29c996015f9019307aef88a553e01ad
Author: Roberto Polli <robipolli at gmail.com>
Date:   Fri Dec 23 14:52:20 2016 +0100

    Added list_flavor_access.
    
    Change-Id: Ia983486ec4d587dd436e6a9c0b443be8ce1a7102

commit 53858f340eeb55cf233a56fc6f63bd60f58251b3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Jan 12 08:17:22 2017 -0500

    Remove 3.4 from tox envlist
    
    We don't support it.
    
    Change-Id: I43c9bc965374cb8fbbe9c40f366aed31d8cf9022

commit 091fde16a38acf17e0d98db44cedc179464aa2f0
Author: avnish <avnish.pal at nectechnologies.in>
Date:   Thu Jan 12 10:17:37 2017 +0530

    Use upper-constraints for tox envs
    
    Pin tox environments to upper-constraints to avoid conflicts with
    library releases.
    
    Change-Id: I17664e0794de05fb9661050018dff2a07b077826
    Closes-Bug: #1628597

commit 25405851b72c608b08444578c9f256fcf653c3a9
Author: Iswarya_Vakati <v.iswarya at nectechnologies.in>
Date:   Wed Jan 11 16:41:53 2017 +0530

    Removes unnecessary utf-8 encoding
    
    This patches removes unnecessary utf-8 encoding
    
    Change-Id: Ida121eb29eb8ea1b5fb40c3eb6843c4f9cb1caff

commit 28e2b4c6943d759f67e31ebac7977ce465916a5d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jan 9 09:42:00 2017 -0600

    Log request ids when debug logging is enabled
    
    If debug logging is enabled, it's fairly likely that's because a user
    wants to debug things. Often times having the request id in the log is a
    useful part of that.
    
    Also, while we're in there, don't try to log information about the
    object returned when there is no object to query. And log a useful
    message on lists, and when we get objects from nova.
    
    Change-Id: I02579227f3475a952006689182f6ca112fa1f7ed

commit 362c6febe24f7f95d47c7cdab964d0f249e75fd5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 10 09:58:34 2017 -0500

    Honor image_endpoint_override for image discovery
    
    If an endpoint_override is given, we don't need to do discovery.
    Clearly the user is telling us what they want. We should do that.
    
    Change-Id: I68a534b15d20db5909179ad26c54b47c9eae8d47

commit 11d66e34e497f965348ca266ee3007afb122b1e5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Jan 5 10:33:12 2017 -0600

    Rework limits normalization
    
    There isn't good docs or a guide on what we're looking for with
    normalization - so rather than nitpick a review to death, I just made a
    patch. We should make a doc ...
    
    Changes included:
    - We need to be explicit about every key we're going to support. Some of
      the limits keys are deprecated, so just don't return them.
    - Change them all from camel case to underscore to match other
      resources.
    - Document them in model.rst
    - Change the name from limits to compute_limits, since it's only limits
      for the compute service.
    - Allow usage by a normal user (it's not an admin function)
    
    There will be a follow up patch to convert this to direct rest calls,
    which will be fun due to the ability of this to work against other
    projects.
    
    Change-Id: Icfb118d4289263c0dd906f600e370242f191f708

commit 68a8d513dd0cd6c2f24642f2f02e4c61f3a863a7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Jan 6 09:51:28 2017 -0600

    Handle pagination for glance images
    
    The default glance image list pagination seems to be about 20, which
    means for v2 you really need to deal with pagination every time. It also
    seems that the limit parameter does _not_ allow you to get more items
    than the server default, so you can't just say "limit 100000" and be
    done with it.
    
    In order to accomplish this, we need to have the adapter stop trying to
    return only the image list when there are other top level keys (so the
    code can read the next link) and then do a loop requesting the next
    link.
    
    To make us even happier, glance returns the next link as '/v2/images' but
    we have already set the adapter to 'https://example.com/v2' due to
    version discovery. Since we're setting the endpoint_override on the
    adapater, it treats that as the root, leaving us with
    https://example.com/v2/v2/images. To deal with that, introduce a 'raw'
    adapter which is bound to whatever is in the catalog, rather than
    whatever we found through version discovery.
    
    Change-Id: I030147e0275d0c4ee89588e21b5970f7d81800d3
    Story: 2000837

commit 9e818c0afdb280a374cb2418cf4a277c3867e218
Author: Paulo Matias <matias at ufscar.br>
Date:   Tue Jan 3 16:30:39 2017 -0200

    Add support for using the default subnetpool
    
    Allows to pass use_default_subnetpool instead of a cidr. This is
    required when adding an IPv6 subnet if BGP or prefix delegation is
    enabled.
    
    Change-Id: Icf7c212ee730d631599fba732f66679c5cd2916d

commit 228b50dea0748d3a079fd4a1c24b38699a146e34
Author: Andreas Jaeger <aj at suse.com>
Date:   Wed Dec 28 16:13:26 2016 +0100

    Remove link to modindex
    
    The documentation build does not generate any module index, thus remove
    the link to the page. The page
    http://docs.openstack.org/infra/shade/py-modindex.html does not
    exist.
    
    Change-Id: Ibfc9f74bbebe3ad2c0d3d37eba3e65a44a602dfe

commit 197ca1b8c700223c253ada0e6d04660ce18858fa
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Dec 22 13:44:42 2016 -0600

    Fix exception name typo
    
    Change-Id: I2ecfe8a3d614d734bee03ae9412044704887c1d0

commit 18916dea5712c1b24737b698d7182dced222a85f
Author: Andrey Shestakov <ashestakov at mirantis.com>
Date:   Thu Dec 22 16:31:49 2016 +0200

    Add failure check to node_set_provision_state
    
    When 'wait' is enabled in node_set_provision_state, exception should be
    raised when machine failure occurred.
    
    Change-Id: I5cc96127b4f44fdadbe75f5df5264565d4e646c9

commit fcead29c3faa0d7f33e05cd527cbb475542d32ab
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Dec 22 06:42:25 2016 -0600

    Update swift constructor to be Session aware
    
    python-swiftclient has Session support now! Use it, and remove a pile of
    customization specific for swift.
    
    We still need to put a few parameters in different places, but that's
    no worse than glance or trove.
    
    Change-Id: Ic51aee2bc7b535aa4b6e261fb3deb59bd921f563

commit 33548e54c0b77438446450d350d94164586d28d5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Dec 20 09:24:57 2016 -0600

    Add test to verify devstack keystone config
    
    Similar to the services, we also configure keystone v2 for some test.
    Make sure that in the tests where we're doing that we actually end up
    with keystone v2.
    
    Change-Id: Ic8fdeae2ac82145e6a8c254c6953419e827216d3

commit 4c1494cd921ebd6258406ab2aa1d1970dd4461b4
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Dec 19 11:39:11 2016 -0600

    Make assert_calls a bit more readable
    
    Output helpful error message about _which_ of the list of calls is
    broken if something is broken. Also, use zip and enumerate to save us
    having to dereference [x] all over the place.
    
    Change-Id: I8f07d70450251c45038c8123274424e1b0097065

commit 45737abbbaa86e0b3073d09fdacd8cd1c9355a86
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Dec 19 11:26:00 2016 -0600

    Update swift exception tests to use 416
    
    On GET queries, swift can return 416 which indicates an invalid range
    was requested. This is a thing where we'll just throw the error to the
    user, so makes it a good thing to test.
    
    Change-Id: I6b4274c42b7f708d1c7707535715321bb337f97c

commit c8a3952152d9a5e7bb0d0007c94ee61f4e9db2a4
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Dec 19 11:18:52 2016 -0600

    Make delete_object return True and False
    
    Delete methods in shade return True if they deleted something and False
    if they didn't.
    
    Change-Id: Id5b1cea3bf582783ca5bdcd865435b27855fb0a6

commit 9e9e2e702253540f28ca994f1c96f9b1fb82c8d5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Dec 19 09:30:15 2016 -0600

    Switch swift calls to REST
    
    Added support for calls that directly return lists to the adapter.
    
    There are a few minor changes in the test suite. swiftclient appended
    query strings differently than how requests is doing it. A comment was
    adding clarifying why we're testing a 409. And the b'test body'
    workaround for python3 issue we saw with request_mock and swiftclient
    does not occur now, so we removed the b''.
    
    Change-Id: I7e962f99cbab07ed1d4fea6e2c6df10776a4be80

commit 4d9cac215b577ef93d08268e00a7d98635ffd9bb
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Dec 19 09:34:20 2016 -0600

    Stop using full_listing in prep for REST calls
    
    The full_listing parameter to swiftclient causes it to do a
    batching/paging approach all the time. We can do it smarter, but for
    now, just remove it so that we can do an equal logic REST conversion.
    Then we'll add paging support smartly to the REST calls and always do
    it.
    
    Change-Id: I743871c5f87fba28d16b38fe23c51fd0cdd7eecb

commit de9a51958568bd7f93dcb12edebd30fcea674c51
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Dec 19 09:03:16 2016 -0600

    Stop calling HEAD before DELETE for objects
    
    It's totally inefficient. Delete throws a 404 if the object isn't there.
    There's no reason to do a HEAD first.
    
    Change-Id: I1e7e0a37d12d15f79786e87dc87afc047495e142

commit 29d15878a7b2fe3596516a5f2e5aaa8f6554deb3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Dec 17 07:44:56 2016 -0600

    Replace mocks of swiftclient with request_mock
    
    The string handling around headers and swiftclient seems a little off.
    Note the b'' we had to add to the public acl as well as the str() in
    get_container_access and the str() around the header in test_object. The
    swift docs say that headers should be unicode strings - but in 3.5 we
    get bytes in some places that it seems like we should be getting
    strings. The b'' and str() casting make the tests work - but I'm not
    convinced that's the correct thing to do in these cases.
    
    Change-Id: I2d7c77eaab690f578eaba80490145bc16a23222c

commit 98f1bd57de405e92eff768c6a968d32e6b41a703
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Dec 17 07:13:19 2016 -0600

    Put in magnumclient service_type workaround
    
    Older versions of os-client-config only have an api version for
    'container'. It's pretty easy to put in a workaround for that.
    
    Change-Id: I1edaa7ee416e4cc85bffb999a0e66b9494dabc37

commit a32d451690cc21fcec505193540d9ce21e5d0a42
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Dec 17 10:20:06 2016 -0600

    Let use_glance handle adding the entry to self.calls
    
    Change-Id: Iac4a6e6b428fac897104c25d5b139f3de40b21d7

commit 0232a12d04ca4976399fb3740414f541662108ab
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Dec 17 09:46:03 2016 -0600

    Combine list of calls with list of request assertions
    
    It's really awkward to assert that the request to call 14 had a json
    body that looks like something. Instead, it's more natural to say
    "there's going to be a POST call to $url and it should have this body"
    
    Make the assert_calls helper method also look for optional json and
    headers content.
    
    Change-Id: I12a50d46416c80b052cf30b605b2820899a1eb77

commit 7d463839d1389e87024e5dd23aac8134c33f0d00
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Dec 17 09:07:35 2016 -0600

    Extract helper methods and change test default to v3
    
    Our unit tests default to v2, which is sad. Change that to v3. Also,
    make it easy to write tests that use v2. Also, start building more
    scaffolding for making requests_mock tests easier to write and grok.
    
    Change-Id: I83e2b7c9cf91c2b3128df1a77debd47b1b5ce8c7

commit f80d1717dcc2d2137dd25760b8da627638954d60
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Dec 17 09:06:22 2016 -0600

    Make munch aware assertEqual test method
    
    Many of our assertEqual calls use compare munches. When there is a
    problem, the printout of the munch is all on one line, which makes
    reading it hard. Make an assertEqual in our base class which turns
    munches into dicts if they're passed in.
    
    Change-Id: I478548c5146cd6f86b8957f527ccd3d78268156f

commit b3b833c69e23193aa28a9eef230e1775d2743ef4
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Dec 17 07:24:30 2016 -0600

    Extract assertion method for asserting calls made
    
    The pattern of asserting a list of calls were made comes up over and
    over. Let's encode it into a method.
    
    Change-Id: I43186abbc807eab4da1b88469fe29bb7f0dd83b9

commit 63ead1466886b346db10014279e18f8af464e63e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Dec 16 10:41:38 2016 -0600

    Change get_object_metadata to use REST
    
    Change-Id: Ie473afecaa863bd5ee44a159a3f7e30ad943c674

commit 1beac18cd0eeab6ff36367e8e0d322235dbe478d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Dec 16 10:41:12 2016 -0600

    Update test of object metadata to mock requests
    
    Replace all of the swift_client mock calls with requests_mock calls.
    
    Change-Id: I59fed67aad05d3c38add9c918f01420181d75fe9

commit ea061e8031a4b9176390820175c60f836311f2f6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Dec 16 08:03:01 2016 -0600

    Add release notes and an error message for release
    
    In prepping for 1.14.0, it seemed there were a couple of important
    release notes missing, as well as an informative error message
    in case someone installs shade fresh and then tries to use
    glance_client.
    
    Change-Id: I17b8e7d3d1f6ac8172e49f4473137f51351f7e5d

commit 6615160361f375f480ce66947957513ee3dd0134
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Dec 15 10:07:55 2016 -0600

    Magnum's service_type is container_infra
    
    Leave container_api_version since people might be depending on it.
    
    Also, add it to the constructors list, since we do know about it.
    
    Change-Id: I3bcb966154ac53269614c943ad9c2675b27d62d0

commit e2d1008aed7f0d3046e1aa539c03837318c4263a
Author: Steve Martinelli <s.martinelli at gmail.com>
Date:   Thu Dec 15 12:34:32 2016 -0500

    Add docutils contraint on 0.13.1 to fix building
    
    See:
    http://lists.openstack.org/pipermail/openstack-dev/2016-December/108742.html
    
    Change-Id: Id183b0d3a6339e10f2f1f4a5dc78352d5c3f27ed

commit 7e0fbb3707e1b60157a5662ada2c0c9177b9a2d7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Dec 15 09:29:34 2016 -0600

    Add total image import time to debug log
    
    Because the image import happens in a poll loop on tasks, there is no real
    tracking of the total time elapsed. While watching logs or reading them,
    it's a number that's interesting - so calculate and report it.
    
    Change-Id: I23dfa5d8a2fe7b105389b23681effbde8c528a6d

commit ace76cfd2f450d3c8eeafb9e8153c0a00f0a2bad
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Dec 15 09:08:31 2016 -0600

    Clear the exception stack when we catch and continue
    
    When we don't care about an exception in one of the poll loops, but then
    there is a different unrelated error later on, the caught and handled
    exception can linger. This is seen in output like this:
    
    shade.exc.OpenStackCloudException: ("Image creation failed: <type
    'exceptions.OSError'>", Munch({u'status': u'failure',...)) (Extra:
    Munch({u'status': u'failure', ...)) (Inner Exception: (503) Server
    Error: Service Unavailable for url: ...)
    
    The 503 error is caught and skipped as a normal matter of course. Then
    the task later fails and returns a status: failed, which we throw a new
    exception for - but the earlier 503 error shows up in the exc_info call
    so it gets reported. Since the 503 ISN'T related to the actual error
    we're reporting, the output is erroenous and confusing.
    
    Change-Id: I87b521df98435d541d62269c0987313add74d260

commit 0dff88869195c937a23071cdf89b783c116556f6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Dec 15 10:10:25 2016 -0600

    Magnum's keystone id is container-infra, not container
    
    Our use of 'container' as the key for magnum service detection and for
    client construction has been wrong, but was missed because we failed
    open on missing services.
    
    Change-Id: I181f33388bbeb793fb8b5c47dd40188e7826cd43

commit 485a4c171bdcec337e5287410a3c45792a2df0fe
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Dec 15 09:03:23 2016 -0600

    Stop double-reporting extra_data in exceptions
    
    We append extra_data to the args we send to Exception, but we also
    append extra_data to the str output. Thing is - Exception already does
    that with all the args - so we wind up with something like:
    
    shade.exc.OpenStackCloudException: ("Image creation failed: <type
    'exceptions.OSError'>", Munch({u'status': u'failure'...)) (Extra:
    Munch({u'status': u'failure'...)
    
    Also - the Munch output isn't terribly useful in the exception, so go
    ahead and dict-ify it if we've passed a munch to extra_data.
    
    Change-Id: Ie3271093fba0ac6f074e1cfd4e6a79455dc82be4

commit 916ba3812362722e836be122765531daa0e9e63d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Dec 15 07:11:57 2016 -0600

    Pass md5 and sha256 to create_object sanely.
    
    The logic to skip md5/sha256 calculation was flawed, as it pulled the
    wrong keys from the image_kwargs. The whole idea of pulling parameters
    from the image create kwargs is too clevel though. Just go ahead and
    pass the values as real python parameters.
    
    Change-Id: I516b0143d6874bd31f5050fc6bee0dc8227dfcda

commit 8c0ea00215e12ff32daad1a2664fddd14b89b838
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Dec 13 16:06:11 2016 -0600

    Convert glance parts of task test to requests_mock
    
    Remove the mocking of _image_client and go straight for requests_mock.
    
    It's worth noting doing this caught a bug in the POST to /tasks where we
    were using data= instead of json=. Yay tests.
    
    Also - we've added a failure in the task poll loop. The first GET for
    the task status returns a 503 which is then appropriately skipped.
    
    Change-Id: Ia50333d8a1c62b68e89f08aafe4b7e6caee8ef5a

commit 532cab320050a9d67862d68b404736335e1be02b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Dec 13 15:17:35 2016 -0600

    Collapse base classes in test_image
    
    Turns out we don't need a separate test class for REST and client
    changes. Collapsing them means we can have mixed tests (like we already
    do for testing tasks) and we can follow up with patches here to just
    replace the mocks.
    
    Change-Id: I1fd9691dea4db79fd997e231e9d46cae1885c5f7

commit 8eb62897a993c8d91f7d2fe8792ff789ab980513
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Dec 13 12:25:12 2016 -0600

    Skip volume backup tests on clouds without swift
    
    It's also technically possible for a cloud to configure itself to use
    NFS for volume backups, but it doesn't seem anyone does, and also isn't
    how devstack is configured.
    
    Change-Id: I76ada67272fb16c01888fd25904e76bf9f7e3970

commit 65f3d49cf75e4496e4420fef4c0537f9f43f35f3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Dec 13 07:45:12 2016 -0600

    Add new attributes to floating ips
    
    There are four attributes that show up by default in devstack installs.
    They come from the timestamp and standard attributes extensions, so it's
    possible they may not always be present. But we can make them always be
    present.
    
    Change-Id: I1a05ef735c24600821856c6ec36df11e981b3d36

commit ecce72199a8c9f0f333715419d572444d5b9fc90
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Dec 12 11:09:04 2016 -0600

    Add test to trap for missing services
    
    Recently when there was an issue with the magnum devstack plugin causing
    the shade gate to not have swift, we didn't notice except through the
    ansible tests. That's because we have a bunch of has_service checks in
    the tests themselves to deal with different configs. Unfortunately, that
    makes it easy to fail open.
    
    Put in a test, along with changes to devstack-gate jobs, to throw errors
    if services do not show up that should.
    
    Depends-On: I2433c7bced6c8ca785634056de45ddf624031509
    Change-Id: I16f477c405583b315fff24929d6c7b2ca4f2eae3

commit a868c0a81bc687fc4c3be8ddade2fe8ac4aec47e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Dec 9 11:39:14 2016 -0600

    Change fixtures to use https
    
    It's not REAL traffic, but shade upgrades connections to https in some
    places where half of the config erroneously shows http, so it's good to
    have the fixtures look correct.
    
    Change-Id: I4f47981fd114cc0bd622338174f764b374fc4047

commit 766297d010f5631c241e770b94ddff07b23538de
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Dec 9 11:28:08 2016 -0600

    Honor image_api_version when doing version discovery
    
    We want to grab the latest version available - unless the user has
    configured themselves to request a previous version. Enter Cloud Suite
    is an example of a cloud that has v2 but v1 must be used for uploads.
    
    Change-Id: I1603fd567a59b5c123ab2f84c7a9571381245e97

commit 51598130b6d56f5f371d9725b6fdd9283baf759a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Dec 8 18:42:27 2016 -0600

    Replace swift capabilities call with REST
    
    This is the first step of removing swiftclient.
    
    Change-Id: I50dd5d262d8ecea02e49aeef087a13fde9604502

commit bef38e438d6c4819ffb6058d161b5a694d7e7135
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Dec 6 17:56:13 2016 -0600

    Change register_uri to use the per-method calls
    
    Turns out register_uri('GET', *) can be written get(*). Let's have that
    be our pattern.
    
    Change-Id: Ifbe18ac398f717c8ee8d3e8d284283fb2c4b2d11

commit 06ea154ec5947611865b851a8f4f5a4e4d308222
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Dec 6 13:21:27 2016 -0600

    Convert test_create_image_put_v2 to requests_mock
    
    Also, add a test for listing an empty list of images as well as to make
    sure that an image dict gets propertly normalized when it comes through
    in the request payload.
    
    There are likely some more things we can/should assert in the request
    history objects.
    
    Co-Authored-By: Jamie Lennox <jamielennox at gmail.com>
    Change-Id: Iede134002cb75cb382d07b32115d56fc50a656c6

commit bd545ceea138f03e7347ef95efae06713fba8805
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Dec 6 12:16:19 2016 -0600

    Remove caching config from test_image
    
    The caching config isn't the actual config we need. Remove it so that
    the refactor can be cleaner.
    
    Change-Id: I6bbc17d78e49c98394e8f391192c2dbc35889ae8

commit 9de5c7806bf54ef8dcf70c0dfa6c31ea33b3d210
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Dec 6 12:05:35 2016 -0600

    Move image tests from caching to image test file
    
    There are literally no changes to these tests. They are moved because
    they are testing image code, not caching code. Next will come
    refactoring them to use requests_mock instead of mocking the
    _image_client itself.
    
    Change-Id: I749db302f1612a01c726224a68193add1472b5cb

commit 24acc1888bff40fed9d51dcb2a876023cdcd1a96
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Oct 11 19:09:19 2016 -0400

    Remove glanceclient and warlock from shade
    
    We've removed the uses - remove both from requirements.
    
    Change-Id: Ie3f2354d2034a695ae9086f84f5d6c7f3698d90b

commit dd25a3c41603ce254bb1ba1e81e6f43b33cf6eb8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 10 10:03:10 2016 -0400

    Remove a few glance client mocks we missed
    
    Change-Id: Id4b5bc89e8829b3aebe67053b16c49abc60248c6

commit 790d8d8a82435994991bb7e9b6213cc3cc38029d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Oct 11 19:05:54 2016 -0400

    Change image update to REST
    
    Change-Id: I036611df202c4c063db01fca27e10a3437bc5799

commit ec2d0c20d1b02cf82c407874ef697120fd2c0049
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Dec 12 09:04:56 2016 -0600

    Make available_floating_ips use normalized keys
    
    We have an api we commit to - we should use it interally. Otherwise, if
    someone provides strict=True, functionality will fail.
    
    Change-Id: Iafc7c34df991775f22ebe8cfc845f1f974c079d7

commit 0b47f865a7030e31c5314c7cb69aa8402c5265c4
Author: Alvaro Aleman <alv2412 at googlemail.com>
Date:   Sun Dec 11 16:18:17 2016 +0100

    Fix _neutron_available_floating_ips filtering
    
    Change-Id: Ibc5a730fca5a8049fd54279c0d6ced026dd90e1d
    Task: 3426
    Story: 2000829

commit e6691dddc4aaf20bbddb0b704218cc26d09a8d6a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Dec 9 12:20:52 2016 -0600

    Stop telling users to check logs
    
    End users do not have access to operator service logs. If there is a
    problem creating a volume or a volume backup, telling them to check the
    logs is just rude.
    
    Change-Id: I16aeb4be16c1f43e19f24dc4dc935958a7523b9c

commit 37adf27494cf6fc014f1a1d44af1ed3ff3e67e61
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Dec 6 09:56:59 2016 -0600

    Plumb nat_destination through for ip_pool case
    
    Currently, if ip_pool is provided to add_ips_to_server, nat_destination
    is not passed along to the things that need it. Fix that. Also, while
    in that, pass server to create_floating_ip so that the better neutron
    FIP creation routine gets used.
    
    Story: #2000820
    Change-Id: I32fd485cb7e7064eaae35578a3643100ee85a096

commit acef8451b385b3b656915cade46e298851b6c527
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Oct 11 09:28:51 2016 -0400

    Update image downloads to use direct REST
    
    Change-Id: Ie936fa80a961a427f86f39e498cb631ffbbc73e4

commit 7fc5e7bf1b3b886f5c1ab4263eaae536ac883ae2
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 10 10:00:53 2016 -0400

    Move image tasks to REST
    
    Change-Id: I034f48ec3814af8bcf967cc41f53e3b180283739

commit d8b26c3f5952efe6f5d272dc816fa7fcd53b11d0
Author: Arie <abregman at redhat.com>
Date:   Wed Nov 9 00:43:39 2016 +0200

    Add support for limits
    
    Allow to get the limits of your project/tenant.
    
    Change-Id: I115b2fad354a4319aece33a13b4dfdc204e4c5fb

commit fa4e1bd21db4bee2a0ee779067cdd659e647d7fc
Author: Paulo Matias <matias at ufscar.br>
Date:   Wed Dec 7 18:07:37 2016 -0200

    Fix interface_key for identity clients
    
    Change-Id: I83870e8b3ee6dc7fdbb6e9d67075cc4c08646e4e
    Closes-Bug: #1648212

commit 5a54765cb516e5c882c84e62efad9e5f960dad81
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Wed Dec 7 12:28:26 2016 +0100

    Tox: optimize the `docs` target
    
    No need to install runtime dependencies nor to actually install
    Shade in order to generate the documentation. So just don't.
    
    This speeds up a bit the doc generation.
    
    Change-Id: I2264cfbcb53171b345e1a923111c48d2d063f757

commit 892abf03e226ee87d77bf7504fc20b37c3e7cee9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Oct 9 18:24:10 2016 -0400

    Replace Image Create/Delete v2 PUT with REST calls
    
    Also, add tests to show the delete-if-failed-upload logic works.
    
    Also, if we can't find a top-level resource in the json output, just
    return the entire dict rather than throwing an exception, due to glance
    PUT returning a bare dict.
    
    Change-Id: I48fe434fe027f6a09588cc3aeeada2e83508f129

commit 29be502d23feb829f1dec24e67924ed84666c7e8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Oct 9 14:43:17 2016 -0400

    Replace Image Creation v1 with direct REST calls
    
    Listing/getting images is done. Tackle uploading the darned things.
    
    Change-Id: Ia1e7fa57ef6af1213dce772b5dc06e72ca8488fe

commit 661393736462e05d74fdddf1b26119201884539b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Dec 3 10:03:51 2016 -0600

    Remove test of having a thundering herd
    
    The important test is the following one, which tests that we prevent
    thundering herds. The test that we _have_ one is subject to a race
    condition where the mocks execute so quickly that we don't herd even
    without the protection. But that's ok - it's ok for a herd to
    accidentally not happen. So remove the test which is just false-negative
    noise.
    
    Change-Id: I10c418a2c4ba2d8d1b0b3a22516bff2a688555a7

commit 68456a1a1adda288031b11a38f566dae820e3b50
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Dec 1 17:01:45 2016 -0600

    Pull service_type directly off of the Adapter
    
    endpoint_filter is going to be empty if we pass in an endpoint override
    like we do for glance.
    
    Change-Id: I1899c253bba11628656e82c96ce7b0629af465d1

commit 633720cb9473d40795dfb5167a52f7aacddcf93b
Author: Arie <abregman at redhat.com>
Date:   Fri Nov 4 19:20:59 2016 +0200

    Add compute usage support
    
    Add the capability to get resources usage
    for a project.
    
    Change-Id: I9a6bf7edf868d6ad7d587324ec985a6e4e669f23

commit 93191ebe9b58b085cb1fde2040e450bcc2ab5ccb
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Nov 29 08:36:03 2016 -0600

    Re-add metadata to image in non-strict mode
    
    In the old shade normalization we always made sure that properties
    showed up in a field called metadata. When we reworked the normalization
    recently, we missed that field. Add it back.
    
    Change-Id: Ic39679d30b49d461feaed81ff162f3e8f4a694ac

commit 3008683d614b62a87057d6dd510716291ba407cb
Author: Flavio Percoco <flaper87 at gmail.com>
Date:   Fri Nov 25 10:55:46 2016 +0100

    Show team and repo badges on README
    
    This patch adds the team's and repository's badges to the README file.
    The motivation behind this is to communicate the project status and
    features at first glance.
    
    For more information about this effort, please read this email thread:
    
    http://lists.openstack.org/pipermail/openstack-dev/2016-October/105562.html
    
    To see an example of how this would look like check:
    
    https://gist.github.com/0bed66f234ed59d0c6e2aa220e709950
    
    Change-Id: I80c57e310b601d47be5b5f81c604d7d6310a60eb

commit 5b301ce95e480796469325123e25eae3cb1b4bb6
Author: Hoolio Wobbits <hooliowobbits at gmail.com>
Date:   Tue Nov 22 05:09:37 2016 +0000

    Added documentation for delete_image()
    
    Change-Id: I5a89b9b5906f00970ae6f87a28bdca1b021b58e1

commit f7f4bd7e0efbfcb74788f9edf51491649f03fa65
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Nov 21 18:54:03 2016 -0500

    Add an e to the word therefore
    
    Change-Id: I4d579e44b350f3276591c51f9d05a03b8c52a0da

commit cb281e2a6c0c36209010bf31ce15016d362d3bba
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Nov 21 18:37:40 2016 -0500

    Allow server to be snapshot to be name, id or dict
    
    In documenting this method, it became clear we weren't telling people
    what value server should have. Our tests made it look like it could be a
    server name - but in fact it could actually only be a server dict or a
    server id.
    
    Make it explicitly all three, and fix the tests to not test their own
    mocks. Or, if not actually fix them, at least make their examples not
    blatantly wrong.
    
    Change-Id: I64361a7a26cfa5137f9e862624fe379219f1cbb1

commit 27a55272136da70b5491747bf0f437a210a296d0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Nov 21 18:20:40 2016 -0500

    Add docstring for create_image_snapshot
    
    Turns out things aren't in the docs if we don't document them.
    
    Change-Id: Id1a829f677c8460a7e82c51641cd181a04ed17c7

commit f0a50a6220cde3ecc4494429a2b6891f7ac1ad77
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Nov 17 17:07:17 2016 -0600

    Allow security_groups to be a scalar
    
    novaclient requires a list. If a user does not provide a list, wrap
    their value in a list for them. Otherwise nova tries to treat the string
    as a list which, you know, doens't work.
    
    Change-Id: Iadbf81c23a87a4e2fa32616b0737b2cfc67e9718

commit 48c5322ab07b8b64529e933c08a470936c7d6405
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Nov 16 12:09:34 2016 -0600

    Remove stray debugging line
    
    Change-Id: I3b8b21f79489cf0b5b921b06a520fe94bca26636

commit 8025c63e117720bde7bd5275dac7d89c96d42d7d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Oct 11 21:13:28 2016 -0500

    Start using requests-mock for REST unit tests
    
    Mocking out the whole client is the wrong level. Although we'd still
    like to betamax the functional tests - as we put in REST calls, let's
    make the mocking of them happen at the requests level so that we test as
    much of shade as we can.
    
    Nobody look at the v2 keystone catalog. The existing clouds.yaml entry
    was for a v2 cloud and I wanted to keep the patch contained to the task
    at hand. We should likely do some crazy testscenarios magic at some
    point to make sure _all_ the things work with both v2 and v3.
    
    Change-Id: Ife4d95df5417d329195c737814e89d1370a0597b

commit 788932633e3a1d91982dcb9f0c63c4142d92990f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 24 04:22:08 2016 +0200

    Have OpenStackHTTPError inherit from HTTPError
    
    We need to have the exceptions we emit be OpenStackCloudException
    exceptions, because backwards compat. However, sometimes directly
    dealing with the HTTPError from requests is also a cool thing, since it
    has a set of information attached to it.
    
    Make OpenStackHTTPError multi-inherit from both of them, so that users
    can catch either base exception, and also so that they can get both
    behavior types.
    
    Change-Id: I0243019991fb635302921dc1feb9be5ef6369c67

commit 2a6ae13257e78b2b5c402151c164b525131a4425
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Oct 8 10:27:52 2016 -0500

    Use REST for listing images
    
    Finally, the long awaited beginning of the removal of the client
    libraries is upon us. Marvel in the wonder that is just making direct
    REST calls. Allow yourself to be excited that soon we'll lose the
    dependency on warlock.
    
    Change-Id: I9d9f3b4762f9f61c5f325f9e47ea09a1261b02b3

commit 873ad6e84d52016402901fe6b6eda823d66b0e3c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Oct 7 12:35:10 2016 -0400

    Create and use a Adapter wrapper for REST in TaskManager
    
    Adding a TaskManager aware wrapper around Adapter gets us a natural
    interface for migrating one call at a time away from python-*client and
    to direct REST calls. The Adapter shares the Session with the clients,
    but it returns munches and throws exceptions that match the exceptions
    we're expecting outside of shade.
    
    Also, move compute_client calls out of their own tasks
    
    Putting compute_client calls in a Task will cause them to be doubly
    enqueued. This has to be combined with this patch because otherwise the
    double-invocation fails functional tests.
    
    Change-Id: If2d42af5fde1334b3b99ec3a9bbade38b19adbee

commit 697da6fd4e90277d5291b956e04674e7e5ded11f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Nov 13 11:25:50 2016 -0600

    Normalize volumes
    
    We had a normalization function in _utils but it was nor documented nor
    did it support strict mode. Document the normalization and  be more explicit
    about which things we support and don't.
    
    Change-Id: I360af3abcfd69afebd941c5d6e359a84dc956283

commit 89cea034fcf0ebb26d74b709ffb68eabdd1130fa
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Nov 15 07:46:35 2016 -0600

    Expose visibility on images
    
    Visibility can be public, private and shared - and community is coming
    in O1. Make sure that we don't lose that information in our
    normalization.
    
    Change-Id: I148547e3026fe155c911d9a51cb51d8901c83650

commit ccf8db106357ac83c2add6ab8ba316a388f2d869
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Nov 14 11:58:53 2016 -0600

    Be specific about protected being bool
    
    Protected needs to be bool - but other values need to get cast to
    string. There's no good way other than enumerating them like we did for
    the other values.
    
    There are two ways to pass in user-defined settings - via the meta param
    which does not get cast to anything else and assumes the values are in
    the correct type, and **kwargs which does its best to cast.
    
    We know about protected. We can add others if needed (although the
    glance docs do not list any other boolean values)
    
    Change-Id: Ib75246441e54d675987a18b890ce847043e7a80f

commit 3394e23b41af6d736f958a6b56d676e6d904a6aa
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Nov 14 13:28:10 2016 -0600

    Remove pointless and fragile unittest
    
    There is a change in OCC that does some weird things for unittests. It's
    not a production issue. However, this pointless test doesn't mock out
    things it _should_, so it breaks with incomplete auth information.
    Removing it makes the world a better place.
    
    Change-Id: I919c62b6de05f9fe92a5cdb7c3fa77ffd40d5cfc

commit e2a593d917533424c6de39774afb8566d4f81db2
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Nov 14 13:22:49 2016 -0600

    Revert "Remove validate_auth_ksc"
    
    This reverts commit 1f9e2cd123b38a7e744fb8a784d0ee3b523de95e.
    
    Sad as this makes me, let's revert and come back to it when we figure
    out the cliff thing.
    
    Change-Id: I0413d5e3b3d8652833a8e7942ba81926787ba3bf

commit 1f9e2cd123b38a7e744fb8a784d0ee3b523de95e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Sep 1 13:26:00 2016 -0500

    Remove validate_auth_ksc
    
    This was a workaround for python-openstackclient back when it was still
    dependent on keystoneclient. OSC has its own workaround now, so this
    should no longer be needed.
    
    Change-Id: Ib1877b7978b7b016b394232235e887360b6bdf85

commit 42bd7d994f9015031526d3e2b5338df2969f6b9f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Nov 10 11:27:33 2016 -0600

    Fail up to date check on one out of sync value
    
    Make sure that if a checksum is given, it is valid.
    
    Change-Id: Iad4a94c45f7e96800c34f1309f186aecfbe53776

commit 2bf2729bfc3c2f001785c6a921c5a6d3ecceec1e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Nov 10 10:08:12 2016 -0600

    Normalize projects
    
    We were returning projects un-normalized. That's no good for anybody.
    
    Add normalization and documentation of the agreed model.
    
    It's worth noting that because it's a project, information about project
    and domain in the location dict is a bit more specific.
    
    Change-Id: I3bbfd010883587857cf09f082124816e701fbe6f

commit 6d9552e535d33b26e6b21189e1109ca6af6f2683
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Nov 10 11:20:12 2016 -0600

    Cache file checksums by filename and mtime
    
    The current cache only does by filename. An image could change out from
    under a long-running shade process - so include mtime in the cache key.
    
    Change-Id: Ibe649355fa123727b7b61af478e198a22b56aaae

commit f5c37ffcd4aa32da88a9afdb576d9773ea1bbfbf
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Nov 10 11:08:36 2016 -0600

    Only generate checksums if neither is given
    
    A single checksum is sufficient for unique checking if given by the
    user. If the user gives no checksums, then we might as well do both
    since we're doing it in one pass.
    
    Change-Id: Ic589d5771b6f54e6f03d4612b8e7c5a4be6bbc36

commit 73e39a5dd1c3d3276e355f2542e3e2b3a488e323
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Nov 9 17:16:54 2016 -0600

    Make search_projects a special case of list_projects
    
    As the first step in aligning list and search, make list_projects have
    all the things and search just be an alias. In this case, there were
    some positional arguments already in place, so it can't be a 100%
    straight alias - but it can at least only have one set of logic.
    
    As part of this, added some infrastructure for dealing with filter logic
    and pushdown conditions.
    
    Change-Id: Iff349ff26e59c9ae8022e3ee8f0987197b0eccc4

commit b175fe9feca1eaf215f7d7d234206aebfc251f09
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Nov 9 12:54:54 2016 -0600

    Make a private method more privater
    
    This is not actually necessary - but I'm about to do a few things with a
    regex and this kept tripping up the regex. Might as well 'fix' it.
    
    Change-Id: If48295bb552dcbe725c13d14467afad2ff99757b

commit 071fb5fa8a17fe82107d38c2ec8418686a42289c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Nov 1 07:10:55 2016 -0500

    Add unit test to show herd protection in action
    
    The discussion around the previous patch had a simple test case which
    was used to show invalid and valid behavior. Turns out, that can be a
    test.
    
    Change-Id: I39550d44f4e83f803624a833a081101bad9dc545

commit 6bc9e82c8082838d3a0517d252b471a452585340
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Nov 7 14:18:57 2016 -0600

    Refactor out the fallback-to-router logic
    
    The same chunk of logic for looking at external networks then falling
    back to neutron router investigation happened in three places. Split it
    into its own method to reduce duplication.
    
    Change-Id: I154c6172e2f8d710b3fe2bea6b6fe7f4c66d3441

commit d02bd2c0d3b44602bac54828ca30e863b4e6fd19
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Oct 22 10:36:29 2016 -0500

    Update floating ip polling to account for DOWN status
    
    The DT cloud transitions floating ips through the DOWN state as part of
    normal operation. Don't ask me why. Put the check for port's not
    matching after waiting for ACTIVE state to be hit, rather than before.
    Also, don't throw an exception if the fip goes into DOWN while deleting.
    Finally, skip adding floating ip info to a server from neutron if the
    server is not in ACTIVE state, as a server is not expected to have valid
    addresses when it's not in that state anyway.
    
    Change-Id: I3020f31783f8d24cbd91942961a7c7868b51698d

commit f22af7f1b2e92d71477eabdbcbaa60905438a298
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Oct 20 16:03:56 2016 -0500

    Use floating-ip-by-router
    
    First of all - the method needs to be named by_router, not by_subnet. No
    clue what happened there. Secondly, there are several places it needs to
    be referenced. Third, there are are few bugs in the original impl that
    were discovered while running code against the DT cloud.
    
    Change-Id: Ib9256a9b7bd8ebdb56f1e5048e0aaf059e878b9c

commit 6996f2329e9e0d1b3b8c090b64df8737b1495ba4
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 19 07:53:49 2016 -0500

    Don't fail on trying to delete non-existant images
    
    This currently throws an attribute exception, which is definitely not
    the right choice.
    
    Change-Id: I2e08ce9f46f4fa8ec1d42508efb16a014d485850

commit 958f97255289763b910c37307933cbe57fd484ba
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Fri Nov 4 18:59:33 2016 +0100

    Allow server-side filtering of Neutron floating IPs
    
    Neutron API allows to filter floating IPs based on some fields. This
    enables server-side (efficient) filtering that Shade should leverage
    when it can.
    
    Unfortunately Nova-net (which is deprecated) doesn't support server-side
    filtering when it comes to FIP, so we have to distinguish the two at
    several places.
    
    This patch also updates the `search_floating_ips` method to use
    server-side filtering when appropriate.
    
    Change-Id: I28c960091c1679ca588c0cfb3bed1881cd6b03d2

commit 9f47acc0cd0c69888b1a3d98b98fcf1a88c248a5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Nov 5 10:26:32 2016 -0500

    Add fuga.io to vendors
    
    Change-Id: I1704b6e26a3c56b519544ad8ee6d3fd80a2a752a

commit ea5f8dd6a695b942d2e76045cec432a86f845e21
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Tue Oct 18 12:36:22 2016 +0200

    list_servers(): thread safety: never return bogus data.
    
    Shade has a caching mechanism which is good. It's okay to return stale
    data, that is, to return an "old view" of the resources. It's not okay
    to return an "impossible" set of data, a bogus view of the data.
    
    If two threads call list_severs() at the same time, the first will
    acquire a lock, and start the query to Nova. The second
    will try to acquire, lock is held, so it will return the cached server
    list, which initially is '[]'. But there could be some servers, we
    just don't know at that point.
    
    In that case, we should block to acquire the lock, instead of return
    an invalid view of the list of servers.
    
    How to repro (Python3)
    1) Create a couple of Nova servers
    2) Run
    import os_client_config, shade, concurrent.futures
    
    cloud = os_client_config.make_shade(cloud='devstack')
    with concurrent.futures.ThreadPoolExecutor(4) as exec:
        for i in range(3):
            exec.submit(lambda: print(len(cloud.list_servers())))
    
    Change-Id: I32783d291c5d3d13b2fe86cd876931e25f8c4879

commit 6115b001c7d092a1983daaeb9ab3048fdf5443c5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Nov 1 17:01:25 2016 -0500

    Depend on normalization in list_flavors
    
    We have a logic case in list_flavors that is easier to understand if the
    normalization is applied first. So apply it first.
    
    Change-Id: I27580ff202f71c35dd8099902411fabad005a955

commit 1f1f5ffc04d1a54217bdf9a56a4f3437ccba7880
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Nov 1 16:16:46 2016 -0500

    Add unit tests for image and flavor normalization
    
    Also, while we're at it - it turns out we were NOT doing normalization
    in any meaningful way on nova-based images. This is ok - I am completely
    unaware of any clouds that do not expose the glance API any more. But we
    should fix it.
    
    Change-Id: I4a87bb9b83fcf12ad25ec211c5d13fcf34432793

commit fa80a51d0f64efc14b33409552d4231ddb244d30
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Oct 18 06:48:19 2016 -0500

    Add strict mode for trimming out non-API data
    
    shade defaults to returning everything under the sun in every form
    possible in order to ensure maximum backwards compatability - even with
    systems that are not shade itself. However, passthrough fields from
    somewhere else could change at any time. This patch adds an opt-in flag
    that skips returning passthrough fields anywhere other than the
    properties dict.
    
    Change-Id: I7071a406965ed373e77f9592eb76975400cb426b

commit dd0ee8eb31d3ceba52cd073e23f2ba9f64213a96
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Mon Oct 31 15:10:58 2016 +0100

    list_security_groups: enable server-side filtering
    
    For instance, this allows to:
      * With Nova, list all security-groups, for all tenants
      * With Neutron, filter security-groups to a specific project.
    
    And much more (basically all filtering that Nova or Neutron allows).
    
    (Also, this review removes 2 useless setUp methods. Not related
    to this commit, but it's trivial and let's save some white bears)
    
    Change-Id: I3cc5de57d780c73faf252cdcb842e5cff08fee9b

commit e545865f8ff0ec4c9af239231ebba87e3e7592f0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 19 15:08:00 2016 -0500

    Don't fail image create on failure of cleanup
    
    The failure that caused us to run a cleanup delete is the thing we
    actually care about reporting. If the cleanup has an error, shrug and
    move on to reporting the creation error.
    
    Change-Id: If3956188214b2f627b14e4d820cf27c3080fd4dd

commit f0e9a42ac06ba682ae38bbd40ecd5bdf42f08c7c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 24 05:20:49 2016 +0200

    Try to return working IP if we get more than one
    
    Rather than just returning the first one - if we have multiple choice,
    take a quick stab at picking one if one works and one does not.
    
    Change-Id: Ie517af9c10a2a1384f670dca5526f2b919458279

commit b5d65b74f60ce743b03b49a6c176700d658cfe98
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 24 05:40:32 2016 +0200

    Support token_endpoint as an auth_type
    
    For backwards compat with what operators have been trained to do, map
    token_endpoint to admin_token for them. This has shown up a few times in
    the wild. Most recently:
    
    https://github.com/ansible/ansible-modules-core/issues/5250
    
    Change-Id: Ie083381e7fda19e016b6425939bd3c2dc260fa9b

commit c1129ea64fd8874c49828ce49ef543c006d84431
Author: Matthew Wagoner <mwagone at us.ibm.com>
Date:   Sun Oct 23 00:22:05 2016 -0400

    Add test for os_keystone_role Ansible module
    
    Change-Id: I86b18e894e750e7a7d9860d5b590c7c952722606

commit 4dad7b2e693f02da2fe9f1dc64af51b3c4f891dc
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 17 11:19:04 2016 -0500

    Document and be more explicit in normalization
    
    Put extra keys in both the root resource and in a properties dict.
    
    Ensure data types are correct. Make sure int, float and bool values
    are returned as int and bool.
    
    Change disabled in flavor to is_disabled for consistency with other
    bools we've added. There has been no release with the addition of disabled,
    so changing it now is still safe.
    
    Add locations and direct_url to images. They're optional in glance, but
    that's evil.
    
    Let image schema attribute fall through to extra properties.
    
    Add zone to current_location.
    
    Add readable mappings for power_state, task_state, vm_state, launched_at
    and terminated_at for Servers. Also add a non-camel-cased host_id.
    
    This is a big patch, but it's mostly just reorganizing and adding docs.
    Looking at the changes to the tests and seeing that the only change is
    adding zone and properties into a couple of fixtures is a good place to
    start.
    
    Change-Id: If5674c049c8dd85ca0b3483b7c2dc82b9e139bd6

commit 3f525e01798b433732139a9bff88d9360613cd71
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Oct 20 08:41:18 2016 -0500

    Add support for volumev3 service type
    
    Words cannot begin to adequately express the disappointment and rage I
    felt upon learning that the cinder team had unleashed 'volumev3' upon
    the world. Woe betide us, the mere users, for wanting to use a 'volume'
    endpoint and have that choice mean something. Perhaps if we beat
    ourselves with leather straps while crawling for days across the country
    we can remove more joy from our lives. In the meantime, until we can
    fully appreciate the existential crisis of being, let's continue to work
    around it in os-client-config.
    
    Change-Id: I171e3b01497b3e3a06c3a73577f0f67e0c1e6f73

commit 86ade8f5281d2bb8b7c1637436aa8cb0c7cddb98
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Fri Oct 21 12:16:51 2016 +0200

    Normalize cloud config before osc-lib call
    
    Cloud config was passed to osc-lib before being normalized,
    causing exceptions when some api versions were stil an int
    where osc-lib expects a str
    
    Change-Id: I7326114d86a4208f1489c302e8bb838dd5b8c5d6

commit 1ac6766537f6ac8f2b1c22ac726a2fb8ad9ce6dd
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Sep 8 16:10:16 2016 -0500

    Fix a bunch of tests
    
    There is a bug in validate_auth that gets hidden by validate_auth_ksc.
    These tests are the test fixes for it.
    
    Change-Id: I80d558a1c794725ba2a87fbd87bf8fbdf6633bee

commit 422ad9ccdb8b08a223af78a1d1f48df703dd1a9d
Author: Cedric Brandily <zzelle at gmail.com>
Date:   Tue Oct 18 22:20:00 2016 +0200

    Clarify how to set SSL settings
    
    This change adds an example in order to clarif how to SSL settings in
    configuration files.
    
    Change-Id: Id047f21d0a51752f46b16e3f4efbfec62cfbd5fb

commit e03f54ada63ff80ca7ef5ca77bad96513e5962ae
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Fri Oct 14 13:47:46 2016 +0200

    Add external_ipv4_floating_networks
    
    Those network not properly tagged as external, even if the
    provider is "physical_network" shouldn't be part of the list of
    external networks. When shade tries to get a floating ip, made
    use of this list, but neutron will fail if the network is not
    configured as "router:external = True"
    
    Change-Id: I2daa02805659ee2510a9203227d662161e60d51d

commit 49f1f191df9c95972189ec9eaaa508ff78c98266
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Thu Oct 20 12:01:52 2016 +0200

    Logging: avoid string interpolation when not needed
    
    Call to `format` or '%' (basically all string formating) can be
    expensive and if someone is not interested in the logs produced
    by shade (log_level set to error or higher) can be avoided.
    
    Note: this change is a bit risky given the low unit test coverage.
    But the longer we wait the harder this change will be.
    
    Change-Id: I171f4ee08e5978c7b6e3853ed4ee533682c2ffe6

commit 0986a623b7603cc85dd10d1f6a575e6bb165e651
Author: Jamie Lennox <jamielennox at gmail.com>
Date:   Thu Oct 20 12:56:31 2016 +1100

    Add a devstack plugin for shade
    
    Install shade with devstack. This is really simple because there's not
    really any configuration needed.
    
    Change-Id: Ic5962bfb0e25d592d50458f32a21ac612479447c

commit ecb317d6108b12643b126a9f6e1338284ae4f610
Author: Jamie Lennox <jamielennox at gmail.com>
Date:   Thu Oct 20 12:57:31 2016 +1100

    Allow setting env variables for functional options
    
    The shade functional tests are hardcoded to use the cloud configuration
    that is typically provided by devstack. It turns out that shade
    functional tests are a useful way to quickly test that a cloud is up and
    configured.
    
    Allow providing new values for flavor, image and cloud variables so that
    the functional tests can be run on a non-devstack cloud.
    
    Change-Id: I90ab125be77091eaf16ae16e47f4336d4ef49880

commit 47068d0abbb1018e238213af30cf7840bb2104d9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 19 16:17:38 2016 -0500

    Update ECS image_api_version to 1
    
    Turns out they don't run v2.
    
    Change-Id: Icd503f2b035400fbb39903b3fe2542ec14b86e93

commit 29e62e7ae25d160726ae841830f988f93c25b468
Author: Matthew Wagoner <mwagone at us.ibm.com>
Date:   Wed Oct 19 09:20:26 2016 -0400

    Add test for os_keystone_domain Ansible module
    
    Change-Id: I2116de5f74c9f0fc9d08ae56fba14ea48f850167

commit 9986646a131cf618476d24be18ab22f0da9de926
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 19 07:50:56 2016 -0500

    Add abililty to find floating IP network by subnet
    
    If the cloud has a hidden public network but a visible router, it's not
    possible to infer network info from metadata, but it is possible to know
    that the network that the floating IP should be requested on is the one
    that is in the router's external_gateway_info field.
    
    Wrap the search in local caching and a lock to prevernt thundering herd.
    It's not a thing that will need to be inferred more than once, but has
    the potential to be hit on every server creation for clouds that need
    this.
    
    Change-Id: Ic98b6059e0ca5d0f1c8e6db16cc89a352c6fbbbd

commit 57f9ac9ab70f39a787e6cf6dc4cda8b9b6d89c14
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Wed Oct 19 12:39:34 2016 +0200

    Remove useless mocking in tests/unit/test_shade.py
    
    It only makes the tests run slower and it's confusing.
    
    Change-Id: I1b4b92ddecf74648727759d4e60fc030a5c5e167

commit 261313ead974f8c48195498fe649208cff883a1d
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Wed Oct 19 11:24:35 2016 +0200

    Fix TypeError in list_router_interfaces
    
    It turns out, you can have a router object with a 'external_gateway_info'
    key that is set to None. In that case, list_router_interfaces fail with
    
      File "../shade/openstackcloud.py", line 2624, in list_router_interfaces
        'external_fixed_ips' in router['external_gateway_info']):
    TypeError: argument of type 'NoneType' is not iterable
    
    How to repro
    1) Create a router: neutron router-create foo
    2) Run
    import os_client_config, shade
    
    cloud = os_client_config.make_shade(cloud='devstack')
    router = cloud.get_router('foo')
    cloud.list_router_interfaces(router, 'external')
    
    Change-Id: I4c2894355958a7142670e186e7932048d66cfd59

commit 78e999776a78496874ccead05b91519581d0e0ed
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 17 09:47:20 2016 -0500

    Merge nova and neutron normalize methods
    
    In keeping with the other normalize methods, combine these two into a
    single normalize method.
    
    Removed a unittest that did literally nothing but was mocking out things
    at a crazy level. Remind me that we should REALLY stop mocking out
    anything other than the requests calls.
    
    Depends-On: I59e9834d249ccda0beeb715a8d6271140fb144f4
    Change-Id: I077f9d8c4d250d180dec9ce4aabc8f64b507b05f

commit 9acef32eeea34be91b2d25e85a752d3e30b06001
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Fri Oct 14 18:11:50 2016 +0200

    Fix a NameError exc in operatorcloud.py
    
    novaclient was not defined in this file. Only nova_exceptions is.
    
    Also add some unit tests.
    
    Change-Id: Id533e302ecace6316746e37f24d207319cdc1eca

commit 0087da59b2ad7e3ff1b2df3a96549461cf8fb31e
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Fri Oct 14 17:59:51 2016 +0200

    Fix some docstrings
    
    * Correct typos
    * Correct parameter name
    * Use """ over ''' consistently
    
    Change-Id: Icf9c7976be1b01a61ec3abb1d6ba7991f85f6410

commit acac3b986be738c5d3eb5f6a7b7bb736b72bba6c
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Fri Oct 14 17:08:10 2016 +0200

    Fix a NameError exception in _nat_destination_port
    
    Yeah, it was burried deep but still. Added a unit test just to
    quickly exercise this code path.
    
    Change-Id: Ibec3f24483214f8af514c8be512b7c3f3840b32e

commit 6806fcfbbe0e996d7d0a6ad82663c13821fdf77d
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Fri Oct 7 16:40:09 2016 +0200

    Implement create/get/list/delete volume backups
    
    Code should me mostly straightforward. Things are done for
    backups as they are done for snapshots.
    
    Change-Id: I450356274916e9abef80f270b8a15f94fac6692b

commit efdffe4676f0b479eee78201fcff088362fe2719
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Thu Oct 13 12:44:40 2016 +0200

    Move normalize_neutron_floating_ips to _normalize
    
    Also return location, project_id and tenant_id properties for each
    FIP. It helps when listing floating IPs as a cloud admin, IPs from
    all tenants are returned.
    
    Change-Id: Ie51f35451df620b250400378142ec23216113199

commit e27516fa1cb754062663b26c0ba58cd60e471d5b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Oct 13 17:13:45 2016 -0500

    Delete image if we timeout waiting for it to upload
    
    In other places where we have a timeout waiting for a resource creation,
    we delete the half-finished resource. Do the same here.
    
    Change-Id: I6503847a7cde39d3a624c6b0f9ffe9a6fa265a26

commit 6623be208dc009cd1667c7d5db0b9df89ea3a80f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 12 15:05:02 2016 -0500

    Revert "Split auth plugin loading into its own method"
    
    This reverts commit 8b7859e21e64027d20f158737bbf70bbe409b847.
    
    python-openstackclient has a subclass that defines this method with a
    different signature.
    
    Change-Id: Ie44f8efb6b93dc0d4754fb316ddb9087ce181275

commit bbc8816e70fb5e920852363460ceaa051ec774ae
Author: Ricardo Carrillo Cruz <ricardo.carrillo.cruz at hp.com>
Date:   Mon Oct 10 10:28:59 2016 +0000

    Add description field to create_user method
    
    Change-Id: I3444502c61de3931b0bd2623373be927682ceacb

commit d4301046c0ecd9eb5d62eeedcaa9c1a9a729737c
Author: Matt Fischer <matt at mattfischer.com>
Date:   Mon Oct 10 17:41:29 2016 -0600

    Allow boolean values to pass through to glance
    
    When uploading an image it is necessary to set flags such as
    protected=True. Currently the code blindly converts everything to a
    string leading to errors. This change will allow booleans to pass
    through unmolested.
    
    Change-Id: Ib0e230cf9c52500973ac2e7636f3dc607c1e8089

commit 4bad936afcfd3e9d29722e4b3badcebfa462c3d3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Oct 9 06:06:04 2016 -0500

    Update location info to include object owner
    
    Many OpenStack objects (but not all, grrr) return information about the
    project that owns the resource. When we add location info to an object
    record, that's the information we care about. Update current_location so
    that it wraps a private method that allows explicit passing in of a
    project_id to override the token's project_id. If the project_id and the
    token's project_id are the same, we can continue to pull out project and
    domain name information for readability.
    
    Change-Id: I2a7e6003a2b75894907f90c9ab94244a769a892f

commit 9e72995e218a594019265785ea600d82064987c3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 3 21:12:22 2016 -0500

    Move and fix security group normalization
    
    We've developed a different normalization pattern since we wrote the
    security group stuff. Also, it wasn't returning munches. Move it over to
    _normalize, add the tenant_id param to nova objects (sigh)
    
    Change-Id: I7a7c88034a78ec218f0f87a608fb67408a849d06

commit 7962efccef46b4bc3dcf223f845904891897d3e5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 3 20:11:48 2016 -0500

    Add location field to flavors
    
    Change-Id: I3273fe20154b4794513e6e012eeb4ced988daaf0

commit b30ff5538f6b8401f06edcbd524e7944c6870f89
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 3 20:07:06 2016 -0500

    Move normalize_flavors to _normalize
    
    Also, add a normalize_flavor - which makes two places of completely
    ridiculous looking code cease looking completely ridiculous.
    
    Change-Id: I196166a1526a01f12669ec1e5c1c4a497342fffc

commit 5171f7957bcacecde2c45f9ea81e2320294ba388
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 3 19:55:52 2016 -0500

    Move image normalize calls to _normalize
    
    Change-Id: I991bfef850f6f67c723c93e711afa91eecdde3c4

commit 7ed4740802e46323b00b3084ed44ad4f40746cb8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 3 17:09:58 2016 -0700

    Add location to server record
    
    Change-Id: Icbd8c2248ccd8e1b21cd46e7d291965a8ccec587

commit 7f0b1de2996e73585593d9b918b4e288af0e9d5a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 3 16:56:49 2016 -0700

    Start splitting normalize functions into a mixin
    
    As we add location information to all of the normalizers, we need to
    pass in info from the cloud object. Ultimately, that means they need
    access to cloud members, which means they're no longer really external
    functions.
    
    However, openstackcloud.py is super long as it is, so keep them in their
    own place by making a base class to shove them in to.
    
    Change-Id: I004e54fa26ea3745b96828100cb11dc5824416ac

commit 4c17e908e80727f096524e61accca2da4bd9bb4d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Sep 26 21:27:39 2016 -0500

    Make sure we're matching image status properly
    
    Image status is totes lower case. But we're totes matching upper. Like,
    srrsly.
    
    Change-Id: I2856671b8e08b3657d5f86102bae30b950da0921

commit 42e14bad843bc3efd2ca88a118f696459f648e80
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Sep 26 21:26:19 2016 -0500

    Normalize images
    
    We normalize a bunch of our objects now, but image support is so old we
    don't. It's also wonky and hand-picked between v1 and v2 as opposed to
    being both v1 and v2 like other objects that couldn't escape epic API
    breakage.
    
    Change-Id: Ie17b9888c8f5a33231c366abebb8b505fc9592e6

commit 05cfd3ba3fdce3b91db5bf8058c2c0a2261dc76c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Oct 2 11:20:32 2016 -0700

    Add helper properties to generate location info
    
    In a following patch we'll start adding locations to normalized dicts.
    But let's just put the properties here for now.
    
    Change-Id: Ibf448d80586a8b44d826678827967c30ddd444b6

commit 9e2004be030ad62a68d63fc9f17dffee62f065d6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Oct 8 10:54:53 2016 -0500

    Update simple_logging to not not log request ids by default
    
    Change-Id: Ieb64f3ed8e359b6af9da3af537e164f3211e31d6

commit 1653120803e76cf02c2f35d3bdb67e6bb1848817
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Oct 7 11:35:50 2016 -0400

    Add setter for session constructor
    
    shade needs to be able to attach an adapter wrapper to an already
    constructed CloudConfig object, so add a setter.
    
    Change-Id: I640859b5d78d17e3c99e8ec11f1418f275e4dea2

commit 8a8a218f090ea7bbb7ce1d3afc11d8f2fda06873
Author: Andreas Jaeger <aj at suse.com>
Date:   Thu Oct 6 20:41:15 2016 +0200

    Enable release notes translation
    
    Releasenote translation publishing is being prepared. 'locale_dirs'
    needs to be defined in conf.py to generate translated version of the
    release notes.
    
    Note that this repository might not get translated release notes - or
    no translations at all - but we add the entry here nevertheless to
    prepare for it.
    
    Change-Id: Ic34d4d11adf4aacd91a7fd682a6d15597004ff49

commit f484736b7d087115b8330ae794c101f7f8e7b926
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Thu Oct 6 16:00:46 2016 +0200

    cloud_config:get_session_endpoint: catch Keystone EndpointNotFound
    
    The docstring of the `get_session_endpoint` says ":returns: Endpoint
    for the service, or None if not found" but apparently the `None` part
    was forgotten.
    
    This leads to this kind of spectacular traceback where the exception
    bubles up (even through Shade):
    
    Traceback (most recent call last):
      File ".tox/run/bin/ospurge", line 11, in <module>
        load_entry_point('ospurge', 'console_scripts', 'ospurge')()
      File "/path/ospurge/main.py", line 154, in main
        for resource in resource_manager.list():
      File "/path/ospurge/resources/swift.py", line 15, in list
        for container in self.cloud.list_containers():
      File "/path/pkg/shade/openstackcloud.py", line 4909, in list_containers
        full_listing=full_listing))
      File "/path/pkg/shade/task_manager.py", line 244, in submit_task
        return task.wait(raw)
      File "/path/pkg/shade/task_manager.py", line 121, in wait
        super(Task, self).wait()
      File "/path/pkg/shade/task_manager.py", line 96, in wait
        self._traceback)
      File "/path/pkg/six.py", line 686, in reraise
        raise value
      File "/path/pkg/shade/task_manager.py", line 105, in run
        self.done(self.main(client))
      File "/path/pkg/shade/_tasks.py", line 549, in main
        return client.swift_client.get_account(**self.args)[1]
      File "/path/pkg/shade/openstackcloud.py", line 849, in swift_client
        'object-store', swiftclient.client.Connection)
      File "/path/pkg/shade/openstackcloud.py", line 343, in _get_client
        **kwargs)
      File "/path/pkg/os_client_config/cloud_config.py", line 301, in get_legacy_client
        return self._get_swift_client(client_class=client_class, **kwargs)
      File "/path/pkg/os_client_config/cloud_config.py", line 369, in _get_swift_client
        endpoint = self.get_session_endpoint(service_key='object-store')
      File "/path/pkg/os_client_config/cloud_config.py", line 253, in get_session_endpoint
        region_name=self.region)
      File "/path/pkg/keystoneauth1/session.py", line 765, in get_endpoint
        return auth.get_endpoint(self, **kwargs)
      File "/path/pkg/keystoneauth1/identity/base.py", line 216, in get_endpoint
        service_name=service_name)
      File "/path/pkg/positional/__init__.py", line 101, in inner
        return wrapped(*args, **kwargs)
      File "/path/pkg/keystoneauth1/access/service_catalog.py", line 228, in url_for
        raise exceptions.EndpointNotFound(msg)
    keystoneauth1.exceptions.catalog.EndpointNotFound: public endpoint for
    object-store service in RegionOne region not found
    
    Change-Id: Idbf5081117bb0a13d04a1a5cb9fd7682baaf04e5

commit 30039f04109efa2263aba6eb302a29bd8d5e8f53
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Sep 26 14:14:15 2016 -0500

    Add simple field for disabled flavors
    
    When we were equalizing out the old silly names from the new pretty
    ones, we missed disabled.
    
    Change-Id: I4cbf5f7c27f640c566460c18951ab9030aae84e4
    Depends-On: I523e0ab6e376f5ff6205b1cc1748aa6d546919cb

commit db4bace4745953cffd894640d335e095f4d7b3cc
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Tue Oct 4 19:02:50 2016 +0200

    List py35 in the default tox env list
    
    We really should run py35 tests when we run "tox" without any
    arguments.
    
    I0d6c8c8255717770c7e3297bfe5d6130e983d5b0 is going to make
    the py35 job voting.
    
    Change-Id: I8c9b459dfaf1e29e7e8321bfd34061d3d2ad5249

commit d009ea21b7b8b95b32812dd5458e44b1f2404384
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Tue Oct 4 18:51:59 2016 +0200

    remove_router_interface: check subnet_id or port_id is provided
    
    If neither subnet_id nor port_id is provided, Neutron fails
    badly with a 500 error. Also according to Neutron client CLI
    (neutron router-interface-delete -h) "Either a subnet or port
    must be specified."
    
    Change-Id: I1c218052e50d10020b699b254b986c23fdbf77a5

commit 1f81bf18865ab8e5a5f595968fe162c1eb183110
Author: matthew wagoner <zxkuqyb at gmail.com>
Date:   Thu Sep 29 19:41:04 2016 -0400

    Add test for os_group Ansible module
    
    Change-Id: Ibfedb4089b0d4646bd6a63b68f2e83213f0df951

commit afe54856b42e23e6d74da345f4870a95f646bc99
Author: Cao Xuan Hoang <hoangcx at vn.fujitsu.com>
Date:   Wed Sep 28 10:09:49 2016 +0700

    Using assertIsNone() instead of assertEqual(None, ...)
    
    Following OpenStack Style Guidelines[1]:
    [H203] Unit test assertions tend to give better messages for more
    specific assertions. As a result, assertIsNone(...) is preferred
    over assertEqual(None, ...) and assertIs(None, ...)
    
    [1] http://docs.openstack.org/developer/hacking/#unit-tests-and-assertraises
    
    Change-Id: I4ce1745a90b043ea342fb157683b01f862c1bc3d

commit 2d78f1ae940d4b2810437ea3c73379413c3ef6ef
Author: Tony Xu <hhktony at gmail.com>
Date:   Mon Sep 26 23:51:53 2016 +0800

    Update homepage with developer documentation page
    
    Change-Id: Id7df70e3cfaa29218c2e2badefcbc8a296d86f8d

commit bd434bc6268d7d4b872cbf17cf23a4fd5dc1a855
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Mon Sep 26 17:39:56 2016 +0200

    List py35 in the default tox env list
    
    We really should run py35 tests when we run "tox" without any
    arguments.
    
    I2a4a6ca01d7cca83f594008960c878a18ca08e8e is going to make
    the py35 job voting.
    
    Change-Id: Ibd77e39c53f00357344be8acc2949e1bc1adcc84

commit 0a3e056cce03cdb3dbd62d8eddfaa448d5a0ad5f
Author: Jordan Pittier <jordan.pittier at scality.com>
Date:   Mon Sep 26 17:22:27 2016 +0200

    Fix AttributeError in `get_config`
    
    Change-Id: I52bdc44800da6c1393a69c4faf96375235ef98bb
    Closes-Bug: #1627690

commit eec981c96e3c1824a547c8baa6fc5b08dba57624
Author: avnish <avnish.pal at nectechnologies.in>
Date:   Tue Sep 20 11:39:00 2016 +0530

    modify the home-page info with the developer documentation
    
    Change-Id: I72a16e15e61c8e6511b96114cc74e3feb7dc6fd3

commit c6d2aeada4d9074f185f9748a81f7c651614e347
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Sep 15 16:41:17 2016 -0500

    Don't create envvars cloud if cloud or region are set
    
    OS_CLOUD and OS_REGION_NAME are both selectors. If they are the only
    values, we should not be creating an envvars cloud.
    
    Change-Id: I1b7c8d7e3b6c300bd2c85ab482a22411370e4d5f

commit e888d8e5cd2a7bf1f1ffd4de875e8c649751157a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Sep 7 13:51:15 2016 -0500

    Add support for jmespath filter expressions
    
    ansible upstream recently added a filter using jmespath to allow for
    arbitrary querying of complex data structures. While reviewing that
    patch, it seemed quite flexible and lovely. It's also apparently also
    used in boto for similar reasons, so we're following a pretty well
    tested solution - and since it's now a depend on ansible, the extra
    depend shouldn't be too much of a burden for most folks.
    
    Change-Id: Ia4bf455f0e32f29a6fce79c71fecce7b0ed57ea5

commit 1c00116195272da844b6db076a8aa36604fa16bb
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Sep 6 14:25:09 2016 -0500

    Add libffi-dev to bindep.txt
    
    Change-Id: I3510bcbe140db0a57745c5ddfc6eaf7edec75ee3

commit f91a75426b877edc1f0f2e0abe4db9f40e837242
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Sep 2 11:21:24 2016 -0500

    Don't build releasenotes in normal docs build
    
    The release notes system exists in parallel and publishes to
    http://docs.openstack.org/releasenotes/os-client-config/. When we build
    them in the normal doc build, it causes problems for distro packagers.
    
    Change-Id: I6b084a1ad6836beac991d03c5f134203512150ac

commit 91eb5e062a5ea70a65edb08dd22d053b26a3d0f4
Author: Doug Hellmann <doug at doughellmann.com>
Date:   Fri Sep 2 09:38:36 2016 -0400

    Update reno for stable/newton
    
    Change-Id: I829a65b2104ec3c039859dce2594b701981b1fa3

commit bda72e4adcb33d5a7e6d47fcc46626ebfab1f2f0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Sep 2 09:58:11 2016 -0500

    Use list_servers for polling rather than get_server_by_id
    
    Using get_server_by_id bypasses the list_server poll/cache. There is one
    legit place where we should do this, but in the other places it causes
    us to poll with great frequency unnecessarily.
    
    The TaskManager test changes are just to get test discover to stop
    finding then skipping the fixtures in the file.
    
    Change-Id: I7f1e360f53d7344dfc996eb4c4813184720f8da0

commit 86b100e400ad9dbda018d4be7f97ce4582737fe7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Sep 1 18:08:15 2016 -0500

    Add ability to configure Session constructor
    
    Sometimes it's useful to wrapp the keystoneauth.Session object. OSC has
    a KeystoneSession object that injects timing data. shade is considering
    one that wraps external calls in shade's TaskManager. Allow for passing
    in a callable that will return a Session.
    
    Almost no people will want to use this - it's a super advanced kind of
    thing.
    
    Change-Id: Ib64260916695e9fbea437862cd669a4fb85ec9e4

commit 4decd44861c77348fac0fbe19e7c499fbf3cc6e0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Sep 1 15:47:53 2016 -0500

    Fix up image and flavor by name in create_server
    
    Nodepool has a problem with passing in {'id': image.id} which is what
    the stated workaround for excess API calls is. Fix the call, and add a
    functional test that should catch this.
    
    Change-Id: I4938037decf51001ab5789ee383f6c7ed34889b1

commit a3c9a947dcb25cdb6f0cd988695da59c02ce3c8e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu May 12 12:27:45 2016 -0500

    Batch calls to list_floating_ips
    
    Similar to servers and ports, we do lists of floating ips a lot. Allow
    for configuration of batching actual calls to the cloud.
    
    Change-Id: Iccbbdfca8a42b0a17855dd0bb30f0def15e1e3da

commit 8b7859e21e64027d20f158737bbf70bbe409b847
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Sep 1 09:10:03 2016 -0500

    Split auth plugin loading into its own method
    
    In case someone wants to do validate=False at get_one_cloud time, but
    still would like to get an auth plugin, having this block be its own
    method is handy.
    
    Change-Id: I26137391e67d60d8737473d3d4c6ed15dad53af1

commit 9bbc09d703554e14da8fc3ec1891578dda3c353e
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Aug 31 14:08:30 2016 -0400

    Allow str for ip_version param in create_subnet
    
    The Ansible os_subnet module will send a string for ip_version
    as the type is not currently enforced. Neutron currently accepts
    this, but who knows about the future. Rather than break older
    playbooks by enforcing type, let's just be friendly to our users
    and accept strings (but they must be valid representations of ints).
    
    Change-Id: If8db08d2e93feab3cb21001211ccff70b926ed20

commit f616269390740821ee2e8b3483e884a2d5b1a858
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Aug 31 09:28:01 2016 -0500

    Skip test creating provider network if one exists
    
    The current default in devstack-gate for neutron is to create a public
    provider network using the existing physical network. That's AWESOME and
    we're highly in support of it - but it breaks our test of creating a
    public provider network using the existing physical network.
    
    Detect that this is the case and skip the test if it is.
    
    Change-Id: Iff103154aace62f713b2f7b3303f19d31b20d0a7

commit 3f226d151181fd476ee719cf2bc523f7c1fd7420
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Aug 30 09:03:49 2016 -0500

    Revert per-resource dogpile.cache work
    
    There is something extra strange going on when nodepool is running where
    things return None when they shouldn't. Revert this work until we have a
    chance to dig into the guts and figure it out.
    
    Revert "Move list_server cache to dogpile"
    
    This reverts commit 315a11cbbb9b4e9ca4ba9c9e263a4be8d70f49ef.
    
    Revert "Ensure per-resource caches work without global cache"
    
    This reverts commit dcce1234d4c0c8d5b1ec5a0f2ea7c6629a862acc.
    
    Revert "Move list_ports to using dogpile.cache"
    
    This reverts commit 02dd6d7266ff23073a5bb3dc144a4c1ec074022b.
    
    Revert "Batch calls to list_floating_ips"
    
    This reverts commit 376c49777f77dac677f6c16389b139f3bf57473e.
    
    Change-Id: I2ae46e1b057c39777e56a9402a7b1bda8632eb12

commit 87f90e6ffbc754decb2ce0138b12551089c5b5e1
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Aug 29 18:39:52 2016 -0500

    Fix two minor bugs in generate_task_class
    
    The superclass name was wrong, and then we didn't actually return from
    it.
    
    Change-Id: Id5a45b80741555bf2024b01c6edb771bd7e9b841

commit 42885dc94176eecca1619d7e9c33b5ab3d9a2c0a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Aug 29 17:49:46 2016 -0500

    Go ahead and handle YAML list in region_name
    
    The right thing is to use "regions" as a yaml list. However, it's even
    more right to be friendly to people - we emit a warning about
    region_name as a list anyway.
    
    Change-Id: Ia0b27ef8d1d52c655c2736a97bd5e59a4a2fe9d8

commit 5c1371b22655235fa6b394c89732ca5326d334b8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Aug 22 09:15:10 2016 -0500

    Change naming style of submitTask
    
    submitTask is camel cased because it came from nodepool, where camel
    case is the prevailing style and thus correct. However, in shade,
    underscores are the prevailing style, so this always feels weird.
    
    Make the method submit_task - but add an alias for submitTask to not
    break any code using the old method name.
    
    Change-Id: I782d3b914a1b66b5af20315e58568a715222fe58

commit 2b52bcf6943369fe96db3aefe2ee7473dd51b934
Author: Dean Troyer <dtroyer at gmail.com>
Date:   Mon Aug 29 13:07:17 2016 -0500

    Add prompting for KSA options
    
    Teach OpenStackConfig to prompt the user for KSA plugin options
    that have no value but have a prompt string defined.
    
    * Add pw_func argument to __init__() to be used as the callback
      for prompting the user.  The default is None which skips the
      prompt step.
    * Add option_prompt() method to perform the checks for prompting,
      call the callback and save the returned value. This is public
      to handle cases where simply passing in a callback is insufficient
      for the prompt mechanism.
    
    Related-Bug: #1617384
    Change-Id: I5faa86e94d6f71282ac270e2acfbd3016638c780

commit 522db8e6e49752da203cc3532bebc14014b6c076
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 14 11:43:05 2016 -0500

    Add submit_function method to TaskManager
    
    TaskManager operates on Tasks - which is awesome for things like shade
    and nodepool where the discrete actions embodied by a task can be
    pre-conceived. However, making a task class is a pretty heavy weight
    operation to require for ad-hoc tasks. Luckily, Python lets us create
    classes and closures. Add a method that allows someone to pass in a
    callable or the name of a callable that should be found on client.
    
    Change-Id: I416a7077bdd3427262243d8a39b6ed6b35ae4018

commit 24a61fc53d0a9dc560859bb816796431e5e00cad
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Apr 10 09:40:56 2016 -0500

    Refactor TaskManager to be more generic
    
    The functionality that TaskManager represents could provide value to a
    lot of people if we put it into the guts of keystoneauth so that a
    person could do rate-limiting on all REST operations. It would also
    catch some of the "hidden" operations, like fetching a token.
    Also, TaskManager is a _very_ stable set of code, so moving it a little
    further away shouldn't run the risk of deep/long bug chasing.
    
    In preparation for that, we need to make the shade/nodepool things in
    it be explicitly shade/nodepool things, and the base classes actually
    be generic. Doing the refactoring here first reduces the complexity of a
    move. Next step would be adding this version of TaskManager to ksa, then
    in a subsequent patch we can remove it from shade. If we never do that,
    nothing in this should hurt anything.
    
    Change-Id: Id5c8caa924e8abbecef26d54d225bb10e9676d5d

commit 229f3daae0b9a8aba6e41eedf90eae20fcb8ecf5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Aug 27 08:51:44 2016 -0500

    Poll for image to be ready for PUT protocol
    
    When we use PUT to upload images, they are not actually immediately
    available all the time. They can come back in a "queued" state. We need
    to wait until they are ready before we return the final image. Also,
    sometimes the get_image call can return None, so trap for that.
    
    Change-Id: I5b92018b848d811148377aa0fd9881d5b5daf4c7

commit cf9989806d853032d87e55bdfaa1b91d81a1efaa
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Aug 29 10:57:02 2016 -0500

    Cleanup old internal/external network handling
    
    We don't really need the non-ipv4/ipv6 versions of these anymore, but we
    keep them for backwards compat. Pull out the processing of them and have
    them instead rely on the underlying ipv4/ipv6 code.
    
    Change-Id: I9d3ececbf5de8b2763da0716ef9bec77b8a0b11e

commit 6832f734d00f1c118068db1fbd65370ad7f5d178
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Aug 18 17:21:56 2016 -0500

    Support dual-stack neutron networks
    
    It is totally possible for a neutron network to have a network with a
    globally routable IPv6 subnet and an RFC-1918 IPv4 subnet. In fact, the
    existing OSIC Cloud1 does this, and the original region of Dreamhost did
    this.
    
    The trouble is, it's not possible in a reasonable way to _infer_ this
    setup, so we rely on brand-new config functions in os-client-config to
    allow a user to express that a network is external for ipv4 or for ipv6.
    
    Depends-On: I40f5165d36060643943bcb91df14e5e34cd5e3fa
    Change-Id: I12c491ac31b950dde4c1ac55860043fd9d05ece8

commit 4d321698f7e66bd779526e309b11b51af690e090
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Aug 26 10:33:07 2016 -0500

    Rename _get_free_fixed_port to _nat_destination_port
    
    The name _get_free_fixed_port is misleading. What the function actually
    does is find a port attached to the server which is on a network which
    has a subnet which can be a nat_destination. Such a network is referred
    to in shade as a "nat_destination" network. So this then is a function
    which returns a port on that network that is associated with this
    server.
    
    Change-Id: If69ad8f7c08a4df83bc00cb00801565a7473a9a5

commit 1ad8c92d0a230fb942a6dcdf8dc028d3ba782a3c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Aug 26 07:56:32 2016 -0500

    Log request ids
    
    We collect request ids from the cloud if they're there. Then, the
    current approach is to attach them to the object - but they're ephemeral
    and not actually a quality of the object - they're useful for debugging.
    Instead of making an object property, log them. That way they can be
    used where they're useful - ops logs for after the fact debugging.
    
    The logger is named so that it can be explicitly controlled in a logging
    config.
    
    Change-Id: Ie5532cdc316cb00d5f15cae8b2a2f8674ae9da40

commit dd4bd638933477c87f1c5cc2c9dfe08125c35197
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Aug 25 14:54:50 2016 -0500

    Detect the need for FIPs better in auto_ip
    
    The current logic of looking at interface_ip to see if a FIP is needed
    is too simplistic and mixes two concerns. interface_ip is dependent on
    the network context of the calling host, which is great - but may not be
    the full story for all of the people who would want to interact with the
    server.
    
    Instead of creating a FIP if there is no interface_ip - introduce a
    richer method that looks at public and private v4 addresses as well as
    the existence of a FIP-able network.
    
    Change-Id: I687375a1433d643e2f1cf18d0bbc00d0e8a0abbf

commit 72c1cd9c41b9e0862d3bde1bea84a60e41dfefd0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Aug 25 14:32:46 2016 -0500

    Clean up vendor support list
    
    The IBM Cloud isn't really a thing at that address yet (jumped the gun)
    OSIC probably shouldn't have been added either (turns out there are like
    8 OSIC clouds currently, and they're test clouds.
    
    Also, update the location on the RegionOne clouds, and rename "Human
    Name" to "Location" - which is the useful information in that column
    anyway.
    
    Change-Id: I04451836330aacc3e2b91cfbe7d7d9bba7a47346

commit 35b6f9a053928ac33f7c7593da30dc2648f87104
Author: Ian Wienand <iwienand at redhat.com>
Date:   Thu Aug 25 15:51:42 2016 +1000

    Delete objname in image_delete
    
    I found this throwning an error about "name" not being defined.  I
    think it wants to use the objname it split out above.
    
    Change-Id: If603edf5f9207332dc1370bdde3eb68a7c7e7511

commit 315a11cbbb9b4e9ca4ba9c9e263a4be8d70f49ef
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Aug 22 14:40:25 2016 -0500

    Move list_server cache to dogpile
    
    We've got ports and floatingips doing caching, go ahead and move the big
    boy ... servers. Deleting fun is good for the whole family!
    
    Change-Id: I10fe3970ac102fc7818c98879b4a9cfc7bc15e76

commit dcce1234d4c0c8d5b1ec5a0f2ea7c6629a862acc
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Aug 22 11:21:52 2016 -0500

    Ensure per-resource caches work without global cache
    
    With the move to dogpile based per-resource caches, we need to make sure
    they still exist if they are configured, even if global cache isn't. To
    do this, test to see if any are set, and if so, configure the global to
    be FakeCache but the per-resource to be memory cache.
    
    Change-Id: I8261b807352a4b54b19f6831b795eedc847e86ab

commit 2bb6ff9b2116449fa2bd65d70a84c464474724e3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Aug 23 13:44:32 2016 -0500

    Support more than one network in create_server
    
    The format of nics is annoying. Network is more friendly. But network
    currently only supports a single value. Fix it.
    
    Change-Id: Iec63a244d4c2d58cf211dc07921bf5375c9e0d55

commit 7b3b95988299345d225280385dc9d17cfee11c0e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Aug 20 09:38:03 2016 -0500

    Add support for fetching console logs from servers
    
    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.
    
    Change-Id: Ifb973c7d382118d3a8b6bf406cb7ed463b057180

commit 4e7772632a74f34a70890ac631bcaacd7a267df2
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Aug 14 10:00:56 2016 -0500

    Allow image and flavor by name for create_server
    
    We do a bunch of work everywhere else in shade to be friendly - but for
    some reason we only accept object or id for image and flavor. Fix it.
    
    In the unit tests, pass in a dict with an id value to avoid the need to
    mock the glance client, since that's not really what we're testing in
    any of those tests ... but add a test that does not do that to verify
    that the glance and nova clients are used to look at image/flavor lists.
    
    Change-Id: I1760a7464e43e19a475f6d277148a3c7e54ac468

commit 3dfa847d79246be2539694de75378d1e3a8f0664
Author: Donovan Jones <donovan at catalyst.net.nz>
Date:   Tue Aug 23 15:24:09 2016 +1200

    Allow object storage endpoint to return 404 for missing /info endpoint
    
    On some clouds using radosgw to provide a swift API, requests to /info will
    return a 404 rather than a 412. This patch allows the swift
    get_object_capabilities function to throw an exception that sets e.http_status
    to 404 or 412. This allows os_object Ansible tasks to work against such a cloud
    rather than failing.
    
    Change-Id: I65caa43909d8770496264efc472659cb5d4b9719

commit 376c49777f77dac677f6c16389b139f3bf57473e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu May 12 12:27:45 2016 -0500

    Batch calls to list_floating_ips
    
    Similar to servers and ports, we do lists of floating ips a lot. Allow
    for configuration of batching actual calls to the cloud.
    
    Change-Id: I8e8d921caede5d55db2c9ff98d537e648b245970

commit 1cdf95176786190421d52abc41bb9138bb142df9
Author: JP Sullivan <jonpsull at cisco.com>
Date:   Thu Dec 10 18:13:33 2015 +0000

    Get the status of the ip with ip.get('status')
    
    Ensure that there is no error if the key doesn't exist in the ip.
    
    The API spec indicates this field should be a string and should always
    exist. However, it has been reported in the wild that sometimes it's
    missing. Yay for specs. If there is no status, set it to 'UNKNOWN' so
    that there is at least some indication in logging for a user as to what's
    going on.
    
    Change-Id: I27a8bd35e6614ac24b8cbb1ada8c101329fd2f7f

commit 6b0c38d77995475763cb479948549de22f3db706
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Aug 14 10:09:21 2016 -0500

    Stop getting extra flavor specs where they're useless
    
    We supplement flavors with the values in extra_specs as a default.
    However, there are several places where we're getting flavor objects on
    behalf of the user where we know that we will not use them. Make sure
    that we can plumb through the get_extra flag, and then pass it as False
    in the places where getting the extra specs is just a waste of time.
    
    Change-Id: I46d8ed5537a94a0440dd42d305221686cf1b225b

commit ae705ec87857eb8500ccbb56108a0a281d980e82
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Aug 20 10:37:45 2016 -0500

    Change deprecated assertEquals to assertEqual
    
    It literally doesn't matter, but also getting deprecation warnings is
    equally silly. Change the deprecated things to the non-deprecated one,
    and then enable the check that prevents this from happening in the first
    place.
    
    Change-Id: Icd714da7ee881fad0c201e9cd56b32a4a330a431

commit c40cc1938185ad80cc2f62ca4f6e8665a11a6fbf
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Aug 20 13:08:43 2016 -0500

    Use cloud fixtures from the unittest base class
    
    We need to do things to protect against local environment leaking into
    the test fixtures when we create the cloud objects. Those things are all
    done in the base unittest TestCase class, but for reasons that are hard
    to fathom, we ignore that and create our own clouds in many of the
    unitttest classes. This leads to problems if a user running the
    unittests has cache config information in their local clouds.yaml.
    
    Fix it.
    
    Change-Id: I022d541d8e98bf4b6691bf0a91e3b7d20b2b7456

commit 829ebda93f45da01f54e0e6113759769b8df0141
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Aug 20 12:21:36 2016 -0500

    Add debug logging to unit test base class
    
    Sometimes tests run long and it's hard to figure out which operation
    wasn't mocked out. Enabling debug logging before the logging fixture
    means that the debug logging is produced, but is still shoved into the
    fixture. If you run a test via testtools.run or something similar,
    you'll see both the operations and any print statements, but running
    normally under testr it's all silent.
    
    Change-Id: I38de01f6fdb57274eef93100d885f7a062e7167a

commit aa6505af09e2fe69e961cefb1e8af0b751f03455
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Aug 20 13:30:02 2016 -0500

    Update HACKING.rst with a couple of shade specific notes
    
    Reasonable people disagree on finer points of style. However, it's
    pretty well understood that being consistent within a single codebase is
    more important that specific choices globally.
    
    There are a few things worth pointing out that are true in the context
    of shade which may not be true in other places, so active communication
    is likely the best choice here.
    
    Change-Id: Ib1ceb5d6f51f84fa4bc40e68e9e231a60138507d

commit 3462561c46e3cb53afa153e638741d0eb400418b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Aug 20 10:14:06 2016 -0500

    Only run flake8 on shade directory
    
    I frequently have random test files and virtualenvs scattered in my
    working directory, so tox -epep8 gets frustrating. We don't have any
    files that need to be linted that are not in the shade directory - so
    go ahead and explicitly limit the invocation.
    
    Change-Id: I16d8f477ae08a1e54724991ccf4a169ae3b35369

commit 332195f19cb52a0373f581ab4fa65f4be31e8511
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Aug 21 11:12:00 2016 -0500

    Add bindep.txt file listing distro depends
    
    Turns out we don't have many. That's neat. If we list them, then
    we're nice and friendly to folks.
    
    Change-Id: I77dc2e0e48b9f7531dff51eddd4b274367f8ea2d

commit 84fe77562d8474dbe0ee4c8eb14f51452a857135
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Aug 21 08:28:18 2016 -0500

    Set physical_network to public in devstack test
    
    It seems the name of the physical network in recent devstack has
    changed.
    
    Change-Id: I29495ff4f49a61a350a1cb86f9124f3403c9468b

commit 17f6847c20bc4b8ea1c8fc48f81bf1eca4ddb0f5
Author: Dean Troyer <dtroyer at gmail.com>
Date:   Sat Aug 20 16:14:36 2016 -0500

    Precedence final solution
    
    * Revert most of 'fixed_argparse change' from 1.19.1
    * Create a new _validate_auth_correctly() method that contains the
      logic from 1.19.0
    * Create a new get_one_cloud_osc() method for use by OSC to get
      the correct argument precedence without disrupting anyone else
    
    Change-Id: Iae86cc4e267f23dbe8d010688a288db5514f329d

commit 9d757b3a9a89bdd63f56ce171b7c878ded9a4cd8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Aug 18 11:35:50 2016 -0500

    Add support for configuring split-stack networks
    
    Some clouds, like OSIC and v1 of DreamCompute, have a split stack
    network. This means that a single Neutron Network has both an IPv4 and
    an IPv6 subnet, but that the IPv4 subnet is a private/RFC-1918 and the
    IPv6 subnet is a Global network. As any inferrance information is
    attached to the Network, it's impossible to properly categorize IP
    addresses that are on the Server in such a scenario.
    
    Add support for ipv4 and ipv6 versions of the current routes_externally
    config value, with each of them defaulting to the value of the
    un-specialized routes_externally.
    
    Change-Id: I1e87a1423d20eac31175f44f5f7b38dfcf3a11cb

commit 02a99fb3116614039740f8c6d780e88bccfdc5da
Author: Ian Wienand <iwienand at redhat.com>
Date:   Tue Aug 16 14:24:34 2016 +1000

    Use "image" as argument for Glance V1 upload error path
    
    In Glance V1 the argument is "image", not "image_id", so use this on
    the error path to cleanup.
    
    Change-Id: Ie64e2911798cef17f1263d961d70f7715b2ba64b

commit 552caf5bc1f2ccc63ee7706c8205e05e36b1f1f6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Aug 14 09:51:28 2016 -0500

    Honor default_interface OCC setting in create_server
    
    If a network has been configured as the "default_interface" in a
    clouds.yaml file, then it should be used as the default value to the
    nics argument in create_server. If a nics or a network argument are
    given to create_server, that should, of course, win.
    
    Change-Id: I278848f958a464daf2a5249084216b013698d62a

commit 6b3b4974cec74cf9cc55252240475dab771093ca
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Aug 14 09:31:34 2016 -0500

    Validate config vs reality better than length of list
    
    Configuration indicating that a network is external only needs to
    validate in one direction. Namely, if you indicate that network a is
    external, and there exists a network be that can also be inferred to be
    external, that's fine. But if you indicate network a is external and we
    do not find network a, that's a problem.
    
    The previous test using list length was woefully inadequate for this
    purpose.
    
    Change-Id: I3e7ece26de23007d1b97a7b8a25c3db31b124e5f

commit 53b1fc4cdee8e460361c17f70571e883059323c1
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Aug 12 14:34:43 2016 -0500

    Base auto_ip on interface_ip not public_v4
    
    Currently the auto_ip logic checks for a public v4 address to determine
    if it should make a FIP. However, we have richer logic that provides
    interface_ip that takes in to account IPv6 as well as configured choices
    as to what the "default" network should be. That is what should really
    be cared about - does the server have an ip that would be considered the
    thing to connect to it on.
    
    Change-Id: Ica1feb31cc3477c6336a749c88f4706efd20484f

commit 4bdda71fc55e928aa25ce511cd015abc7b8ff871
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Aug 13 08:06:03 2016 -0500

    Add tests to show IP inference in missed conditions
    
    There was no coverage concerning floating ip detection on clouds that
    didn't have floating ips at all, or even the OS-EXT-IPS extension.
    Although the problem was fixed in the previous commit, add a test that
    shows it. Also, add a test for Rackspace specifically, since it's
    network stack is different, to ensure that shade doesn't break dealling
    with Infra's gerrit server.
    
    Change-Id: I0bad8c69fe456a171d51f477dd6a5f8fb7065f60

commit 273ea8c1ebe3cdb3f232494498781339b8ef4226
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Aug 12 16:10:08 2016 -0500

    Deal with clouds that don't have fips betterer
    
    In the code that supplements the nova provided floating IP dict by
    checking neutron, we actually don't properly account for the case where
    the cloud just flat doesn't have floating ips.
    
    Change-Id: I18ee39e8450e868a842771f2febf4daac606fee5

commit bd3f07140d4ebfa62f63d8ad170da5e43d7bbb74
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Aug 8 11:09:24 2016 -0500

    Infer nova-net security groups better
    
    If a cloud does not have neutron, it's entirely possible to infer that
    security groups should go through nova. While it's currently possible to
    set secgroup_source: nova in clouds.yaml or in a vendor file, it's a
    little overkill for folks who otherwise do not need to express that
    level of complexity.
    
    Change-Id: I8e4dec2cf993a47c8a0d5cb55bbf80b0fdc4dd46

commit 3326bb7706e45de2c00937a0e478012faf555ca3
Author: SamYaple <sam at yaple.net>
Date:   Sun Mar 6 16:38:09 2016 +0000

    Add update_endpoint()
    
    v3 allows us to update the endpoints, we should do that.
    
    The other endpoint calls have been validated against v3 api to do what
    we want them to do. All comments regarding implementing v3 keystone
    have been removed.
    
    Change-Id: Icae8a02815b1416a60bc8c6d57ee892fbfd7ccc4

commit 71a7058a2d9764eb5fe33ae1400a18c8d1581bce
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Aug 12 07:28:30 2016 -0500

    Protect cinderclient import
    
    Importing cinderclient breaks logging setups. Luckily, we only need it
    in one function, so late-import it.
    
    Change-Id: I86f090e8f3bbd3ac57e221df6629c6e008c99aa8

commit cca0fb3e0a1e28cef819505870f8609759b17698
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Aug 12 06:48:19 2016 -0500

    Do not instantiate logging on import
    
    If we run setup_logging in the file context, it runs setup things for
    loggers. That can cause unintended consequences in consuming programs.
    
    Change-Id: Ibc751703b1aa37cfbd6f95adbafb97ff12b7d5e6

commit acf010f463cb583d073113f17d88864c94ef7503
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Aug 12 07:02:11 2016 -0500

    Don't supplement floating ip list on clouds without
    
    Some clouds don't have floating ips at all. We know who they are. Don't
    try to supplement them.
    
    Change-Id: Ib4965ab53f4142811313481cb4e7a70aeeea5b48

commit 02dd6d7266ff23073a5bb3dc144a4c1ec074022b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Jul 8 11:44:05 2016 +0900

    Move list_ports to using dogpile.cache
    
    A new system is nothing without a good example. Migrate list_ports to
    the async_creation_runner interface in dogpile.cache.
    
    Change-Id: I3a26e63f736cd4fca30efe774fc96fa40b5b31c4

commit b02708a9c771f4c605614b98e0f6fa8714826e43
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Jul 8 11:11:09 2016 +0900

    Create and return per-resource caches
    
    As the next step in consolidating per-resource caching, we should
    actually create more than one dogpile.cache region. We should only do
    that if the resource is a thing we actually are going to cache (which
    means it has a list_ method) Finally, we should return it if requested,
    otherwise we should return the good old self._cache global cache.
    
    Change-Id: Id0a5f65437a8bb4b911eddf54f14369d6b79d3fd

commit ae25137e36ee044f29ca6db778acc8c77172bc43
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Jul 8 10:41:41 2016 +0900

    Lay the groundwork for per-resource cache
    
    There are currently two caches, the global cache, and the per-resource
    batch operation caches. The global cache is managed by dogpile. The
    per-resource caches are managed by hand. However, dogpile has a mode of
    operation that is precisely what we do in our batched operation
    per-resource caches by hand. So set ourselves up to have and use
    per-resource caches.
    
    Step one is to make the decorator accept an argument that it'll use to
    look up the cache.
    
    Change-Id: I4fbde2f4528aeaee5c23f0e1d1e4590090acb6ba

commit a6840f69ff5644065816309776365adccf017772
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Aug 11 08:14:39 2016 -0500

    Pop domain-id from the config if we infer values
    
    If the user specifies a project_{name,id}, then we currently infer that
    a domain_{name,id} is meant to be shorthand for user_domain_{name,id} and
    project_domain_{name,id}. However, in other contexts, domain_id is a
    perfectly valid value to pass to the auth plugins - such as when doing
    domain-scoped activities.
    
    The problem that was uncovered by the correction of argument precedence
    is that we didn't pop the domain-id out of the root config dict, so if a
    user set OS_DOMAIN_ID in the environment, we were happily setting the
    user and project versions, but then leaving domain_id set as well. This
    then meant that when we do the pass to pull valid arguments from the
    root dict to the auth dict, we also pulled in domain_id - which led to
    the error:
    
      AuthorizationFailure: Authentication cannot be scoped to multiple
      targets. Pick one of: project, domain, trust or unscoped
    
    Popping the value from the root dict causes the things to work as
    documented.
    
    Change-Id: I6d208e5ec4115d2e72d30b2fedc90a81ea754d5a

commit 3f968d22b750d414fc6f8873e666433d909df294
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Aug 10 09:50:13 2016 -0500

    Rename baymodel to cluster_template
    
    Magnum is renaming baymodel to cluster_template. Rather than releasing a
    shade version with baymodel and then later switching, go ahead and
    rename to cluster_template now. However, since the term isn't in wide
    use yet, provide aliases.
    
    Change-Id: Ieb1f067680f2312eacf75eed0d42edbd90c54beb

commit 2556c338595bca0a931e62bf396e479566626958
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Aug 9 07:27:50 2016 -0500

    Make shared an optional keyword param to create_network
    
    shared as a parameter can only be passed by admins.
    
    Change-Id: I26c800f6ecba127d4ef4683a18ad2aafefa63606
    Story: #2000696

commit a98be6a6662296e6fb299f408b77d5f0e082b2dd
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Aug 2 10:15:13 2016 -0500

    Add a 'meta' passthrough parameter for glance images
    
    create_image tries to do data type conversion for you so that what you
    mean is correct 90% of the time. However, inferring intent is hard on
    people who do know what they want.
    
    New parameter 'meta' is a vehicle for non-converted key/value pairs.
    
    Change-Id: I99c1a104f6eb8fe72dd4ebab5b3aac8231068eb7

commit 8ab5855870739c1d05a11ead01f545a91db3cd8d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Aug 7 14:33:14 2016 -0500

    Allow creating a floating ip on an arbitrary port
    
    There are use cases where creating a FIP on an unbound port is a
    completely legitimate thing to do. Since our floating ip process already
    starts with "hey man, find me a port please" - allowing a parameter
    which short-circuits that and just attaches the FIP to the given port is
    not too terrible, all things considered.
    
    Change-Id: Iee2fc2ac7b26dfa2a48b0404a035e2820befa5ba

commit 3ef3864785eeceff6dedc9b873b3fc65a909f769
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Aug 1 16:19:33 2016 -0500

    Add ability to upload duplicate images
    
    In the basic case, avoiding re-uploading images is nice because
    uploading images is a costly operation. However, there are also usecases
    for uploading new images with the same name as an operator which are
    quite valid. Support these by allowing for a flag that overrides the
    duplicate checking logic.
    
    Change-Id: I6a00753654d500d68750e46c5ec2423a36903552

commit 600a638e74d89af55fceaf4017f70269ae6e4f3c
Author: Mathieu Gagné <mgagne at iweb.com>
Date:   Tue Aug 2 15:10:43 2016 -0400

    Update Internap information
    
    * Add sin01 and sjc01 regions
    * Add support for Glance v2
    
    Change-Id: Iaf4ad7c807a28c24040b928f65f4aadc1a234d6e

commit 1a1107ad73b01cd1d80853ddb9faec3dcef8b72b
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Aug 5 10:08:15 2016 -0400

    Fix requirements for broken os-client-config
    
    OCC 1.19.0 breaks all the things. Avoid it.
    
    Change-Id: I721d7c937e4a7a5dd8b0d0abfae1bb696d2b2f00

commit bbd22abbe3a8527daa11fe0011c58036ab9d5a28
Author: Yolanda Robla <yolanda.robla-mota at hp.com>
Date:   Wed Apr 6 13:38:21 2016 +0200

    Add new test with betamax for create flavors
    
    Change-Id: I0aaceb7633a27356e8eaabf70cadfe5e258cedee

commit 864df79c000edf73f9e59a9317127ac4a8015632
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jul 19 12:55:00 2016 -0500

    Stop creating cloud objects in functional tests
    
    We create a demo_cloud and an operator_cloud in the base TestCase for
    functional tests. We should use those. Also we should use the
    BaseFunctionalTestCase class.
    
    Change-Id: I5949e264eef9b790b7645499b3ed9fea29ca8010

commit dd7f0c9295465943739929c19b820bd44b549b85
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jul 19 09:55:31 2016 -0500

    Move list_magnum_services to OperatorCloud
    
    It requires admin credentials, thus it's an Operator task. While this
    is _technically_ an API break, it's not possible for
    list_magnum_services to be used by a non-admin user, so I think we're
    very unlikely to break anyone.
    
    Change-Id: If3af5f1ef702da39ac27c01f9792d11f6339c7ab

commit cfa87b1e7f3d6325c4f0ef9f4d2985948e4d99d3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Aug 5 06:36:14 2016 -0500

    Add test for precedence rules
    
    This should cover both the OSC and the ansible incoming use cases.
    
    Change-Id: I3fdc83837692d31c5579d91892a387a5d1023785

commit ddfed7f2fbabd1eba3b6ac700cee065c070433a7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Aug 4 16:18:42 2016 -0500

    Pass the argparse data into to validate_auth
    
    We have two contradictory precedence needs that are impossible to
    satisfy because we're losing knowledge of the source of data as
    we build the ultimate dict of data. If we carry the argparse data
    along in a separate bucket for longer, we can check to see if it's
    there so that it can win, but so that in situations where kwargs
    is complex and contains both a top-level and an auth dict we don't
    assume that the values that are not in the auth dict came from
    argparse.
    
    By doing this, we can establish that precedence for auth args is:
    - argparse
    - auth dict
    - top level kwargs
    
    Change-Id: I9eca5937077f5873f7896b6745951fb8d8c4747c

commit d71a90220397f1baa80e943a37854a5be2c8726c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Aug 4 20:45:49 2016 +0000

    Revert "Fix precedence for pass-in options"
    
    This reverts commit 05b3c933b34e9cec9eb859a15392862918b3eb5f.
    
    Change-Id: I07dd701ca911cd12701519d2e6d624c69baa0848

commit 37dcc7e8d874a2e5325d7e473d883c373bf694ca
Author: Dean Troyer <dtroyer at gmail.com>
Date:   Wed Aug 3 10:43:15 2016 -0500

    Add release notes for 1.19.0 release
    
    Change-Id: I92ffcf611d31f7a4f11e5228022ea64864823389

commit 9c699ed3a649d7d6d1f3c9d8a13eda483f948512
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Jul 9 17:36:48 2016 +0900

    Add the new DreamCompute cloud
    
    It does things the happy way - direct routing of IPv4 and IPv6. However,
    it's a respin, so we're naming it dreamcompute rather than dreamhost so
    that users don't get broken by the shift.
    
    Remove dreamhost from the docs - people looking at documentation should
    be using the new region.
    
    Change-Id: I92eb38635c4389d2e9326fab038137a673497fa8

commit 9cdd967550456020d911a6806cf0fdced493787c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Feb 21 13:30:43 2016 -0800

    Go ahead and admit that we return Munch objects
    
    There was a point in time in the past where we were gung ho on using
    Munch as a halfway house to get us to pure dicts. However, we released
    1.0 before we could do that, so we're pretty stuck with them for the
    forseeable future. That's not terrible - they're pretty low overhead and
    work pretty well.
    
    Depends-On: Ie10099430481ffa76f5a19557e3693189544df6b
    Change-Id: I8b7dd2c4038db999280ec0c2c9c43fb9499e6d22

commit 1a25bb249e290bcdb5dce07cd3985fb9e31e8d7d
Author: Steve Baker <sbaker at redhat.com>
Date:   Wed Aug 3 15:07:17 2016 +1200

    Depend on python-heatclient>=1.0.0
    
    The event_utils.poll_for_events function is only available from 1.0.0.
    There have been reports of the ansible os_stack module failing due to
    a too-old python-heatclient.
    
    Depends-On: Ie10099430481ffa76f5a19557e3693189544df6b
    Change-Id: I0843c377409b71d808a7f096f2daa28c655add3c

commit cdea9eb82770b91fe9fcdb1507b3254da928131e
Author: Ricardo Carrillo Cruz <ricardo.carrillo.cruz at gmail.com>
Date:   Thu Jul 21 17:55:43 2016 +0000

    Add update_server method
    
    Currently, we have no method exposing the ability from novaclient
    to update a name or a description.
    
    Change-Id: Ic372f730c0781cd12f792bd49e073bf1681dd1e2

commit 05b3c933b34e9cec9eb859a15392862918b3eb5f
Author: Dean Troyer <dtroyer at gmail.com>
Date:   Tue Aug 2 21:15:49 2016 -0500

    Fix precedence for pass-in options
    
    The passed-in argparse Namespace is flat and does not have an 'auth'
    dict, all of the auth options are in the top level.  If the loaded
    dict from clouds.yaml as an 'auth' dict, that used to totally override
    any passed-in options.
    
    This is backwards.
    
    Make the passed-in auth options always win over clouds.yaml as this is
    the only way to change/override those values from the command line.
    
    Change-Id: Ic2752a396d45deeda19a16389437679829e0844d

commit 1f7ecbc3ff482de3ae8323fa5a62a359510e13d9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Jul 9 18:23:02 2016 +0900

    Update citycloud to list new regions
    
    Frankfurt, Buffalo and Los Angeles - oh my!
    
    Change-Id: I17d6f46de2a9af82f221b971a359d53eb471f8fa

commit 354f38ab2c42c05fc43704ddb6eb9f2ad03f8c0e
Author: Swapnil Kulkarni (coolsvap) <me at coolsvap.net>
Date:   Fri Jul 22 05:02:03 2016 +0000

    Remove discover from test-requirements
    
    It's only needed for python < 2.7 which is not supported
    
    Change-Id: I9511e1e08af8c0a5740e744252103a94e80eab43

commit 51a5eb575ecbbd8cd51d1953118d9f91f73f43da
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jul 18 14:23:41 2016 -0500

    Update hacking version
    
    There is an issue with old hacking which is causing it to fail open.
    
    Change-Id: I744fc414bffe984a63374d6431d77e6be5a28f40

commit d9e9bb791ba169e828d6068534ee2f430f4668eb
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Jul 14 10:30:49 2016 +0800

    Add support for listing a cloud as shut down
    
    We've had one vendor cloud go away in the past, and there is one
    existing deprecated cloud currently. Add support for providing the
    user with an informative error message in the case where they
    attempt to use such a cloud.
    
    Change-Id: I894e0c0a4786e60fce1238bb2883828e89d44b01

commit 9f4805bedbcd6bf0df4b30a9c496bb2d54a93513
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Jul 14 11:05:03 2016 +0800

    Change operating to interacting with in README
    
    Just noticed that the README says "for operating OpenStack". The word
    operating has very specific connotations in OpenStack world, and that is
    decidedly _not_ the primary use case of shade.
    
    Change-Id: Ic0205c82abc3b5bfd6223ea7a6ee1bd6bfb365dd

commit 7dd138c8f4c8b8761b0b50d3ce9c7c4f770f8c61
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu May 12 13:28:25 2016 -0500

    Add floating IPs to server dict ourselves
    
    The nova/neutron interaction as it relates to updating the network info
    cache in nova apparently does not believe in an object reality and
    instead prefers to think of things as unrealized quantum superpositions.
    While those are great for particle physics, they make getting the
    address of the server hard. It therefore follows that we should
    undertake the burden of providing consistent and objective information
    about the floating ip of the server ourselves, regardless of the sadness
    this adds to the world.
    
    Change-Id: I75ba0318c9a5a011b5a530d86ace275f19511f1f

commit 481be16b8b385e1fcccd34607da8a8a3f5bde69f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Jul 9 17:34:11 2016 +0900

    Add support for deprecating cloud profiles
    
    We've had HP shut down their public cloud, and DreamHost has recent spun
    up a new cloud with a different operational profile and auth_url that is
    essentially a replacement cloud. That means people using the old
    information need to do things, so we need to be able to communicate that
    to them.
    
    Add support for adding a deprecated status to a vendor profile, as well
    as a verbose message explaining what the user may do to remediate.
    
    Change-Id: I19b67d7cd71fba2d9da0e3a6adb2d229ead65396

commit 8481c6baa2becaa709e2d11b1c739cd9792851df
Author: Steve Baker <sbaker at redhat.com>
Date:   Thu Jun 23 09:03:31 2016 +1200

    Treat DELETE_COMPLETE stacks as NotFound
    
    When a stack has just been deleted, fetching it may return a
    DELETE_COMPLETE stack or raise a NotFound error.
    
    Recent changes have resulted in the former happening more frequently
    causing shade gate failures [1]. This commit changes get_stack to
    treat a DELETE_COMPLETE stack the same as a NotFound stack.
    
    [1] http://paste.openstack.org/show/521286/
    
    Change-Id: I3ca0b55c1c10cf229987551c09fcce853faa3584

commit e67b306c10be6358399d0e8a71350422394477e5
Author: Mário Santos <mario.rf.santos at gmail.com>
Date:   Fri May 20 16:56:20 2016 +0100

    Add support for changing metadata of compute instances
    
    Change-Id: I2301e0ab2024c51e7482ce0f05b706e8a395d676

commit 891fa1c60fc948aac158ea939c5a10bd1cab04d9
Author: Dean Troyer <dtroyer at gmail.com>
Date:   Sat Jun 18 08:17:03 2016 -0500

    Refactor fix magic in get_one_cloud()
    
    Extract the magic argument fixes from get_ne_cloud() so they can be
    extended or modified.
    
    Needed by OSC in order to maintain compatibility due to the much
    earlier loading of auth plugins than before.  Have I mentioned
    that really fouled things up for OSC?
    
    Change-Id: I22cd890f9cbd605dcd615f82b3e65c58f52ff114

commit 5f5c925631d5f88d5f4a5d025e75c5d288850b4e
Author: Yolanda Robla <yolanda.robla-mota at hp.com>
Date:   Tue Mar 29 12:30:07 2016 +0200

    Use keystoneauth.betamax for shade mocks
    
    Instead of mocking the clients, use keystoneauth1.betamax
    fixture to intercept keystoneauth.construct_session, and provide
    our own recorded fixtures.
    
    Change-Id: I7b2973b0f89b66c19d6bf10571c3c93692107aa3

commit 2d20407729454bcbfea1e34beb946bcc1a4ad348
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Fri May 20 11:05:01 2016 +0200

    Add network quotas support
    
    Add the capability to get, update and reset
    to default quotas in network service.
    
    Change-Id: I3396e5ecac1379af927f0a99a3b0c4c995dcd283

commit 4f36eca18f30953352e3fea42776e2e49d1db5fe
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jun 1 10:51:44 2016 +0300

    Reword the entries in the README a bit
    
    Wanted to make each section a little better, but also to start to
    indicate that legacy clients should really not be your first choice.
    
    Change-Id: I26e08d037c7b28ced22a2a0126693d7e3e779f58

commit 7d63f12eddb250542587cab8e4a2ca9088ec0fbb
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jun 1 10:37:58 2016 +0300

    Add shade constructor helper method
    
    We have helper factory methods for REST Client, legacy client and
    OpenStack SDK all with the same interface ... we might as well have one
    for shade too. It makes documenting and talking about the simple case of
    all of them easy.
    
    Change-Id: I046da85ae4a3e2a6333223921d5ae9ce3673121d

commit d0ce33abfa154cdf0a5f706d7c483cbd2e917a85
Author: Caleb Boylan <calebboylan at gmail.com>
Date:   Tue May 31 12:51:05 2016 -0700

    Add reno note for create_object and update_object
    
    Change-Id: I4dfa51cad077e615cc24550b83a5d15862434c92

commit 6a834063a25852f7f6cd45d6f7331aa0f77ff4c5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jun 1 10:28:51 2016 +0300

    Rename session_client to make_rest_client
    
    While writing some docs, it became clear that session_client was just a
    horrible horrible name and that I'm a bad person. Rename it so that we
    can make docs that make humans happy.
    
    Also, move the REST client section of the README up a bit.
    
    Change-Id: I1a27853e3031489da5916308a76f19bc72185d24

commit cb2e59c06ace19c4a875cf4410972dfaf9f2c189
Author: Yolanda Robla <yolanda.robla-mota at hp.com>
Date:   Fri May 6 16:42:11 2016 +0200

    Add magnum services call to shade
    
    Change-Id: I7a50be5464b4962ece8e2f13e3e93f8939e26655

commit 41ac1562b5a10f7dcbdd4131b56784763f40eb69
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon May 30 18:33:38 2016 -0400

    Add helper method for OpenStack SDK constructor
    
    openstacksdk already has a helper method for dealing with occ, but if a
    user is already using the occ helper methods, there is no reason we
    should not provide them an easy path to using the SDK.
    
    Change-Id: I1040efb94385fdac0aa02ac960ba95089b954377

commit 92a3c9ea177a84a062873e31618ff6504f484430
Author: Caleb Boylan <calebboylan at gmail.com>
Date:   Thu May 26 15:25:20 2016 -0700

    Add function to update object metadata
    
    Change-Id: Ibeff2aa7cafd62b932f81fa17449657d9d83b19e

commit c56d8e0f3858304f09469ebf8c728966ed0e810c
Author: mariojmdavid <mariojmdavid at gmail.com>
Date:   Mon May 16 17:42:53 2016 +0100

    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
    
    Change-Id: Ie6775a99a84aa32b7b93bd399856972b7212d5c0

commit 8732fa7ec30d71d21f519b63c3ad687e24bcaf3c
Author: Yolanda Robla <yolanda.robla-mota at hp.com>
Date:   Tue Apr 19 21:33:21 2016 +0200

    Add magnum baymodel calls to shade.
    
    Change-Id: Icba6929d32ae2cc47ccb776e24bc8beac6b717d2

commit 7128a3e692effa4c2f742e983f73b9a64540cb8d
Author: Caleb Boylan <calebboylan at gmail.com>
Date:   Thu May 26 13:01:14 2016 -0700

    Make it easier to give swift objects metadata
    
    Change-Id: Ifcc11841a7742a8418fb270974209e0a9ef783a2

commit 49ca65001565133aa20ebf525e2d05f5df99d7f4
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Fri May 20 09:28:03 2016 +0200

    Add volume quotas support
    
    Add the capability to get, update and reset to default quotas in volume service.
    
    Change-Id: Ib5a996b90bb41c7ad01ac496a89478ea71a6bf2f

commit 7f47eb2a6407830fb5febd5c7475a271d8004411
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Thu Feb 25 22:04:51 2016 -0700

    Add quotas support
    
    Add the capability to get, update and reset to default quotas
    in compute service.
    
    Change-Id: Id814eaf25547c0272fddc43ae1d89ae613690c57

commit fbe1b382dfeab55795341fd8c0709e9a5e8517bc
Author: Alvaro Lopez Garcia <aloga at ifca.unican.es>
Date:   Mon May 23 11:29:23 2016 +0200

    Add missing "cloud" argument to _validate_auth_ksc
    
    The function _validate_auth_ksc was missing a "cloud" parameter so the
    exception formatting failed as it could not find that variable.
    
    Change-Id: Ia1caaa29fcb14d6ce7c16de1f78bbcae6c24adb0

commit b1343ac6b65ac9b0423ad78c432f59cb1273f79f
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri May 20 16:06:16 2016 -0400

    Add error logging around FIP delete
    
    To help catch leaking floating IPs, let's add some logging that
    might help us find out what's happening. We've been silently
    throwing away exceptions from the delete API that might help us
    narrow down the cause.
    
    Change-Id: Ia54a19015725b1d10d3d36301e0aab7bae3e3f60

commit 74ac5dbf31d315875f2fc25ac3b3a6827a3c00dd
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu May 19 14:02:37 2016 -0500

    Be more precise in our detection of provider networks
    
    A provider network with a physical type of None is a private network,
    not an externally routable network.
    
    Change-Id: I3856147b84137d6f76d1bb24cfe86be8513e9038

commit 58faf12cc2092653685d08082f888cfa295678ba
Author: Paul Belanger <pabelanger at redhat.com>
Date:   Wed May 18 19:10:45 2016 -0400

    Rework delete_unattached_floating_ips function
    
    The current version of delete_unattached_floating_ips was actually
    broken. We were passing the incorrect paramaters. All 3 actually
    didn't exist.  So we are dropping timeout, since delete_floating_ip()
    doesn't support it and changing timeout to retries.
    
    Change-Id: If6adc4b1a020ec1edec41d996ace87634303ea02
    Signed-off-by: Paul Belanger <pabelanger at redhat.com>

commit a1ab68cd2b27a70eda965ce6ae7d3b3e56a8afce
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri May 13 09:49:20 2016 -0400

    Make sure Ansible tests only use cirros images
    
    It's possible enabling OpenStack things can cause other images other
    than cirros to be made available (looking at you Magnum). We should
    make sure our Ansible tests only look for Cirros.
    
    Change-Id: Iefc01f8033629937552861366b9ddaac8058b249

commit fb357bd7edec2ef72e6d655acb5f8b7e8e786a14
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue May 10 11:40:35 2016 -0400

    Don't fail getting flavors if extra_specs is off
    
    Clouds can turn off extra specs. They're extra - we should not fail
    on getting flavors if they're not there.
    
    Change-Id: I6352fa2d64d3e92f823004a5b9f4cbfe61f11403

commit 02e4d1dc85ff91c37af23a2660c23c95113f159c
Author: Yolanda Robla <yolanda.robla-mota at hp.com>
Date:   Mon Nov 9 18:56:19 2015 +0100

    Add initial setup for magnum in shade
    
    Start by adding the client, following same structure
    as the other ones.
    
    Change-Id: I499f9fdda08743f7b67afcc1c2f9b07df471a041

commit 090a265669940c98b84e610bbbdd10c29c3d3d02
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon May 9 04:59:13 2016 -0500

    Workaround bad required params in troveclient
    
    troveclient requires username and password as parameters to the Client
    object, but if a Session is passed (like we do) that's not needed. A
    patch has been submitted to troveclient, but until that has been
    released, simply send None to both parameters.
    
    Change-Id: Ie130a4e83cceb7cab69bfbeb559493d195ef35e1

commit 44efe9c955c0e74d47b374085d45130ac78e6a4c
Author: ChangBo Guo(gcb) <eric.guo at easystack.cn>
Date:   Sat May 7 17:02:37 2016 +0800

    Trivial: Remove 'MANIFEST.in'
    
    Everything in this file is automatically generated by pbr.
    There appears to be no good reason to keep it around.
    
    Change-Id: I73eb120dedbdb6685862d26493fc178e6dee1353

commit 189a60475424e7efd41fe522d5a190f480ad1317
Author: ChangBo Guo(gcb) <eric.guo at easystack.cn>
Date:   Sat May 7 16:59:20 2016 +0800

    Trivial: remove openstack/common from flake8 exclude list
    
    openstack/common was used to kepp copied files from
    oslo-incubator, we don't use oslo-incubator stuff,
    so remove it.
    
    Change-Id: Id426c41e6ae277ed1f829820771d5ffc31a81166

commit b0fa4383b06af6cef748e4a4f1fdcc39265915b9
Author: ChangBo Guo(gcb) <eric.guo at easystack.cn>
Date:   Sat May 7 16:56:32 2016 +0800

    drop python3.3 support in classifier
    
    We don't run python 3.3 CI jobs anymore,
    so just drop it from classifier.
    
    Change-Id: I871269ae54067aae40f5dc06affbd4354104ee91

commit f728df506cb0f79c8c97d1e4cda983aac0478e00
Author: Ricardo Carrillo Cruz <ricardo.carrillo.cruz at gmail.com>
Date:   Fri May 6 13:43:55 2016 +0200

    Amend the valid fields to update on recordsets
    
    Recordsets fields that can be modified are ttl, description and records.
    This was probably a copy-pasta from update_zone (sorry!).
    
    Change-Id: I1b46c5634ceedf3d0f258a8625f0adb2f1a3584a

commit a53db2c68094887f132f67de001d0e382e2a1b1b
Author: Yolanda Robla <yolanda.robla-mota at hp.com>
Date:   Wed May 4 16:50:42 2016 +0200

    Move cloud fixtures to independent yaml files
    
    Instead of hardcoding the cloud data inside the code,
    move them to independent fixtures, so they are easily
    reusable, and we have freedom to add more cloud fixtures
    in the future.
    
    Change-Id: I57e460684ccc203b2eb5c70019e64b81ed5f2396

commit e6891082b3e58fe7a8940a6a77408210bdf95637
Author: Tim Laszlo <tim.laszlo at gmail.com>
Date:   Thu Apr 28 16:46:25 2016 -0500

    Add support for host aggregates
    
    This adds support to manage host aggregates and host aggregate
    membership.
    
    Change-Id: Iec84164c535171116dd3f97f30c5dc249bf09f0d

commit 068028cbe72cf9081925bf394d3289787a08b7f7
Author: Tim Laszlo <tim.laszlo at gmail.com>
Date:   Tue May 3 15:20:02 2016 -0500

    Add support for server groups
    
    This adds support to create and delete server groups.
    
    Change-Id: Iecf0ffabe50801ec9bd2bb9ea2dbb17ead4d7cd2

commit 04774d8f805047ea61be878c1c0a85d0f059cd99
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed May 4 09:54:26 2016 -0400

    Add release note doc to dev guide
    
    Add a section to our Coding Standards documentation that describes
    the use of reno for shade release notes.
    
    Change-Id: I87973c5b3f68727aa0cb1ccb9a82c90a8a32ebd1

commit 31ac451e129b00173966fda4e0e2aa100198a731
Author: Ricardo Carrillo Cruz <ricardo.carrillo.cruz at gmail.com>
Date:   Fri Apr 15 17:18:21 2016 +0200

    Add Designate recordsets support
    
    Change-Id: Ica8531c402cb10cee5aae38690ff95ebd80b21f2

commit 700ab6f28220dbd09c2bf1c917245dd212c0fb75
Author: Ilya Shakhat <ishakhat at mirantis.com>
Date:   Fri Apr 22 18:00:53 2016 +0300

    Fix formatting in readme file
    
    Change-Id: Ifa37d38b3c7689f703c7129459b15a367e2aafff

commit 40a50918bdf194991f1d68c2a60df2f512a64dd3
Author: Ricardo Carrillo Cruz <ricardo.carrillo.cruz at gmail.com>
Date:   Wed Apr 6 15:42:19 2016 +0200

    Add support for Designate zones
    
    This is the first commit to add initial support for Designate.
    Starting with zones objects, more to come.
    
    Depends-On: Ieaddeb4a0b317f85a2161e67bc5c202cc1b01464
    Change-Id: I1109f89075ed663620ecb11d18507e8a5d7351b4

commit d9455f6d8e09d4a80e2f3f03596985c598d19aa9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 21 10:12:14 2016 -0500

    Fail if FIP doens't have the requested port_id
    
    When we create a FIP on a port, it should return with the port in
    question. Also, it turns out we can wait for the floating IP to
    reach ACTIVE status. Finally, our normalize method for fips was
    producing inconsistent values depending on create or list - so fix that.
    
    Change-Id: I56b4136a77dd61b6ef1832759b8169dd53aa49da

commit 1872af0884531d4bd7d9943a348f91e286551c7c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Apr 20 10:13:14 2016 -0500

    Add public helper method for cleaning floating ips
    
    Some things, like nodepool or utility scripts, need to be able to safely
    clean floating ips, but doing so requires knowledge of whether the cloud
    in question is using nova or neutron for floating ips, which shade
    otherwise hides from the user. Make a helper method that allows the user
    to do it on the clouds where it is safe to do automatically.
    
    Change-Id: I93b0c7d0b0eefdfe0fb1cd4a66cdbba9baabeb09

commit 94dab0101c357e2c3b2c3cd8f417c2105a580996
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Apr 20 10:12:37 2016 -0500

    Rework floating ip use test to be neutron based
    
    We do the if condition in a lot of places. It should be a helper method.
    Also, the helper method should return the thing we test for, not the
    negation of it.
    
    Change-Id: I47b3dc79c3bfb12b57265f7008b1e7144611c1ef

commit 63566eaca7cf1ddc4a0460b9284b17fd9072551d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 19 15:36:25 2016 -0500

    Delete floating IP on nova refresh failure
    
    When we're in the middle of a "create an IP for this port of this
    server" flow and that times out, not deleting the IP on the failure
    causes a leak because there is no record given back to the user of the
    floating IP.
    
    Change-Id: I00f8a0f19e4a14eb364c760152b151a1043e7828

commit e91245eaa15ce35c1dde7d68a1e08834e57c158f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Apr 18 14:36:46 2016 -0500

    Retry floating ip deletion before deleting server
    
    If we're waiting for a server to be deleted, and we've asked shade to
    delete the ips associated with the server, it stands to reason that the
    action should not be considered complete until both things have been
    accomplished.
    
    Unfortunately, what's going on here is that deleting a floating ip is a
    synchronous event that just sometimes doesn't work. It is, however, a
    quick and not very costly event, and we've been doing it before the
    delete call regardless of user choice on "wait" anyway. So just add a
    configurable retry.
    
    Change-Id: Id7b81417a59c00d3daeb49bd11df0e9fe7dc3b42

commit 04fd7dbd73319ab70dfb99db5a60a0c03e6852f6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 19 10:42:20 2016 -0500

    Have delete_server use the timed server list cache
    
    Waiting for server deletion is just as costly as waiting for creation.
    Make sure that delete honors the 5-second cache if it's in use by using
    get_server() instead of get_server_by_id().
    
    Using the get_server() call identified a bug in the volume cache
    invalidation that is done in the code immediately after the call, so we
    fix that here too, and add a new cache_enabled attribute to allow us
    to avoid an unnecessary API call.
    
    Co-Authored-By: David Shrewsbury <shrewsbury.dave at gmail.com>
    
    Change-Id: I70ccfffe6cbb1f46049b3525bba35c612a572ef0

commit cb579cd71aac79ea7bfa7a2cd4f9d76ae43b1f15
Author: Steve Baker <sbaker at redhat.com>
Date:   Wed Apr 20 09:15:18 2016 +1200

    Document create_stack
    
    Change-Id: Ie79f513cb53be60130ce4dabff73e0463b4e1ebb

commit 7de80f972fce8e2c2db14972cab2d69b6c150efd
Author: Steve Baker <sbaker at redhat.com>
Date:   Mon Apr 4 09:09:23 2016 +1200

    delete_stack add wait argument
    
    This is useful especially to ensure that the delete completed without
    failures.
    
    Change-Id: I64ce8510b9cfdd7f3dd4e67cefa5e6aeda8f67ea

commit 40b30a6178c0b2ea2cef84afc3a104adfa2f24a0
Author: Steve Baker <sbaker at redhat.com>
Date:   Mon Apr 4 09:04:27 2016 +1200

    Implement update_stack
    
    This would definitely be desirable for shade users. Specifically an
    ansible module should to a update_stack if the stack already exists. If
    there are no changes the operation would be idempotent.
    
    Change-Id: I833027883a4eed11f4568760d44ffec87889021f

commit fba72070e040f8bce14a90566be33c4f5b0fca96
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Apr 18 16:11:59 2016 -0400

    Fix string formatting
    
    Some strings were being formatted incorrectly with incorrect
    argument names or numbers.
    
    Change-Id: Ic893a02e587334c8838f74d34ff383470b6149c8

commit e255657cd57b1ae74933cb7e3b4481bf451a8995
Author: Ricardo Carrillo Cruz <ricardo.carrillo.cruz at gmail.com>
Date:   Fri Mar 11 12:46:58 2016 +0000

    Add domain_id param to project operations
    
    A domain admin should be able to make project operations
    on the domain it manages, but for that it needs to specify
    the domain id.
    
    Change-Id: I3fdc72b7819206cd5effce26bda08cfe1d42d4e0

commit 59a2afd188f12ed36133bc1d3d49b0a67a39047e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Apr 16 16:44:42 2016 -0500

    Remove get_extra parameter from get_flavor
    
    It snuck in in a previous patch and is not really a thing.
    
    Change-Id: I25f9d625f2491986769dfcb27aeecf94452b47b8

commit 7c32cf607fa442549e4eb573a0fe62f541ed5316
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Apr 16 10:29:44 2016 -0500

    Honor floating_ip_source: nova everywhere
    
    We already added support for honoring the floating_ip_source flag, but
    we did not add it everywhere. This led to a situation where neutron
    would do the port attach and then nova would try to attach the IP.
    Whoops.
    
    Change-Id: I19adbd54e828753d9e1d5c810bc7f8ed7294c084

commit 590e6dda649c523bd20f36a867affe40a23b1d87
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 14 19:01:10 2016 -0500

    Use configured overrides for internal/external
    
    Some clouds (hi internap) have very difficult to discover internal and
    external networks. They defy all of our other logic, but we have
    configuation for this purpose. However, we were lettting discovery
    override configuration. Boo on us.
    
    Change-Id: I62e34b1f0f32c19acbeccd11bc2ea38a2b119951

commit 362986ed2e4b4ed8523b421a34e3d52c8a577499
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Apr 10 13:43:17 2016 -0500

    Start stamping the has_service debug messages
    
    We don't need to report this every time the code hits it. Once is fine.
    
    Change-Id: I5eaf7abf0608b8491a9d29980bd2de1d2f7c5b84

commit f4aa49c171b9513ce87f6f3b7481e197daadcad7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 12 07:35:21 2016 -0500

    Consume floating_ip_source config value
    
    There are some cases where the cloud needs to use nova and not neutron
    to deal with floating ips. We already have a config value for it in OCC
    - maybe we should just use it.
    
    Change-Id: Icab91c5dd3fb024875ee110b3d0168b97dc8a5d0

commit c6017bdc80b6a0efdcff8202dd7d37e4155f3733
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 12 07:28:14 2016 -0500

    Honor default_network for interface_ip
    
    When we generate the interface_ip (which is used, amongst other things,
    by ansible dynamic inventory) we do our best to figure out based on
    config which of the IPs a server has should be the one that the user
    wants to be "the" interface. In the previous patches, we added support
    for the user configuring a "default_network" for one of their networks.
    If the user has done this, and the server has an IP on that network, we
    should use that network for interface_ip.
    
    Change-Id: I440916622f9dfe12f8865bb1841dd0932d3cd7d0

commit af47ff174d1415b513387bc90359fea9797756a9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 12 17:17:47 2016 -0500

    Refactor the port search logic
    
    Trying to combine len(ports) and nat_network logic led to weird
    debugging. Split the two so that we don't try to search for a network to
    attach the fip to if there is only one port on the server.
    
    Change-Id: I1bc83e34a6f66cc5a8eb7ffa66f0288919210d4d

commit e734774d1c20a0c13998a9ab3d19a7a832b7c717
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Apr 10 13:40:15 2016 -0500

    Allow passing nat_destination to get_active_server
    
    One of the code paths in which you might want to declare the
    nat_destination is if you're calling get_active_server.
    
    Change-Id: Idefc9aae6108c2dec926909bbf8f5d72baac13de

commit d9fc340c61aa7439057340249535e934fc6106e8
Author: Arie Bregman <abregman at redhat.com>
Date:   Wed Apr 6 11:50:50 2016 +0300

    Add nat_destination filter to floating IP creation
    
    In Ansible 1.9.x 'quantum_floating_ip' module you have the option
    to specify 'internal_network_name'. This allows you to set the name
    of the network of the port to associate with the floating ip.
    
    In Ansible 2.x 'os_floating_ip' you can't do that. This change
    should bring the 'internal_network_name' option to be supported
    for Ansible 2.x version.
    
    Change-Id: I2c04a1feb5268a3621e35ed41a6af16622509325

commit 5d42c845096f364e9a3357a4585d17228a18d72d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Apr 4 19:54:52 2016 -0400

    Refactor guts of _find_interesting_networks
    
    _find_interesting_networks is very sadly WAY too long and ugly. A
    symptom of that was the code being all squished against the 80 column
    line - but honestly the problem is that the code is so deep inside of
    conditionals that figuring out what's going on is a bit madenning.
    
    Split it out into another method so that the logic of whether we need to
    do things can be isolated from the logic of doing things.
    
    Change-Id: I4d5a30e3a5abd2b2f71e49dd18eab3eeb8f02f1d

commit 1368b7dc61be5534d27e6e2830f16352beb7a5fb
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Apr 1 13:04:24 2016 -0500

    Search subnets for gateway_ip to discover NAT dest
    
    The network that should be the target of the NAT of a floatingip should
    have a subnet that has a gateway_ip. Ignore for a moment the
    monumental insanity which is that data model ... that a network can have
    one or more subnets, and a network_id is what a port has and is how you
    describe what you want to attach to, but even with all of that the
    gateway_ip is the cogent property and it's needs to be on all of the
    subnets in the network. Just ignore that ... if you can.
    
    Since that is the world we live in, we can discover which network is the
    netowrk that has one or more subnets that has the gateway_ip set.
    
    We'll still fail if there are more than one network that has a subnet
    with gateway_ip set. But in that case, the config will take care of it.
    
    Change-Id: Ib947081a6b7839e1a6f00dcbfd924cc99f19d0fd

commit 3f79e8db5387ce47dd02effb3ada4a51d465cf08
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Mar 31 16:12:15 2016 -0500

    Consume config values for NAT destination
    
    In a cloud that has multiple private networks and that requires
    floating IPs for public access, it's not possible to know which private
    network the floating IP should NAT to without the user providing
    some configuration. os-client-config added support for expressing
    such a thing in 1.17.0, so start consuming that.
    
    Change-Id: Iee634bcdc933a4c8d793ab9b25b27d9ecd77cdcc

commit 92dc7a20890db0cee0a17943274a12115d00852d
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Apr 11 10:15:05 2016 -0400

    Return boolean from delete_project
    
    Make delete_project conform to our standard delete APIs and return
    True when the delete succeeds, False when the project was not found
    for deleting. It would previously raise an exception during the
    attempt to delete.
    
    Also, add some missing functional tests for projects.
    
    Change-Id: Ie1773944b573c743a55fec202454968f1d813ec1

commit 0f2c7fb89a46e564b23685fdcb26c704e6cfb0ba
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Apr 11 09:31:47 2016 -0400

    Correct error message when domain is required
    
    The domain is required with keystone v3 when creating either a
    user OR a project. The error message presented mentions only a
    user, so this can be confusing when attempting to create a project.
    
    Change-Id: I8d88d894f00b301d72494a80db1d97ee1e9c0856

commit 1028f5ad7e21520f172c9c163e6b0ef66511bc13
Author: Thomas Bechtold <tbechtold at suse.com>
Date:   Mon Apr 11 10:30:24 2016 +0200

    Remove discover from test-requirements.txt
    
    discover is only needed for python 2.6 which is
    no longer supported.
    
    Change-Id: I8faeb05def94ac4adb2fe870fe141678dbd412ae

commit d9f9c05bfb377f02b6150ca50030e088d2c19df5
Author: Jamie Lennox <jamielennox at gmail.com>
Date:   Mon Apr 11 16:05:27 2016 +1000

    Add version string
    
    Use PBR to add an __version__ string to os-client-config.
    
    Change-Id: I2293b2bd0dbbe0108e805be8ba02fbba9a5ab064

commit b4720972d16932d22e86239575d30915ea23e04b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Apr 9 09:28:50 2016 -0500

    Add release note about the swift Large Object changes
    
    We landed a few changes to swift support worthy of release notes, but
    forgot to add release notes. Ooops.
    
    Change-Id: I496f35cb01c3ee98fe102d1c63c2eaac306cfbd9

commit d5e0745fc24eba031d185b18c41e2b0eabe2b716
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 7 22:34:35 2016 -0500

    Delete image objects after failed upload
    
    In glance with PUT uploads, if the PUT fails, you're left with a
    non-working image shell.  There is no point to that.
    
    Change-Id: Id47a10eab76f851202538c8b353288cb859656b8

commit 502a4bba86ad4e3b18bf81eff65a26d7233bed0c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 7 21:04:50 2016 -0400

    Delete uploaded swift objects on image delete
    
    If shade auto-uploads swift objects for a glance upload, then shade
    should auto-delete them when it deletes the image. To that end, also add
    metadata to the image that records what swift container/object it
    uploads as.
    
    Change-Id: If422d33dafec58c805a0d2bb5b8746727c8761d9

commit e0ad4ece18541db9fa2c9e43afc83eb41044b469
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 7 20:38:37 2016 -0400

    Add option to control whether SLO or DLO is used
    
    It's possible someone wants to upload an object as a Dynamic Large
    Object, but the previous patch to switch to Static does so
    unconditionally. Add an option.
    
    Change-Id: I6571bff4123d2bafef4d2a6f46198665bb9c21ce

commit 719c064c6dc662c2c7b18fe15c7b74c40552c662
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 7 20:09:03 2016 -0400

    Upload large objects as SLOs
    
    Swift has two type of Large Objects, Dynamic and Static. Static Objects
    are properly deleted when the manifest object is deleted ... so it's
    really the thing we want.
    
    Change-Id: Ifdc0c2699fd179f3b53a0e9905364bba201f6495

commit 19bbb7bbf46b52ac993eb408c36be1847309fd79
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Apr 8 14:20:52 2016 -0500

    Set min_segment_size from the swift capabilities
    
    Older swifts have a minimum limit on how small a segment can be in an
    Large Object. This is no longer needed in current OpenStack, but is
    important in old OpenStack.
    
    Change-Id: Iff83506d276b236c2ce3b078b3fbd9533c912b07

commit d8966d556765331926af62870dac9a8816bf35e1
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Apr 6 09:53:23 2016 -0400

    Don't use singleton dicts unwittingly
    
    filters={} is dangerous because it creates a singleton re-usable dict
    that will collect data over time. The correct python pattern is to pass
    None as the parameter and then do if None: set to dict.
    
    Change-Id: I90b233dc2b5dc17cb8180aa5786865c0d98358f5

commit 8601dd68f7e4949e94f9e6074657b0e36a146855
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Apr 7 09:40:06 2016 -0400

    Update func tests for latest devstack flavors
    
    The most recent devstack adds new flavors to the existing set, so
    we need to adjust some functional tests that are testing range
    searches across flavors.
    
    Note that we have a gate test that tests against stable/liberty
    and that devstack still has the original m1 flavors only. So we
    need to account for that in the functional tests.
    
    Change-Id: I98ce866686f3243ef2d2800b872a9840761fbe1a

commit 5605034fc38862b19e6d2d96aa222dafc7762060
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 5 10:38:46 2016 -0400

    Pull the network settings from the actual dict
    
    Turns out self._openstack_config is not the config dict. self.config is.
    Also, return names.
    
    Change-Id: Ib2013e737b506b3a2acd7aa7b7884240c25384c5

commit aae0b15d2c5dfc400c9034a5c4cac61eaf0fc96d
Author: Ricardo Carrillo Cruz <ricardo.carrillo.cruz at gmail.com>
Date:   Wed Apr 6 09:08:56 2016 +0000

    Fix search_domains when not passing filters
    
    I was getting exception "Failed to list domains
    (Inner Exception: ABCMeta object argument after **
    must be a mapping, not NoneType) by just doing
    cloud.search_domains.
    
    Change-Id: Icd10ea3c9af8adb33ab5468193f3de713a521eaa

commit bceedbce3f85698ac4b485b6f87f6e0e3a23474f
Author: Steve Baker <sbaker at redhat.com>
Date:   Mon Apr 4 09:00:36 2016 +1200

    Wrap stack operations in a heat_exceptions
    
    Heat exceptions give strings useful to the user (such as validation
    errors for their templates) so we need a custom exceptions wrapper to
    include those in the raised exception.
    
    Also the message for delete_stack exceptions now includes the name_or_id
    that the user passed in, which should have more meaning for them than
    the stack ID.
    
    Change-Id: I0bf0b9b249a311f76457115a5a7d2392244343f8

commit 2ed2254879c2a704c091ead551d5d12a1cd7bda7
Author: Steve Baker <sbaker at redhat.com>
Date:   Mon Mar 14 10:38:28 2016 +1300

    Use event_utils.poll_for_events for stack polling
    
    Calling get_stack to poll for stack state transitions causes
    unnecessary high load on heat servers so should be avoided if possible
    (this is true whether get_stack lists all stacks or a fetches a single
    full stack).
    
    Heatclient has a utility function which instead polls for stack events
    (with a fallback to fetching the stack when events are not
    forthcoming).  This function is used extensively by heat client and
    the openstackclient stack commands - it would be appropriate to use it
    here too.
    
    The timeout is passed to the stack create call, meaning that the stack
    will go to CREATE_FAILED if the timeout is exceeded. The default
    timeout_mins is usually 60 minutes, so the client-side timeout would
    never be reached anyway.
    
    Also, the current polling approach was not filtering for
    CREATE_COMPLETE so it wasn't actually waiting for anything.
    
    This change adds functional tests which cover get_stack, create_stack
    and list_stacks. test_stack_nested exercises the stack_create
    environment_files file composition.
    
    Change-Id: Ia14d47f0f51e1f8825b6de6d8dc5a12335913f55

commit fdb80ad04f5611ebc62b4c64f896448c9213a75c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Apr 2 09:47:52 2016 -0500

    Clarify one-per-cloud network values
    
    Make it clear in the docs that default_interface and nat_destination can
    each be set only once per cloud.
    
    Change-Id: Ic862b9f4dc31580c4e192f13f100428bbec7faa2

commit 7c439073f39010ad3ac937b8c9726da0f27976b7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Apr 2 09:09:54 2016 -0500

    Flesh out netowrk config list
    
    Add support for indicating default_interface. Also, add some validation
    and normalization code, some interface methods and, shockingly,
    documentation.
    
    Change-Id: Ib45b68894585ac02821d5d2376510fd7a8e8ee40

commit 9cbe9ae83df33e7fc67e772da5b35637e4f141c6
Author: Ricardo Carrillo Cruz <ricardo.carrillo.cruz at gmail.com>
Date:   Fri Mar 4 20:04:57 2016 +0000

    Follow name_or_id pattern on domain operations
    
    On pretty much all resources you can pass either a name or an ID
    on CRUD operations.
    This change does exactly that for domains.
    
    Change-Id: I88da81a6a62839f4eedc362fd15cb38149b6efd8

commit 74ea5ca44eb7ae92cdf1ff46e87e47d1824cee3c
Author: James E. Blair <jeblair at linux.vnet.ibm.com>
Date:   Wed Mar 30 16:19:41 2016 -0700

    Remove conditional blocking on server list
    
    When the server list cache proceduce was imported from nodepool,
    it grew this internal conditional which caused all server list
    calls to block on aquiring the server list cache update lock iff
    the server list cache is empty.  This means that on startup, we
    could have a thundering herd of threads which all insisted on
    waiting for the lock because there was no cached server list.  This
    does not seem to be necessary, and the original nodepool logic of
    always performing non-blocking acquisitions of the lock and
    returning the old (possibly empty) list of servers for any thread
    that did not get the lock (but will try again a few seconds later
    and should receive updated data at that time) should be sufficient.
    
    Change-Id: I5640f60da2b7789a98bea033e16695389c6062e0

commit acf9ffd4dcfa29c3112be527301b2e402191672b
Author: James E. Blair <jeblair at linux.vnet.ibm.com>
Date:   Wed Mar 30 16:04:00 2016 -0700

    Cache ports like servers
    
    This implements nearly the same caching logic for ports as servers
    so that when nodepool has a lot of servers that need floating ips,
    we can potentially list all of the ports and get the ports for many
    servers with one API call.
    
    If a filter is being pushed down to neutron, we will just perform
    the API call rather than caching (but in the common case of searching
    for a port for a server, we will no longer push down the filter
    in order to allow the caching to happen).
    
    Since we could have a caching delay, we also wait a little bit
    in case we don't get a port when we expect one.
    
    Change-Id: I66566f7a84d50b562f1303ed0e645cb41b11367e

commit 278a761df68d1e7d4d93ee2c6fb91f1a0e82e78a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Mar 30 16:10:04 2016 -0700

    Change network info indication to a generic list
    
    Networks can have more information than just internal or external. Notably,
    if you have two private networks and you're trying to assign floating
    ips, you need to know which network should be the recipient.
    
    This should be backwards compatible with existing external_network and
    internal_network options.
    
    Change-Id: I0d469339ba00486683fcd3ce2995002fa0a576d1

commit e43625d30025a11762e1cdd9ff6973ac3ec28db6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Mar 30 15:18:35 2016 -0700

    Workaround multiple private network ports
    
    In the case where there are multiple private networks, don't actively
    throw an error. Instead, just grab the first port and attach NAT to it.
    That's not completely correct, so a follow up patch is forthcoming that
    will add support to os-client-config for such a configuration value.
    However, in the mean time, just grab one, because why not.
    
    Change-Id: Ib3a49c0efc72a6de0bdd84c3fe1f34cc5f553a8c

commit b99eb3f3524f2cbefbdd3c7091f79758387b1c32
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Mar 30 09:57:36 2016 -0400

    Reset network caches after network create/delete
    
    Because we always cache the internal and external networks
    (because they are queried a lot during inventory ops), we need
    to make sure to reset the cache when a network is added or
    deleted. Otherwise the cache will not be valid.
    
    Change-Id: Id0ef15cd469f3b42fabcb85245853adefcdfa54f

commit 186d57e5f5d3f06ff612bfd2341f7bc67544cb1d
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Mar 30 12:35:16 2016 -0400

    Fix test_list_servers unit test
    
    This test was taking abnormally long due to the fact that it was
    not mocking all the things.
    
    Change-Id: I565e8568d3815bcf1ab7614081145f5b99cb8182

commit 32c4fff83828f814df8b5af17bc3e7353b41f4b9
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Mar 30 12:17:15 2016 -0400

    Fix test_get_server_ip unit test
    
    It turns out this unit test wasn't actually testing get_server_ip(),
    and the things it wanted to test were already being tested by other
    unit tests. And because it didn't do mocking properly, unlike the other
    tests, it was taking a long time to run. Rework the test to be more
    betterer and do correct things.
    
    Change-Id: Ife0fa7673081c72ca766e8f78ad2d44b1d0035f8

commit 454d30b5cfda3d8effdc2a559c78ed8c6cf18ec4
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Mar 30 12:02:06 2016 -0400

    Remove duplicate FakeServer class from unit tests
    
    For some reason, we had a second FakeServer class in unit/test_meta.py,
    instead of using the real fake (because real fakes are better than
    fake fakes). Use the real one.
    
    Change-Id: I32200bea83043c3495cc54aa6625df062bcb5b1c

commit 75ee8f967df00a8595c8169a1958295839aae387
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Mar 29 11:31:35 2016 -0700

    Mutex protect internal/external network detection
    
    We have stamp variables to prevent double processing the events as a
    mechanism of caching, but they're not mutex protected, so we can also
    have a race-condition thundering herd potential in multi-threaded code
    like nodepool. Add mutex protection around it - but just use one mutex
    for the two, because we can further refactor this to make a single pass
    through the network list and sort the networks from that.
    
    Change-Id: I74d8b279105e8d9e1a2c138da90e31485e123744

commit 1853a5400132949c3e264326385500b2d9f42667
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Mar 29 10:24:32 2016 -0700

    Support provider networks in public network detection
    
    The provider networks don't set router:external, but can also be
    determined to be a thing that is the public network. We also need to
    check that a thing with router:external=False doesn't have provider
    network parameters set on it.
    
    Change-Id: Ie8ee1329419bd1eee2c196f4a8624670aca1bc20

commit c7ebbbfdd3074f250baeae700929050b03e78b00
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Mar 29 10:37:58 2016 -0400

    Re-allow list of networks for FIP assignment
    
    Turns out the os_server module will send a list of network or
    pool names, so we broke it with this change ID:
    
      I0b27b50b2a6a8e5199bbeed5786b71851bb3ad3e
    
    Change-Id: I7d957d6d94102f2657e6ee87804f86a91563bb45

commit 18e8bfbb3e92045e3ad8f90b9d12b86b7e8c350a
Author: Cedric Brandily <zzelle at gmail.com>
Date:   Fri Mar 25 18:50:28 2016 +0100

    Support InsecureRequestWarning == None
    
    According to requestsexceptions implementation, InsecureRequestWarning
    can reference a class or None. When InsecureRequestWarning is None,
    OpenStackCloud.__init__ crashs because warnings.filterwarnings expects
    a class not None as category.
    
    This change updates shade code to support this case.
    
    Change-Id: Iad757400e15ed6b87db267bdc522aabce9aee8c9

commit 5c739ce26ea02f1c8d2ca198d98fe72626c9d3be
Author: Matthew Treinish <mtreinish at kortar.org>
Date:   Mon Mar 28 10:18:40 2016 -0400

    Add release notes for new create_image_snapshot() args
    
    This commit adds a new release note to describe the new options added
    to create_image_snapshot().
    
    Change-Id: Ic69d604c52a669af68cef1c06d5c455b27cef276

commit de364270bcacddc40b4afbe0f8402aee4c211480
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Mar 25 14:37:02 2016 -0500

    Split waiting for images into its own method
    
    Nodepool got bit by incorrectly waiting for images. So let's copy the
    wait_for_server pattern and make a wait_for_image method that knows how
    to properly wait for an image to become ready.
    
    Change-Id: Icac2606ae4d51c6fde5066e767b53a6baa14dd50

commit d9867f4922891c4cad08b7f96a96059b6667f5f2
Author: Matthew Treinish <mtreinish at kortar.org>
Date:   Fri Feb 26 22:24:49 2016 -0500

    Add wait support to create_image_snapshot()
    
    When creating a snapshot from a server sometimes it is desired to make
    this a synchronous operation. This is the same reasons we have a wait
    on the normal image create. This commit adds the necessary args and
    logic to the create_image_snapshot() to do a poll loop after the image
    snapshot is issued to wait until the image becomes available for use.
    
    Change-Id: Ief8a3f6c32b56230f0509e658b14795149647ec3

commit 060ce2e055cfceabd22a97801f4cf33c227aa6a2
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Mar 25 09:09:38 2016 -0500

    Also add server interfaces for server get
    
    In a previous patch, we always add the network info for servers via the
    server list - but we missed the output of server get.
    
    Change-Id: I557694b3931d81a3524c781ab5dabfb5995557f5

commit a9f4130ad03f8e6421ba37cf84ea13c94285dd2f
Author: Ricardo Carrillo Cruz <ricardo.carrillo.cruz at gmail.com>
Date:   Fri Mar 25 18:50:46 2016 +0000

    Import os module as it is referenced in line 2097
    
    Just got failure 'os i is not defined' on method
     _get_name_and_filename on an os_image Ansible play
    
    Change-Id: I25d07860b12773217b18cc54a2396b64119cdec1

commit 20451c32d602a5984c618bfa7967a191f63074ab
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Mar 25 14:44:58 2016 -0400

    Fix grant_role docstring
    
    We do not support finding domains by name, only ID.
    
    Change-Id: I2abf889abe1f8186e1f0deb7cd433cbc9e6f0ab1

commit bd8be72f4ef3baa23c1950c8a2667e2e0b7ce883
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Mar 24 12:12:53 2016 -0500

    Add default value to wait parameter
    
    Adding the wait param without a default broke the api for things calling
    it the old way.
    
    Change-Id: I75bbec19f06a0f85bc9cb1fbe4d4c6560dadba49

commit b5e3cd3307073d7a87514c9ce3de1692c5307bc3
Author: Jon Schlueter <jschluet at redhat.com>
Date:   Wed Mar 23 15:59:40 2016 -0400

    Use OpenStackCloudException when _delete_server() raises
    
    OpenStackException does not exist
    
    Change-Id: I9df905d6630dc7f0d1b3aec6e83c3c2b4d32dc7f

commit 35e6af88904508c6e4e33aab4af514c41e420c07
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Mar 23 08:52:43 2016 -0500

    Always do network interface introspection
    
    We split the function that figures out what your IP is from the more API
    heavy functions so that we could always apply it - and then we forgot to
    always apply it.
    
    Change-Id: Ic670a05ed5165be144912642f5ecae4ca0bc94c2

commit 0870ffe9491f3580bc38ae79578275f50c829ffd
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Mar 22 08:25:43 2016 -0500

    Fix race condition in deleting volumes
    
    We check at the top of the delete_volume call for existence of the
    volume, but then time passes and it's possible the volume does not, in
    fact, exist. Catch the 404 and move on with our life.
    
    Change-Id: I0873a238e519b08c09c2a17dba331401f7fc4bfb

commit 8a7c609352643487aa5820df052bc66043e07808
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Mar 21 11:25:02 2016 -0500

    Use direct requests for flavor extra_specs set/unset
    
    Same with the get - we need to resort to direct REST to do set/unset.
    
    Change-Id: Iec5b66b05bbd63071c5558782de7a67253ae209c

commit c6f02582e0102241c595e94521c4b5319289dc27
Author: Ricardo Carrillo Cruz <ricardo.carrillo.cruz at gmail.com>
Date:   Tue Mar 22 13:36:21 2016 +0000

    Fix search_projects docstring
    
    The method returns a list of projects, not roles
    
    Change-Id: I8ce4c8a5ab5fa6adbba4dd3f925e0b0528dae37d

commit abe2505f70e5ce65f37e488a68498af04967c701
Author: Ricardo Carrillo Cruz <ricardo.carrillo.cruz at gmail.com>
Date:   Tue Mar 22 13:34:09 2016 +0000

    Fix search_users docstring
    
    The method would return a list of users, not roles
    
    Change-Id: Ia9dd22baa2b6fc765345ce97e144a606ac450950

commit e41dabb10ce09fca4d34cc22487f9f2dbe305177
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Mar 22 08:33:30 2016 -0400

    Add new tasks to os_port playbook
    
    The allowed_address_pairs and extra_dhcp_opts parameters were
    broken in Ansible. We should make sure those are tested.
    
    NOTE: This will not pass tests until this merges and gets released:
    
      https://github.com/ansible/ansible-modules-core/pull/3303
    
    Change-Id: I51ceb5305109f6f1c4f1890903f117a9ed250d56

commit e4ba956a6b9956d566c249687a68cb97999e49ec
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Mar 21 10:23:47 2016 -0500

    Deal with is_public and ephemeral in normalize_flavors
    
    There are two attributes that are provided by extensions that we should
    deal with in our normalization function. novaclient provides helper
    methods to make the names less suck. We should also include the suck
    versions of the names though, as they are currently public parts of the
    API and people might be confused if they're missing.
    
    Change-Id: Ia2f1baf1307ec97fb0166cbb4a633852b461770b

commit d133f36b2c20cd7bfcdb2454abc276323148d0a8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Mar 21 08:56:11 2016 -0500

    Create clouds in Functional Test base class
    
    We need to use the long-form of the OpenStackCloud constructor to enable
    the internal_exception logging. In order for that not to be crazy, we
    should do it in a base TestCase class. Also, that way we've got
    consistently named clouds in all of the tests.
    
    Change-Id: I42da312dbcaa8926d28e97e37d13370a544cf4bd

commit e1f6f1c9eea2d6b0bf5b32a7c16630e233ca6cdb
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Mar 19 04:47:56 2016 -0500

    Run extra specs through TaskManager and use requests
    
    The previous fix for flavors and extra_specs made API calls that did not
    get wrapped in the TaskManager. This is really novaclient's fault for
    having a weird interface. Change it to call in through the api.client
    interface on the flavor manager in novaclient so we can Task it.
    
    Some clouds return the extra_specs dict in a key called
    OS-FLV-WITH-EXT-SPECS:extra_specs. If that's present, just add it to the
    return dict instead of making the extra API call.
    
    There are two instances of making raw REST calls to nova via the
    client.api property of novaclient. However, we have access to a proper
    keystoneauth Session object we can mount properly on the compute
    service, so instead of using weird internal novaclient API - let's just
    use requests.
    
    In order to support this, we need to do the request_id logic ourselves.
    Luckily for us it's easier logic than in python-*client because we don't
    have to deal with appending request ids since we're never in the middle
    of a request chain.
    
    Change-Id: Ia8e40d542f98f0ccc55131ca277b862cffeecb12

commit 55db0a565cebcc09c4277e44b356a2e2a7bf2fc1
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Mar 18 14:02:01 2016 -0400

    Bug fix: Make set/unset of flavor specs work again
    
    The 1.2.0 release broke the API methods to set and unset
    flavor extra specs because we need the raw object, as returned
    from the nova client, to make method calls to change those
    values. As a result, a new 'raw' parameter was added to the
    submitTask() method of TaskManager to allow us to get these
    raw objects back.
    
    Additionally, we were never displaying the 'extra_specs' for
    a flavor. This, too, requires a raw object method call.
    
    Flavors are now normalized to remove client cruft and make sure
    that 'extra_specs' is always an attribute.
    
    As if that weren't enough, we now do functional tests for these
    things! What more could one ask for???
    
    Change-Id: Ie5c132317392cf26df2c8f43e9f07d040119eca0

commit e6b60d99c8ab381f2abe0ed66af4510eff3c910f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Mar 19 08:40:17 2016 -0500

    Refactor unit tests to construct cloud in base
    
    There is no need to construct a cloud individually in each unit test.
    Further more, we can now just use the enable-inner-exception interface
    introduced a few patches ago.
    
    Change-Id: Ia45a47ec243c917ab05b5a2f95c449b9e8d1da68

commit d725978313feed9aeba8250946321d0790c57f42
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Mar 19 08:12:45 2016 -0500

    Add constructor param to turn on inner logging
    
    Monkeypatching isn't the best interface for setting a behavior flag.
    Make it more accessible by presenting it as a constructor option.
    
    Change-Id: Icc6b87c205fff551351cad81b9d83c27fc67d2c9

commit 4151feb65c5f05771ac1e78d187b7304acd59695
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Mar 19 06:52:51 2016 -0500

    Log inner_exception in test runs
    
    Just like in nodepool, it's useful to get the actual traceback in the
    output for inner exceptions when you hit an exception in a test case.
    
    Change-Id: I1d5723390772011a1ba290596c2b0d13e9431fcc

commit c7f8a88886ccbfa7b726babce0e8e92405ca9a57
Author: Ricardo Carrillo Cruz <ricardo.carrillo.cruz at gmail.com>
Date:   Fri Mar 18 21:04:31 2016 +0000

    Pass specific cloud to openstack_clouds function
    
    The openstack_clouds function gets all the clouds defined in
    the clouds.yaml.
    For clouds with multiple regions, it will return an OpenStackCloud
    object for each one of the regions tied to the cloud.
    This change allows to pass an specific cloud in case the user
    wants to pull a single clouds with multiple regions from clouds.yaml.
    
    Change-Id: I41512825cac99fae80c61b3a61248442dcd637c7

commit ebec66853033e0e953055e0a4e8fb906e7092e66
Author: Steve Baker <sbaker at redhat.com>
Date:   Mon Mar 14 11:20:57 2016 +1300

    Make get_stack fetch a single full stack
    
    There is a convention in shade for get_<entity> calls to do a
    list_<entities> with no server filtering then do a client-side filter
    to return a single result. This approach is not appropriate for Heat
    since the stacks.list call returns significantly less detail than the
    stacks.get call.
    
    A user calling get_stack will almost certainly be wanting the extra
    detail provided by the proper stacks.get (for example, the stack
    outputs).
    
    This change switches to using stacks.get for the get_stack
    implementation. It replaces the search_stacks call with a local
    function that returns a 'list' of one full stack object.
    
    Change-Id: I5d326d489f806709252a22360f3dbd8011fdb9c7

commit ee88b231131731a15799930d8d5bd152ce55995b
Author: Tristan Cacqueray <tdecacqu at redhat.com>
Date:   Mon Feb 8 15:56:41 2016 -0500

    Add environment_files to stack_create
    
    This change adds support for Heat Stack environment files.
    
    Change-Id: Ie6145aa5fde71d93f1df802f16ae4969df5de929

commit 1e738dbc91dd29ccac0aaa65364d353a9266c52a
Author: Mathieu Bultel <mbultel at redhat.com>
Date:   Thu Feb 4 14:16:17 2016 -0500

    Add normalize stack function for heat stack_list
    
    With the stack object the _filter_list
    was not able to do the:
    e.get('id')
    e.get('name')
    
    Also the stack dict don't have the 'name' key,
    so need to set name -> stack_name
    
    Unit test add for get_stack and list_stacks function
    
    Change-Id: Ia1f3c949cc01906166175a9dcd3b844bc6947e28

commit cfd62e4bbd44795cd3fafa623d43afc43b2311ce
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Mar 14 18:39:57 2016 -0400

    Add wait_for_server API call.
    
    We need to be able to wait for a server to reach active status.
    This was the intended usage of get_active_server(), but it doesn't
    do any waiting, which is a bummer.
    
    Change-Id: I5be0b1cf6f1b910b6d861d81fc1083e4793b9e5f

commit cb60c7eae8f37eed89240966022bc4268e697f31
Author: SamYaple <sam at yaple.net>
Date:   Sun Mar 6 16:47:15 2016 +0000

    Update create_endpoint()
    
    Using kwargs as it is used in create_endpoint() does not work if other
    kwargs are needed besides the three *_url ones. This means if any new
    kwargs come along this will have to be refactored anyway. More
    immediately, this code cannot be used with update_endpoint() in the next
    patchset leading to an inconsistency in code.
    
    This refactor allows both create_endpoint and update_endpoint to be
    consitent with eachother and, dare I say, makes this.... futureproof?
    
    Change-Id: I79273e3dc409cf49b03cc644ea50fe143bcd53aa

commit b7b6de094b302f536f26dfe6ad4e92d62dc91066
Author: Ricardo Carrillo Cruz <ricardo.carrillo.cruz at gmail.com>
Date:   Fri Mar 11 23:09:47 2016 +0000

    Make delete_project to call get_project
    
    delete_project called update_project, which in turn calls get_project,
    to gather the project object.
    This round-trip is unnecessary, delete_project can and should
    just call get_project.
    
    Change-Id: I6d6052b924411d52ce0f3ac0cfcd4d5d62563ae3

commit a71511468ee7395040e8a0246b9cbba9b6de069f
Author: Doug Hellmann <doug at doughellmann.com>
Date:   Thu Mar 10 16:17:08 2016 -0500

    Update reno for stable/mitaka
    
    Fix a few page titles at the same time
    
    Change-Id: I68d082f1cad51bbe58deed6a7e4b0de122c22fc7

commit cbab18b0fa87cb9ddbcd8e37aa4bfffd9b582b34
Author: Clark Boylan <clark.boylan at gmail.com>
Date:   Wed Feb 10 16:05:15 2016 -0800

    Add osic vendor profile
    
    The new osic cloud is a thing. Add a vendor profile here to simplify
    using it.
    
    Change-Id: Iecd473c93cd1e1d8e2bf9a785f257a47df10351e

commit 82697db9e6cb71a776b6ecfc898346901e323d4b
Author: SamYaple <sam at yaple.net>
Date:   Sun Mar 6 19:32:07 2016 +0000

    Test v3 params on v2.0 endpoint; Add v3 unit
    
    Part of the code was not being excericed resulting an invalid line of
    code slipping through. "'%url' % interface" evaluates %u thinking it
    is about to put in a number. This is not the case. Use .format()
    instead.
    
    Add unit test to check that section of code.
    
    Additionally, add tests to validate v3 endpoint code
    
    Change-Id: I116fff73ce102232c2a14acc7ee55bd660dd8be7

commit f10f704bfa30e32ab8394093b44d1358b1e90af8
Author: SamYaple <sam at yaple.net>
Date:   Wed Mar 2 22:44:26 2016 +0000

    Add update_service()
    
    Services can be updated, we can even update them!
    
    Keystone v2.0 did not allow updates, Keystone v3 does
    
    Improve unit tests to test v3 items for service functions
    
    Change-Id: I36b9f92f7b551451973e3681dd8814ed90614b9c

commit 8fda803d170623a0ce91f2f7c3aea2490351a821
Author: Stefan Andres <s.andres at syseleven.de>
Date:   Mon Feb 15 11:56:17 2016 +0100

    Use network in neutron_available_floating_ips
    
    The old behavior takes a list of network names or id, ignores it and
    picks the first external network it can find
    
    This fix implements the actual logic of using the parameter:
     * Uses the given external network, if supplied. This changes to
       using only a single network instead of a list because no where
       is a list supplied to the call.
     * If no network is given, it takes the first external network.
    
    (Shrews) The unit tests are also changed because they were suck.
    The test for available_floating_ip() is changed to test only it's
    calls and not the lower level functionality. New tests are added for
    the _neutron_available_floating_ips() call, which implements the lower
    level functionality and which is where this change is actually tested.
    
    Co-Authored-By: David Shrewsbury <shrewsbury.dave at gmail.com>
    
    Change-Id: I0b27b50b2a6a8e5199bbeed5786b71851bb3ad3e

commit d0709ead25dc5d5e19445f451e2380db004eb37f
Author: Ricardo Carrillo Cruz <ricardo.carrillo.cruz at gmail.com>
Date:   Thu Mar 3 22:45:52 2016 +0000

    Allow passing project_id to create_network
    
    The neutron net-create verb allows passing a tenant_id param,
    allowing a cloud admin to create networks on any projects is
    granted to.
    This change allows passing this param, which is an admin-only
    option.
    
    Change-Id: I76285ad1f7106f9a5900f118cdc7a5012786869d

commit 543954dd056527a4ff5164d0aec3e791c89b0550
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Mar 7 23:03:12 2016 -0500

    In the service lock, reset the service, not the lock
    
    It turns out that when you're in a context manager that has gotten the
    lock, attempting to set that lock to None will fail. It's also not the
    thing we actually want to do. What we WANT to do is reset the _service_
    so that we'll ensure a new service object gets created.
    
    Change-Id: Ic39ef0418dcd5c0cbbe710ac1c31e58b744f56b5

commit ff82154b90a3235e9063e2513df37dca4ed2849b
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Mar 7 14:48:20 2016 -0500

    Bug fix: Do not fail on routers with no ext gw
    
    Although I've not been able to reproduce it, some user have reported
    an exception from shade in the list_router_interfaces() call when
    trying to access the external_gateway_info of a router that does not
    have this key set. Let's just be safe and and a check to make sure
    that the key exists.
    
    Change-Id: I949b76b2b306e5161e7ee77d6c588a77ac4c7d87

commit cf43b98e335e5bbb409e6209dada5e3c86bb8ceb
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Mar 4 08:31:41 2016 -0600

    Mock glance v1 image with object not dict
    
    glance v1 objects are not dict like. They are just regular objects.
    Making them dictlike triggers an unreal path. This also allows us to
    remove the _shadeunittest logic line in obj_to_dict.
    
    Change-Id: Iae2d926a7d8b899ef842b8cb1e898a38ed17adf7

commit d72262e207ec172a2cc04247101959297410f5c3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Mar 4 08:23:50 2016 -0600

    Use warlock in the glance v2 tests
    
    We were mocking what should have been a warlock object with a dict like
    object. Instead of doing that, actually pull the model from glanceclient
    and construct a legit warlock object in the mock so that we can make
    sure our warlock morphing does the right thing. Also, warlock triggers
    'smarts' about which parameters to update, so update the test to mock
    out the right things.
    
    Sadly we have to copy the task schema in, because the only place it
    exists in API form is in the glance source tree.
    
    Change-Id: I9a63bfb7a85e69e66d32cf28d0e7fe207996e1b4

commit 3850774d8f3f766487462a9bb05e68eb9c8ffe91
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Mar 3 15:19:07 2016 -0500

    Fixes for latest cinder and neutron clients
    
    In obj_to_dict, if we get a dict-like-object, we should convert that
    with Munch. Otherwise, we just convert its properties and not values.
    
    When comparing cinder things, do not compare the entire structure
    since what we get from the create call can be different than what
    we get from the list call. Just compare IDs.
    
    Change-Id: Iada5ff76cf9192a2c10e117536546989633c290e
    Co-Authored-By: Monty Taylor <mordred at inaugust.com>
    Co-Authored-By: Sam Yaple <sam at yaple.net>

commit 0f23cb8fa2605acfde4b0c6429fcc1d7e6f221fd
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Mar 2 09:55:40 2016 -0600

    Add debug message about file hash calculation
    
    When debugging image uploads, it can seem like shade has hung when it's
    in fact calculating file hashes. Emit a debug message to indicate this
    has been done.
    
    Change-Id: Ib0fde6ad96de6b6ba31e5c0b1b2f1bb54aad6f1e

commit c12d5020b3fb4cf7d55daad6ef0729d1d2c9778f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Mar 2 08:23:42 2016 -0600

    Pass username/password to SwiftService
    
    Similar to the change we made for swift Connection in os-client-config,
    pass any username/password info we have into the swift SwiftService
    object so that if it needs to re-auth it has the information.
    
    Change-Id: Ie850b8831d0192420289960b210b7a520c8c3322

commit b4411cbadf0035cb59846d95940391d42b089e56
Author: Ian Wienand <iwienand at redhat.com>
Date:   Wed Mar 2 14:39:26 2016 +1100

    Also reset swift service object at upload time
    
    When you follow through swiftclient.service.SwiftService() it ends up
    creating a swift swiftclient.connection.Connection() object within it
    [1].
    
    As noted in change Ib35dd49627bc2209060848e719e3cec40dbb4f2a ; the
    swift client object does not support keystone sessions, so does not
    handle having an expired token (tokens for RAX, the cloud we see this
    issue with in nodepool, expire after 24 hours).
    
    This leads to a very confusing exception about "No tenant specified"
    [2] which I believe is actually somewhat of a red-herring; what has
    happened is that the authentication failed, the client inside the
    SwiftService object doing the upload hits its retry path and we end an
    authentication failure path [3] that outputs this message.
    
    The split between what happens in a swiftclient Connection() object
    versus a SwiftService() object further suggests this is the failure
    point -- you use the client object to do things list
    list/create/delete containers, but the SwiftService object provides
    the wrappers that handle the actual upload of the objects.  This
    explains why we see the exception raised in the upload image path, but
    not the creation of the containers to hold the image.
    
    As with the swift client issue, the simplest way around this is to
    always request a new SwiftService object when uploading a new image.
    
    [1] http://git.openstack.org/cgit/openstack/python-swiftclient/tree/swiftclient/service.py#n226
    [2] http://paste.openstack.org/show/488685/
    [3] http://git.openstack.org/cgit/openstack/python-swiftclient/tree/swiftclient/client.py#n1544
    
    Change-Id: I1c9d71ec828eb7d67045fb6bef468dc20e67292b

commit 53adfb46ea8c785a1ecfb0808fb91cf60773dc1e
Author: Clark Boylan <clark.boylan at gmail.com>
Date:   Tue Mar 1 20:26:15 2016 -0800

    Invalidate volume cache when waiting for attach
    
    We need to invalidate the volume cache when waiting for volume attach to
    complete otherwise we never see the attachment complete (the cached data
    is perpetually stale).
    
    Change-Id: If875997b7fb6682ef4752852c58ea1b4cf52de91

commit a9d155fd53f19be497c3becda62a3fbb84d9c8aa
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Mar 1 15:00:58 2016 -0500

    Use isinstance() for result type checking
    
    Shade has been broken in the past by the underlying clients deciding
    to change their API and return a subclass of the thing they used to
    return. For this reason, let's use isinstance() instead of type().
    
    Change-Id: I1e50d5314fb2cd7d7f8fcf77a3714704ca738672

commit 34799e9f9ebdc8b8b49e8980388b1fc377ffac43
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Feb 26 11:46:20 2016 -0500

    Add test for os_server Ansible module
    
    We haven't been able to test os_server because we haven't had a
    way to reliably determine the image name (which changes from time
    to time based on version) from the playbook. A stupidly clever
    hack is to just grep out the name from a shell call to the openstack
    client and pass that in to the playbook from the command line.
    
    The playbook is simple for now for the initial commit. I expect new
    tasks to be added to it later.
    
    Change-Id: I3caedfd4c805126c8da1fc8bab06ccda3fd96528

commit f236869b77cb61e09b4be11aff4d88c83927e38e
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Mar 1 14:18:04 2016 -0500

    Fix create_server() with a named network
    
    If 'network' was supplied to create_server() along with an empty
    'nics' list, we would never attempt to find the network. The os_server
    Ansible module uses the API this way. This treats an empty list the
    same as if the 'nics' parameter were never supplied.
    
    Change-Id: Idc844fab2c4c08f158c892104d065e5554ed90f3

commit 80e7c428530a73402b99223a478f9e8f1c39ac64
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Mar 1 13:49:13 2016 -0500

    os_router playbook cleanup
    
    The playbook testing os_router was not cleaning up the external
    network it created.
    
    Change-Id: I49abe439de6ed9a8d844a505e8552c779f29da03

commit 795750bfde6a4ab3be5f7f1e34fe7ea6f91c6f2b
Author: Tristan Cacqueray <tdecacqu at redhat.com>
Date:   Thu Feb 4 00:26:00 2016 -0500

    Fix heat create_stack and delete_stack
    
    This change attempts to fix the create_stack and delete_stack method:
    * get_stack doesn't have a cache parameter
    * stacks.delete only take one parameter, the stack id
    
    Change-Id: Idc6a4c5a3a90808db7204c7187d1a8779803e4a7

commit 11b834a2d80d30cad2c5cc08a325a5a330f348bc
Author: Joshua Hesketh <josh at nitrotech.org>
Date:   Mon Feb 29 15:17:30 2016 +1100

    Catch failures with particular clouds
    
    If one cloud is unavailable list_hosts will fail and return no results
    even if another cloud had a listing. Add a flag to allow users to
    pull results from whichever clouds they can.
    
    This is to allow infra to continue working across whichever clouds
    are up should one fail.
    
    Change-Id: Ic2bb2a1642dedead73d7c2e4e60ec59ae8299ef0

commit a7fe2520aea62372834092362b7cd024982d8b69
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Feb 26 12:25:39 2016 -0500

    Allow testing against Ansible dev branch
    
    Adds support for a new environment variable that will trigger
    testing against the upstream, development version of Ansible.
    This will help us catch breakages in Ansible that would affect
    the OpenStack modules.
    
    A new, non-voting job is expected to set this variable.
    
    Change-Id: I7ac84487dd323ef95191fab966244da586b37cd3

commit d0979597275d514b0b1a1266f98513b99fa1639e
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Feb 26 16:49:15 2016 -0500

    Recognize subclasses of list types
    
    Change-Id: I8b46d11368bf33ad073ed3b28eb2282ee70ffbe3

commit 03d5659d8b45b0450a86956147cc2d1f27be66ac
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Feb 22 06:37:13 2016 -0800

    Update the README a bit
    
    Cleaned up example references to now-not-existing HP Public Cloud. Also
    added a named-cloud entry to the make_client section.
    
    Change-Id: I398c438e22eb84d6079a5c45f068753c3bcaa216

commit 7a4993da4190d92cb2f023d84e0e9311db38f0bf
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Feb 22 06:30:31 2016 -0800

    Allow session_client to take the same args as make_client
    
    make_client is a great, simple yet flexible way to get a fully featured
    Client object. simple_client is similar for Session objects, but lacks
    the argparse and arbitrary kwargs that make_client - plus it has a weird
    name. Since adding those two features to make_client did not make it too
    confusing - do the same for simple_client. Also, rename it to
    session_client (with a backwards-compat alias) and add it to the README
    docs.
    
    In the process of doing this, extract the "get me a cloud config"
    functinality into an additional helper function - get_config.
    
    Change-Id: Iadd24dfa021f870b3e5858bab8cd91fc96a373c2

commit f6bbd31dbfeb5ddfd968b8a9cdcb093a2b60d459
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Feb 21 13:49:12 2016 -0800

    Add ability to pass just filename to create_image
    
    There is a common use case of wanting to create a disk image and then
    upload it to the cloud where the name of the diskimage minus the file
    extension is the desired name of the image in the cloud. Support that
    easily by checking to see if the user passed in a filename as the first
    paramater and, if so, use it as the filename and strip the path and
    extension to use as the name.
    
    Also, document the method while we're in there.
    
    Change-Id: Iade5f071544775864534660b544a6a01b15a2adb

commit 11a8527558fed6943b583b14dffc1c24818ce9a4
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Feb 15 16:38:12 2016 -0500

    Add support for provider network options
    
    This has been asked for by the Ansible community.
    
    Change-Id: Ib11beb42901cdf6b5c9a5d8f8e3a2a0f2fbf382d

commit ef263d6a239ebdcdbf3317a8176702052017df3a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Feb 19 13:39:44 2016 +0000

    Remove mock testing of os-client-config for swift
    
    This test does not test shade - it tests implementation details of
    os-client-config. We test those in os-client-config.
    
    Change-Id: I1a24e1718995b7ac508aec77c7dd351ef22cba74

commit 35ece66b4cc263816b9b28239901a5cbad61c8eb
Author: Arie Bregman <abregman at redhat.com>
Date:   Thu Feb 18 14:23:12 2016 +0200

    Fix formulation
    
    Fixed the formulation for the message that appears when cloud config
    couldn't be found.
    
    Change-Id: I1a4a83fe598d4eab52713061471fab8d1c46ec91

commit 7865abc22b7289b2679f6848395d4850d544d1f0
Author: Clark Boylan <clark.boylan at gmail.com>
Date:   Wed Feb 17 11:46:57 2016 -0800

    Add release notes
    
    Catch up the release notes from the previous release to current state.
    This does not catch up from the beginning of oscc's history.
    
    Change-Id: Ic981fdfbb79cd7fc70167091bdfed281c11eff03

commit dcc9aad9c0c374f62c6152bb77d6db59dea59ea5
Author: Matthew Treinish <mtreinish at kortar.org>
Date:   Wed Feb 10 19:48:48 2016 -0500

    Add a method to download an image from glance
    
    This commit adds the missing function to download image data from
    glance. The get_image() call returns the metadata about an image but
    there was no method to get the actual data.
    
    Change-Id: I8797f90ea4152dfed90b3311ceca098b2807ef7e

commit dd1f03c597daf1dc422608ab8e2b0b6b78168a3f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Feb 10 17:37:54 2016 -0600

    Send swiftclient username/password and token
    
    For longer-lived operations, tokens can timeout and we need to get new
    ones. While in theory we should be keystoneauth aware and passing around
    sessions, swiftclient does not yet support this. So, instead of passing
    in just a preauthtoken, also pass in credentials if we have them. However, for
    plugin types that swift does not know about directly, only preauthtoken will
    be used as before.
    
    Change-Id: If724fdcd0649d9fa3b3ee7b127e49a3f77e3b767

commit 02b4b4c43fbed744ba375f62ffc5d323e363cfb6
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Feb 12 11:24:52 2016 -0500

    Add test option to use Ansible source repo
    
    This restores the ability to run the Ansible tests using Ansible
    from the source repo rather than the production version from pip.
    Using production will be the default, but this sets us up to add
    a new job to test against the latest dev version, if we want.
    
    Change-Id: I93cdec653dd672acfbc03576d100d19ab8595f2e

commit 8cb0eb37721985a58665c6e3e1b63b17c23c4cee
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Jan 29 10:28:41 2016 -0500

    Add enabled flag to keystone service data
    
    Services can be enabled or disabled. Add this flag to the service
    data structure.
    
    Change-Id: I879811e95829176a64dc34cf7bef09c25421c062

commit ab8a1969075c80ba7b1cea9b9994d8eeedfd5f49
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Feb 5 14:11:09 2016 -0500

    Clarify Munch object usage in documentation
    
    We have pretty much settled on sticking with Munch objects for the
    1.x series of shade releases. Change the documentation to note this.
    
    Change-Id: I8b2838c3a5a40b0c74e31081bfb1ed4b0d39280f

commit df379be704fc2c1bb870dc2ab01a1e19626c754c
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Feb 5 13:51:58 2016 -0500

    Add docs tox target
    
    Add a tox target to easily build the shade documentation.
    
    Change-Id: I38f3a39de1a34ae8709ce3b83a8fb51dd75299d3

commit 9035ade760591cf194feaa643f5278049d90bee5
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Jan 29 09:45:22 2016 -0500

    create_service() should normalize return value
    
    The new service data being returned from create_service() was not
    going through the normalization function.
    
    Change-Id: I5e80e7a74f71a61d83653595b9a176d2aa9039ec

commit d052121d6dd66ffd2b0d6ed56c20ed1a1c55afd8
Author: Matthew Treinish <mtreinish at kortar.org>
Date:   Thu Feb 11 15:09:31 2016 -0500

    Prepare functional test subunit stream for collection
    
    This commit fixes an issue with the functional test jobs where the
    subunit stream from the test run isn't archived. This prevents both
    the testr_results.html file from containing test results, and also
    the eventual collection of the test results into the subunit2sql db
    (when it's actually enabled for non-tempest jobs)
    
    Change-Id: Ie16206349c59f780d786bffe5db1992cfa6a002e

commit 661927392c245607f35ac111e7c5060d41cb4484
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Feb 11 08:33:50 2016 -0500

    Use release version of Ansible for testing
    
    We were using the unreleased (from git) version of Ansible for our
    Ansible test job because at the time, 2.0 had not been released. Now
    that it is released, use pip to install it so that we are less likely
    to get broken by development changes to Ansible.
    
    Change-Id: Ie714f42d26569044b6a3ee761bd5fb7451833d96

commit ef5a1b20a130f052d7d272bfffe7a9def88d6c4b
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Feb 10 10:23:30 2016 -0500

    Modify test workaround for extra_dhcp_opts
    
    The neutron create API now returns extra_dhcp_opts. In older versions
    it did not so it had to be removed when comparing the port definitions
    between the "create" and the "get". Now we only remove it if it is not
    present in the "create". This keeps it working for our keystonev2 test
    job which runs against stable/liberty now.
    
    Change-Id: I4d6a57b0f15f1868c5ba4e62a2bf248662bd8896

commit 10a9369062504cce1c4c79a1b112e619082cf6ab
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Feb 10 11:24:10 2016 -0600

    Remove HP and RunAbove from vendor profiles
    
    HP has already shut down its public cloud. RunAbove is shutting down
    17th February as part of the migration to OVH.com. Neither are therefore
    valid vendors any longer.
    
    Change-Id: I8d305ca2b1cbaf67e6711eedaa1a4c5668a42be7

commit 8264e09c69bd6c017c1716a70cec21c28919e6d1
Author: Mohammed Naser <mnaser at vexxhost.com>
Date:   Wed Feb 10 11:51:37 2016 -0500

    Added SSL support for VEXXHOST
    
    VEXXHOST cloud uses SSL for Keystone and all other services,
    change the auth URL to the SSL endpoint.
    
    Change-Id: If80c76603de44d005d6af1726f34d924384bf747

commit 9199c263c9b085f6bbacb3c71a466c021f2c7871
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Feb 8 10:55:22 2016 -0500

    Fix for stable/liberty job
    
    Now that the keystone v2 job runs against stable liberty, we have
    to look in a different location for the clouds.yaml file since it
    was still being written to the home directory at that point.
    
    Change-Id: I3afd99ef0d460b541d4000740ec045879c507358

commit e38eea3d8cf8e440832893548c77f9feec1bf7d2
Author: Daniel Wallace <danielwallace at gtmanfred.com>
Date:   Fri Jan 15 19:36:18 2016 -0600

    granting and revoking privs to users and groups
    
    The domain and groups are dropped for keystone v2.
    
    project is required for keystone v2
    
    add a test that makes sure domains that don't exist raise an error
    
    Change-Id: I3313690c0f0bbf0fcd9fe1db2e46dcd3fb6dd3d0

commit fe2558a2d5b6a2fa8c2f3f3c5472b79a7e01ba4a
Author: Steve Martinelli <stevemar at ca.ibm.com>
Date:   Mon Jan 25 20:37:22 2016 -0500

    Add support for zetta.io
    
    zetta has an openstack cloud, let's add support for it.
    
    Change-Id: I86cda3e42fff468786b2809bb367ad59241bb397
    Closes-Bug: 1537959

commit 42727a5e182eade19f4007195ee9058e56ba27bc
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Jan 23 13:03:55 2016 -0500

    Stop ignoring v2password plugin
    
    We have no codepaths that currently set v2password plugin by default.
    However, there are some cases, such as old clouds, where a user needs
    to explicitly set v2password as the auth_type to avoid version discovery
    because their cloud is old enough to not support it. If the user
    sets v2password, keep it and align the auth parameters the other
    direction to set tenant_name and tenant_id.
    
    Co-Authored-By: David Shrewsbury <shrewsbury.dave at gmail.com>
    
    Change-Id: Ib9eb3ae163b79b67737d01868868187b6dee1756

commit cd9d0f3ab51662432ef21c3c2929b9ee0aa33669
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Jan 25 10:48:02 2016 -0500

    Add release note for FIP timeout fix.
    
    Change-Id: I28913650828084720b83e36371c0439ffb39402b

commit ae8f4b65e3ac460b7764f2cdf9dfdcfe41ee0d22
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Jan 17 09:08:27 2016 -0500

    Go ahead and remove final excludes
    
    os-client-config is clean on E125 and E123 is ignored in recent pep8 by
    default. Also, even though they are not 'valid' pep8 rules, they are
    actually both nice styles and consistent with how we code
    os-client-config anyway.
    
    Change-Id: I7764e1511ed580d37b9a0a8be6743a5fa50441e5

commit b2deeefc8b6b328f5a796b7860d894efea6648bf
Author: Daniel Wallace <danielwallace at gtmanfred.com>
Date:   Thu Jan 21 13:26:00 2016 -0600

    include keystonev2 role assignments
    
    This will require that user is set with project possibly being None,
    otherwise we would have to query over all combinations of users and
    projects to find all the assignments, which I would say is unreasonable.
    
    project is not required by keystoneclient, but based on what I was told
    by someone in #openstack-keystone, it is highly discouraged to create
    roles and users and assignments without the project being involved, so
    we won't be allowing it.
    
    Change-Id: Id5b7b9fb44a9dbecb7488eb8f0ef30773efed6d2

commit c2058d5fa88b33ddfd14df24d6b1c8561762c2a1
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Jan 22 09:56:06 2016 -0500

    Add release note for new get_object() API call
    
    Change-Id: Ib5ed7a8f1e47756f5c9c0ba60fae9f095e55181a

commit f2ef884a8107608ae109f1b072bd6d1d0f23aa6e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jan 20 08:47:30 2016 -0500

    Pass timeout through to floating ip creation
    
    When we do create server, we have a timeout from the user for the
    action. However, in auto_ip, the action can also mean creating a
    floating ip which can timeout of its own accord. Pass in the remaining
    time.
    
    Change-Id: Ifffdb1d9c34235f5a1fa3b382b9820a579d5c37a

commit d7ffabca74872941ef244281000d5356a2626796
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Jan 21 17:31:15 2016 -0500

    Fix normalize_role_assignments() return value
    
    This function was returning plain dicts, not Munch objects, so
    it was acting differently from all other normalization funtions.
    
    Change-Id: Iaf9325d509f9c2c015f9c3fbd2d4ec6efa974429

commit a2db877b41fad494fe9daa09b5c77914638ac605
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 19 10:12:02 2016 -0500

    Don't set project_domain if not project scoped
    
    The code to expand domain_{name,id} to {user,project}_domain_{name,id}
    is flawed in that it sets a project_domain_{name,id} even if a
    project_{name,id} is not set. There is a valid use case for not having
    a project_{name,id} - specifically getting a domain-scoped token.
    
    In the case where we do not set a project, check for that and don't make
    further assumptions that the domain input needs to be "fixed".
    
    Closes-Bug: #1535676
    Change-Id: I825fe4bc375687208bb176bb5990c23fe87c8f9d

commit 003f09412034d176c943d193ed94fc6d580d59ef
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jan 18 09:50:04 2016 -0500

    Remove a done todo list item
    
    The TODO comment on "make this configurable" is confusing because it is,
    in fact, configurable. Remove the comment. Also, while doing that, put
    the default value somewhere sane, and change the variable name to match
    the config source better.
    
    Change-Id: I52c456f29395bfa84d9504e2a59d8390ffbd451a

commit 05aacf133e8b13d825352fddd8930e9d2d3ba754
Author: Daniel Wallace <danielwallace at gtmanfred.com>
Date:   Tue Jan 19 17:31:07 2016 -0600

    add the ability to get an object back from swift
    
    We allow swift to be used as a fileserver backend for saltstack, for the
    salt states and pillars, so we need to be able to get the objects out of
    the containers.
    
    Change-Id: I8fc9777807f111397bc942b02421b599f6c6a358

commit cfd29196fedf41dcd61d0df6b0109dc8e43abfc8
Author: LiuNanke <nanke.liu at easystack.cn>
Date:   Thu Jan 14 16:45:59 2016 +0800

    Clean up removed hacking rule from [flake8] ignore lists
    
    We bump hacking>=0.10.2, and hacking removed some rules, for
    the full list of rules please see [1]. So don't need them any more.
    
    Hacking related commits:
    Remove H904 in commit b1fe19ebebe47a36b905d709467f5e82521bbd96
    Remove H803 in commit f01ce4fd822546cbd52a0aedc49184bddbfe1b10
    Remove H307 in commit ec4833b206c23b0b6f9c6b101c70ab925a5e9c67
    Remove H305 in commit 8f1fcbdb9aa4fc61349e5e879153c722195b1233
    
    [1]https://github.com/openstack-dev/hacking/blob/master/setup.cfg#L30
    
    Change-Id: I24b82c1913d3d42cc5228b1db700b787623fcdc5

commit 72a3d64c1872987e0a0f78346345f66b24652b69
Author: Daniel Wallace <danielwallace at gtmanfred.com>
Date:   Fri Jan 15 16:50:08 2016 -0600

    allow for updating passwords in keystone v2
    
    Perform a users.update_password before throwing away the password from
    kwargs.
    
    Change-Id: Ie478b541a7958a888274eedcd0d2a135a08132c6

commit fde5cc0749fb2062c9aa5dc60d4d051e26ab3478
Author: Hideki Saito <saito at fgrep.org>
Date:   Thu Jan 14 17:38:41 2016 +0900

    Support neutron subnets without gateway IPs
    
    create_subnet() and update_subnet() allows subnets without gateway IP.
    A new argument “disable_gateway_ip” controls it.
    
    Change-Id: I527af06e09bc2e654e2af4777126cad29f8670fe

commit 2f1d184a8e6bed99d027b5ec9f8ee475e527cbdc
Author: Doug Hellmann <doug at doughellmann.com>
Date:   Thu Jan 14 17:10:21 2016 +0000

    set up release notes build
    
    Add release notes build files and tox environment so the existing
    release notes job has something to build from.
    
    Change-Id: I717d4e7af438cbc94eecf32472f6d1f8213761b8

commit 4cefd93ca531d5eb2eb3783126d5185c067d5126
Author: Daniel Wallace <danielwallace at gtmanfred.com>
Date:   Tue Jan 12 13:03:08 2016 -0600

    Save the adminPass if returned on server create
    
    I am using the or, because if the server returns a None in the adminPass
    field, but the admin_pass is set in kwargs, we should still want that
    password, but a default on the .get in python wouldn't return it cause
    the key is actually set to None.
    
    Add admin_pass to rebuild_server
    
    Change-Id: Iff3242ef916180018c3d878942a7af14988165b7

commit 25061db5ae6ea9dc98fc26f49cdb378d94b6e190
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Jan 14 15:28:58 2016 -0500

    Fix unit tests that validate client call arguments
    
    Some of our unit tests are trying to validate how the underlying
    client is called. That is os-client-config's responsibility. Let's
    just validate how we are calling occ's API so that we don't break
    every time occ decides to change client call arguments.
    
    Change-Id: I2ceab4b09466e3f7d3e8e6dc75587279f5eb80e4

commit a8532f6c8d221628b697ddb0d134e2a000ef61d6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jan 13 13:37:14 2016 -0500

    Fix a precedence problem with auth arguments
    
    With the current code, OS_TENANT_NAME will take precednece over
    --os-project-name beause OS_TENANT_NAME gets early-moved to
    config['auth']['project_name'], then when the argparse value gets put
    into config['project_name'] the auth fixing sees auth['project_name']
    and thinks it should win.
    
    Change-Id: I97084ea221eb963f14d98cf550a04bbd5c7d954c

commit 7e5496763522475bb07a377359d69454f1942e1b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jan 4 12:56:28 2016 -0600

    Return empty dict instead of None for lack of file
    
    We return None for the file content for non-existent files as a
    fallback. This is normally fine, but in the case of a person having
    _only_ a secure.conf file, this means that the dictionary merge fails.
    
    Change-Id: I61cc0a8c709ea3510428fc3dfce63dc254c07c83

commit cd5f16cc4d78fde5a812e2715ee9db430760972f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Jan 8 20:50:35 2016 -0500

    Pass version arg by name not position
    
    Everyone except neutron has a first parameter called "version" - so we
    can pass it by name. For neutron, add a workaround, becuase YAY people
    being different.
    
    Change-Id: Icfd92e5e31763ffccc1ff673298f89d1888941fe

commit 53187f2a53993b7bec47cdb972e86357ef302995
Author: Spencer Krum <nibz at spencerkrum.com>
Date:   Mon Jan 4 17:28:46 2016 -0800

    Allow inventory filtering by cloud name
    
    In some cases only one cloud is in scope for the ansible inventory,
    this patch enables that workflow.
    
    Co-Authored-By: David Shrewsbury <shrewsbury.dave at gmail.com>
    
    Change-Id: Ie2a1fc91878c282daaa75e4fc8aeee19f87c3020

commit f61a487fa13c8292b9fd3ac103e1133ac05dbd26
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Jan 8 20:38:35 2016 -0500

    Use _get_client in make_client helper function
    
    We have a capability to know what constructor is needed for make_client,
    but we didn't plumb it in. Make sure that the only thing needed is:
    
      os_client_config.make_client('compute')
    
    Change-Id: I02aa1c46fa7cdfdb1409f8e1232e364b5ba48cd2

commit 9835daf9f684556c5aed4834dc086e932788f9bc
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Jan 8 20:24:17 2016 -0500

    Add barbicanclient support
    
    barbicanclient is a lovely client library, so we should add support
    for make_legacy_client to doing the right things constructing a Client
    object.
    
    Change-Id: Idf015b1119ef76b951c195a6498cbb7a928d6e44

commit cf439dddd80161fa65e5699ae0fbb291838483b4
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Jan 7 12:02:27 2016 -0500

    Add range search functionality
    
    It can be useful to have more advanced search capability across a
    data set than just exact value matching. For instance, when searching
    for flavors, one may want to just say "give me the flavor(s) with the least
    amount of ram" or "give me the flavor(s) with 2 or more virtual CPUs, but less
    than 8GB of ram". We can accomplish this with range searching. Example:
    
        flavors = self.range_search(self.list_flavors(),
                                    {"vcpus": ">=2", "ram": "<8192"})
    
    Besides the normal range operators (<, >, <=, >=), one can also use
    the values "MIN" or "MAX" for minimum and maximum values:
    
        flavors = self.range_search(self.list_flavors(), {"ram": "MIN"})
    
    Change-Id: I706e4eee62a969888db3ea70f7052d3fb00c544e

commit caae8ad43487d5060d113d294c8d8862c7d3f788
Author: LiuNanke <nanke.liu at easystack.cn>
Date:   Thu Jan 7 15:21:31 2016 +0800

    Remove openstack-common.conf
    
    We don't sync from oslo-incubator, so don't need this
    file any more.
    
    Change-Id: Ia4acc67fe38c4a27a098c4da263265ed3742b7e7

commit cab0469ec4471a5fe924d6049cbfcdf2ac0cdba4
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 5 09:08:05 2016 -0600

    Add IBM Public Cloud
    
    IBM Cloud has a public Openstack Cloud. We should support it.
    
    Change-Id: If0bc29c41869494b2a4da944f7792cbe0f217f0e

commit 0b270f0bc9f6dd31d9c17bcc4d49d15630ee999b
Author: LiuNanke <nanke.liu at easystack.cn>
Date:   Wed Jan 6 22:49:52 2016 +0800

    Replace assertEqual(None, *) with assertIsNone in tests
    
    Replace assertEqual(None, *) with assertIsNone in tests to have
    more clear messages in case of failure.
    
    There have one more place should be modified.
    
    Change-Id: I53a8f129db0108892b8377edce2dbf19b0b95f5d
    Closes-bug: #1280522

commit 3b5673ce4c8c9d54568028056300eae053828ee0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 5 10:30:28 2016 -0600

    Update auth urls and identity API versions
    
    Most of the clouds, it turns out, support unversioned auth_url as well
    as keystone v3.
    
    Change-Id: I088d008cd2732f137c8a1bbbd9c0a43f7d382f92

commit 0bc9e33c9f978a8262453d7364143e8a02d3eded
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jan 6 08:43:19 2016 -0600

    Stop hardcoding compute in simple_client
    
    There's a debug leftover oops where we just passed 'compute' rather than
    the service_key requested.
    
    Change-Id: Id8c82e43ba34859426b1fdc93dcf3ab2bbde4966

commit 84f465614063145a5c6c9bb53053a20ae46c8e07
Author: Lars Kellogg-Stedman <lars at redhat.com>
Date:   Mon Jan 4 20:55:44 2016 -0500

    correct rpmlint errors
    
    these are all tremendously minor changes, but they were necessary to
    stop rpmlint from throwing errors (which prevents official fedora
    package builds).
    
    Change-Id: I1f08753887583a90e26435b5ad0d8f86d2b30992

commit c53ed12c323676111a959f666bb32dec301379c1
Author: Clayton O'Neill <clayton at oneill.net>
Date:   Sat Dec 19 21:22:03 2015 -0500

    Add tests for stack search API
    
    The search_stacks method had a bug before because it wasn't tested, so
    hopefully this will help prevent that in the future.
    
    Change-Id: I4b4506b2120eb633893db0155c8ef626480dbaa9

commit e19c47e26eece425d110fdbf06407837a8893cf9
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Jan 5 08:03:02 2016 -0500

    Fix filtering in search_stacks()
    
    The search_stacks() call was calling _utils._filter_list() with
    a parameter that was removed in a previous commit.
    
    Change-Id: I82c3b36ec0d9885533a7be13c530ecb46285c45e

commit a269d53ed3fdb7bbcffbd1d9e89c6233a9a719d3
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Jan 5 10:08:13 2016 -0500

    Bug fix: Cinder v2 returns bools now
    
    Cinder v1 used to return strings for some boolean values in the
    volume dict. Cinder v2 uses bools. Fix the volume normalization
    function to recognize either, and add unit tests for it.
    
    Change-Id: Ia8600f660d0608622d0bface25f0d1418e6972cb

commit 59d9135bab823cbeda5c0b2b8b317a009427b34a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Dec 30 17:10:00 2015 -0600

    Normalize server objects
    
    There are a set of things we always want to do to server dicts because
    they are no-cost. This is in line with how we manage other resource
    dicts, so make a normalize function. However, because we need to add
    cloud and region info from the cloud object, make it a member method
    rather than an friend function. Then, ensure it's always called on
    server related calls.
    
    Change-Id: Ied869efcb7d83c4f1a753962ca3127ce52172a24

commit 1cd3e5bb7fd7cd72a481f5ae8bbcd0b2ab114680
Author: Yaguang Tang <yaguang at umcloud.com>
Date:   Sun Dec 27 10:59:08 2015 +0800

    Update volume API default version from v1 to v2
    
    Cinder has deprecated API version v1 since Juno release, and
    there is a blueprint to remove v1 API support which is in progress.
    We should default to v2 API when it's there.
    
    Closes-Bug: 1467589
    Change-Id: I83aef4c681cbe342c445f02436fcd40cf1222f23

commit c514b855d1faed8947ace885bb4656da541d4d2b
Author: Doug Wiegley <doug at parksidesoftware.com>
Date:   Thu Dec 31 12:32:37 2015 -0700

    Debug log a deferred keystone exception, else we mask some useful diag
    
    Change-Id: Ib1921698bb61f44193034065749b4e246a6258db

commit 9688f8ebd1ace0f338a1eabb77e1bee249e5630b
Author: Yuriy Taraday <yorik.sar at gmail.com>
Date:   Thu Dec 31 15:40:58 2015 +0300

    Fix README.rst, add a check for it to fit PyPI rules
    
    README.rst doesn't appear right on PyPI currently. This commit fixes the
    issue and expands "docs" environment in tox.ini to use readme tool [0]
    to verify that README.rst is good for PyPI.
    
    [0] https://github.com/pypa/readme
    
    Change-Id: I6025bb6c661d8a4a7cd9802a1298928662278f2d

commit ecb537ddad9723226e198d36551a04a8247a4977
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Dec 14 10:18:18 2015 -0500

    Make server variable expansion optional
    
    Sometimes people don't want lists of volumes attached and whatnot,
    and with lots of hosts it can be expensive to calculate. Skip it if
    it's configured to not ask for it.
    
    Change-Id: Id739fb3bae35cd7a8a24ddd6b58cc9c050ddd5d5

commit 594e31a4c262c9ae3fe14e2e4c0fdb71a0df0747
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Dec 30 13:10:47 2015 -0600

    Use reno for release notes
    
    The OpenStack Release team has created a great release notes management
    tool that integrates with Sphinx. Start using it. For reference on how
    to use it, see http://docs.openstack.org/developer/reno/
    
    Change-Id: I8153ec7861b508297a28a1916771776dee2deafe

commit f3678f03deac0230e1265a8a516a8eea11d301cf
Author: Doug Hellmann <doug at doughellmann.com>
Date:   Wed Dec 30 19:06:38 2015 +0000

    add URLs for release announcement tools
    
    The release announcement scripts expects to find URLs for the bug
    tracker, documentation, etc. by looking for patterns in the README.rst
    file. This change adds the URLs in a format consistent with other
    OpenStack projects and that works with the release announcement
    generator.
    
    Change-Id: I88151008cca91da3fed7e4c0ec6dfb641a0062b6

commit 9929eb3523c964f53a70592136627560923d2990
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Dec 14 10:16:08 2015 -0500

    Have inventory use os-client-config extra_config
    
    There are some additional inventory behaviors that need to be configured
    in clouds.yaml, which means we need to allow them to be requested by the
    inventory class.
    
    Change-Id: I6f09d73422163e54776d03ead1d83322b6fdccf5

commit a39fca8e53e7de0c4ffdeafce40902e0e6fc7073
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Dec 25 07:56:03 2015 -0600

    Fix unittest stack status
    
    If you run unittests with a clouds.yaml available that has caching
    enbaled, the heat test fails because the fake has an invalid value for
    stack_status (it'll always be a string) and also the pending function
    looks for the wrong name.
    
    We should isolate unittests from calling context clouds.yaml better, but
    this is a bug anyway.
    
    Change-Id: I791df68163b9ce850df6c74eacadd91ff76348ed

commit 7ee7156254381dc5c06405105c7de42c180c779f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Dec 30 09:46:21 2015 -0600

    Allow filtering clouds on command line
    
    Add a very basic filtering to the test command line function to allow
    only printing one cloud or one cloud/region worth of config.
    
    Change-Id: I0d09717430f41b4229f7743f8531f871b962969e

commit 17e019a08e6e8fed7da6d0de403e5525d997095b
Author: Colleen Murphy <colleen at gazlene.net>
Date:   Tue Dec 29 15:22:56 2015 -0800

    Munge region_name to '' if set to None
    
    The openstack ansible module defaults to setting region_name to
    None[1]. With region_name explicitly set, _get_region won't use '' as a
    default and therefor has unexpected behavior if the user does not set
    the region explicitly. This is apparent in bifrost[2] which does not
    use any cloud config file and does not set the region explicitly. This
    patch checks whether None was passed in as the region name and sets it
    to '' so that it can continue processing it as though it was not set.
    
    [1] https://github.com/ansible/ansible/blob/devel/lib/ansible/module_utils/openstack.py#L41
    [2] http://paste.openstack.org/show/482831/
    
    Change-Id: I22cce104930f74dd479e704cc1a941dc945b75de

commit 7be6db82d35a7c3402172e742bb19dfa5a95a472
Author: Tim Burke <tim.burke at gmail.com>
Date:   Mon Dec 28 16:43:26 2015 -0800

    Fix some README typos
    
    Change-Id: I3ebec661d1b02da0c940cde63ab862871dca11c5

commit 77c0365ce2d42adce9352cf238fbdbc7c282222f
Author: Javier Pena <jpena at redhat.com>
Date:   Wed Dec 23 11:38:40 2015 +0100

    Fix token_endpoint usage
    
    Commit 22d740b7007e1182c99370cb2629322384b17a14 broke token_endpoint
    authentication for openstackclient, by unconditionally setting
    auth_type to 'token' whenever a token was passed in the command line.
    
    This change reverts the portion that always overrides the auth plugin
    if there is a token passed via arguments.
    
    Change-Id: I835c3716dd08eaca10f56682c22fdc6ac700e0fe

commit f765a16c6c84d8b4a116585676f46087e458987b
Author: Doug Hellmann <doug at doughellmann.com>
Date:   Wed Dec 23 01:31:13 2015 +0000

    remove python 2.6 os-client-config classifier
    
    OpenStack projects are no longer being tested under Python 2.6, so
    remove the classifier implying that this project supports 2.6.
    
    Change-Id: Ic24f93d5f7e7ffb1eaf91617c09cc897163e88df

commit c10566cc0ab0a9415d650a93941deb9b62ecdaf7
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Dec 22 17:12:30 2015 -0500

    Fix shade tests with OCC 1.13.0
    
    The latest os-client-config, 1.13.0, breaks the shade tests as the
    client instantiations are slightly different. Since I'm not sure we
    can modify our tests to use against different OCC versions (there
    doesn't appear to be a version attribute anywhere), I upped the
    minimum requirements.txt value as well as fixed the tests for the
    latest version.
    
    Change-Id: I18292ca39789c41caea74901754d66d3301bb420

commit 8fa55700b90e335e54cd459ea8a60578e8d27fc7
Author: Clark Boylan <clark.boylan at gmail.com>
Date:   Tue Dec 22 12:28:20 2015 -0800

    If cloud doesn't list regions expand passed name
    
    Don't fail on a cloud not having regions when a region name is passed.
    Instead just use the name that is given and expand it properly.
    
    This adds test coverage for the paths through the
    OpenStackConfig._get_region() method to avoid problems like this in the
    future.
    
    In order for this work to be done cleanly a small refactor of
    get_regions() is done to split it into two methods, one that gets all
    regions with a sane fallback default (for backward compat) and another
    that returns only regions that are known in the config and None
    otherwise. This allows us to switch on whether or not there are known
    regions.
    
    Change-Id: I62736ea82f365badaea5016a23d37a9f1c760927

commit 95a7be3cb6448e51d9b0995a26f55df66819d9a9
Author: Morgan Fainberg <morgan.fainberg at gmail.com>
Date:   Tue Dec 22 10:40:01 2015 -0800

    No Mutable Defaults
    
    Do not have mutable defaults in functions/constructors/etc. This
    is bad news since they can be changed for the entire run of the
    program (and subsequent calls).
    
    Change-Id: I756629a3edca72a4c7fbe748e2f6964a7e827e72

commit ea859622fa34c6f8e79d83aaa42d7dfb731034a7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Dec 21 11:58:12 2015 -0600

    Add option to enable HTTP tracing
    
    During development, it's useful sometimes to see an HTTP trace log.
    That's controlled by keystoneauth in all cases, so it's easy to turn it
    on. Provide a flag for people using simple_logging.
    
    Change-Id: I2f44d6f7fd1268028eeb455341198a704edcaad4

commit 939862e55e42c5fafee9c2fec42b5f5fde8fc205
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Dec 21 11:35:56 2015 -0600

    Fix glance endpoints with endpoint_override
    
    Now that we properly pass endpoint_override all the time, we broke
    glance. The reason for this is that we calculate the glance url via
    glance url stripping in all cases, so the case where we did not have
    a configured endpoint override was passing the wrong information to the
    constructor, causing double version addition.
    
    Change-Id: I5699b0581d0cb68fed68800c29c8a847e2606ec9

commit 0a25cb5c5059fc8f850e27a984613515ae76ee11
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Dec 12 17:26:09 2015 -0500

    Allow passing in explicit version for legacy_client
    
    Nova (and indeed other clients with microversions, need a user to be
    able to request an explicit version.
    
    Change-Id: I5f67b7fc007b7d6123f621c5943345f88db1f84b

commit 16166c03c27fe73896a1717ad9a145a466bc0afd
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Dec 12 13:03:41 2015 -0500

    Pass endpoint override to constructors
    
    Also, the variable name from keystoneauth is "*-endpoint-override" ...
    so we need to respond to that. Respond to the old -endpoint for compat
    reasons. Then let's actually pass in the value.
    
    Change-Id: I6f413b02e0d2b167a4ee30494b2c91c67124b219

commit 3a34378f712abee2d525973815a99188c598d726
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Dec 12 13:03:07 2015 -0500

    Support backwards compat for _ args
    
    Instead of putting tons of hidden options to allow for variations of
    argparse options with _ in them, just manipulate the argv when it's
    passed in to translate to - instead. (why the heck does argparse not
    already do this?)
    
    Change-Id: I5f0bd9d9a333781ad13d531b3667fff5fdac9eac

commit 22d740b7007e1182c99370cb2629322384b17a14
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Dec 12 10:53:53 2015 -0500

    Add backwards compat mapping for auth-token
    
    novaclient accepted an auth-token argument, which also triggered a token
    not password based workflow. That's fine - let's map that to token, and
    if we find it, change auth_type's default from password to token.
    
    Change-Id: Ie9acece5cb3c68560ae975bfb0fb2393381b6fba

commit 86814859d0dd8a90f8a8d537b3d74b234a0bc639
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Dec 17 13:37:34 2015 -0500

    Add support for querying role assignments.
    
    When you are granting or revoking roles, you need to know what the role
    assignments are. Also, the return dict for role_assignments is
    exceptionally hard to query, so turn it in to a structure that makes
    some sanity.
    
    Note that role assignments don't lend themselves to use our list/search/get
    standard very well. Assignments are not unique (an assignment has neither a
    name nor an ID). Searching is supported via the filter push-down to the
    keystone client itself.
    
    This replaces: I963b7a07cb711d3f790715a1fe55b16d0200073d
    
    Change-Id: I5fb96f32a2f1a5f0408938105750afcd7c5c93af
    Co-Authored-By: Monty Taylor <mordred at inaugust.com>

commit 88b7e643b9637864252d9c6b715da0dced606352
Author: Shuquan Huang <huang.shuquan at 99cloud.net>
Date:   Thu Dec 17 13:58:10 2015 +0800

    Replace assertEqual(None, *) with assertIsNone in tests
    
    Replace assertEqual(None, *) with assertIsNone in tests to have
    more clear messages in case of failure.
    
    Change-Id: Ia1af9f64f4f0a66c1429d81313b2c27a7c67cdd7
    Closes-bug: #1280522

commit d9c283c37f350c8b1629e671f38ef447ef1bbd1f
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Dec 15 17:17:05 2015 -0500

    Add inventory unit tests
    
    Add some basic unit tests of the inventory code base.
    
    Change-Id: I368c1c36e7b49fec1c4c06ebc82c54e9103b951c

commit 837ca712288ceffea5b54ceaeb349d6577f38360
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Nov 17 15:17:55 2015 -0500

    Allow arbitrary client-specific options
    
    There are occasionally some client-specific things that would be handy
    to be able to configure about behaviors. For instance, the only config
    file that ansible's openstack inventory has is clouds.yaml. Rather than
    teaching os-client-config about such things, allow a pass-through config
    section. Apply key normalization to _'s like other configs, and merge
    the clouds and secure files so that the sections behave like other OCC
    config sections.
    
    Change-Id: If307e95006abf6e1efbbd77cfc99e5fdfed6c80a

commit add21aa9810ac1522d564791f7c4a932b79235a1
Author: Matthew Treinish <mtreinish at kortar.org>
Date:   Sat Dec 12 21:15:14 2015 -0500

    Fix server deletes when cinder isn't available
    
    This commit fixes an issue when trying to delete a server and cinder
    isn't available. Cinder isn't actually a required component of a cloud
    and some public clouds (like vexxhost) don't deploy it, so we shouldn't
    unconditionally attempt to talk to cinder without being able to handle
    this case.
    
    Change-Id: Ia1e19aad711c43fec21e2c1e5ad64b69acb561d3

commit f4971b50a6abfe1ebdca20d1da82611538d69d76
Author: Kyle Mestery <mestery at mestery.com>
Date:   Mon Dec 14 09:44:30 2015 -0600

    Pedantic spelling correction
    
    Change-Id: Id1d395485c0223847194abde6a0aa658ac27741d
    Signed-off-by: Kyle Mestery <mestery at mestery.com>

commit 451e51340d8be78d66a27876cd966005b5d71dcc
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Dec 14 09:06:03 2015 -0500

    Bug fix: create_stack() fails when waiting
    
    The create_stack() call had two bugs: If wait was True, it attempted
    to call an iterate method that had been moved to _utils; it also did
    not return the stack from the get_stack() calls.
    
    Change-Id: I2588e3a84729a8f1b3bfcb6d401c7d51fb16832b

commit fb8ea73f27f683519dcb27ed9e83cd6e4e423379
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Dec 11 16:29:32 2015 -0500

    Stack API improvements
    
    The exception that would be raised from list_stacks() if it failed
    would not have any type of error message (except the inner exception).
    This could be confusing, so add some text that indicates where the
    exception is being thrown. Unit tests for this method are added.
    
    Also improve some comments in delete_stack() and add unit tests
    for this method.
    
    Change-Id: I979a2948938fc73b708c26d81599061bac7681d4

commit 8d5abfbf56a5620d1326d44dee8ffdc9dfba1c62
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Dec 11 15:45:42 2015 -0500

    Bug fix: delete_object() returns True/False
    
    Our delete APIs return True if the delete succeeded, or False if
    the thing being deleted was not found. delete_object() was not doing
    this, so this makes it consistent with the other delete API calls.
    
    Also adds missing unit tests for this method.
    
    Change-Id: I0951765193459300f08b0ab804e6ca327c6fa57d

commit 3b50573f639af48cf3b524cb12e8380b4464e274
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Sun Dec 6 17:12:10 2015 -0500

    Add wait support for ironic node [de]activate
    
    Original shade support for ironic node activation and deactivation
    was without support for a wait option being passed into the helper
    methods.
    
    So the os_ironic_node module can be updated to support wait=True,
    we need to add support in the activate_node and deactivate_node
    methods.
    
    Change-Id: I69eee2d254cde2fffcf0c1ac7679a623fa7f97a5

commit 8d868cb27c13d73267f7097459b7b3e05ccf3eb0
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Dec 10 10:08:43 2015 -0500

    Improve test coverage: container/object list API
    
    Add missing tests for listing containers and objects.
    
    Change-Id: Iacbd5060f33a9f7273d7208dd400b4868602a3e4

commit 44e796a3dd48273236b586992fc870b4f81b26ed
Author: Clark Boylan <clark.boylan at gmail.com>
Date:   Wed Dec 9 17:16:41 2015 -0800

    Make a new swift client prior to each image upload
    
    Since swift clients do not support keystone sessions any client that
    exists for a period of time runs the risk of having an expired token and
    the OpenStackCloud object will never recreate it to reauth. Work around
    this by making a new client whenever we attempt image uploads to swift.
    
    There are other potential ways to address this. We could pass the auth
    info into swift_client.get_capabilities() so that swift will reauth on
    its own if it needs to. We could just always make a new swiftclient for
    every swiftclient operation. We could add keystone session support to
    swiftclient. This workaround is simple and uses existing APIs with shade
    and os-c-c so starting with it.
    
    Change-Id: Ib35dd49627bc2209060848e719e3cec40dbb4f2a

commit 47d2472df849d16c6e6c998e4f7dbee35a99ab76
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Dec 9 16:29:19 2015 -0500

    Improve test coverage: volume attach/detach API
    
    Add missing tests for attaching and detaching volumes to and from
    servers.
    
    Change-Id: I0fa9f9b0190cbd31d4c9b0cc6422c2f876510f77

commit f4237a809cccbbffce2233b1f283b36a9ebb75c1
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Dec 9 15:42:20 2015 -0500

    Add ceilometer constructor to known constructors
    
    In porting ospurge to use get_legacy_client, it became clear that
    the ceilometer client constructor was missing. Add it.
    
    Change-Id: I1102105b78574378c4f11064e21245b08513247b

commit d38af94bed473595155852f499c6aa56c5a33649
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Dec 8 15:18:27 2015 -0500

    Bug fix: Allow name update for domains
    
    We were not passing the 'name' argument through to the client for
    updating a domain. Fix that and add tests to verify it is passed.
    
    Also add missing domain API unit tests.
    
    Change-Id: I62a7d6de0a4890ca9f58aaa3de5090e395baf850

commit 4c8cfe4b18bb17704d4e49af95a80d5ed04d5958
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Dec 8 14:32:54 2015 -0500

    Improve test coverage: network delete API
    
    Add missing unit tests for delete_network() API method.
    
    Change-Id: I75ab31ddeb731d192a0266712bfb95c5f21c8acb

commit d7e616780b3768d8674875f0e40e09dc91b62951
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Dec 8 12:25:06 2015 -0500

    Bug fix: Fix pass thru filtering in list_networks
    
    The filters for list_networks() was not being passed through
    to the neutron client. Actually pass the arguments and add missing
    unit and functional tests to verify the behavior.
    
    Change-Id: I653ed4c4fcbab6f36bf03cc68ffe862b6bfcd6eb

commit c47ec154578e505eba9c81a8c90ef82703c697af
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Dec 8 13:06:56 2015 -0500

    Consider 'in-use' a non-pending volume for caching
    
    We don't cache volume list if one of the volumes is in pending state, as
    otherwise we'd miss the cloud-side cache invalidation. However, active
    volumes that are attached are in state "in-use" - so basically if you
    had one active volume, the cache would never cache.
    
    Change-Id: I03cbc1b814e4a5829936a22751ee81d52b83fb2e

commit 8696fbdd765cf5a9767bfb9267499c159f30b853
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Dec 8 11:07:48 2015 -0500

    Improve test coverage: private extension API
    
    Add tests for querying for Nova extensions with our
    private API methods.
    
    Change-Id: If7ab721222c0643a320a067ee4d7f8b512b83eff

commit f0440f80b766b9da74ef619a8c26757e511a6ad6
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Dec 8 10:35:41 2015 -0500

    Improve test coverage: hypervisor list
    
    The existing test for list_hypervisors() did not go deep enough
    into the call stack to test the actual underlying nova client call.
    
    Change-Id: I1d4cd9bc9424dfed6554794fa7a80db74cdac8a3

commit 83159ae486aa8a526655d68ef36b16d033de9089
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Dec 4 11:43:07 2015 -0500

    Use reno for release notes
    
    The OpenStack Release team has created a great release notes management
    tool that integrates with Sphinx. Start using it. For reference on how
    to use it, see http://docs.openstack.org/developer/reno/
    
    Change-Id: I57692d720174fedb68ab2f52d5a4c496a6d993b2

commit d0c70cc96279d2bf24f30a501b9bf572e40f8e7a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Nov 22 10:55:46 2015 -0500

    Add support for generalized per-region settings
    
    Internap creates a public and a private network for each customer for
    each region on region activation. This means there is a per-region
    external network that the user may want to specify. Also, conoha has
    per-region auth-urls. Per-region config is still
    overridden by argparse or kwargs values.
    
    Change-Id: Ie2f3d2ca3ccbe7e3dd674983136b42c323544997

commit 1221ea7fca67c22c455b4aeae1e09c9ad7e928a7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Dec 4 13:19:19 2015 -0500

    Fix a README typo - hepler is not actually a thing
    
    Change-Id: Ie8c267e75171b88bd3a1a3a684e85869e75843d7

commit 8eced67abe20160fc3f20a7c76f01baae2dd1956
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Dec 3 13:28:00 2015 -0600

    Make client constructor optional
    
    Turns out we know the mapping of service name to constsructor, so we can
    try the import for the user without actually importing. Keep the
    argument though, because this method should be usable by just about any
    random openstack client lib. Also, because backwards compat.
    
    Change-Id: I7e9672e3bf61b8b7b92d55903f4596382f18b515

commit b90f53bbf45c67fd2139b3f75c8f25bff0d3cfeb
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Dec 6 21:49:29 2015 -0500

    Updated README to clarify legacy client usage
    
    Also, update it to use code-block - which makes things look much nicer.
    
    Change-Id: I930ab63a5d159cf4cea27b4e2c4d6fd933de04fc

commit 5beaeef2c3140f84b2e5a57a789460d4db9ff766
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Dec 3 11:26:12 2015 -0600

    Add simple helper function for client construction
    
    Often times you don't want to take advantage of all the flexibility, you
    simple want the basic works-like-it-should thing. Add a warpper around
    get_legacy_client to do tht one thing.
    
    Change-Id: I086dc4a8e762d4e8e56e01cabe2386577f2ceec8

commit ed2f34b06a7d581fb5fdd9811e3f8a7f748a2ce4
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Nov 4 09:22:17 2015 -0500

    Add method for registering argparse options
    
    keystoneauth knows about a bunch of argparse options that users
    from a command line will want. We do a good job of processing them
    once they've been collected, but an os-client-config user doesn't
    have a great way to make sure that they register all of the options,
    especially when once considers that you really want to peek at the
    args to see which auth plugin has been selected so that the right
    arguments can be registered and displayed.
    
    Depends-On: Ifea90b981044009c3642b268dd639a703df1ef05
    Change-Id: Ic196f65f89b3ccf92ebec39564f5eaefe8a4ae4b

commit 6aecb87e7f2cb2c031bf9c89564ea0b46d387c79
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Dec 6 10:35:08 2015 -0500

    Update vexxhost to Identity v3
    
    There is a discovery URL for vexxhost for keystone v3. Also, there is a
    new vexxhost domain for it. Also, vexxhost has DNS running designate v1.
    And make the region list a list of one region, because there is a second
    region coming soon.
    
    Change-Id: Ie72c19976646f41c713124659e69725df59e1580

commit 99602b51835b6077aaba1601cc90660a0eda1fc1
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Dec 4 12:06:46 2015 -0500

    Improve test coverage: list_router_interfaces API
    
    Change-Id: I559e28d550a617ac759d1c7a108d3f09a4c6f75b

commit 9922cfbb3bdab398b444ae9ebbdd2892508ef4df
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Dec 3 18:12:32 2015 -0500

    Change the client imports to stop shadowing
    
    Because sometimes the easter bunny wants to kill you, we have been
    importing the client library contructor modules with a name that is
    identical to the proprety we set on the class to provide the client
    object. That is bad practice in any circumstance.
    
    Since we only use those things in one and only one place, don't bother
    coming up with a better alias for them - just import the module path
    itself directly. Explcit good.
    
    Change-Id: Ib0d7e616df1304277b4b9936a64793bcba8787e3

commit 833f54929b95e482bc10bf6e7f0936c8323e6c8c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Dec 3 18:00:33 2015 -0500

    Use non-versioned cinderclient constructor
    
    For some reason, we use the v1 constructor class rather than the
    one that passes an arg.
    
    Change-Id: I387255e09a6e5643022d7e6a9075bc24c8d61cac

commit ca1409effa18bebf3a1754d3603139f4ec6ce24c
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Dec 4 09:21:25 2015 -0500

    Improve test coverage: server secgroup API
    
    Change-Id: I4556128548dec0bfed141db4a22e35e954a46f45

commit a5f1850cbecb62d0c26940aa49c82ccd7409a087
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Dec 3 14:27:06 2015 -0500

    Improve test coverage: container API
    
    Add missing tests for creating, deleting, and updating swift
    containers, and getting/setting access information.
    
    Change-Id: I80fd73d7ba5171715d148ce7a1693f94c5b3b40a

commit eea460d5917a1536025d66ce3e2b3f9094d46e7c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Dec 3 07:34:23 2015 -0800

    Make sure that cloud always has a name
    
    If we don't ask for a cloud, and we fall through to the envvars cloud or
    the defaults cloud, the cloud that is returned winds up not being named
    - even though we know what cloud it is. Set the name of the cloud we're
    working with.
    
    This is important for the next patch, where we need to peek at the
    config to get some default values, but in a fallthrough case we do not
    know which cloud to request.
    
    Change-Id: Ie56e490d4384f2d680450bc956e4b7b5b8099f0e

commit f16ec0527ac1ebc8fc96486029fee7eaaf45db46
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Dec 2 14:08:41 2015 -0500

    Improve test coverage: project API
    
    Add tests for creating/deleting/updating projects in keystone
    version 2 and 3.
    
    Change-Id: I0ce7e122f40dfdcdd4b885e3c1be02ad9306e8b1

commit 0e6085fe66a5e529d64f670ec98b024cb649c5f5
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Dec 2 12:55:40 2015 -0500

    Improve test coverage: user API
    
    Add tests for creating users (keystone v2 and v3) and deleting users.
    
    Change-Id: I20dc1ab329797c49a8144ee0b8130c03fe749d29

commit dcdb20d0f5ec0e9a3409c0d6f14d138f042129c9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Dec 2 06:07:38 2015 -0800

    Provide a better comment for the object short-circuit
    
    A previous commit was landed over a -1 from a core reviewer that was
    concerned about the terse and flippant commit message that accompanied
    the commit. The substance of that objection was that there was no good
    explanation for why the change was made. Indeed, that why is likely
    useful for people looking at the code too, so add a more complete
    comment on the code in question.
    
    Change-Id: I1ff777393502edf4ef3ed595e47bfcf73be0e5e8

commit 1700e197c1ee0a16a1b78365e621b71a101d17d8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Dec 1 17:53:44 2015 -0600

    Remove cinderclient version pin
    
    We had put this in because of the v2 version negotiation breaking public
    clouds. That has since been fixed, and the pin here causes conflicts
    with python-openstackclient.
    
    Change-Id: I9ee2d9bfad36160ba41f65dcd657cbbca9f26050

commit 07ac77ca765df2f9cf46b0210d40ef2f96fe5586
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Nov 29 10:41:30 2015 -0500

    Add functional tests for boot from volume
    
    Test both that we can boot from volume from a pre-existing image
    with and without auto-termination. Also that manually making the volume
    from the image and then booting from it also works.
    
    Also, add a cache invalidation that testing showed to be an issue.
    
    Co-Authored-By: David Shrewsbury <shrewsbury.dave at gmail.com>
    
    Change-Id: Ia0f5801c17edacf8cce67c7594657e7ae41e0f18

commit 026a17c9eb9d8ebad8c56f8d1b7946bd4694519e
Author: Jamie Lennox <jamielennox at gmail.com>
Date:   Wed Dec 2 11:05:29 2015 +0800

    Remove optional keystoneauth1 imports
    
    keystoneauth1 is now a hard dependency of os-client-config so there is
    no way that this should not be importable.
    
    Change-Id: I20901623e8b29f50d7ab1ed956472a4b1eda51bf

commit 372edf44efd7e028890e4623a950052a606bb123
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Nov 29 10:03:11 2015 -0500

    Enable running tests against RAX and IBM
    
    Rackspace requires performance flavors be used for boot from volume. IBM
    does not have Ubuntu or Cirros images in the cloud.
    
    Change-Id: I95c15d92072311eb4aa0a4b7f551a95c4dc6e082

commit 2c753699ac9c3c4209d5f070855f4315ea468efa
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Nov 28 11:18:29 2015 -0500

    Don't double-print exception subjects
    
    We're creating an error message string that contains the shade message
    and the underlying message AND we're passing the underlying message in
    so that we append it as part of the Inner Exception string. So we wind
    up with something like:
    
      Error in creating volume: Invalid input received: 'size' parameter
      must be between 75 and 1024 (HTTP 400) (Request-ID:
      req-ae3f3489-997b-4038-8c9f-efbe7dd73a70) (Inner Exception: Invalid
      input received: 'size' parameter must be between 75 and 1024)
    
    Which is a bit insane. With this change, the above becomes:
    
      Error in creating volume (Inner Exception: Invalid input received:
      'size' parameter must be between 75 and 1024 (HTTP 400) (Request-ID:
      req-d4da66b2-41eb-44c8-85f1-064454af5a1c))
    
    And if the shade_exceptions context manager is invoked with no message,
    the output will be:
    
      Invalid input received: 'size' parameter must be between 75 and 1024
      (HTTP 400) (Request-ID: req-d4da66b2-41eb-44c8-85f1-064454af5a1c))
    
    Change-Id: I6bd70b70585722d2266ef08496b6860aeeab1824

commit 0d5e7b561ea4e0404157cabbcd1e6b56d633c079
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Nov 28 10:55:01 2015 -0500

    Accept objects in name_or_id parameter
    
    Let's not tell anybody about it, but if someone passes us an object
    in the name_or_id slot, let's roll with it.
    
    Change-Id: I70ea91c948c0f82185861baa22830a4954359b6f

commit bd2f1cbc6ff1195e08c84e22fe3c209d349c5649
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Nov 28 12:20:09 2015 -0500

    Normalize volume objects
    
    Cinder v1 uses "display_name" and "display_description". Cinder v2
    users "name" and "description". Normalize the volume objects so that
    both values work as both input and output. Having done this, the
    name_key param to _filter_list is no longer needed, since it was there
    to work around cinder wanting display name. In the future, if we have
    another such thing (like heat) we should likely just normalize the dict
    to include a name param rather than making _filter_list carry the
    weight - since humans will want to get the name of the objects they work
    with.
    
    Co-Authored-By: David Shrewsbury <shrewsbury.dave at gmail.com>
    
    Change-Id: Ia43815fd3d25ff7308e91489645bd3c459072359

commit 87309adcfc6c950c08146fe209d5903571913120
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Nov 28 10:18:18 2015 -0500

    Fix argument sequences for boot from volume
    
    When booting from volume, image always needs to equal None.
    Additionally, we updated the argument structure to be
    block_device_mapping_v2 but were still passing as just
    block_device_mapping in one place.
    
    Change-Id: Ia22792920f392d1accb5a96cf2b36f22aee75785

commit 02ac37fe8f58b6a969b16eb9b1b3039512ebbe41
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Nov 25 11:30:15 2015 -0500

    Make delete_server() return True/False
    
    To be consistent with our other delete API methods, make delete_server()
    return True if the delete succeeded, or False if the server was not
    deleted because it was not found.
    
    This also combines the functional testing of create_server() and
    delete_server() so that tests are more efficient by eliminating an
    extra instance creation. This is in anticipation of adding more
    tests that will create server instances and there are only so
    many resources available in the test environment.
    
    Change-Id: If1b1a3886df60fb064682caa23113f91b78a4090

commit cc92c92870be48d6eae57869c4989125fe2eb8e4
Author: James E. Blair <jeblair at linux.vnet.ibm.com>
Date:   Wed Nov 25 09:37:45 2015 -0800

    Add BHS1 to OVH
    
    Change-Id: I0ef175edccbbc3e24803d02ab6809cfe1a68e0e8

commit e1646ac1fd6663e8dd9c0d5d0c429cf932c899e8
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Nov 25 12:21:17 2015 -0500

    Adjust conditions when enable_snat is specified
    
    Some clouds barf about policy if the enable_snat attribute is
    sent during router creation. Only send it if it is different
    from the default (i.e., only when False).
    
    This is a fix for:
    https://github.com/ansible/ansible-modules-core/issues/2474
    
    Change-Id: Id656029b9cf593fcb8e0771fa19c567126c565ee

commit c01913dd75d8b6fa551cee8f7cdc913a89a11536
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Nov 25 10:53:45 2015 -0500

    Only log errors in exceptions on demand
    
    Rather than error logging all of them, allow the user a mechanism
    to error log the ones they care about. Also make inner_exception
    public so that people can make their own choices.
    
    Change-Id: I15973f52d3d68c24ac8ef7643a53ff0118e892cf

commit 9f43f8a793652bf4a4e7e62f06eb3c8103173778
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Nov 24 17:07:45 2015 -0500

    Fix resource leak in test_compute
    
    Depending on the time between the create_server() and
    delete_server() calls, it's possible the delete does not
    actually find the server we want to delete, so we leave
    instances hanging around after our tests. Fix this by waiting
    for the servers with wait=True to create_server().
    
    Change-Id: I908fdb94dcf5e410597a7cd3ecc6c962f2bfbce3

commit 596a5d8b60bd0a853a6c42cf314efc7411a0e414
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Nov 24 16:44:34 2015 -0500

    Clean up compute functional tests
    
    Although the server names being created were actually unique
    across tests, this change will make the test_compute.py code
    more consistent with other functional test code by creating
    a server name prefix string with getUniqueString(). This also
    opens the door for use across new tests.
    
    It also changes the server cleanup code to just call
    delete_server() with the name of the instance for the test.
    Since tests can run in parallel, we don't want to delete an
    instance with a similar name out from under some other test.
    
    Change-Id: I1b0dc3f2759f77b7d420e45b3a7a2730868e6eb0

commit 0ea32e7dc011373c61e4d79d710a09e4ae404a9e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Nov 15 11:34:41 2015 -0500

    Handle cinder v2
    
    It turns out that cinder v2 has a service_type of volumev2 because
    nobody thought of the children. But that's ok - we actually care about
    user experience around here. SO - take the sane approach and return
    service_type = volumev2 if service_type == volume and volume_api_version
    == 2. This way user code can all safely say "please give me the endpoint
    for the volume service" and can use the api_version parameter to specify
    which version they want.
    
    We should all possess righteous indignation about this patch.
    
    Change-Id: I15fc5ddd92345d78b6928f11a8d77cecd0427f7d

commit 014db1730c26d367dc0dc13ad75c4076ff0eb571
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Nov 24 16:33:35 2015 -0500

    Stop using nova client in test_compute
    
    The test_compute functional test code was using nova client
    directly instead of the shade API. Let's avoid that.
    
    Change-Id: Iac5650a036f006cf3d30ff44086d348cba7c303f

commit 4c1418f7b415beac59a2d9d170a5ed420f81be06
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Nov 24 11:15:39 2015 -0500

    Retry API calls if they get a Retryable failure
    
    keystoneauth1 Session throws exceptions based on
    RetriableConnectionFailure when the operation can be sanely retried.
    Since we have commuication encapsulated, there is no reason to not
    just retry.
    
    We should maybe in the future allow for configuration of number of
    times to retry - but let's start with one and go from there.
    
    Change-Id: Iacc6ac3d7eecbccfa7602fefb238602cc8a66cc4

commit 9f23d6ef6718e77bbded25fe7f84b0a167adc5fd
Author: Alberto Gireud <agireud at us.ibm.com>
Date:   Mon Nov 23 16:25:33 2015 -0600

    Fix call to shade_exceptions in update_project
    
    Change-Id: Ib92b68f719895c32a464f05a97ddd48ac267a46a

commit 7698842adbb31d5c5baab97d109768347c66aa5d
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Nov 23 16:30:54 2015 -0500

    Add test for os_volume Ansible module
    
    Change-Id: I2c0b537535f86d1057ec84b7d887ed0d9b4ecfc0

commit 31cdee11dd35040b051283f783e607f9ea51d710
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Nov 23 11:14:24 2015 -0500

    Fix for min_disk/min_ram in create_image API
    
    If min_disk or min_ram are passed in as keyword arguments, the
    values must be integers or glance hates us even more than usual.
    
    Change-Id: I1ed04174796e12258055840e9184aa9f8bcf3ea8

commit 4c7583b33a64bb9fcc0794b4ff83f57486c7f374
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Nov 23 09:33:39 2015 -0500

    Add test for os_image Ansible module
    
    Change-Id: I80c983e41a08df43f39376868290cf78e0085771

commit b17bbcdef9acfaf6e2b47671c9982d3378045961
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Nov 22 13:16:44 2015 -0500

    Add support for secure.yaml file for auth info
    
    Almost nothing in clouds.yaml is secret, but the file has to be treated
    as if it were because of the passwords or other secrets contained in it.
    This makes it difficult to put clouds.yaml into a public or broadly
    accessible config repository. Add support for having a second optional
    file, secure.yaml, which can contain any value you can put in
    clouds.yaml and which will be overlayed on top of clouds.yaml values.
    
    Most people probably do not need this, but for folks with complex cloud
    configs with teams of people working on them, this reduces the amount of
    things that have to be managed by the privileged system.
    
    Change-Id: I631d826588b0a0b1f36244caa7982dd42d9eb498

commit 05bd92c8a180de7404a145e9ddd88c1bdb05d40f
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Sat Nov 21 16:30:22 2015 -0500

    Fix warnings.filterwarnings call
    
    We need to use a keyword argument for the category since it is
    not the second parameter to filterwarnings().
    
    Change-Id: I0f393a742468c150e0debbc3453cf38ebc2fb58e

commit 630ce6704befd0caa5e1f25f69ceb5a8224c117c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Nov 18 17:10:28 2015 -0500

    boot-from-volume and network params for server create
    
    Two of the more complex arguments for server creation are booting from
    volume and attaching to specific networks. It's possible to add some
    syntactic sugage to the constructor to make this work in a less insane
    way.
    
    Change-Id: Icdfd15c0c6ada79cee0fb15a31e1cb727869d215

commit 2cc62575e7c23c581eab7a228a7beb0abd4a79ad
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Nov 19 12:40:28 2015 -0500

    Do not send 'router:external' unless it is set
    
    There are some setups where sending 'router:external' can
    produce a Forbidden error. For an example, see:
    
      https://github.com/ansible/ansible-modules-core/issues/2435
    
    Let's not send it unless it is explicitly set to True.
    
    Change-Id: I59c43bf3eab09ed620cd1e8e5e445037767eb8bb

commit c6c1b7326b492f20e758e9f5f4df58bd820d9339
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Nov 19 15:36:27 2015 -0500

    Add test for os_port Ansible module
    
    Change-Id: I0ae6ada61fe7d409b6bb45f559cfee4146585efc

commit 9d7229f65b9862e27c58490921b04d7d4c388e02
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Nov 20 10:10:43 2015 -0500

    Allow specifying cloud name to ansible tests
    
    It would be *really* cool and useful and stuff to be able to run
    the Ansible playbooks against more than just devstack. This change
    allows that. Now you can send the -c option to the tox command line:
    
        tox -e ansible -- -c coolcloud
    
    Or, specific tests:
    
        tox -e ansible -- -c coolcloud auth network
    
    Going against devstack is still:
    
        tox -e ansible
        tox -e ansible auth network
    
    Change-Id: I666a09aee3d283865c3813d67edfb75123057c22

commit 27154a9c14ea7c3fc03147043f8a3093b14a1a1f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Nov 20 09:31:04 2015 -0500

    Fix a 60 second unit test
    
    The no-addresses test was waiting for delete timeout and was therefore
    sticking around for 60 seconds for a sideeffect we did not care about.
    
    Add a second get return value so that the get in delete returns without
    a wait-poll loop. Also, set the list server interval to 0 so that we
    done have a bunch of tests with a single 6 second wait.
    
    Change-Id: Ia62ace386a183892f9446aee4e9d4cbbee528dec

commit 23b49f840df9c19b6ae48118187af2b3c13519d9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Nov 19 16:43:22 2015 -0500

    Make sure timeouts are floats
    
    timeouts passed to iterate_timeout need to be int or float. If something
    goes south and a timeout gets converted to a string, this blows up.
    Luckily, python is good at converting string floats to real floats.
    
    Change-Id: I3489532f0e43e1c289ecb50c77dd80e47ac65ab2

commit e9d4223cf9a15695c890bd3981237173977d986b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Nov 19 17:03:02 2015 -0500

    Remove default values from innner method
    
    There are node codepaths where we want to not pass in values to
    _upload_image_task - so remove the default values because they're
    confusing.
    
    Change-Id: I3575e9d7f31548aa99ef58bca15dfc8042155855

commit c84179154d90247c784ddaf76cbd84eeaeaf3cca
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Nov 20 08:54:53 2015 -0500

    Bump os-client-config requirement
    
    The 1.11.0 release of os-client-config contains a bugfix for the
    swift api timeout paramter issue. Be explicit that this version
    of os-client-config is required for proper operation of shade.
    The 1.11.1 release contains a bugfix for the 1.11.0 release.
    
    Change-Id: Iabcb62593143473a7459ad01122a734d4230ab77

commit 9c59002116e755d9ac7f14b11c3774c6848d4a3c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Nov 20 12:10:16 2015 -0500

    Fix lack of parenthesis around boolean logic
    
    The legacy envvar prefix support broke a workaround for use of OS_
    envvars in test cases. This is only currently a problem for shade functional
    tests, but it IS a bug.
    
    Change-Id: Ia0cbb4e2ea7ce6eeeea36533e057bd53a830d44c

commit 10e96bcb7bed2ca8eaf0185b46dbb882bd8b2b7c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Nov 19 17:15:08 2015 -0500

    Only pass timeout to swift if we have a value
    
    swiftclient does not have the built-in None detection that keystoneauth
    has, so we have to do it ourselves.
    
    Change-Id: I3fcf60dd2f3350045b824899ac48b02809452a4b

commit ef80430afc83b89b560dbcf4b48ac3a19eacd86a
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Nov 18 15:10:37 2015 -0500

    Add test for os_user_group Ansible module
    
    NOTE: This won't work yet until this PR is merged:
    
        https://github.com/ansible/ansible-modules-core/pull/2492
    
    Change-Id: I4e346e5da958c7bada78901405ca8d2887bdc023

commit 72190ec19110e35f834b0a226d0c2ac872eccb79
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Nov 18 09:45:38 2015 -0500

    Add user group assignment API
    
    Add methods for adding and removing users to/from groups and
    checking for membership.
    
    This also updates the task_manager code to look for more types
    that we don't want to munchify because one of the new keystone
    API methods being called returned a bool value.
    
    This replaces Ida3cff3acdc1406c5e6d61500766a292565191fc
    
    Change-Id: Ib34c116010312ed26b042621fcf2e7b5b774424f

commit 0189dd248a1f1f1672a3f37dd518533372fe4fc9
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Nov 16 11:40:10 2015 -0500

    Add test for os_user Ansible module
    
    This also re-orders the role names in run.yml to be in
    alphabetical order.
    
    Change-Id: Ia6c3a9b5f1cb2e9394f5a1070f6716da0e478e61

commit 4834756fd14f68cab89d630e0b9fbaa277123459
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Nov 16 10:30:26 2015 -0500

    Add test for os_nova_flavor Ansible module
    
    Change-Id: I23603d664cc4885f1900d2a36bc1647ff96f0cfa

commit 21438f412f686aa511193db511f68ef4983940c9
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Nov 16 10:14:03 2015 -0500

    Stop using uuid in functional tests
    
    Some functional tests were using the uuid library for unique
    names. The testing framework provides us a method, getUniqueString(),
    for just such a thing, so we should use that instead.
    
    Change-Id: I08b8ef91b9cd467ade9fac1a73a5bd8976e207ed

commit 26412cbe83fa84c756ce635c6660282984c4fe81
Author: Caleb Boylan <calebboylan at gmail.com>
Date:   Tue Nov 10 14:12:10 2015 -0800

    Make functional object tests actually run
    
    Object tests were being skipped over because we were checking for the
    wrong service name. Also fixes list_containers() method.
    
    Change-Id: Ia0b71cefb327eaaf5f641067d0c80b91c93e6c45

commit 0aefe152af40436f532e3b37ff8ab602a0af6e6f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Nov 14 12:12:39 2015 -0500

    Fix name of the object-store api key
    
    There is only one value for this, and it's not consumed in the process
    of making a swift client, so the chances that anyone set it
    to something else are pretty much nil. However, for completeness we
    should make it the right name, as "object-store" is the service key
    name for swift, not "object".
    
    Change-Id: I395c1c44a2f50996b61dff22e07149b8dd13eda9

commit 3e76af913ae4a29ba1e4dd9fb4cf3b5ca109f79c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Nov 14 12:10:09 2015 -0500

    Refactor per-service key making
    
    The key for swift is object-store, but the key in the config dict
    would be object_store_api_version, so the key concatenation would
    not work. In fixing that, refactor out the creation of the keys so
    that the concatenation and transformation needed always happens.
    
    Change-Id: Ic095912bfc84f13ef8b11f312303a517289e0441

commit e5715de5f09b54da8ca181cf86d57454591fcae9
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Nov 13 16:43:23 2015 -0500

    Add Ansible object role
    
    Add an Ansible role to test os_object.
    
    Change-Id: I86d451a9c78014aa4a0f29f7edbb9b9c52b19f4e

commit 74477b6d51f263a1b8966e82f1a51e2ec8c948d1
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Nov 13 16:00:22 2015 -0500

    Fix for create_object
    
    The swiftclient upload() API call returns a generator. We were
    trashing this generator by trying to Munch-ify it. This caused
    create_object() to not be happy.
    
    Change-Id: I8d391f361778328cea9920e923584988c8048946

commit f5e1b859c8547865deb0ef8241c51ea4a00a7f97
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Nov 12 09:43:05 2015 -0500

    Add support for legacy envvar prefixes
    
    In trying to move the legacy clients to do their config via
    os-client-config, many of them had prefixes like NOVA_ or GLANCE_
    in their shells. It's pretty easy to support optionally passing those
    in so that the transition to OCC is less of a change and we can
    treat the deprecation cycle of those features as a different topic.
    
    Change-Id: Ic819c0790989fa034db03d83535ee7b70aaacc3a

commit b2bc8c55ff004c202e1ac252d44dd1c8e7ffad0c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Nov 10 10:12:55 2015 -0500

    Four minor fixes that make debugging better
    
    While running a script against all of the existing clouds, there were
    a few issues that popped up. Most notably:
    
    - get_openstack_vars would bomb out if your cloud didn't have security
      groups (rax)
    - nova boot has a "this is why your boot failed" field that we did not
      pass on to the user
    - TaskManager debug output showed the cloud but not the region, which is
      confusing when you have clouds with more than one region
    - The novaclient error message for when you pass in the wrong datatype
      for nics is "str has no attribute get" which does not tell you that
      what you did was pass in a dict when you were supposed to have passed
      in a list of dicts. The problem is easy to trap for, and in more
      extreme cases to provide a better error message for.
    
    Change-Id: Ie4f7c68d0ff95e020042189937ce452e596802cf

commit 633441fbc7fe7d041695c02e60077fcd631824e9
Author: matthew wagoner <zxkuqyb at gmail.com>
Date:   Thu Nov 12 12:18:30 2015 -0500

    Add new context manager for shade exceptions, final.
    
    This commit completes the work of
     change Ic39b6e3efc33b7a30f298a3daca6d6c16ab4ca89
    
    Shade has developed a common pattern within many of the API
    methods where we try to avoid re-wrapping OpenStackClientException
    exceptions by catching them and simply re-raising. We can eliminate
    this duplicate exception handling with a context manager.
    
    Change-Id: If236656146ecfa5a2b3eb3379efc6869829bdaa7

commit 1ac8530c25e439ae97f088930b1cea1b5f260f36
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Nov 12 15:59:45 2015 -0500

    Add ability to selectively run ansible tests
    
    Now that the Ansible module tests can be run via tox, it
    might be nice to allow developers the ability to selectively
    run individual module tests (accomplished via Ansible tags) from
    tox.
    
    Change-Id: I38a3040a7157a9bcf1cda76e26ab11577e9f80a6

commit cb0e9130f5acf3c703070d4c33cf159de17020fe
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Nov 9 11:24:53 2015 -0500

    Add Ansible testing infrastructure
    
    The keypair test needed adjusting so that it would work in
    the gating environment, and anywhere an SSH key may not be
    available.
    
    Change-Id: Ic9bf41c2b4041911d05217ad3748e097326bac3a

commit 506d6e8ffefdda4d31e1b33686008e9e610beca2
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Nov 10 17:16:02 2015 -0500

    Fix JSON schema
    
    We incorrectly refered to things with _api_ in the name.
    
    Change-Id: I9130ae0f72484957d0a8943eceabcd6a6bc21c91

commit 105ba778a2cacc3e46ae2fb929ac9450623ae5ec
Author: matthew wagoner <zxkuqyb at gmail.com>
Date:   Mon Nov 9 11:55:13 2015 -0500

    Add new context manager for shade exceptions, cont. again
    
    This commit continues the work of
     change Ic39b6e3efc33b7a30f298a3daca6d6c16ab4ca89
    
    Shade has developed a common pattern within many of the API
    methods where we try to avoid re-wrapping OpenStackClientException
    exceptions by catching them and simply re-raising. We can eliminate
    this duplicate exception handling with a context manager.
    
    Change-Id: Ic714673e842847c987166fe4a7bf43965dd4d8a9

commit ef0ccaaef4e31a1fbbfef60a17ff81d24865edbb
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Nov 9 15:50:28 2015 -0500

    Pull server list cache setting via API
    
    To ensure that we get numbers and not strings from OCC for cache
    settings, we need to use the actual API for that, not direct data
    introspection.
    
    Change-Id: I457c624ebfcda6578417fb977ea3742a63507344

commit a71db08bc71308bb54ba7a715048767242434d0f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Nov 9 10:36:31 2015 -0500

    Plumb fixed_address through add_ips_to_server
    
    Specifying a fixed_address if you know it is somethig that the lower
    level functions understand, but was left out of the argument list
    for add_ips_to_server. Plumb it through.
    
    Change-Id: Iba3456f0f45e5b0230c752a50fc3d3b29e8ade54

commit 397da54db11b5a5506c24dc9af60a34665bbd953
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Nov 9 09:43:09 2015 -0500

    Workaround a dispute between osc and neutronclient
    
    python-openstackclient wants network_api_version to be 2. neutronclient
    wants it to be 2.0. There is a patch to OSC to make it understand both,
    but in the mean time, let's unbreak people.
    
    Change-Id: I4d8f187d1302c5bcfa246e017e6c6d8af9c3f733

commit c90de1f691a27d4f434d948f1b77db02c23162a4
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Nov 9 09:07:06 2015 -0500

    Workaround for int value with verbose_level
    
    python-openstackclient uses an int value for verbose level which the
    stringification patch broke. As a quick fix, special case verbose_level,
    as fixing it properly might take more than 5 minutes.
    
    Change-Id: Ie12a40d3d3e400b3ec2103d7a58c4902fb10fc2d
    Closes-Bug: #1513919

commit ce7d716ffc5867d6cb7f73cbca6bbc4470499fb9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Nov 8 18:24:24 2015 -0500

    Remove unneeded workaround for ksc
    
    It turns out keystoneclient can take string input and does the
    same transform we're doing here, it's just not documented. Remove the
    workaround on our side as it's unneccesary.
    
    Change-Id: Ie46945f7d96e3d65004cd19823b3be989e1d18a7

commit 59ad0ed00bfa485b5f0d24f5edb4e5b20cc7603a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Nov 8 18:21:46 2015 -0500

    Add default API version for magnum service
    
    shade is adding magnum support, so we should probably grow a default
    value for the container_api_version.
    
    Change-Id: I2551f2921f10ba109ccb52301cc8ad23c5f81c46

commit f7ca875777e5f33387b84934cd5951c221e24b95
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Nov 1 19:30:41 2015 -0500

    Let os-client-config handle session creation
    
    More things than shade need consistent Session creation, so we moved
    a copy of the shade code into os-client-config to allow python-*client
    to consume the same logic. Now that it's there, consume it in shade and
    remove the need for shade to know/duplicate the logic.
    
    Depends-On: Ide4c613cc143a0b8a3f36130989b57e808b2530f
    Change-Id: I86cdb3cdd2710ef302520184ccfcb1605384f706

commit 9df40b00dcd8f9f99e9ada3ab2156c471fb59b26
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Nov 5 09:46:50 2015 -0500

    Remove designate support
    
    It was broken, thus it was impossible that anyone was actually using it.
    We do not have a plan for v1/v2 compat support yet, and it's a hard one.
    SO - rather than leaving a broken thing in the tree which was not
    possible to use, or fixing it and then having a half-baked thing which
    people might actually start using, pull it out pending someone stepping
    up and caring about it.
    
    Change-Id: I390494fee8c6c7fb5ddde2ce47e7eb598ad5e08b

commit ae2bdeda71970b1478ad2aa9eee48987b2cf7199
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Sat Nov 7 12:00:51 2015 -0500

    Remove test reference to api_versions
    
    API version information comes from occ now. Update the test
    to get the version from the correct location. This removes the
    last reference to the old api_versions attribute after change
    Ifccf7b04168ca45a91a40ace7f33346da893b8d9 merges.
    
    This also makes sure that the version calls actually happen
    with the correct 'identity' parameter.
    
    Change-Id: I9b918fa402579fc60319644b1434841fd71ffbcf

commit e557b6e4dbc0cf43610dc2a99a55cd80e8d8a3a4
Author: Alberto Gireud <agireud at us.ibm.com>
Date:   Sat Nov 7 09:05:07 2015 -0600

    Update dated project methods
    
    Change-Id: Ifccf7b04168ca45a91a40ace7f33346da893b8d9

commit 4a061caf5d0ef655bbcde33d317a9fe14a806c50
Author: Alberto Gireud <agireud at us.ibm.com>
Date:   Fri Nov 6 16:40:17 2015 -0600

    Fix incorrect variable name
    
    Change-Id: I16c4b7394b943fa988c51c315f5c203fea938788

commit 89dd35301c22c46f3cc3ba4f4f07f6f047383429
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Nov 6 16:10:27 2015 -0500

    Add CRUD methods for keystone groups
    
    This replaces review Ia25b76c38c3463c963a5ac2ae1c81fcd33dc591b.
    
    Change-Id: I9a6a28994d076f032fe27624cdb3b0fbe248acef
    Co-Authored-By: Monty Taylor <mordred at inaugust.com>

commit 13b6fbabeb27a346c91a9fb3a1fb86c7adbd2779
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Nov 6 09:04:12 2015 -0500

    Work around a bug in keystoneclient constructor
    
    keystoneclient bug #1513839 means that even when you proerly pass
    a Session (like we do) to the discovery constructor (what you'd be
    calling if you were passing "pass_version_arg = True") ksc fails
    because you didn't send a URL.
    
    We _HAVE_ an appropriate URL that we can pull from the Session. So
    until ksc learns how to pull the URL from the Session itself, do it
    for them.
    
    Change-Id: I38eb4cfa750fab5196b86989c2cd498d41bf37ac

commit 5b993208b97a459429bcb5f6fb852372c576cdaf
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Nov 6 06:39:34 2015 -0500

    Return cache settings as numbers not strings
    
    While we're at it, let's also put in some tests to ensure that we're
    processing data types properly.
    
    Change-Id: I0442d234e8422a58738612b2da114f61cc9afc5c

commit 2339243e66b676325c84693e7f8199d476199203
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Nov 5 17:00:33 2015 -0500

    Add method to get a mounted session from config
    
    Getting a session is great, but sometimes you need a thing called
    an "adapter" which takes 5 parameters which are all already contained in
    the config that you used to get the session.
    
    Change-Id: Id4e418cd04ae81540d9898f7b2e959b974f355d2

commit 26c8ebd4b49acb8d12db2498d12f591e9955d528
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Oct 31 10:24:10 2015 +0900

    Bump ironicclient depend
    
    ironicclient 0.10.0 drops the lxml requirement. Let's set the min in
    shade to that so that we make sure people don't try to install lxml.
    
    Change-Id: I942de581e15017de9706cabd2eb759eec578565e
    Depends-On: I6f0e5d7f3d97a5fb6a948d653633b067dfe258f7

commit 3b43304c73f09d7e4f19b57de7e346ec1f3a171b
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Nov 5 15:44:34 2015 -0500

    Make sure cache expiration time is an int
    
    The latest os-client-config release, 1.10.0, makes sure that all
    numerical values are strings. But we need to pass an int to the
    cache configure stuff.
    
    Change-Id: I5d5e42440afd58111daeab6a5f42aa9ae7ceddf4

commit b8874ffc98488500fd4b573f7fa6196d3997e84e
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Nov 5 10:26:10 2015 -0500

    Convert floats to string
    
    We do it for int values, so floats should be covered, too.
    
    Change-Id: I1b98f7887ad421596b3bfdf2f6ad871a7d7f6bb2

commit 10836aeb85b36d3ab02794762b7089a3ab6a4928
Author: matthew wagoner <zxkuqyb at gmail.com>
Date:   Wed Nov 4 11:01:41 2015 -0500

    Add new context manager for shade exceptions, cont.
    
    This commit continues the work of
     change Ic39b6e3efc33b7a30f298a3daca6d6c16ab4ca89
    
    Shade has developed a common pattern within many of the API
    methods where we try to avoid re-wrapping OpenStackClientException
    exceptions by catching them and simply re-raising. We can eliminate
    this duplicate exception handling with a context manager.
    
    Change-Id: Ifd97181b33ed72bb9ad5b3da1e2b92a660e12a65

commit d373969b98cd1db9188085dc2cd0b7754c687ff6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Nov 5 02:12:40 2015 -0500

    Don't assume pass_version_arg=False for network
    
    Excitingly, one of the places where we hard-code a workaround for
    a differently behaving client is not needed. The Client in neutron
    that takes a version arg is in neutronclient.neutron.client. Also,
    pass the version arg as positional when we pass it, as some of the
    clients (neutron) require it, and all accept it.
    
    Change-Id: Ifcbaab782173b95a678af0b2792a1194b198b687

commit 059d314ba44fd52f16436bf104b1a476df77bbdb
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Nov 5 02:11:23 2015 -0500

    Update network api version in defaults.json
    
    neutronclient expects 2.0, not 2 - but we'd not noticed because all
    of the consumption of client constructors were bypasing the version
    arg for neutron. In a follow-up patch we'll fix that, but the
    value in defaults.json is just straight wrong.
    
    Change-Id: I684c4ef063193355c6cf936d4f18576db919762b

commit 588be0126307a6b6dd0582ea546c73f05f23b919
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Nov 5 02:55:50 2015 -0500

    Dont turn bools into strings
    
    It turns out that requests does not like that.
    
    Change-Id: I206be8107f5cfaaa7dc7f34ab0b0764e0dc3fb0d

commit 1bf09410d191b872b975634f8cf3f8847865b546
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Nov 4 18:28:41 2015 -0500

    Use requestsexceptions for urllib squelching
    
    The code to deal with this properly is quite sharable and we should
    not care. Use requestsexceptions from the Infra team to handle it.
    
    Change-Id: Ie20a3e1b2d8d18a4a76b34219cf12510cb1cda98
    Depends-On: I52249b6d2fe04c49a9f4ed139d7625c890309ca8

commit 2b4542814381144dc6ac2f1afc932420c2c6c8d6
Author: James E. Blair <jeblair at linux.vnet.ibm.com>
Date:   Tue Nov 3 09:33:40 2015 -0800

    Use the requestsexceptions library
    
    Change-Id: Idf277388a006ab0d0c6071f77bce3ca6879ee562

commit 93d8b79900435e2f3b1755963e4a465cb6d4cdbf
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Nov 3 09:13:44 2015 -0500

    Don't warn on configured insecure certs
    
    If we have to connect to bogus certs and we know this and we've
    configured 'verfiy=False' meaning that we've explicitly indicated
    that we want to turn off cert verification, then spamming our logs
    with warnings that the certs are invalid is a bit lame. We know. We're
    not happy about it - but at least one of our providers has bad certs. We
    wish we had the power to change it, but we don't. We already feel bad.
    STOP YELLING AT US.
    
    Change-Id: I08d816bcc1685fc9ed3bfcf2e3e8300859059903

commit ba3b20610f52b7c3f0e0c087f03caf5a23839500
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Nov 4 15:06:12 2015 -0500

    Normalize domain data
    
    Keystone will not return a description attribute if no description
    was given when creating a domain. So let's normalize the data so
    all the things are there that we may expect.
    
    Change-Id: I0fd14d512554853d5a5a052e0517f47a509a35b2

commit 5e031a592ceecf0207ebb88e637e5dcb2faab275
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Nov 4 14:52:19 2015 -0500

    Normalization methods should return Munch
    
    For the 1.0 release, we settled on returning Munch objects
    rather than plain dicts. However, we didn't arrange for that
    in the place where we normalize the returned data.
    
    Change-Id: I9eca96635ddfa012d6c5cff64162de1379f355ee

commit b4e7985d6a3a11e92cb51e463a547236bef59367
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Nov 4 12:36:26 2015 -0500

    Fix keystone domain searching
    
    Domain searches is a bit different in that it pushes down the
    filtering to the keystone client. This is fine, except that it
    didn't work as the filters were not actually passed.
    
    This change passes the filters, and changes the search_domains()
    API to accept a 'filters' parameter to be consistent with our other
    search methods. It previously accepted only keyword parameters rather
    than just a filter dict.
    
    Change-Id: I61c8591493c5d10de38a6541a9859be2950d60a6

commit ac51f4459106c10b0564747f36635779d40fadac
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Nov 4 13:33:41 2015 -0500

    Normalize int config values to string
    
    We have no things that expect actual int values. It's easy to write
    ints in yaml though - so normalize them to strings.
    
    Change-Id: I58cfdda697da9b7e030f4165ef8e60f4e9d00b66

commit 1d3128d73b52559de9ca28fcb4ccfcea1609a962
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Nov 3 17:11:37 2015 -0500

    Add new context manager for shade exceptions
    
    Shade has developed a common pattern within many of the API
    methods where we try to avoid re-wrapping OpenStackClientException
    exceptions by catching them and simply re-raising. We can eliminate
    this duplicate exception handling with a context manager.
    
    Change-Id: Ic39b6e3efc33b7a30f298a3daca6d6c16ab4ca89

commit 234a2bf0685754a08d27e09187cdc54fdef04558
Author: Lars Kellogg-Stedman <lars at redhat.com>
Date:   Fri Oct 30 19:33:32 2015 -0400

    teach shade how to list_hypervisors
    
    adds a list_hypervisors method to shade, along with a corresponding unit
    test.
    
    Change-Id: Ia7d8f7249356f28fdbad6c513adee4176615142f

commit 409134d4d013503fc2fdfd16cda8896e4499771e
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Nov 3 15:12:50 2015 -0500

    Update ansible router playbook
    
    Change-Id: Iae2cb060f8600476fd7af2ff77e99263edd67362

commit 6d957b01e55637ad4e8ce69c31cf3b3f64881c57
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Nov 3 10:42:53 2015 -0500

    Disable spurious urllib warnings
    
    Since we can return a keystoneauth1 Session correctly, disable the
    stupid warnings that are evil and never should be emitted.
    
    Change-Id: I128e4587ab07a20c7c5da745b12e4f5d0a3ee5a7

commit 335ed4a6944ad32759ad810aa6a4da599bc358fd
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Nov 3 10:45:20 2015 -0500

    Add logging module support
    
    The _log.py module is from shade and is just basic logging support
    that does not emit warnings if the consumer does not have logging
    enabled.
    
    Change-Id: Id4639763cf488eb7cd0c27904be055a7843e287f

commit a494b31b85cf320c891260e837a69867348eca78
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 26 10:31:15 2015 +0900

    Add methods for getting Session and Client objects
    
    These come originally from the shade library, but are helpful for
    things like the client libs themselves. Once one has a CloudConfig,
    there is really one and only one correct way to get both a session
    and a Client.
    
    Change-Id: I1b4d4321828864fddab85a127fbf63f4c8384ab9

commit 27678e5d948296986c31705c8405f569d2c06553
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Nov 3 08:11:53 2015 -0500

    Update conoha's vendor profile to include SJC
    
    Turns out the lon region is not really a thing.
    
    Change-Id: Ib315c301d5f8b589006a61d2a255a6b295b1b9a5

commit 796bfad22dae30e39f678c38fc9fba4f7f96032b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Jun 6 09:40:03 2015 -0400

    Use json for in-tree cloud data
    
    In preparation for sharing the default and vendor data with other
    projects, potentially even non-python ones, move the data into json
    format, which is slighly less exciting to read, but has more widespread
    standard library support. The user-facing config file will still be in
    yaml format, because that's easier on the eyes and it's expected to be
    read and edited by humans.
    
    Continue to accept yaml everywhere, because an end user may have dropped
    a yaml config file into a dir somewhere, and that's fine.
    
    Change-Id: I269d31e61da433ac20abb39acdde0f9f9fe12837

commit 5dca987851d7ccb2e42b25e768be88be1797beaa
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Nov 1 13:02:09 2015 +0900

    Stop calling obj_to_dict everwhere
    
    Now that Task objects just return the right thing, we can strip
    a ton of calls.
    
    Change-Id: I3aac80f83ba259a358534f1c4357c4631dbd3a9f

commit 586dbbb0a4d5d6b5a87e8ceea4cf4497f9452a64
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Oct 24 03:59:01 2015 +0900

    Always return a munch from Tasks
    
    This should let us remove a ton of calls to obj_to_dict everywhere.
    
    Change-Id: I627b0c05a43e313cc4ff045835a7eda50bab440a

commit b5b3fbaafa3556b55a63e2b45600f43f538defff
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Nov 2 06:36:14 2015 -0500

    Make raw-requests calls behave like client calls
    
    NovaGetUrl returns a tuple of response/body, but everything else returns
    the actual object. If we're going to make raw calls, we should handle
    them in such a way that the rest of the code doesn't konw the
    difference. This also means that we have the opportunity to look at
    response codes and throw exceptions if they aren't 200.
    
    Change-Id: I0bab5056b5ba234f5509b56a716ce426e6a2c604

commit b7ad03eadc52c3c234005b09295af8dff33eda8e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Nov 3 08:47:52 2015 -0500

    Minor logging improvements
    
    While testing running an inventory on a clouds.yaml with 17 clouds,
    errors popped up that were opaque. These are mainly just the things
    I noticed doing that.
    
    Change-Id: If3f0dc85b7a8d5a510f9f7b561f3c49edd817908

commit 48c0668b155232137cbdcf6537caca83cb870630
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Nov 2 12:35:11 2015 -0500

    Update auro to indicate move to neutron
    
    Auro runs neutron now. Update the config and the docs to reflect that.
    
    Change-Id: I4d2fd12b6f3d93f9e1d201b687145f1fe022e593

commit 5f2b64bd313b2d6f5578d824537836c45763e7a5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Nov 2 21:44:06 2015 -0500

    Copy values in backwards_interface differently
    
    There is the world's weirdest race condition in the unit test for this
    on python 3.4.
    
    Change-Id: Idee8320f03651964600ba0822edfff04f880ea4a

commit d68e819fd7395f87fafb6a52842d43559ae43425
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Nov 2 12:08:16 2015 -0500

    Remove another extraneous get for create_server
    
    The pattern of doing a get after a create is one we've been doing in
    Infra for quite a while. However, if we're going to spin off a wait
    loop, there is no need for this get, as the only thing we need in the
    loop is the server id - which we already have. OTOH, if we're not going
    to wait, this is still a useful get to do. Lucky for us, python has a
    feature know as "if" which makes expressing this easy.
    
    Change-Id: Ida354fb8fc772325a2fcf8e4ef1dcf3841176e2b

commit 7c5087d17bce239c10f6827c26ecb7b149f3d908
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Nov 1 11:20:16 2015 +0900

    Don't wrap wrapped exception in create_server
    
    If we've wrapped the exception because of Auth things, we don't need
    to re-wrap it - it's just confusing.
    
    Change-Id: Ia1e45f4971f4b51f28538260d64f778aecaa6f3d

commit 0085effd4024fc8f48f7aa4e41853bcbb1675b4a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Nov 1 11:03:17 2015 +0900

    Skip an extra unneeded server get
    
    When we're attaching a floating ip, the wait loop gets the most up to
    date server dict as part of waiting. In that case, there is no need to
    do an additional get. If we're NOT waiting, it's also pointless to do
    a single get, as it's not guaranteed to have the updated info.
    
    Change-Id: I84bc54ce32a7d5bf10078027fdb29fab5e84bd39

commit eba0221a26f49f7b4c807f4732846ef2d42db169
Author: Xav Paice <xav at catalyst.net.nz>
Date:   Tue Nov 3 12:39:57 2015 +1300

    Fix typo in Catalyst region configs
    
    Small typo making one region not useful for customers (my bad!).
    
    Change-Id: If2680b521f92789f2621aa1249b304666fcde95b

commit b6e918089cbd561b6f9961f832ea4f4d925bfcd0
Author: matthew wagoner <zxkuqyb at gmail.com>
Date:   Mon Nov 2 10:36:31 2015 -0500

    Don't wrap wrapped exceptions in operatorcloud.py
    
    Similar to change Ia1e45f4971f4b51f28538260d64f778aecaa6f3d
    If we've wrapped the exception because of Auth things, we don't need
    to re-wrap it - it's just confusing.
    
    Change-Id: Iecbe4137acc2b27848b09e415df35d486f92c951

commit 684b8b69290d5df1f494a1d2979f06566800ce5f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Nov 1 11:01:52 2015 +0900

    Add docs for create_server
    
    create_server does a lot of passthrough to nova create_server, which is
    great, but means it's tough to know what you need to pass in to shade
    when reading the docs. List and document the parameters that shade is
    supporting. Continue to support **kwargs pass through for others that
    could be used but which shade doesn't know about.
    
    Change-Id: I97cbb50f027e58766015b768a5da9c853b8c29fe

commit edc5fc2d98b28e540de54cad313b4ce054188274
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Nov 1 11:38:48 2015 +0900

    Update README to not reference client passthrough
    
    It's there and we support it, but we don't have to _talk_ about it.
    
    Change-Id: Ia3419a72fa13d42a17ddc0243d7800e462a827b2

commit 91e01482c6c2eb772cd8c4c7bb9ec470dad3ca29
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Sun Nov 1 09:26:25 2015 -0500

    Move ironic client attribute to correct class
    
    The _ironic_client attribute is useful only for the OperatorCloud
    class, so having it defined in OpenStackCloud is bad programming
    style. Move it to where it is used.
    
    Change-Id: I8141e1758e28a8120f0e78c9e407bb416a499166

commit 62578215183982e493dbe490faf80a50bfb77281
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Sun Nov 1 14:52:33 2015 -0500

    Move _neutron_exceptions context manager to _utils
    
    Continue with our work of moving utility methods out of OpenStackCloud
    and into the _utils module.
    
    Change-Id: I898249a7dd1a93f3a9d798008a840b44bea35927

commit f31b20623efa653f579f137b4d4abcc0b8818e50
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Sun Nov 1 13:33:06 2015 -0500

    Fix misspelling of ironic state name.
    
    Change-Id: I27f7dd4b3b07e18b94baf15079d4bf78ea2b225a

commit e2f0253547214c7f351735cce979edc475f59748
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Sun Nov 1 13:31:09 2015 -0500

    Timeout too aggressive for inspection tests
    
    The new ironic inspection tests has a timeout that appears may
    be too aggressively low, which may be causing the iterator to give
    up before yielding even once, on a random basis.
    
    Change-Id: I18d447e092c74e21edcc7f90f36112d8c87ffee7

commit 0f6203f303701dee8cdda0fd4df8e3ed810de301
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Sat Oct 31 14:25:50 2015 -0400

    Split out OpenStackCloud and OperatorCloud classes
    
    Change-Id: If8a09f52313c07d12c7fe0da66f6599de3120979

commit fff354e64feed6ebd10a2684d944b143608a8645
Author: Caleb Boylan <calebboylan at gmail.com>
Date:   Sat Oct 24 07:05:04 2015 -0700

    Adds volume snapshot functionality to shade
    
    Adds volume snapshot create, delete, get, and list functions
    
    Change-Id: Ibe540f3b1932f1a703c98e580f98d0c7091c9622

commit fedb0357c44921fc3b0141264ab852d8bedbc3cf
Author: Caleb Boylan <calebboylan at gmail.com>
Date:   Thu Oct 29 10:33:56 2015 -0700

    Fix the return values of create and delete volume
    
    also fixes the delete function so it uses get_volume() instead of
    the volume_exists() function
    
    Change-Id: I13e27921e105ac752e91f31f0622d6508bd110a2

commit 96839a5d5067a153bb1289852c5c933ea31230a9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Oct 30 11:41:26 2015 +0900

    Remove removal of jenkins clouds.yaml
    
    Once devstack stops writing out a jenkins clouds.yaml, we can stop
    deleting it.
    
    Change-Id: Ifab8af4ca08851be68bfaa00525938e15e6b5bfb
    Depends-On: I036704734785958c95d2234917d7b40bd797a375

commit f826d93ad0e9f7a92e37afaba1feb93d6721125b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Oct 30 11:38:26 2015 +0900

    Consume /etc/openstack/clouds.yaml
    
    devstack write out clouds.yaml to /etc. Use that, rather than ~jenkins.
    Also, remove the jenkins one since we edit the file.
    
    Change-Id: Ie89fb49e760855c5eec46e44ea2f947c4852b949

commit 12e78681bc7d488228ba84b19982f27a9627aea3
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Fri Oct 2 14:59:19 2015 -0400

    Add logic to support baremetal inspection
    
    Ironic supports an inspect verb which directs ironic to boot
    the node into a special firmware image in order to collect
    properties from the remote node.
    
    Change-Id: I4ba3f0cf4ad6f5466e52f5d034bb217f06eec7dd

commit 80f2a21bc05f141ca413ae30bae9f2faad919a6b
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Sun Aug 23 19:53:15 2015 -0400

    node_set_provision_state wait/timeout support
    
    Addition of wait/timeout support for node_set_provision_state to
    block the method until the machine has entered the desired state.
    
    Combined with this, node_set_provision_state will now return the
    state of the machine as opposed to just passing through the default
    from the ironicclient node set provision state call.
    
    Change-Id: I3e0bfe9e4612291dc77bd683479f7f99aef50d0a

commit 2c63d6e7177a4e15ed9d7fd0a251f39df6f545ac
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Oct 27 07:39:45 2015 +0900

    Add warning suppression for keystoneauth loggers
    
    In our simple_logging helper function, add a null logger for
    keystoneauth base auth plugin to suppress the "no handler found"
    warning.
    
    Change-Id: Ie210e76142a6c3dc731e937e82f12572932f07e0

commit faea2f8abbcba0745087a4555a691439771a0ce8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Oct 27 07:37:10 2015 +0900

    Suppress Rackspace SAN warnings again
    
    The old warning suppression stopped working because the string
    from urllib changed. Instead of using that, use the actual warning
    class in the suppression.
    
    Change-Id: Ib06516ffb5b2cc272d597e7eac959dd39e27c3a4

commit 0cee2505032bbbb5d976d00c3fc096ec1eb6c679
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Oct 27 07:11:50 2015 +0900

    Aligned a few words in the docs
    
    We say "not supported" when the cloud doens't do something, but there
    were two places where we used other words. Fix them. Also, make the
    image properties a blockquote.
    
    Change-Id: Id933f7d38d706c6fb3ed9f59ad10c2e1e2d73c43

commit 2aaba84c7c4dd71420b7881358f89ec1e061c11c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Oct 27 07:08:49 2015 +0900

    Sort vendor list
    
    We've got enough of them that the arbitrary sort order was a bit weird.
    Sort alphabetically.
    
    Change-Id: I6d4ec563f03d1b25bad7d8337db90007a562e97c

commit c71ba514a3827f09312e873899a39d4974bd1e4c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 26 14:16:53 2015 +0900

    Add conoha public cloud
    
    Change-Id: I05a716bc54c98390a7cbeb352338a7c6cd7e86c3

commit 4ae04265ffc015259a2c3709b03edcfe86953833
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 26 14:11:55 2015 +0900

    Allow for templated variables in auth_url
    
    Some clouds have auth_urls per region, which means putting a static
    auth_url in the config file isn't going to work. Allow {} substitutions
    in the auth_url so that other elements of the auth dict can be injected.
    This will not solve _everything, but it will solve all of the currently
    identified issues, and should be upwardly open if we need something
    more complex later.
    
    Change-Id: I6107d0669734647cfa0bef118bdf7739949991ad

commit f8804bd4f5f9ab5a1e83ec5decfaa8474f1258b6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Oct 27 07:27:09 2015 +0900

    Use assertDictEqual to test dict equality
    
    Just using equals is not a consistent test, because dict ordering can
    change. assertDictEqual tests that the contents of the two dicts are the
    same.
    
    Change-Id: I1b084a3fee91d73d57a6b9e6a2d0ab9c186e5572

commit e941434e4ff25153c9661919852316438f8499a8
Author: Lars Kellogg-Stedman <lars at redhat.com>
Date:   Fri Oct 23 22:11:31 2015 -0400

    return additional detail about servers
    
    Introduce a new parameter `detailed` to `list_servers`,
    `search_servers`, and `get_server`.  When True, `list_servers` will call
    `meta.get_hostvars_from_server` for each server.
    
    This does not modify the default behavior (`detailed=False`) of these
    methods.
    
    Change-Id: I919fd2ec20515c2b13eee02a75623c6ce6d7d273

commit 631a8e53e90dcdb5fcc9131d72c3501b0b06a8d8
Author: Lars Kellogg-Stedman <lars at redhat.com>
Date:   Fri Oct 23 22:09:02 2015 -0400

    expand security groups in get_hostvars_from_server
    
    Add a call to `list_server_security_groups` to
    `meta.get_hostvars_from_server`.  This replaces the minimal list of
    security group names with detailed information that includes security
    group ids.
    
    Change-Id: I5a01b37efd5520205c6ce94f0fdc4c09f75053c2

commit f39cb4b9330307eb363b2e1707f87c9d4d5e8539
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 26 13:36:13 2015 +0900

    Always pull regions from vendor profiles
    
    Regions are special, since they're a driver for creating a cloud
    config object in the first place. We weren't syncing them from
    the vendor profile, so if the region wasn't set in the clouds.yaml,
    region name validation (and get_all_clouds) would fail.
    
    Change-Id: I5b8d6807a86b87a7f69f523f2fee2784389fab0a

commit 8f93623e45d3b988bcd54ec53fef148c18cc34c3
Author: Lars Kellogg-Stedman <lars at redhat.com>
Date:   Fri Oct 23 22:03:14 2015 -0400

    add list_server_security_groups method
    
    this adds a new `list_server_security_groups` method that returns a list
    of security groups associated with a particular server.  Internally, it
    calls `nova_client.servers.list_security_group(server)`.
    
        >>> import shade
        >>> c = shade.openstack_cloud()
        >>> server = c.get_server(name='cirros')
        >>> c.list_server_security_groups(server)
    
    Change-Id: I63228bed4e1fb65a7a15627fbe1da31cfff2aa0e

commit 7f5ae9518850f57d2bd803f78d9e8a5f3bd7b83f
Author: Caleb Boylan <calebboylan at gmail.com>
Date:   Fri Oct 23 11:39:27 2015 -0700

    Add swift object and container list functionality
    
    Change-Id: Id8b5296f6a3277360011874b5292817b63acfbac

commit 139a2b521c8cc2de57c0d95308e389a2e17bd898
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Oct 24 03:59:46 2015 +0900

    Translate task name in log message always
    
    We translated it for 'running' but not for 'ran' which made output
    very strange.
    
    Change-Id: Idfef7fdf65798b010a52669ed5d6759878b089ff

commit c0f0f36fd854d14c42878879b128675c25dcb256
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Oct 23 13:09:31 2015 +0900

    Add debug logging to iterate timeout
    
    Output a debug message in each iterate timeout loop that we're waiting.
    It's entirely possible that this will become noise, but it's also
    silencable by setting a null handler for shade._utils.
    
    Change-Id: I908040e4bfaaa0abd3eeb254af3bfea2fc40626c

commit aed20265f8bd65cb011bb1c1232e09f14ee215ed
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Oct 23 13:08:41 2015 +0900

    Change the fallback on server wait to 2 seconds
    
    The original iterate_timeout default was 2 seconds - but the
    introduction of per-service cache timing support falls back to 0 - which
    is pretty extreme. Set the fallback to 2.
    
    Change-Id: I0163e3a3397e5a7bca22bd4bbaaca63509a072b6

commit fa8d0186608747e36f37552084240ad726653635
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Oct 23 09:51:05 2015 +0900

    Add entry for James Blair to .mailmap
    
    Jim shows up twice in the AUTHORS file and that's silly. I mean, he's
    clearly worth two people - but maybe not two AUTHORS file entries yet.
    
    Change-Id: I4abe95250501391b0d549ae7c0b05dd5ab0d5f76

commit bf792d7ff40ed976df3e0c3012bbaa2f28b9cf8c
Author: Lars Kellogg-Stedman <lars at redhat.com>
Date:   Thu Oct 22 10:54:52 2015 -0400

    handle routers without an external gateway in list_router_interfaces
    
    list_router_interfaces would fail if called on a router with no external
    gateway:
    
        File "/home/lars/.ansible/tmp/ansible-tmp-1445525437.55-149961620412652/os_router", line 343, in main
          ports = cloud.list_router_interfaces(router, 'internal')
        File "/usr/lib/python2.7/site-packages/shade/__init__.py", line 1922, in list_router_interfaces
          ext_fixed = router['external_gateway_info']['external_fixed_ips']
        TypeError: 'NoneType' object has no attribute '__getitem__'
    
    This commit defaults `ext_fixed` to an empty list if there is no external gateway.
    
    Change-Id: Idbcd5f005ebef47e11377e83a60d2adea7c3380b

commit 8cd3b51728af18e195fdefaca1245d4ff27fca17
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Jun 14 01:12:47 2015 +0300

    Fix projects list/search/get interface
    
    Similar to users, projects was off in neverland. Bring it back in to the
    fold so that the ansible modules can work sanely.
    
    Change-Id: I4c3715f2de91db73b3f06c483de20f108a7d62fe

commit dc45027fec3a932c2063cf1b17d835a4dc7c3fa6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Oct 22 09:21:29 2015 +0900

    Remove unused parameter from create_stack
    
    We cleaned this up a little while ago, but left a bogus param.
    
    Change-Id: I4a1031630ba839b802493f8355010b87c1bb4f69

commit 0ab8b82c6bdc764cb972e8d47660491f7aca5378
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Oct 22 09:16:57 2015 +0900

    Move valid_kwargs decorator to _utils
    
    It's not really a public symbol.
    
    Change-Id: Iab016b93697f1e44fd299d6bfbfc80677030102d

commit 3d66d1f9fbd5a87d5155e73d599734a03dbe7766
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Jan 31 16:46:08 2015 -0500

    Add heat support
    
    A lovely human upstream in ansible submitted a heat module - which means
    that it needs to be rewritten to use shade - which means we need heat
    support in shade. Add it.
    
    Change-Id: Idb0fe452698d74180a0ae96963c3d8cbca4d47e5

commit 0bb5192f0c980413cfe916208789eff767103eb2
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Sep 13 20:35:08 2015 +0200

    Abstract out the name of the name key
    
    Heat and Cinder each have different key names for their "name" concept.
    Rather than keeping a list of them, make an argument so we can override
    it in the instances we need to.
    
    Change-Id: I6ba0b69129c74e976ea6762728a940b4670f3873

commit 7aa043ec8781d9ccdb07b90fe694ae482198c022
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Sep 12 10:07:24 2015 +0200

    Add heatclient support
    
    In support of https://github.com/ansible/ansible-modules-core/pull/2036
    add at least a heat client constructor.
    
    Also, check it out - heatclient doesn't support Session auth. Until it
    does, we're not going to support advanced things like overriding SSL
    args.
    
    Change-Id: I488fde4abe5abc1c58515cf77d08644b49eb5ba6

commit da2bfd7a919d8888e0d79999005c210c3e9c5118
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 21 06:11:59 2015 +0900

    Use OCC to create clouds in inventory
    
    The inventory module has lagged behind just a smidge.
    
    Change-Id: I9207128c82b0f5f48b012231178cc835906426d5

commit 26aff17bd3aa0c3d42947ee45bdcf46bf75832ef
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 21 08:38:59 2015 +0900

    novaclient 2.32.0 does not work against rackspace
    
    shade should be clear that you should not install it.
    
    Change-Id: I05c2b8f4b1e1403a78c0a72e7613f8697cb70218

commit 0a1c7c84a3a7ce63a531861129beef0207c3931c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 21 06:02:27 2015 +0900

    Support private address override in inventory
    
    ansible inventory supports a command line switch --private which
    overrides the clouds.yaml setting. Support passing it in.
    
    Change-Id: I74bf98be26b605a5e9ac74ab478f421c39616d74

commit 76b081efe45f1f2ab8e09a1fd5a23d9fc54361bc
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Oct 20 16:48:00 2015 -0400

    Normalize user information
    
    We need to be consistent with the information returned about the
    user across keystone versions.
    
    Change-Id: I73890078e4c321db250c0245cad6b7c455c87ffc

commit cbc32990c9e95d89d06a9fada58fe02fc817d487
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 19 11:29:32 2015 -0400

    Set cache information from clouds.yaml
    
    With 1.9.0 of os-client-config, there are appropriate methods
    on the cloud_config object which allow access to cache config settings.
    Additionally, there is a documented mechanism for passing in
    per-resource cache timing, for things like list_servers.
    
    Depends-On: I352f827715821db8a69983eae0ee3e9c8c99f512
    Change-Id: Iba9af1cdddf0844c885ff203f67a522dc451a3ed

commit 0d22456cba63d5915873faa593a0c05a8b47ce11
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 21 01:50:40 2015 +0900

    Make designate record methods private for now
    
    The API for designate is not something we can commit to right now. It
    turns out that v1 has Domains and Records and v2 has Zones, RecordSets
    and Records. Figuring out an API design that can handle both is not
    going to happen before 1.0, so mark the current Record API as private
    so that we can add something we can commit to later.
    
    Change-Id: Ia2611f19d04a2d7a51d85ac99f19ed4054972085

commit e081dcbb0d11e322a33d12c0ddd30703101f5f59
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Oct 18 21:41:34 2015 -0400

    Rely on devstack for clouds.yaml
    
    devstack makes clouds.yaml in /etc now so each project doesn't need
    to copy it.
    
    Depends-On: I21d3c2ad7a020a5ab02dc1ab532feae70b718892
    Change-Id: I5010486f288f781611f8e838cf1c4089ad67ed53

commit f7afb98dfeb7c70b0ccaea673932a5f8002406a1
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 19 15:44:24 2015 -0400

    Rename identity_domain to domain
    
    Since designate renamed domains to zones (or is going to), we can
    just call keystone domains "domain" without a prefix of identity.
    
    Change-Id: I2d9b56ac53c8bf0745ada16e4419c19d82353a7a

commit 6afb7ad42f159400ebb8ad0ba77d39f18785e577
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 19 15:39:33 2015 -0400

    Rename designate domains to zones
    
    In anticipation of the Big Rename, rename domains to zones. This helps
    be less conflicty with keystone.
    
    Change-Id: I6e9ad746b0fdafae81ce76f77fa12c7ad8907bd4
    Blueprint: the-big-rename

commit a398485525326c908c98ef9c93685721492f69ec
Author: Haikel Guemar <hguemar at fedoraproject.org>
Date:   Mon Oct 19 18:22:43 2015 +0200

    Replace Bunch with compatible fork Munch
    
    Bunch has dead upstream, so I suggest that we replace it with Munch.
    Munch is a compatible fork of Bunch with active upstream.
    
    Change-Id: I2d272085643ec113d55bc06fa7cc4f40a9f826ed

commit 862a71a6a30b91a6ae2778c0e38e6dd276eec56a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 19 10:40:31 2015 -0400

    Make a few IP methods private
    
    We're getting close to a 1.0 release, and these methods have terrible
    interfaces. They're also not used anywhere. So let's make them private
    for now, and if we find a time in the future where we need to expose
    them, we can do that.
    
    Change-Id: I357dbc0c2e61a5b9f62bfbd45595992d7eb21909

commit 05f3316b74780f5d1746ae57ecfcb34e0dd65365
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Oct 15 11:22:56 2015 -0400

    Push filtering down into neutron
    
    All of the neutron list calls support passing filters to the cloud for
    server-side filtering. Make use of that so that for things like port
    lists in nodepool we don't wind up listing a bazillion ports all the
    time.  This should reduce stress on the cloud. The number of API calls
    we make will be the same, but payloads smaller.
    
    Change-Id: Ib134c307c135aef5614f8032d965e61ca7242323

commit 790fac98542ba303274180831cbd9a03604a84e8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Oct 16 16:04:21 2015 -0400

    Clean up cache interface, add support for services
    
    We just added an unreleased interface method to the CloudConfig object -
    but maybe that should have been more aligned with dogpile words.
    
    SO - change the docs to reference the dogpile words and add support for
    that, while keeping backwards compat support for people using max_age.
    Also, do the -/_ transform on the cache config like elsewhere.
    
    Then, while we're in there, add support for per-service cache timings.
    We need this in nodepool and shade is adding support, so ability to
    configure it will be important.
    
    Change-Id: I31190a31ab0b79fc080db3611c0cd584076387d4

commit 48f352d3883bbaa1aecba3f109859f7277514b34
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Oct 16 17:06:18 2015 -0400

    Make floating IP func tests less racey
    
    The resource string should not be shared across tests. This could
    cause bad things. Also, change a CIDR used in a test to something
    less used.
    
    Change-Id: I47a32b5b10ebc9096a816d2430387234fbe97cef

commit 16061f90d9a54ca348f20218ec65ba032858b259
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Oct 16 15:23:34 2015 -0400

    Make router func tests less racey
    
    Some tests were sharing the same code that created a subnet.
    This could cause problems if the tests were to run concurrently.
    Avoid that by making each test specify the subnet CIDR it wants.
    
    Change-Id: I0a4f8913af8f8069fc86f168cda35495553aee09

commit 65fdaccb29d39eb6394429cb1afdd1c5c327a4a2
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 14 16:27:50 2015 -0400

    Create neutron floating ips with server info
    
    When we create a neutron floating IP with server port information,
    then we don't need to do a separate attach step.
    
    Change-Id: I7e72545465b5de3962d9721339cfe857a37f7d37

commit ae5e5e03a53e139a138c4d8570f3d25397113e25
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 7 13:29:04 2015 -0500

    Undecorate cache decorated methods on null cache
    
    If we're not actually using the cache, strip the cache decorators
    from the methods because they make the call stack very difficult to
    debug.
    
    Change-Id: Icc666a4e053dc13e8fbad2c62fd7dc5d8c0ad382

commit 08f29824551e864795dca2ac84aaacd49276f333
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 12 09:42:58 2015 -0400

    Tweak create_server to use list_servers cache
    
    The wait logic wasn't using get_server, which means it was always going
    to be making direct calls, which obviates the benefit of the
    list_servers cache.
    
    Change-Id: I3883e75469a821eaacde040e66f02cd16e2752e5

commit b06adf563e42798d02ee9153ccb9096fda3bac92
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Oct 16 11:13:13 2015 -0400

    Add Rackspace LON region
    
    Change-Id: I01df6e7f0cf09d52a50e1af14cdc76db90b44320

commit 1ad1e9a688a0386052143d0a0f07d03f9f844441
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Oct 15 19:59:54 2015 -0400

    Add API method to list router interfaces
    
    Sometimes you need to list the port interfaces on a router.
    This is the method for doing so.
    
    Change-Id: Ia216b87e4b9cd7a3dd98a16148723f7dd92f2513

commit 46525cf1665fa505735a533311fa8d85c51ed1c8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 12 09:13:52 2015 -0400

    Handle list_servers caching more directly
    
    Some of the operations in shade are more expensive than others and need
    a different approach to caching. For instance, nodepool is ALWAYS
    building and deleting nodes, which means that any sort of
    active-invalidation scheme renders the cache unusable, while a
    time-based scheme that would make sense for flavors would be massively
    too long.
    
    This is the first stab but is really only going to be step one - and is
    essentially the nodepool list_servers caching approach. list_servers is
    cached by hand into a local mutex-protected list and is only updated
    every five seconds.
    
    Moving forward, the cache length needs to be configurable, but that
    wants to be systematic rather than specific. Also, a local thread safe
    dictionary dogpile cache should be written and we should use it by
    default so that shared caches like redis or consul could be used in a
    distributed system.
    
    Change-Id: I430b4beaf3b05cb255c1cf5d180af450fd6429b2

commit 7d711f21c2dc875cd78e35cacd53bb2c83340936
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Oct 10 11:22:35 2015 -0400

    Split the nova server active check out
    
    If someone, like nodepool, wants to split the logic of requesting the
    launch of a server and checking its validity, that's totally fair.
    Make the "is this server ready, if so, please make sure it has network"
    into its own method.
    
    Change-Id: I6347173001af31c53a1b9210528ccd33d3c14ce4

commit ed9c516e559316442d23514d719aabe906a71ce3
Author: James E. Blair <jeblair at linux.vnet.ibm.com>
Date:   Wed Oct 14 13:40:24 2015 -0700

    Pass wait to add_ips_to_server
    
    If we are creating a server with auto_ip and waiting for it, we
    should also wait for the ip, as well as the server.
    
    Monty is working on a patch to obsolete this, but in the interim,
    this works.
    
    Change-Id: I26bc94408441edf067493b7ffd50eebd9dd95e75

commit bcd507a779bf78ddd4737a07e6813695da781f2a
Author: James E. Blair <jeblair at linux.vnet.ibm.com>
Date:   Wed Oct 14 10:27:05 2015 -0700

    Fix floating ip removal on delete server
    
    A conditional block was not sufficiently indented.
    
    Change-Id: Ia4ab58cc476505570163f7f855fc5a679c7b8d57

commit 688ca1f3ce72eafa58c1f7a519355bcf8249728d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 14 13:00:24 2015 -0400

    Document filters for get methods
    
    Add documentation for the filter parameter.
    
    Change-Id: I862760181b353906dbda8785eb05cde216cc17c0

commit ee1e88b117119056e9cd29cc072f7123891df5ef
Author: James E. Blair <jeblair at linux.vnet.ibm.com>
Date:   Wed Oct 14 09:52:30 2015 -0700

    Add some more docstrings
    
    Most simple get/list methods were undocumented.  Document them so
    they appear in the API reference.
    
    There are still more undocumented methods.
    
    Change-Id: Idde33874656f7b8c1dab90e7d5df67a232c69749

commit 512ca01715683f7c46985677e7b9be8e3d7a191c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 14 12:40:50 2015 -0400

    Validate requested region against region list
    
    We have lists of valid regions for clouds, but specifying a region
    incorrectly is a common mistake (specifying dfw instead of DFW,
    for instance) Throw an error early with a helpful error message.
    
    Change-Id: I55edf20c6dddde4a4d71dad33a41d4e10448ddac

commit f6681a83192386fcf27479c820998691a43e8b79
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 14 12:32:20 2015 -0400

    Fix documentation around regions
    
    It turns out region_name is an important parameter - it's not
    just another kwarg that will get passed through.
    
    Change-Id: I5cca8d324a1dcd1355991df793fe29eedfa15dc0

commit ec4ebbdd277c2125734640f2b3cd1184c4c6bf86
Author: James E. Blair <jeblair at linux.vnet.ibm.com>
Date:   Wed Oct 14 09:27:21 2015 -0700

    Add an API reference to the docs
    
    Change-Id: I2c40965378dedd67808875eb9453ab8664f0fee8

commit 6113d037f6240666e3c958db6e83a242e7c8531d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 14 10:18:59 2015 -0400

    Pass OpenStackConfig in to CloudConfig for caches
    
    The unit of consumption is the CloudConfig object, but the cache
    settings are found only globally in the OpenStackConfig object. Pass
    the OpenStackConfig object in so that a user consuming settings from
    a CloudConfig can find out what the cache settings are.
    
    Change-Id: I633e35b1d7f295581d7abed9c3957e802690614e

commit c22cc1f97286fb442d31318f97b4baec6f032e49
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Oct 14 09:32:05 2015 -0400

    Remove shared=False from get_internal_network
    
    It turns out internal networks can be shared (as in BlueBox) Removing
    the shared=False from the internal network search produces correct
    results.
    
    Change-Id: I40ba45d8fc78a0d10a44503ed5b7daf91924e441

commit 8569b81501d2e9738b39caef0142154ab0c64e23
Author: Caleb Boylan <calebboylan at gmail.com>
Date:   Thu Oct 8 17:48:21 2015 -0700

    Make attach_instance return updated volume object
    
    Change-Id: I0ad25017fe8be8c341bbc139f60161349a5502e2

commit 05adc0bd725c34a7f967d9afc196bcef7481b462
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Oct 12 12:54:39 2015 -0400

    Tell git to ignore .eggs directory
    
    Change-Id: I1d1ca9c7f5ddf29969f0bbc5314973c8941a4d1f

commit 151193568439b24798ccbecf108fd55d8092435d
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Oct 7 11:22:18 2015 -0400

    Align users with list/search/get interface
    
    This replaces: Ibca7240efe705c35bf7a17898caba5a4531bc858
    
    Changes include:
      - Support for the list/search/get methods.
      - Fixes a bug in user create.
      - Allow updating user name and some keystone v3 attributes.
      - delete_user() method is aligned to return True if the
        delete succeeded, False if the user was not found.
      - Test all the things.
    
    Co-Authored-By: Monty Taylor <mordred at inaugust.com>
    
    Change-Id: I2f1296a0247ad33e5cb6b2d67559165a55592fd3

commit 3962a1c39aebdbde187ad6fba3ef59618ce51d6d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 12 09:45:24 2015 -0400

    Add script to document deleting private networks
    
    In order to test clouds with no private networks, we need to delete
    the ones made by devstack. This is how that works.
    
    Change-Id: I6c9d4d62ea34372d53399aa2b8b27b762d53339b

commit baa36a8abb79d2c3a52d2cb7082c81f9af7fa109
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Oct 6 22:14:54 2015 -0400

    Add create/delete for keystone roles
    
    This completes the replacement of: Ifd74cbcef9dd0f3531912995da8ad7b75dd19d44
    
    Add create and delete methods for roles. Note that there is no
    update method (the review we are replacing had an update method).
    This is because keystone v2 does NOT have support for this, only
    v3.
    
    Change-Id: Ib037484c38673f10bd2b2fe2df5ca87056d06e6d

commit 539c145d3ec45704a35befb9f738e2f36de61f58
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Oct 9 10:37:28 2015 -0400

    Accept and emit union of keystone v2/v3 service
    
    Keystone v3 changed the service_type field to type. Accept and emit
    both, because programmers should not have to keep up with meaningless
    trivia like that.
    
    Change-Id: I56fc0191e1058e1d37cee9ee71d606624a0133a7

commit 7a347bf7a3fec7c8bd0a76abc32756d4535ac5ee
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Oct 8 09:30:14 2015 -0400

    Use keystone v3 service type argument
    
    In v3 this changed to be just type (completely ignoring, btw, the fact
    that it's a python word)
    
    Also, recognize keystone version in post_test_hook
    
    Check the environment variable set in the keystone v2 job and
    modify the clouds.yaml file appropriately to use v2.
    
    Also, the parameter to delete changed from id in v2 to service in v3.
    
    Co-Authored-By: David Shrewsbury <shrewsbury.dave at gmail.com>
    Change-Id: I988848b734fa0f83d149c902850db2ad119d959a

commit 801d09a8dae6a976ddf1603a0b4ceb1bd4166731
Author: Dean Troyer <dtroyer at gmail.com>
Date:   Fri Oct 9 15:18:27 2015 -0500

    Add auth hook for OpenStackClient
    
    Since os_client_config started pulling in ksa plugins we have some
    duplicate behaviour with OSC.  If o-c-c is going to be loading auth
    plugins OSC needs a way to hook into the notch between setting config
    values and actually loading the plugins in order to maintain existing
    behaviours for compatibility.
    
    It may also be desirable at some point to defer the plugin loading,
    OSC did that orignally due to ksc's poor load times, ksa shouldn't
    have the same problem.
    
    Change-Id: I1e8a50e5467fd4f9151a64aa7ae140d2654f3186

commit 9b03198c8f95a4de888b2ad4e90404a96829da86
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Oct 6 13:28:49 2015 -0400

    Add get/list/search methods for identity roles
    
    This partially replaces: Ifd74cbcef9dd0f3531912995da8ad7b75dd19d44
    
    Adds read methods for identity roles. Note that the original
    code (referenced above) puts these methods in OpenStackCloud, but
    this puts these methods in OperatorCloud because these methods
    require admin-level privileges in keystone's policy file.
    
    Change-Id: I896972eb08a804b5dc6cd9c87a754598a90933a5
    Co-Authored-By: Haneef Ali <haneef.ali at hp.com>
    Co-Authored-By: Monty Taylor <mordred at inaugust.com>

commit 1a719d3e45dea29680c866ee07624617616a8cd5
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Oct 7 17:34:56 2015 -0400

    Add methods to update internal router interfaces
    
    Adding internal interfaces to a router is a useful thing. This adds
    methods that will allow a user to add and remove them as separate steps.
    A possible next step will be to allow this to be done during router
    creation.
    
    Change-Id: Ieb007de3d68d5b8a972df5178c032add8e59377a

commit 5dc91cfdf94470d420d457388494227ac09a6a95
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Oct 6 13:13:58 2015 -0400

    Add get_server_by_id optmization
    
    There are times when you know you have a server id, so doing a
    list/search/filter is inefficient. Provide a get_server_by_id
    method so that in those situations you can bypass searching
    server lists. Also, use the method in the other places.
    
    Change-Id: I97bd52dff0854a3b4d41b5572e7490fa4df18e1e

commit 310db3848db9c54391a518b458a07ed443086bd3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Oct 6 17:22:18 2015 +0100

    Add option to floating ip creation to not reuse
    
    Although reusing available floating ips is potentially a more
    efficient use of resources in the cloud, it's a more expensive
    amount of API calls. Additionally, if the user knows that they
    are deleting floating ips with servers, then attempting to
    reuse is just going to be a waste of effort.
    
    Co-Authored-By: James E. Blair <jeblair at linux.vnet.ibm.com>
    Change-Id: Ibfb7583232b03bcf29df229862f6da97170aa845

commit 3609cd59078873bc44ebbe7641889423c9f2b8cd
Author: Anita Kuno <anteaya at anteaya.info>
Date:   Tue Oct 6 17:18:54 2015 -0400

    Adds some lines to complete table formatting
    
    Currently the vendor support list is mis-formatted for the last
    two entries on the page. It appears that the tables don't have
    lines underneath them completing the formatting.
    
    This patch adds lines under the last two vendor entries fixing
    the formatting of the tables for those entries.
    
    Change-Id: I6327eef99059291fcce5c9493a622bec33da3824

commit a52c61a7b407b5f63dca6b779c93f06e3c830327
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Oct 6 13:07:26 2015 +0100

    Provide option to delete floating IP with server
    
    Although the only real reason you should need a floating IP are for
    the cases where you want an IP with a lifespan independent from the
    server, there are clouds that are insane and require a floating IP
    to be created with every server. When a person is deleting that
    server, we should ensure that the floating IP is delete. However, it's
    impossible to infer intent about whether the floating IP wants to stick
    around, so it has to be a flag.
    
    We will default to False because deleting things that the user did not
    expect to be deleted is surprising in a bad way.
    
    Change-Id: Id90bdc819ad8f1b04acc1b35788786d23f4e7666

commit 8f943e1afa6d532da342a9fe5e941a4461e04293
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Tue Oct 6 13:15:15 2015 -0400

    Update python-troveclient requirement
    
    Without a version defined, it is possible that an older trove
    client may become installed, which may still attempt to utilize
    the oslo.utils namespace.
    
    Update the version of the troveclient library to a version after
    the oslo namespace change.
    
    Change-Id: I1e1f6043a7c82674312016aea662674675404dd8

commit 4f65ac7c905ddc2893b970855cf1cc2b1f1ccbbf
Author: James E. Blair <jeblair at linux.vnet.ibm.com>
Date:   Mon Oct 5 13:38:27 2015 -0700

    Add a private method for nodepool server vars
    
    A previous patch split the work done by get_openstack_vars into
    costly and less-costly operations.  Nodepool only needs the
    less-costly ones.  We will put that information in the shade API
    in some form, but it has not been decided what form yet.  In the
    mean time, allow Nodepool to easily call the method to perform
    the less-costly operations for now.
    
    Change-Id: I99bec7e4a709ef6b7623414dad5f1453070380f8

commit fc5f41e6271085d274e02dbfd45b27522b7b484d
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Mon Oct 5 12:02:04 2015 -0400

    Update required ironicclient version
    
    Update the required version of ironicclient to account for use
    of keystone session tokens, as the bug was not fixed in ironiclient
    until 0.9.0.
    
    Change-Id: I8b63531ea2494bcf63107477dea24a36268b8c62

commit cf4effb5f2e268787d3a9134e698633bb9b58c0f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 5 15:40:30 2015 +0100

    Split get_hostvars_from_server into two
    
    There are really two different things going on here. One is figuring
    out essential information "what IP do I use to talk to this server"
    The other is fleshing out some additional information that is useful
    for ansible inventories. The ansible inventory info is expensive when
    that's not what you're doing and when you're not using shade-level
    caching.
    
    A follow-on patch will make the create/get/list server calls use the
    new function always.
    
    Change-Id: Ia1de78d26c708ce6fe3205a9484cb16a92360890

commit eb9ce61915df8dbe1b5ced172d0f82c7c4cac856
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Oct 3 15:37:34 2015 -0400

    Invalidate image cache everytime we make a change
    
    The image cache is already set up to only cache a steady-state list. If
    we simply poke the cache after every time we make an upload or image
    change, the existing cache code will cause the cache to stay unfilled
    until the new change hits steady state again. This should make turning
    on cache do the correct thing.
    
    We want to follow this up with a get bypass of the list, but this should
    keep our API counts to a reasonable level.
    
    Change-Id: I47cdfb5af1ba5c56c4005289b9d6b1ecde936978

commit 10a3bb16ce7e0171c5e91094be32e35d9ad420d6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Oct 3 13:39:41 2015 -0400

    Use the ipaddress library for ip calculations
    
    ipaddress is core in python3, so let's use it instead of regexes.
    
    Change-Id: I8050cb9e50c02f47e14584396c3f1815ed71173c

commit be11a20412ff827e252c7a6f83361f5d179131a1
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Oct 3 13:31:14 2015 -0400

    Optimize network finding
    
    clarkb was right about the port listing code being unneccesary now
    that we have get_external_network. All of the logic that happens there
    is also more efficient and easier to override via config. Skip doing
    a second pass at ports.
    
    Also, move floating ip finding earlier - if the server has one, that's
    the IP it wants - it's the only reason to use one of those.
    
    Change-Id: Ie09c0046aded3646a42cc9714f1fb76375e5e099

commit d3b17d14036c109e065cf112e98efea878874ff2
Author: James E. Blair <jeblair at linux.vnet.ibm.com>
Date:   Fri Oct 2 16:05:06 2015 -0700

    Fix create_image_snapshot
    
    This method from novaclient returns an image id, not an object
    as was apparently assumed.  Before returning, perform an image
    lookup so that we can return a Bunch() object of the image.
    
    Note that if the provider does not immediately make an image
    available for lookups, this will fail and the user will have
    no record of the image id.  Notably, because it worked with
    the image_id until the image was built, nodepool was not suceptible
    to this problem.  I am unsure whether there are any clouds that
    might behave in this way.  However, this code matches what we do
    in shade with servers.
    
    Change-Id: Icaff5d8e66a2458817fcbced16014efbc5ff33b8

commit 379962f0e8289e2db85a0eeb7b51d10cff70e67d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Oct 2 11:08:22 2015 -0400

    Add universal=1 to setup.cfg to build python 3 wheels
    
    os-client-config gates on python3.
    
    Change-Id: I887ab2f2f2436e7423eab8abc23655423ee7b226

commit 5a420350db878046959006ffd5e8f3fb139bed1a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Oct 1 09:12:21 2015 -0400

    Return IPv6 address for interface_ip on request
    
    If the local host looks like it can route IPv6 and we have an IPv6
    address, and the user has not indicated that they must use IPv4 for
    some reason, return it to them in the interface_ip field.  Also, always
    return something in interface_ip if possible.
    
    Change-Id: I3544280cab7abfa6b4154244f4c4588bc65c7347
    Depends-On: Ib0c4c4e8b3b7b4bcee5fa3414719969274929b9a
    Co-Authored-By: James E. Blair <jeblair at linux.vnet.ibm.com>

commit 0a06226863ac767c3a3915f5470646dc4f46fc54
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Oct 1 18:13:18 2015 -0400

    Plumb wait and timout down to add_auto_ip
    
    add_ips_to_server needs to take a wait and timeout parameter so that
    it can pass them down to add_auto_ip.
    
    Change-Id: Iea0d6e2d270e2bc4df0fc649217a2f1da89ae9cc

commit 12662ddbabf89dda039b96ec01134ca3e6d12cfd
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Oct 1 18:51:48 2015 -0400

    Pass parameters correctly for image snapshots
    
    The passthrough parameters here were just wrong. The image name is
    passed as image_name and the server value is required. Also,
    metadata is not taken as kwargs, it's taken as a dict.
    
    Change-Id: Iab1c443dbbebddaba0002700304a033b8e161b65

commit 758630ed6bd9a662a3ef55b98bca13db69099531
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Oct 1 14:10:10 2015 -0400

    Fix mis-named has_service entry
    
    Change-Id: I44ee303040cccf3432645b5b90fbdf428895d13d

commit 14c7fd560f678efbe1504b3944c0e544bd2ed13a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Oct 1 13:33:12 2015 -0400

    Provide shortcut around has_service
    
    Some clouds have a service in the catalog, but it does not work
    (Rackspace with neutron) In other case, it exists and works, but you
    know that you don't use it (Infra Nodepool does not use volumes, so
    the extended info for servers in server_list does not need to look
    for volumes)
    
    OCC allows arbitrary passthrough values - so look for booleans of the
    form has_{service_key} If 'has_volume' is false for a cloud, we will
    not ask keystone if there is a volume service, and will instead just
    return False.
    
    Change-Id: I1d2f2a7611f4463898d73c1a2b70b9a967a9c7b6

commit 950f22a2c8816ff5e9440ae975b2ee14b3fe053d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Sep 29 15:26:58 2015 -0500

    Provide short-circuit for finding server networks
    
    Doing a search for the networks on every server connect can be
    expensive due to the port list - even with caching. Instead, allow
    for a configurably overridable networks to be found once and cached
    aggressively, then use that network name to match in the nova networks
    dict. If that can be found, awesome, we all win.
    
    Change-Id: Ic3345e7fb7e428227a9465bd07077e67d4f93244

commit 332e7907f7fa680631c2d71988b75ea5e17af66f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Oct 2 10:13:48 2015 -0400

    Update fake to match latest OCC
    
    os-client-config was returning an incorrect value which was finding its
    way through into one of our fakes.
    
    Change-Id: I1f1c59313a429be386061a81bd51990204996909

commit a9d5827a0929d5de1fc0951412f96bc031eb2409
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Fri Oct 2 12:11:50 2015 +0200

    Some cleanup
    
    Remove identity api version 2 support (default) and some cleanup
    in the doc (tables properly formated)
    
    Change-Id: I5d90723dd54905c8a67c52c6111bdf089f4346a0

commit d3c82ab42835c2bfe9817d2f8a571490153879e1
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Oct 1 14:52:18 2015 -0400

    Fix two typos
    
    Change-Id: Idf3df94ea039f07fa958a3afadf3388221ffa2ff

commit 21ff307d130e758242a698312d6a14fc0d5b620e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Oct 1 13:37:13 2015 -0400

    Put in override for Rackspace broken neutron
    
    Rackspace puts neutron in the service catalog but it does not work (404s
    the endpoint) While it's easy enough to try/except around network calls,
    it's also a known fact and can be communicated clearly. Allow things
    that want to short-circuit read the value from the config and react
    accordingly.
    
    Note: This is not a value going in to the defaults, because the fact
    that this is happening at all is highly strange and hopefully something
    that can be solved by collaborating on future iterations of DefCore.
    However, communicating clearly that it's a known issue is helpful for a
    class of users.
    
    Change-Id: I506f4dd397608f2feb6fbda48d297d283312a169

commit 7d84f102313e61aba00d7665250ac6f628f8e8f6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Oct 1 10:50:27 2015 -0400

    Support passing force_ipv4 to the constructor
    
    IPv6 support is detectable, so rather than having a user opt-in to it,
    provide a flag that can be provided to tell it that detected IPv6
    support is lying. This should have to be set for far fewer people and
    should result in transparent opt-in to IPv6 where available.
    
    Change-Id: Ib0c4c4e8b3b7b4bcee5fa3414719969274929b9a

commit 733c04f6d381f523991c5ccfd56b9ff722111bf0
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Wed Sep 30 23:15:35 2015 +0200

    identity version is 2.0
    
    When using the defaults values from outside, we get a not so
    right API version.
    
    Change-Id: I8159dd4a26b65ad242d5ba75c4a5e0dc161704fc

commit 137458fc1cbe27cb7191f0c35f846f844322276a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Sep 30 17:45:49 2015 -0400

    Dont throw exception on missing service
    
    We log exceptions to debug log, but checking for the existence of a
    service is normal flow. Don't throw an exception when we can just
    return None and have everything work without spamming logs.
    
    Change-Id: I35f431b12c16e085c0e256cad514134066e15a39

commit 723b893f22fc3db74761dc64e5296360e5739147
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Sep 30 17:27:22 2015 -0400

    Handle OS_CLOUD and OS_REGION_NAME friendly-like
    
    If you're using os-client-config and ansible and python-openstackclient,
    the envvar override support can get tricky if you've set OS_CLOUD to
    select a cloud for python-openstackclient, leading you to have an empty
    cloud called envvars when you were not actually trying to create one.
    
    Special-case pull both out, treating OS_CLOUD as a default value for
    get_one_cloud() and only creating an envvars cloud if OS_REGION_NAME is
    not the only env var provided.
    
    Change-Id: I2a5235c18f9be1e5dfc019888a0c187ef40074bc

commit 79637b12cfebb3ab80c781b1217755832ab069c4
Author: Simon Leinen <simon.leinen at switch.ch>
Date:   Mon Sep 28 23:35:17 2015 +0200

    Added SWITCHengines vendor file
    
    Signed-off-by: Simon Leinen <simon.leinen at gmail.com>
    Change-Id: Iae386787ee2b3feecb78e3f69c7ed4e279e5acce

commit 9f0e6a8a2d8b510d219ab2eb25bfb949d25897a2
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Sep 28 13:04:08 2015 -0500

    Add functional test for private_v4
    
    private_v4 is failing in nodepool, so maybe there is a bug in shade.
    Let's add a test to make sure.
    
    Change-Id: I8b7d69605fcd1482a54c0d4088d7de464c3e8629

commit bccce1857b7c57e1f320ef7bd7299b76b18926dd
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Sep 28 09:56:48 2015 -0500

    Attempt to use glanceclient strip_version
    
    If you pass a Session to glanceclient, you must pass a version. But if
    you pass a version and the endpoint has a version things go south.
    Because I can't have nice things.
    
    Change-Id: Icbdb007dcc88965fe290ef96f61917d1f17703a9

commit 8822b7ad560fc4d9ecdd7397827f7798698b1338
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Sat Sep 26 13:19:19 2015 -0400

    Fix baremetal port deletion
    
    Shade's node deletion logic removes ports one at a time in
    the requested order, however that logic has been silently failing
    to the API for some time now as we're inadvertently returning the
    entire port object back to the API as the port we wish to delete
    instead of the port UUID.
    
    Changed to return the port UUID value to the delete call.
    Added code to unit test to ensure that correct action is taken.
    
    Closes-Bug: #1500063
    Change-Id: I01c16990dc66988fab29c41ec4b4e6094213b2ca

commit 0ff48d2b946631668645754b9c9820664a085200
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Sep 25 15:20:43 2015 -0400

    Add router ansible test and update network role
    
    Adds a new playbook for testing creating and updating a router.
    Also updates network playbook for new 'external' parameter.
    
    Change-Id: Ia0b11ebbad2d8f5701754a25267aecf1accc69ba

commit a0e1ae1b54c78fc0b108ed0e789af7421942c101
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Sep 17 14:47:22 2015 +0200

    Trap exceptions in helper functions
    
    os-client-config can bubble up a keystoneauth1 error now since that's
    where auth plugin parameter validation happens. However, consumers of
    the helper functions will not be expecting such a thing as the helper
    function is hiding the sequence from them.
    
    Change-Id: I84ececc71764b3f345b0d507d419260aef720783

commit 4636dd915df1fdcee67ca969b7c17143ddd2ae2c
Author: James E. Blair <jeblair at linux.vnet.ibm.com>
Date:   Fri Sep 18 17:14:43 2015 -0700

    Add more info to some exceptions
    
    And remove accompaning redundant debug lines.
    
    Change-Id: Ie022a11417c7535c5c9faf43abd96ad07933678a

commit 14831e613dca4f3760e6bc285ac344f7821aabea
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Sep 23 17:58:32 2015 -0400

    Allow more complex router updates
    
    There are other attributes of a router that can be updated.
    
    Change-Id: Ia71301994122524b5d04bf788dab08a5b84ac85f

commit 7ccb6f89132e5c7629227fa6afc2a57ba70df822
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Sep 23 15:10:59 2015 -0400

    Allow more complex router creation
    
    Turns out, there are a lot of other options when creating a router.
    Let's allow those. Also, functional tests are a good idea.
    
    Change-Id: Ia9382898decec2a1d3485484e643b50785d235cf

commit f3c43e826e9069d2b726518f2780f3db6af39425
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Sep 23 12:01:19 2015 -0400

    Allow creating externally accessible networks
    
    Add an option to create_network() that lets the user create a
    network that is externally accessible. By default, they will
    NOT be externally accessible, since this may require special
    privileges.
    
    Change-Id: Ic9a3d05ac15399e55fa078b61fdb454ee9f56e69

commit 510561304629ca0c750aa5e0ce37510933048066
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Sep 22 13:45:21 2015 -0500

    Handle glance v1 and v2 difference with is_public
    
    Glance v2 changed is_public=bool to visibility=(public|private)
    
    Change-Id: I596788dde1a8d01ae8c0908f48d419ea0fc875b5

commit 20ac0479a41ae267ca6e901559c60d32ab5c258c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Sep 20 15:53:37 2015 -0400

    Get defaults for image type from occ
    
    occ knows default image types for all the clouds. So rather than making
    people provide them, let's just consume from OCC.
    
    Change-Id: Ifd83c26599a82d9aeabf4b3380c1c5cbfc603285

commit 489314a0f5bc225004492455e0e2bb6726ad92e7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Sep 7 19:30:32 2015 -0500

    Use the get_auth function from occ
    
    os-client-config now knows how to turn auth parameters into
    auth objects. Use that, so that we're not carrying local
    logic for it.
    
    Also, this lets us remove our ironic-specific hacks around
    auth and whatnot.
    
    Change-Id: I436b7619f09911d131f380dd103138c8ff52c0b4
    Depends-On: Ia1a1a4adb4dcefed5d7607082e026ca7361f394d

commit 988e305b37e0f840ba09fdde882158641f8a1d05
Author: Steve Martinelli <stevemar at ca.ibm.com>
Date:   Tue Sep 22 17:19:13 2015 -0400

    update RST for readme so pypi looks pretty
    
    Navigating to https://pypi.python.org/pypi/os-client-config results
    in seeing the raw RST content of the readme file. This is likely
    caused by minor RST warnings, but pypi gives up and shows it raw.
    
    Change-Id: Ia2d6202ade5282d9aeae9bb948175aae2aa264cd

commit 03c1556a12aabfc21de60a9fac97aea7871485a3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Sep 22 16:03:30 2015 -0500

    Add a NullHandler to all of our loggers
    
    As a library, it's important to make sure our logging is set up to not
    be confusing, but also to not to step on the toes of app developers.
    
    https://docs.python.org/3.1/library/logging.html#configuring-logging-for-a-library
    
    Change-Id: I312871e057ca0f64b9c5514bc94567cbdb34b4c6

commit 2e350d034cb115c4d3a3513b566aa6f048c3c07f
Author: James E. Blair <jeblair at linux.vnet.ibm.com>
Date:   Fri Sep 18 16:46:26 2015 -0700

    Remove many redundant debug logs
    
    Now that shade stores inner exceptions in the OpenStackCloudException
    constructor and logs them, there is no need for logging the same
    exceptions at debug level in the library.
    
    This patch removes all such log entries that appear to add no additional
    information beyond what is in the exception.  Many messages remain
    which add information not in the exception -- their accompanying
    exceptions should be updated and then the extraneous log lines
    should be removed.
    
    Change-Id: Idcdbfa77c68260d171e78f6ada4ee5a46518061c

commit 0f089647b89817c5347e1f01335fd6aa6f9d313b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Sep 22 11:29:46 2015 -0500

    Fix a little error with the None auth type
    
    Ironic has a mode where it does not use auth, but we still funnel that
    through the ksa admin_token type for consistency of code. The hack we
    had to do that went too far and caused validate_auth to strip the fake
    token we were adding.
    
    Change-Id: Id5275ac7db1a6052db02c2286cbf88862cb1ff70

commit 84904f3f38fbc276e19e94e3ad617a5b27166d20
Author: James E. Blair <jeblair at linux.vnet.ibm.com>
Date:   Mon Sep 21 16:06:00 2015 -0700

    Make inner_exception a private member
    
    So we don't mislead anyone into thinking it's part of the public
    API.
    
    Change-Id: Ibc74eeec733bc56ba4c05c27f7e3de3c89b5f31d

commit 75954fac2f711bfed815fd4015dff48ea26492c0
Author: Xav Paice <xav at catalyst.net.nz>
Date:   Tue Sep 22 09:23:12 2015 +1200

    Add support for Catalyst as vendor
    
    This adds Catalyst IT's public cloud to the list of vendors,
    https://catalyst.net.nz/catalyst-cloud
    
    Change-Id: I2d886bfc4fc94c534a55f6bad1120e474654524f

commit 02cf7cee76a4c732c6294d14a557363256d6e83a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Sep 18 19:12:00 2015 -0400

    Just do the error logging in the base exception
    
    We want to make an error log every time we throw an exception that
    is wrapping another exception. So, just do it in the constructor.
    
    Change-Id: Id8f1ab97d1c58787ff101ea2410fcf7c789041ed

commit 5d9bb47f0d0015533cbf547d613600f8b4b7d2d7
Author: James E. Blair <jeblair at linux.vnet.ibm.com>
Date:   Fri Sep 18 15:35:55 2015 -0700

    Store the inner exception when creating an OSCException
    
    Masking exceptions in Python is an anti-pattern.  Etc.
    
    However, since shade uses a base class of OpenStackCloudException
    for all of its exceptions (and, for the worst offenders of
    generalized exception masking, simply uses that exception itself),
    we can store the original exception for clients to access if needed.
    
    This does allow client exceptions to leak out of shade to its users,
    but in a very controlled manner where we can make it clear that
    this should not be used for flow control, but for informational
    purposes.
    
    Change-Id: I33269743a8f62b863569130aba3cc9b5a8539aa0

commit d084ebd643fb22899ee789e099db69f4f182bde7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu May 14 15:04:24 2015 -0400

    Start using keystoneauth for keystone sessions
    
    This is being split out from keystoneclient. That's a happymaking.
    In order to make this work, we also need to fix glance image data upload
    for v2 put. It seems that the internal interface has changed. Pass the file
    object and not a size. We could do the work to figure out how to do it
    in two discreet steps, but I believe that would involved a chunk of
    engineering on a dead interface and is not worth it.
    
    Also, Change ignore-errors to ignore_errors
    
    Change-Id: I816752f8f4d29e40d41622bd8a271eb5c8e5a9fb

commit 7f33416020801dfc8a444a80705ef2f491a4d066
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Sep 21 14:41:32 2015 +0000

    Change ignore-errors to ignore_errors
    
    Needed for coverage 4.0
    
    Change-Id: I033aaed4afa9037017190bc0b5aba7216840627d

commit 8dee656df809ed1b39b2800e35cc5ef67c31e84e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Sep 20 20:08:39 2015 -0400

    Handle ksa opt with no deprecated field
    
    Bad logic fallthrough causes us to die when trying to process an option
    that does not have a deprecated option.
    
    Change-Id: I613466c6146a94b66a0a6d9955cdc4a6556f44ed

commit aa41f9bfb10b6f75e1a3f7c599c8c06e7a03d389
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Sep 18 16:54:46 2015 -0400

    Fall back to keystoneclient arg processing
    
    For things not on keystoneauth yet, we need to move things into
    the auth dict using keystoneclient.
    
    Change-Id: Ia4500cc270b775f189048ccf667d5bfdc5dfcd14

commit 6d25a939bfdfeea14e1038c240092ebaedf33145
Author: James E. Blair <jeblair at linux.vnet.ibm.com>
Date:   Fri Sep 18 13:29:12 2015 -0700

    Fix typo in ovh region names
    
    Change-Id: If8dee92917d1f5c1e349f02eba7661c39dbe7d0b

commit 21bb2f347d0d52defa98726b7102c1853b558072
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Sep 18 09:55:55 2015 +0200

    Move plugin loader creation to try block
    
    We only need the plugin loader if we're going to create an auth
    plugin. Doing this when validate=False is clearly not a workable
    solution, because we'll wind up validating unknown plugins.
    
    Change-Id: Ieed44aa3ef41a14edd7529ca599a01967d517207

commit 0339a9a7f8c004b7e6df5c3d9dc49a69fcc3b357
Author: Gregory Haynes <greg at greghaynes.net>
Date:   Wed Sep 16 17:22:39 2015 -0700

    Convert auth kwargs '-' to '_'
    
    When passing in kwargs to _get_one_cloud we do not dive into the auth
    dict to convert '-' to '_'.
    
    Change-Id: I8ce12370b5fd4444ba17d724e7f8036a7b0d2784

commit 2906d1e61fd6e2e1024996993e1c108966fc425f
Author: Clark Boylan <clark.boylan at gmail.com>
Date:   Wed Sep 16 16:41:58 2015 -0700

    Properly handle os- prefixed args in fix_args
    
    Prior to this any arg that started with 'os' had the 'os' prefix chomped
    including the next character. This meant that any arg like 'osmosis'
    would've been replaced with 'osis' which is clearly wrong. Instead we
    want to treat the OpenStack prefix of 'os-' or 'os_' as the special
    thing so check the next character is correct before chomping.
    
    Change-Id: Id12a92adf63d896f7aa5c0e391abd299c4ce3331

commit aabf1431a3e23a734431f56df4a8d6ac446509b3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Sep 17 01:22:24 2015 +0200

    Test kwargs passing not just argparse
    
    Change-Id: Ic14365b1daec9a3f51d6a59db38604edb60865d4

commit aef90e7ec82326e63136be3ace1fa0a0590ee325
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Sep 16 12:30:12 2015 +0200

    Allow configuring domain id once
    
    In the most common case, a use has one and only one domain id that they
    care about, and it's associated with their user and project. Instead of
    making them set it for both user_domain_id and project_domain_id, allow
    for domain_{id, name} and then fill in any missing values for
    {user,project}_domain_{id,name} with the given value.
    
    This is mainly because I wind up with config files looking like this:
    
            user_domain_id: d0919bd5e8d74e49adf0e145807ffc38
            project_domain_id: d0919bd5e8d74e49adf0e145807ffc38
    
    Which offends my tender sensibilities.
    
    Change-Id: I12342dfa9f1b539a3fea5dd8874c42d027c59739

commit 54afb28565cb1b24973a403f365081487a2484ec
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Sep 16 21:18:19 2015 +0200

    Add internap to the vendor list
    
    Change-Id: I4c98b72f039fd97a2c55ecbfa546fb908d1fe539

commit 2be0553eb0d168ea0dc57e098c8dcc86566b6622
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Sep 16 21:54:18 2015 +0200

    Fix typo in comment - we use ksa not ksc
    
    Change-Id: I9f35c26fc633b07442141443574ea9b7582036be

commit 093d7b085a5743d21f74da532eb45a916830022c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Sep 7 20:26:24 2015 -0500

    Defer plugin validation to keystoneauth
    
    keystoneauth plugin loading has parameter validation itself. Rather
    than us doing it, let ksa do it.
    
    This bubbles up a ksa exception- but I think I'm ok with that as an
    interface.
    
    Change-Id: I3e7741a1b623b133f24f321e97539883dc6cd153

commit 3f76cc5fa9d288b25b3804966568b8bd900a54c1
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Sep 15 14:02:01 2015 +0200

    Remove an extra line
    
    Change-Id: I3a7f31a205b9a49e8c93f71e2a9dacacee6e2f91

commit b0f4161423d683aad2e5006ba2f9d80e858928ed
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Sep 15 14:00:25 2015 +0200

    Add Datacentred to the vendor list
    
    Change-Id: Iac2a51f2351e6b46469508abadd63942829663f0

commit 2762241d7bfccf8c4bad471dfc20528d1135602d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Sep 15 13:14:32 2015 +0200

    Add ultimum to list of vendors
    
    Change-Id: Ic5b5ee307b9d1eb338839a7feeeab50469316cf5

commit d835c47ad35a27bb0e90a8db42d5c943a65c6608
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Sep 15 12:54:49 2015 +0200

    Add Enter Cloud Suite to vendors list
    
    Change-Id: I78e9191073e68a9d3f78ba11b47aa0b1ff816430

commit 7bfa633e86e9ccef6cd58472f6994b05f95ad032
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Sep 15 11:54:22 2015 +0200

    Add elastx to vendor support matrix
    
    Change-Id: I67973f89e2da4ef550e46c32ad63a4c8e043b4d0

commit 265abb2bf6e050d9c7bf9b3e0a307dca32899c1f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Sep 15 02:13:06 2015 +0200

    Switch the image default to v2
    
    It turns out it's more common than v1. Also, ovh was inappropriately
    listing glance v1.
    
    Change-Id: Icb534bf98fd3fa1c900ed9e4dd09ea0643176ff9

commit d11d165e697871b73236025efd5e8698d0b08750
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Sep 15 02:30:13 2015 +0200

    Update auro auth_url and region information
    
    Also, turns out auro is running Glance v2.
    
    Change-Id: Iccc2e09f45192ac21001c346dab048c77a0f7813

commit 53b7b7a6d61243254974ad3c1c256809c86a27bf
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Sep 15 02:09:12 2015 +0200

    Add citycloud to the vendors list
    
    Nice job with keystone v3 support.
    
    Change-Id: Ib2b54feef5055b04740a63a3a1d4e0b967018864

commit 15c6652dc4bfc5b417bb67df0435935962d71d9c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Sep 7 18:55:24 2015 -0500

    Return keystoneauth plugins based on auth args
    
    We know all of the things that we need to know to return an appropriate
    auth plugin from keystoneauth based on the auth parameters. This also
    introduces a hard-depend on keystoneauth, which should be fine since
    keystoneauth itself has a very low dependency count.
    
    We'll also use ksa to help validate auth parameters when we're doing
    the config processing.
    
    Change-Id: Ia1a1a4adb4dcefed5d7607082e026ca7361f394d

commit 9a626589a8082a002a02530a3f480088c9dc4fa9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Aug 15 15:58:28 2015 +0700

    Move keystone to common identity client interface
    
    It's weird that keystone is different from the other things. But let's
    just let that be life.
    
    Change-Id: I3891454b2706db2553e52f1ca3932285260f08bc

commit eb6ed09dede71a441d005d773b94411d70f1557d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Sep 15 02:11:14 2015 +0200

    Remove duplicate lines that are the same as default
    
    Change-Id: I007802ac08a8708fbbbfa8ee8c7d79e4e2bb55f7

commit a51ab85bff1172dda04ce57021ad87041b754bb5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Sep 12 09:54:16 2015 +0200

    Add default version number for heat
    
    Heat only has v1.
    
    Change-Id: I31b40b7cfec0685105b8066d1cb385befae00f90

commit 743543743daa891424336ac08a3fcd02d16645ea
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Fri Aug 14 16:22:21 2015 -0400

    Bump the default API version for python-ironicclient
    
    Update the default API client version to 1.11 in order to support
    node enrollment.
    
    Additionally updating the minimum version of the python-ironicclient
    library.
    
    Change-Id: Idedbe31fe1b7f0cb9d0980625ebf84d7656f6996

commit 24bff5dca48365a767d8b6f0c38be75b2d67d6fd
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Sep 4 09:41:57 2015 -0400

    Update OVH public cloud information
    
    OVH has two regions now. Also, be clear that OVH does not use floating
    ips.
    
    Change-Id: Iabd84748cccec7da6e083b647511cba48d57bc20

commit 82aea48d1057c123f68042f2017f46b5df117f23
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Sep 3 09:53:22 2015 -0400

    Avoid 2.27.0 of novaclient
    
    There is an unfortunate set of bugs out in the wild which make
    2.27.0 novaclient non-working against many existing public clouds. Fixes
    are in works for 2.28.0 - for now, express that 2.27.0 should not be
    used.
    
    Change-Id: Ia6cc574c8ec8bf1290f01d5a602dd2b8ee78549d

commit fb24f1d113c03cf4d542331428e63f58a80eef71
Author: Eric Harney <eharney at redhat.com>
Date:   Thu Sep 3 07:52:37 2015 -0400

    Handle empty defaults.yaml file
    
    If defaults.yaml is empty, a TypeError is thrown
    because the result of yaml.load is not iterable.
    
    Change-Id: Ic3283ebaf9dd325e4f430e70bce08c6d716f60bc

commit b52d74478127617b4d0583ce63739fdd3c4eebf4
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Tue Aug 18 12:47:38 2015 -0400

    unregister_machine blocking logic
    
    Additional logic to preemptively prevent NIC removal when a
    machine is unregistered by pre-validating if a node is can be
    safely deleted.
    
    Change-Id: I55152de9d42143be3b8a4e3da00da0bc0ec88dff

commit 337a0ed8fcb74ce67f6275851c4f512f66037820
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Sep 2 07:39:44 2015 -0400

    Fix exception lists in functional tests
    
    There is a pattern in our functional tests where exceptions are
    aggregated within a list and then joined within a single string.
    However, the join expects them as strings, not as exception objects.
    When this code is hit, it causes an exception:
    
    TypeError: sequence item 0: expected string, OpenStackCloudException found
    
    This change converts those exception objects to strings.
    
    Change-Id: I0a041a61537b79c73615e5136492141da0926fee

commit e5895144ec9591d03349dc6e3066148dc4b4543d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Aug 15 15:56:23 2015 +0700

    Migrate neutron to the common client interface
    
    Neutron was causing issues before. So make it its own patch to isloate
    it.
    
    Change-Id: I4621afa67f4f06d3cb12d6226ee00fb6e5611759

commit bd24a6dd8efa9d35014f98b4f69426656f59c068
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Sep 1 10:15:25 2015 -0400

    Remove last vestige of glanceclient being different
    
    There is an ongoing transition across OpenStack from endpoint_type
    to interface. New glanceclient uses the new form, so we support both
    and can remove the copy/pasta in the glance_client constructor.
    
    Change-Id: I63f70a0102eb7d7982eacf28ff14642550942911

commit 16b0720e40ceba532566f9e794527305b8d299f1
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Sep 1 10:06:43 2015 -0400

    Pass timeout to session, not constructors
    
    In Session-based construction, we need to tell the Session about the
    timeout.
    
    Change-Id: Ia18940848431902c82580a6214d6d6b6e5783fb0

commit dcf079e4185b800d7c5a227ea903fa7abcecb3f4
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Sep 2 10:43:10 2015 -0400

    Delete floating ip by ID instead of name
    
    Change the cleanup function so that it does not assume that the
    external address is a floating ip. Further, pass in floating ip
    id to delete, rather than the IP address.
    
    Change-Id: I2062ddd1bfea1787375961c58af284479dc0982f

commit ceb6a1d36ea197d6489d981c112ec187cf29a961
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Aug 31 15:49:49 2015 -0400

    Move glanceclient to new common interface
    
    This is awesome, because it means glance is aligning.
    
    Except that timeout and endpoint_type are divergent. We'll add
    timeout to glanceclient. We need to sweep the other libs and see
    if they can accept interface.
    
    But for now, this works.
    
    Change-Id: I755af46a5621983a04c4e07787fd6d10333b7cc4

commit 2920aa0e823043cedaacff002f8b73c1c52da75b
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Mon Aug 17 18:35:01 2015 -0400

    Addition of shade unregister_machine timeout
    
    Adds support for setting wait and timeout values for
    the removal of machines from Ironic.
    
    Change-Id: If08ccd60e18f2f5ceabecc07a2bbc380552a9af1

commit de6cb7895001628834c098bbd5b53d71a06bcff7
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Wed Aug 12 11:21:05 2015 -0400

    Initial support for ironic enroll state
    
    Addition of logic for the ironic enroll state which will
    ultimately permit a newer client library version.
    
    Change-Id: I85fe0f2b2f0e6766928f9fb23cb1a8177779008c

commit 2726843ee54a3c9f061b9ed2451d080f459e4f38
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Aug 18 16:27:08 2015 -0700

    Do not treat project_name and project_id the same
    
    There are clouds where doing this is not working.
    
    Change-Id: I1d2e71b2a6ad22eb5070b92448779f2e9df71e4a

commit a735e12e307acd64e363e0bee57c1b91412c0af3
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Aug 11 18:39:58 2015 +0000

    Add flavor access API
    
    Add methods to control tenant/project access to private flavors.
    
    Change-Id: I23fc6f45095ed2b182e17192c00f74ef84afedd5

commit 40fdf2bac69823498fc1893eef15e897ae69eb1c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jun 15 14:25:14 2015 +0300

    Make client constructor calls consistent
    
    The previous patch involved copying and pasting a bunch needlessly.
    Combine the common pattern into a single factory function.
    
    Change-Id: Ie80dd13dd4095b23d35362bc8e4ccefc8b346260

commit e29ed75a4b72ed25c7791dab8a66f3a3c86f962a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Aug 13 09:14:01 2015 +0000

    Revert "Revert "Use the correct auth_plugin for token authentication""
    
    Name the auth type needed for using an admin token "admin_token". This
    hack can be removed with keystoneclient and/or keystoneauth make a
    release with the admin_token entrypoint defined.
    
    Naming it admin_token further reduces the conflict with OSC, which
    should make the patch to work around OSC having different arguments
    unnecessary.
    
    This reverts commit 0e3117cb01d201f403be72cbb1218b9eec69a541.
    
    Change-Id: I079c7c61b2637ded73542876cb1378a0731f8631

commit 085074d6023695829b2c530ed2ec3210bb9abe9b
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Aug 12 15:49:44 2015 +0000

    Change functional testing to use clouds.yaml
    
    Using clouds.yaml, instead of sourcing openrc, we can have better
    functional testing by distinquishing between an admin account
    and a normal user account.
    
    We cannot both source openrc AND use clouds.yaml as this confuses
    the inventory functional tests, and is not a recommended way of
    utilizing o-c-c, anyway.
    
    In order for these test to work, a bug fix was needed in
    os-client-config, so the requirements was bumped to 1.6.2
    or higher.
    
    Depends-On: I6458969b45f5534e1172b9f8ba598d7c536a59b5
    Change-Id: If459afba3cf61b3c7f641c79494cd53a682666a4

commit 0e3117cb01d201f403be72cbb1218b9eec69a541
Author: lifeless <robertc at robertcollins.net>
Date:   Thu Aug 13 07:09:22 2015 +0000

    Revert "Use the correct auth_plugin for token authentication"
    
    This reverts commit dfef01a7cbb9d68ad443d182e548ec58143a3a1f.
    
    This broke the world.
    
    Change-Id: I65d820b0da807a161eae814ea4b5413f245d7bf0

commit eeae22fb7f6e179f4371fcbf82367918df091a00
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Aug 10 09:17:02 2015 -0400

    Add a developer coding standards doc
    
    We have coding standards. Let's tell others about them.
    
    Change-Id: I36456fa706db96ad1abb3d121f90981845065d8c

commit 13a04f76b9f13ec89a9d0aa8a7e9b064e8fa98b4
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Aug 12 19:56:51 2015 +0000

    Ignore infra CI env vars
    
    When running tests in the infra CI system, some OS_ environment
    variables are defined (e.g., OS_TEST_TIMEOUT, OS_TEST_PATH,
    OS_STDERR_CAPTURE, OS_STDOUT_CAPTURE) and this makes o-c-c think
    that we are using environment variables for an envvar cloud. In
    some rare cases, this can cause tests to fail if they expect
    cloud definitions to come only from clouds.yaml. This change
    ignores these CI variables.
    
    Change-Id: I6458969b45f5534e1172b9f8ba598d7c536a59b5

commit dfef01a7cbb9d68ad443d182e548ec58143a3a1f
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Tue Aug 11 23:54:39 2015 +0100

    Use the correct auth_plugin for token authentication
    
    Use ksc_auth.token_endpoint.Token as Keystone authentication plugin if
    auth_type is token_endpoint.
    
    Change-Id: I1a6d6dfe731527d7040cfbc2404fd5cf86ba5893

commit 575508dba275b47664a98eafa4ba11e430a6d954
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Aug 7 19:15:01 2015 +0000

    Add flavor functional tests
    
    Test for creating and listing flavors.
    
    Change-Id: I30a351424515558d5e0e71cb2d391e19bff20fe5

commit ef756c46b8f558d14d4c3baf989d4a8188233279
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Aug 7 18:52:02 2015 +0000

    Bug fix for obj_to_dict()
    
    Float values were being discarded by obj_to_dict(). Eek.
    
    Change-Id: Ia04c74ceda02e408ae4aa5b372a6976d12591589

commit 20b3dd11763237b6fc75a637527e7d94ec303032
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Aug 7 06:40:12 2015 +1000

    Add log message for when IP addresses fail
    
    We take the action of deleting something for the user, we should tell
    them.
    
    Change-Id: I1afe1bc53c0ae76967442b93cd25693d4d8b4e89

commit 1ead623f8c06ea2adc1a6343df1e2ece27327ed8
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Aug 6 11:16:41 2015 -0400

    Add methods to set and unset flavor extra specs
    
    Extra specs cannot be set on a flavor at create time, so these
    methods are needed so folks can, you know, set and unset specs.
    
    Change-Id: Ifc62bbe6dabe5bda893e299a53c611b6002c00ba

commit ee34c7d483421842fede1f0ec280e442a9484773
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Aug 6 16:41:49 2015 +0000

    Listing flavors should pull all flavors
    
    There is a bug in list_flavors() in that we were not listing ALL
    available flavors, only public ones. This fixes that bug. In order
    to list only public (or private) flavors, search_flavors() should
    be used with a filter on is_public.
    
    Change-Id: I444ddde9a2ac6b66b2c427c860046bd85e216e63

commit b55f88bddc211b46fe6513ae11c2b743469a1dd6
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Aug 5 09:14:01 2015 -0400

    Be consistent with accessing server dict
    
    We had several different places where we were treating the server
    dict as an object. Although it can currently be both because we use
    Bunch objects for backward compatibility, we should be consistent
    with treating it as a dict so that we can, hopefully, at some point
    stop using Bunch objects. And also we don't want to continue to
    provide bad examples.
    
    Change-Id: I27eb467ac2e86454a86566336a55e892e7025fda

commit 84e3aae8da39142dc3acc97dd7ff2683400b34c5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Aug 1 10:29:23 2015 +1000

    Throw an exception on a server without an IP
    
    It's possible for a server to reach ACTIVE without getting an IP. Of
    course, this server is not very useful. So, treat it as an error.
    
    Change-Id: I1f5fd2632c33dcddaa924bf37c0896b08e568753

commit 80e1fbcd9072645c040a53cd0324e2596efa567f
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Jul 29 14:13:58 2015 -0400

    Be smarter finding private IP
    
    In a neutron enabled environment, we can be more intelligent about
    how we find a private IP address by looking for an IP on a network
    that has `router:external` as False and `shared` as False.
    
    Change-Id: I0029a04710ec39c997e051037cd32e671642b198

commit 0af29bda2fe3ed9ac6ff7e2237c52471ba413cd3
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Aug 4 09:08:32 2015 -0400

    Clarify future changes in docs
    
    The README was discussing future design decisions as if they were
    already implemented. This can be confusing for new users. This
    separates that discussion into a separate doc page and clarifies
    its intentions.
    
    Also, fix sphinx doc build warnings.
    
    Change-Id: Ie66b60d972cae25a9805804ad17632aed0932627

commit a8e8c809eeec0f09b5d9207c29efb3c6a1f9c088
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Aug 1 12:45:16 2015 +1000

    Align to generic password auth-type
    
    v2password can't handle v3 parameter names. But we align to those
    for sanity. Ensure that a user gets the v2plugin that can handle
    the auth instead of the one that can't.
    
    Change-Id: Ie693e613fd5d0e20a4837923300502b1de02364b

commit 264fa42bfdd0af5cc4407dfe398472be74ea42b5
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Jul 29 13:36:44 2015 -0400

    Remove meta.get_server_public_ip() function
    
    This method is unused and outdated. There is a public method in the
    OpenStackCloud class named get_server_public_ip() that calls the
    correct function in meta.py.
    
    Change-Id: I852844a003f9d09d1579ce3509caa04cbbffd270

commit 6f09b546026b95b3034e76d198b05e2d89028694
Author: Clint Byrum <clint at fewbar.com>
Date:   Tue Jul 28 22:47:56 2015 -0700

    Document create_object
    
    Change-Id: Ia9c4ffd27c1dbef1bff69aaef8100010cfe0d219

commit b1ae2233881d59a8d1187693446b2f0dd57334a4
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Jul 28 17:18:54 2015 -0400

    Remove unused server functions
    
    These functions are used neither in the Ansible modules, nor in the
    nodepool code. Their existence is confusing as they serve no purpose
    other than to add extra attributes to the server dict. They are
    holdovers from when we still returned server objects, not dicts.
    
    Change-Id: I06e5c2b7bfe3ba098016d5348e41e7002b361e6c

commit 914d82a33a21ea8848cef3be80bd8e3b94641cfc
Author: Atsushi SAKAI <sakaia at jp.fujitsu.com>
Date:   Wed Jul 29 14:34:12 2015 +0900

    Fix two typos and one readablity on shade documentation
    
    resouce => resource
    expse   => expose
    
    virtualenvwrapper => virtualenv wrapper
    
    Change-Id: Id4dbcb4852eb2ef5dac4e0379e384c945c93a1ae

commit 8218cb261db734be64a2222136fc18fa05174602
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Mar 29 01:38:00 2015 -0400

    Pass socket timeout to swiftclient
    
    Needs a release of swiftclient containing the depended-on patch.
    
    We're passing timeout to everyone else now, so for consistency, we
    should pass it to swiftclient too.
    
    Depends-On: I699ebb1e092aa010af678de7ba15712da6ed5315
    Change-Id: I864403e0ac32f2645026dd13189a03cb9b0eeb01

commit ad59fe3a728cb12d930776aea8463a8982fd0d88
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jul 27 11:58:43 2015 -0400

    Process config options via os-client-config
    
    Assume that a cloud config object will be passed in. For compat,
    create one and pass in kwargs if it's not - but based the internal
    operation on the existence of a cloud_config object.
    
    Change-Id: I31b2d851e0636c7742468aa62565295a2c5266e2
    Depends-On: I8764ed68f8a38563c4242d4b50e2158e99ed4109

commit 494cea2d1cddf117252619735c433fb681e63801
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Jul 28 09:55:13 2015 -0400

    Update ansible subnet test
    
    Add a task for updating a subnet.
    
    Change-Id: I55564f2d4a82bc4a0de23501f7d6b334fc54c973

commit 31eabb9a424c340f77039b26a8a6d3bf08589657
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Jul 20 15:41:28 2015 -0400

    Fix test_object.py test class name
    
    Looks like a copy-paste error as TestShade is in test_shade.py.
    Rename the test_object class to TestObject.
    
    Change-Id: I73df0db1de2f4ca41d801bcca4dce53215faabe6

commit 6e9a52a734bfe44cc7971a4a2d8b37425013156d
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Jul 20 15:34:35 2015 -0400

    Fix for swift servers older than 1.11.0
    
    Discoverable capabilities was not added to swift until 1.11.0. Some
    providers are running an older version. These will return a swift
    exception with an HTTP status of 412 because the URL (/info) is bad.
    
    This change sets a default that is half the Swift default max file size.
    The result is also cached as it isn't expected to change.
    
    A separate, future change will take advantage of a newer os-client-config
    which will allow setting the default value per-vendor profile.
    
    Change-Id: I80b14cfae42fc160f42b44e4923472d14a4b9057

commit 212ce988609fafc830fcb59f42d31eacefc62565
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jul 27 12:15:46 2015 -0400

    Clarify floating ip use for vendors
    
    HP was not listed as needing a floating ip. Also, the non-floating IP
    case mentions direct routing, so amend the floating IP case to mention
    NAT for completeness and clarity.
    
    Change-Id: I220c41f6c822b7b6ffb1ec11038749153ef5a6ee

commit b2d10751eaea6e1b9fe15a202a18a98d2c25c95f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jul 27 11:48:26 2015 -0400

    Add per-service endpoint overrides
    
    Make it possible to override a service's endpoint like service_type
    and service_name. This is already documented as working.
    
    Change-Id: I8764ed68f8a38563c4242d4b50e2158e99ed4109

commit 5c6aefacc772b6e7d48654297d4512d54b18ba42
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jun 3 20:33:44 2015 -0400

    Use disable_vendor_agent flags in create_image
    
    By default, if you're creating an image by uploading it with glance, it
    means you either made it yourself or you downloaded from somewhere like
    Ubuntu or Fedora. In neither case are you likely to have special
    vendor-specific agents in your image. If you DO have them, you know what
    you're doing and can flip a flag.
    
    Change-Id: I9cacfc0284f196f2f65494382ceb0d4e130f9fb2

commit 856b298175f970b3226f0cb39d78e82ed31c32ed
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jun 3 18:52:57 2015 -0400

    Use os-client-config SSL arg processing
    
    This logic was added to occ, so use it from there.
    
    Change-Id: Icc224128ee397cdb50ee01fc75568a5207b8dbf7

commit 482d6ed82267de2c12e000f415aea38ee4d886db
Author: Rosario Di Somma <rosario.disomma at dreamhost.com>
Date:   Thu Jul 23 12:42:57 2015 -0700

    Correctly pass the server ID to add_ip_from_pool
    
    The add_ips_to_server method is incorrectly passing the
    server object to add_ip_from_pool instead of the server ID.
    
    Change-Id: I252b585b940fd6598e6a328df4ef3041ee326249
    Signed-off-by: Rosario Di Somma <rosario.disomma at dreamhost.com>

commit 21e7628882cd473be627863f047622b1502d15f7
Author: Ricardo Carrillo Cruz <ricardo.carrillo.cruz at gmail.com>
Date:   Mon Jun 29 16:35:07 2015 +0200

    Add initial designate read-only operations
    
    This change adds list/get operations for Designate domains and
    records objects.
    
    Change-Id: If37d07245281139c91e168c8652368d6f7a7c484

commit a9cf85b0cb8497757cce010e9d7accc2bf25ce06
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Fri Jul 17 22:10:42 2015 +0200

    Always use a fixed address when attaching a floating IP to a server
    
    When using Neutron, if the caller didn't specify a fixed_address when
    assigning a floating IP to a server, automatically pick the fist IPv4 address
    assigned to the fist port of the server.
    
    This should fix the DreamHost use case: DH uses Neutron and automatically
    assigns an IPv4 and an IPv6 fixed address. Even if it doesn't make sense to
    attach a floating IPv4 address to a fixed IPv6 address, OpenStack returns an
    error if we don't specify a fixed address when attacking a floating IP to a
    server port when multiple IPs assigned to that port.
    
    Change-Id: I4b91bf29366c4d8b5277d0d97cd9571770252961

commit d6d2cbe5e1ada67f78e7dd1bedebe8a57fcac8fe
Author: TerryHowe <terrylhowe at gmail.com>
Date:   Fri Jul 17 11:26:03 2015 -0600

    Remove requirements.txt from tox.ini
    
    From lifeless: pbr reflects the package dependencies from
    requirements.txt into the sdist that tox builds.
    
    Change-Id: Iaa6026a504cc53784aad5731e9afe8b684b3ede5

commit db0480e716aebf44dc8bdaadcd83a138e4441543
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Jul 17 11:17:22 2015 -0400

    Catch leaky exceptions from create_image()
    
    The create_image() method calls various other helper private methods
    that do not attempt to catch the underlying client exceptions and
    wrap them as OpenStackCloudException exceptions. This change will
    catch all exceptions, rethrow OpenStackCloudException exceptions,
    and wrap all others as OpenStackCloudException.
    
    Change-Id: I155af0dcb6aeeb33a001a30183496bb2c227f46a

commit b292db766ff49a9d34a9b8877440add6d0253335
Author: TerryHowe <terrylhowe at gmail.com>
Date:   Thu Jul 16 14:52:24 2015 -0600

    Remove py26 and py33 from tox.ini
    
    Change-Id: I79a9dceffc0432398bda70949db2e523cbbff515

commit 0b698134db7fef262304f1eb55b374dc36ce93b1
Author: TerryHowe <terrylhowe at gmail.com>
Date:   Tue Jul 14 12:30:16 2015 -0600

    Rename 'endpoint_type' to 'interface'
    
    The keystone folks seem to feel that interface is a better name
    than endpoint type.
    
    Change-Id: Ibfc54e725b6dae843c07f7786f51f9fb9141c983

commit b4145438fd603aca96f196383f3aee8b0973d24c
Author: TerryHowe <terrylhowe at gmail.com>
Date:   Mon Jul 13 13:51:11 2015 -0600

    Have service name default to None
    
    It seems like having service name default to service_type
    would not work in a lot of situations.
    
    Change-Id: Ia70242fad346c1681fa4abca9d604aea3ae002dd

commit e7241b4e626e4e24fd2692a9f42520a50d3b3414
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Jul 6 09:30:27 2015 -0400

    Add flavor admin support
    
    Add methods to create and delete flavors to the admin interface.
    
    Change-Id: If8a239a4d0c5db63f6fa34048f8a5f44b09fb109

commit 3891816acb6dd287f89498dd0fcb714b722f9252
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Jul 16 09:09:35 2015 -0400

    Remove region list from single cloud
    
    regions is a list of regions that can be used to create more than one
    CloudConfig object for each cloud/region combo. The regions field
    itself makes no sense to set on each of those CloudConfigs, so do not
    pass it through.
    
    Change-Id: I76b3bb3bc4778223d72f86d01d02ce150651b3b9

commit 608713583ad3553f3cb9d456b5df8a01dcc999e5
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Jul 15 16:11:13 2015 -0400

    Fix debug logging lines
    
    There were several places where the exc_info parameter to the
    logging.debug() method was included inside of string.format()
    methods.
    
    Change-Id: I696e03c95c101d612174e78604f2753cf41a0d6b

commit 62c1f2a23e644d7fe0140c4062651febb2545d26
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jul 15 07:58:14 2015 -0400

    Account for Error 396 on Rackspace
    
    Error 396 doesn't have a name, or a description. It's just Error 396. It
    shouldn't be judged for its failings in being descriptive, nor for the
    utter lack of necessity of its existence. Instead, we should feel sorry
    for it and the meaningless life it lives. You see, Error 396 is the
    error that the asynchronous image importing code returns when an unknown
    error is encountered and retrying is the appropriate action to take. Why
    doesn't the importing worker simply retry itself? Only Cthulhu can
    possibly know the answer to such a dark question, but perhaps it's for
    the best. Even a meaningless life such as the one Error 396 leads is
    better than no life at all. Or?
    
    Change-Id: I848986c9616d96caaad69806ad8b4f9f10301768

commit 8f3a48ba815b7d6e69626dcde769331214e8e80d
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Wed Jul 15 01:53:39 2015 +0200

    Fix small error in README.rst
    
    Change-Id: Iba33df0c19d895be98e6f63467f6d3143fae88c0

commit b74df460a821d522d78ee76ba699bc4265efa2bc
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Jul 14 10:54:21 2015 -0400

    Fix set_default() when used before config init
    
    Using set_default() before initializing OpenStackConfig would cause
    an error since the _defaults dict would still be None and not an
    actual dict. This corrects that by calling get_defaults() to make
    sure it is initialized properly, and also adds a warning to note
    that the method is now deprecated.
    
    Change-Id: I81803c680b614f9bee47c6f69a4efffa638dcebc

commit 9ac1517f287642bd1b2c6bddda2ab613d6b94597
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jul 7 14:01:50 2015 -0400

    Allow use of admin tokens in keystone
    
    For bootstrapping purposes, an admin uses an "admin token" which is a
    statically configured secret in the keystone config file. If one has
    used this, there are things one cannot do, such as query the catalog.
    That's ok - because what you're doing is bootstrapping the contents of
    the catalog.
    
    In order to enable that, we need to work around the normal "just infer
    the right thing from the catalog" logic, because there is no catalog.
    
    Also - it turns out that direct use of the v2 and v3 clients allows one
    to just pass in a Session, rather than needing to query the session for
    the auth_url to pass in. This does not hurt the non-admin cases.
    
    Change-Id: I7e15214a589dd3cb270f4835e074dc13cab3e529

commit 5709ca8f28d67fe648924be8c9a2562b75695134
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Jul 10 15:10:25 2015 -0400

    Fix identity domain methods
    
    Some bugs made it through the review process. The delete_identity_domain()
    method was calling an invalid update method. It also should only accept a
    domain ID, not name, since converting from a domain name to ID would require
    listing the domains (an expensive operation we are trying to avoid).
    
    Change-Id: Iccc89f133b4122d88bc77f72d89ae6c12eff1eb9

commit ab1c566cb8afbf477492180e2cc8257817a06893
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Jul 10 08:09:21 2015 -0400

    Update ansible module playbooks
    
    - Removed unnecessary variable import from subnet role.
    - Add client_config role.
    - Add os_auth role.
    
    Change-Id: Ie42a4a26589807ec47cc081d72350ada11b076fe

commit 7965fd2a24c4875fdea0843dae6ed33b4ee010d1
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jul 8 10:51:38 2015 -0400

    Rework how we get domains
    
    Listing domains is very expensive and to be avoided. It's also only a
    thing that really an admin is going to do.
    
    Go directly to the API for specific domain get calls, rather than doing
    a list and filter because of the cost.
    
    Change-Id: Icfcb08fb87a37287491c69c6e2b416ec810b754b

commit 6523cf62fa369fe1909a951ac7bce465aa222c06
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Jul 4 11:03:07 2015 -0400

    Specify the config file with environment variable
    
    The fine folks at ansible want to be able to specify a specific location
    for the config file with an env var which seems like a perfectly
    reasonable thing to allow. Inject the specified file at the beginning of
    the list so that it'll be the first one found.
    
    Change-Id: Ib1947be1c0ae812e9cb83c7b99168c05dfc6fa6a
    Co-authored-by: Chris Church <chris at ninemoreminutes.com>

commit 1065ea4dbf91a1416e267223d0db96719490653b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Jul 4 10:55:25 2015 -0400

    Add support for configuring region lists with yaml
    
    yaml supports encoding lists in a manner that is cleaner than comma
    separated lists. While the old commas-in-region_name will still work,
    add a 'regions' option that can be used to configure lists of regions.
    Remove the comma-separated-list from the docs so that people don't try
    to use it - even though it will work.
    
    Change-Id: Ieb0aedb9c03fd26e644e9ba733b935f2c69daaf0

commit 7ad8db93391f75ee2ecd0361275941fd80237add
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Thu Jul 9 03:11:17 2015 +0100

    Fix "Bad floatingip request" when multiple fixed IPs are present
    
    This patch fixes the "Bad floatingip request" error raised when there
    are multiple fixed address assigned to a port.
    
    The issue is fixed using the fixed_address provided as a parameter of
    _neutron_attach_ip_to_server() when updating the neutron floating IP.
    
    Change-Id: I6bcc000912ee75c9507c3d7e790ffbe10b3b271a

commit df195a30144ed9878aa09ff4d5adec4f02fa9ace
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Jul 8 15:20:51 2015 -0400

    Add Ansible module test for subnet
    
    Change-Id: Ia6303d4012cdbd8be226122cfddd46090c816cc0

commit 8a2db7ba3fe2ec923f706fe6fcbb23c25429f6cd
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Jul 8 14:38:28 2015 -0400

    Add Ansible module test for networks
    
    Change-Id: I4e5a452de5952d8fa48bfa1831ac803642fc6ec5

commit 9d3cc7969b7022ac850d98321fa038a09a70f939
Author: Spencer Krum <nibz at spencerkrum.com>
Date:   Wed Jul 8 10:25:51 2015 -0700

    Fix rendering issue in Readme
    
    Change-Id: If089b0331c6b40e983d81623ee3a6a541f93a45a

commit bfa1955e57b15d73f9d2e141794d53014de5b1b1
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Jul 8 11:51:17 2015 -0400

    Add a testing framework for the Ansible modules
    
    Change-Id: Ifa23d5b3fd72ba40a832399cdf2956d887e11cfb

commit b3197e9fd5680578ce602f98a1cd6e85cbb109a9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Jun 11 02:59:32 2015 +0200

    Support project/tenant and domain vs. None
    
    Keystone v2 and v3 have a different enough interface that we need some
    helper methods to make sure we're passing in the right things all the
    time.
    
    Change-Id: Ic2a6cde5746237842287cdd426849562d25195ba

commit 604c27fb54708e5d6abc1a462527b86ef4d9cbc3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Jun 11 00:53:47 2015 +0200

    Add CRUD methods for Keystone domains
    
    We're going to call these identity domains. I'm very tempted to call
    them realms, since that's the name that would be most specific and since
    Domain is clearly a thing owned by the Domain Name Service, but I'll
    stop using this commit message as a rant now.
    
    Co-Authored-By: Haneef Ali <haneef.ali at hp.com>
    Change-Id: I2dd10aa7081fdb1d0bf21aa266e5a707e965f055

commit 2ab23109cb74a66b1d3108508a8c162a078e9edf
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Jul 6 15:39:09 2015 -0400

    Raise exception for nova egress secgroup rule
    
    Nova does not support egress security group rules, only Neutron.
    Trying to add one with the current code base simply ignores the
    direction and creates an ingress rule. Not ideal.
    
    Change-Id: I10f3d67b1f66b8c05eb36ec5cecfb530d93458aa

commit 01aeceeae988262c2c5c2de7041ff9483fe5a855
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Jun 30 16:35:55 2015 -0400

    Modify secgroup rule processing
    
    It turns out that Neutron can accept None for a rule protocol to
    represent all protocols. Nova has no similar concept for a single
    rule, so let's throw an exception.
    
    Also, Neutron relaxes the rules on accepting None for both port
    values to represent the full port range for TCP and UDP. For ICMP,
    it is the same as -1.
    
    Change-Id: Icc408586804e2a538399a2aa3f740b97bb4c5246

commit 648e4fd08120738cee1553c3fa2d19f48a60852a
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Tue Jun 30 00:11:09 2015 +0100

    Make sure we are returning floating IPs in current domain
    
    Make sure we are returning floating IPs in current domain when searching
    for already allocated and available floating IPs.
    
    When using a privileged user, Neutron returns all floating IPs allocated
    in the cloud by default.
    Nova just return floating IPs in current tenant.
    
    This patch adds project_id parameter to
    _neutron_available_floating_ips() to allow searching floating IPs in an
    arbitrary tenant. If project_id is None, the current tenant id is used.
    
    Change-Id: I4055e73ace8fa6653e154adf049ad423e976ecfe

commit 235dedcf3d3db477acda827d6583214abc3caff8
Author: Gregory Haynes <greg at greghaynes.net>
Date:   Mon Jun 29 22:12:35 2015 +0000

    Correctly name the functional TestImage class
    
    This seems like a copy-pasta that got overlooked, the TestImage class
    should not be named TestCompute.
    
    Change-Id: I00e9d651936f1aacfece5f461b41c43573830715

commit fceb193f53a91fa1857dcf772ff8be5e38b14d4a
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Thu Jun 25 10:48:19 2015 -0400

    Locking ironic API microversion
    
    Due to changes related to the ironic state machine, and impending
    breaking change that enroll node state will cause, we will lock the
    ironic API microversion that shade utilizes to ensure consistent
    user experience until shade receives sufficent updates to perform
    the state transitions for the user.
    
    Blueprint: enroll-node-state
    https://blueprints.launchpad.net/ironic/+spec/enroll-node-state
    
    Change-Id: I3332fdadcfe0759ef4ebe237a6d0bbdca4b10272

commit 808a50aa4f8d004eaefb51e303f5b6311c491e86
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Fri May 15 21:48:06 2015 +0100

    Add Neutron/Nova Floating IP tests
    
    Nova/Neutron floating IP unit and functional tests.
    
    Some clouds out there are still running nova-network but we want to
    provide support for neutron specific features and concepts like ports,
    networks, subnets, etc.
    
    This change is part of a set that adds neutron support to existing
    floating IP-related functions, hiding that behind resource-oriented
    methods.
    For instance, at high level, end-users can now request that a public IP
    is assigned to an instance without worrying about the specific service,
    procedures and protocols used to provide that feature in the target
    cloud.
    
    Change-Id: Ib53923246e095283e1b470e50aeac3050b8c296e

commit b12b3b6e2294b148df0bac01d4ca44057a03f227
Author: Steve Leon <kokhang at gmail.com>
Date:   Thu Jun 25 16:43:02 2015 -0700

    Adding SSL arguments to glance client
    
    I am using os_server ansible module to boot VMs. This fails in a
    SSL Openstack env. It fails listing the images because it is verifying
    the cert.
    
    Change-Id: I062c0fd3adb84a758e1a1b3664bc6d225ca1e174

commit 50f05448982b5fafd9d9a7783b639dd145090a0d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Jun 6 09:40:03 2015 -0400

    Clean up vendor data
    
    There are some clear central defaults. Call them out and don't repeat
    them. Also, ran the yaml files through a flamel conversion so they're
    all consistently formatted.
    
    Change-Id: Id19116c5e8266c109cf015d097cb6cb35f1beae8

commit 65dd84515be415fe9f0c5751ecb8b6c51e3fabcb
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Jun 26 10:58:37 2015 -0400

    Add support for indicating preference for IPv6
    
    People, such as Infra, would like to use IPv6 when it's there, but don't
    want to need to write the "if ipv6, awesome, else, ipv4" code all the
    time.
    
    Change-Id: I870955863f1e8851c684dc604584c1ef3e20dd6b

commit 0b09988cba58a03cf7d351238621c8d4b37c2ece
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Jun 25 10:48:47 2015 -0400

    Remove list_keypair_dicts method
    
    This is unused and unnecessary now with the update to the
    keypair API.
    
    Change-Id: I04906e0fb35ffcac0d046ba37aa52c2a3cad8b1a

commit 1e447b4e202de54c0026ae9ed2a2fa7f6d36f22e
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Thu Jun 25 10:20:04 2015 +0100

    Do not use environment for Swift unit tests
    
    Swift unit tests initialize the cloud object using
    shade::openstack_cloud(). That method uses os-cloud-config to load
    cloud parameters.
    As a consequence, this test could use real clouds or just fail because
    of unexpected values in the cloud object settings.
    
    Change-Id: I8006913ed2edf9b5019e83c8b958d48dfdf04cb2

commit 882ad91dffdfac2945932bbbc9071646f07cdcd4
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Wed Jun 24 17:29:11 2015 +0100

    Add Neutron/Nova Floating IP attach/detach
    
    Some clouds out there are still running nova-network but we want to
    provide support for neutron specific features and concepts like ports,
    networks, subnets, etc.
    
    This change is part of a set that adds neutron support to existing
    floating IP-related functions, hiding that behind resource-oriented
    methods.
    For instance, at high level, end-users can now request that a public IP
    is assigned to an instance without worrying about the specific service,
    procedures and protocols used to provide that feature in the target
    cloud.
    
    Change-Id: Ibeec7354e4690f5ea69641e8367e7adea7c64ce7

commit 5d666939ba35d539ab3e512ec0b165df9f9d0ccc
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Thu Jun 25 10:03:19 2015 +0100

    Fix available_floating_ip when using Nova network
    
    When neutron is not available and there are no floating IP already
    allocated to the project, available_floating_ip calls meta.obj_to_dict()
    on a Bunch object.
    
    Moreover we can save an API call as we already know the pool name.
    
    Change-Id: I997cb0edc4fd9160b6804a29d404190526303720

commit fd36850b24ade1af62aa510850e34d473428e1f5
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Thu Jun 25 09:41:36 2015 +0100

    Skip Swift functional tests if needed
    
    Not all clouds have Swift, this patch skips functional tests for it if
    the cloud used doesn't have the object service in its catalog.
    
    A warning message is printed to inform the user object service
    functional tests have been skipped.
    
    Change-Id: Ie05d08c695f4d42d41d23d5e35e9caca03aaebb1

commit 2b64bbc7d6e8e36c10ca86ae7cf7aed78c55c9d5
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Thu Jun 25 09:39:01 2015 +0100

    Fix AttributeError in keystone functional tests
    
    OpenStack allows omitting names for services. This patch adds a check
    to ensure we do not call startswith on None values.
    
    Change-Id: Id6be1182a2226e3e53a10f6e29f674d777eae6c5

commit 6f93b3a253128191f35064f3d5e2a9d10086a99c
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Jun 24 17:07:58 2015 -0400

    Update keypair APIs to latest standards
    
    This brings the keypair API interface up to our current standards:
    
       - Stop leaking keypair objects.
       - Adheres to the new get/list/search interface.
       - Catches client exceptions and rethrows as OpenStackCloudException.
       - Returns True/False in the delete API method.
    
    Change-Id: I1d762898fc03765fc028943c2f792605b1ebcd1c

commit f9c72e91a6284df3e6e520a968b554f29fd54cc9
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Fri May 15 19:15:51 2015 +0100

    Add Neutron/Nova Floating IP delete (i.e. deallocate from project)
    
    Some clouds out there are still running nova-network but we want to
    provide support for neutron specific features and concepts like ports,
    networks, subnets, etc.
    
    This change is part of a set that adds neutron support to existing
    floating IP-related functions, hiding that behind resource-oriented
    methods.
    For instance, at high level, end-users can now request that a public IP
    is assigned to an instance without worrying about the specific service,
    procedures and protocols used to provide that feature in the target
    cloud.
    
    Change-Id: I699d65ef3f9d917e14b4046d5ee4e6763e2ecc74

commit 73c07744132ea0244181b8faef3e4df592476889
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Fri May 15 15:59:27 2015 +0100

    Add Neutron/Nova Floating IP create (i.e. allocate to project)
    
    Some clouds out there are still running nova-network but we want to
    provide support for neutron specific features and concepts like ports,
    networks, subnets, etc.
    
    This change is part of a set that adds neutron support to existing
    floating IP-related functions, hiding that behind resource-oriented
    methods.
    For instance, at high level, end-users can now request that a public IP
    is assigned to an instance without worrying about the specific service,
    procedures and protocols used to provide that feature in the target
    cloud.
    
    Change-Id: I2196ebf9b0131346675f90ca9fb21c3baf8d177f

commit 735aae777ede16deec7cc206d1d4e9ebdb5b7564
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Jun 19 09:47:23 2015 -0400

    Convert ironicclient node.update() call to Task
    
    Changes the node.update() calls to Task calls. Also adds missing
    test cases.
    
    Change-Id: Iaa97aef01b14c348b8cf9045b928a972151b0614

commit 5369ffc3dce5cb5789fb654da2829f2de793e21a
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Jun 19 09:22:12 2015 -0400

    Convert ironicclient node.get() call to Task
    
    Changes the node.get() calls to Task calls. Also adds missing
    test case.
    
    Change-Id: I94b2c2bdb4c7c8bb7b96d3aa0e0117ec3585e620

commit fdefa583ae80a62f8b03edb904fd2bdbe406159c
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Mon Jun 22 15:48:41 2015 +0100

    Move TestShadeOperator in a separate file
    
    This patch separate tests for OpenStackCloud and OperatorCloud classes.
    
    Change-Id: I503c31cb6f15258572d85b8b82da03bee67b77f1

commit 9db26ef1e2c7a33ad01eaf2a9cd27ff1ed56be97
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Sat Jun 20 23:23:48 2015 +0100

    Fix intermittent error in unit tests
    
    After the introduction of unit tests for the _neutron_exceptions
    context, unit tests fail randomly with the following error:
    
        AttributeError: <class 'shade.OpenStackCloud'> does not have the
        attribute 'mock_me'
    
    This error is due to the wrong location of test__neutron_excetpions
    tests (i.e. the TestShadeOperator class rather than the TestShade
    class).
    Moreover, as pointed out on IRC we can get rid of "fake" methods to test
     the  _neutron_exception context, just using the existing code.
    
    Change-Id: I2cfdcfce606272fbdbdf8a463db895d3d5a4a1e3

commit 29790338f5c0fa14ae1c3b0c87f31dd1e1fc284b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jun 22 09:42:24 2015 -0400

    Pin cinderclient
    
    cinderclient 1.2.x is broken for all public clouds tested. What's worse
    is that the break exhibits as hanging until timeout because of errors in
    version autonegotiation.
    
    pin so that people aren't confused and angry.
    
    Change-Id: Ia3896f3ac38ded6225447bd4cbd03a086e741ad0

commit b631da86fee360533111eb9993e215d6cb64f522
Author: Gregory Haynes <greg at greghaynes.net>
Date:   Mon Jun 22 05:40:40 2015 +0000

    Normalize project_name aliases
    
    We arent normalizing keys before we check for project_name aliases,
    therefore using hyphenated versions of the aliases fail.
    
    Change-Id: I3e0aa9dc38bbafc3c3a205f08b65abbd4528e874

commit bbcfbc86d299536dc465e32fdba856a74c1e6cce
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jun 17 07:55:58 2015 -0400

    Add comment explaining why finding an IP is hard
    
    Change-Id: I1bef3397f8e0134079a2fe18a2445c3de0a3ed1d

commit a998ecdb6c2060392d919d578958a693879ddd01
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Jun 19 10:40:05 2015 -0400

    Add IPv6 to the server information too
    
    We have things that like to use it. It would be nice if we could arrange
    for them to use IPv6 if it's there.
    
    Change-Id: I64bba5bece7f00aa600b4108bcf60f6be1d5316d

commit af32bbb474e4de8ba30a247d866502477ead631b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Jun 19 10:02:47 2015 -0400

    Use accessIPv4 and accessIPv6 if they're there
    
    If the cloud has been friendly enough to provide an accessIPv4
    or accessIPv6, just use it.
    
    Change-Id: Ice62e9cdfe1ce7d1ea8fc0ce84de7febaa4e6c2a

commit cb1c0eacb380771ce02f0f156f9f1687022637b7
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Wed May 13 13:02:12 2015 +0100

    Add Neutron/Nova Floating IP list/search/get
    
    Some clouds out there are still running nova-network but we want to
    provide support for neutron specific features and concepts like ports,
    networks, subnets, etc.
    
    This change is part of a set that adds neutron support to existing
    floating IP-related functions, hiding that behind resource-oriented
    methods.
    For instance, at high level, end-users can now request that a public IP
    is assigned to an instance without worrying about the specific service,
    procedures and protocols used to provide that feature.
    
    Change-Id: I35c3af4b8c43af9988463785cb48c0c41abe6abe

commit 7cde7c5ad136cda8304e7edb36f8059cd4464360
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Jun 19 09:25:13 2015 -0400

    Catch all exceptions around port for ip finding
    
    If neutron does not work, then it's going to throw inside of list_ports,
    which is going to send an OpenStackCloudException through search_ports,
    which is then not going to be caught by the NeutronClientException trap
    here.
    
    Change-Id: Id25ff2688de55f4b39a145185269bc7b7ccb89eb

commit ebfef54bc391bc8075a83e2cfa18c3f625374c1d
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Tue Jun 16 13:49:26 2015 +0100

    Centralize exception management for Neutron
    
    A common pattern we use is to catch OpenStack clients exceptions and
    re-raise an OpenStackCloud* exceptions.
    Moreover, we need to distinguish NeutronClientException with status
    code 404 from other Neutron exceptions in order to handle Rax broken
    catalog (i.e. falling-through and using Nova API).
    
    This patch centralises all that.
    
    Change-Id: Ia14083bee7988e90a9e5ce04305a8ead4511b3d3

commit 6367ead33baa35939d591b76ffa9563887d1b25b
Author: Clint Byrum <clint at fewbar.com>
Date:   Thu Jun 18 09:20:58 2015 -0700

    Fix MD5 headers regression
    
    This regression was introduced when we switched to
    swiftclient.service.SwiftService for uploading because of a
    documentation bug. The option was listed as 'headers' but it should be
    'header'.
    
    Change-Id: Id590f624aa084af0747b93ae70b214600147ebb2

commit e25936b1a3e9af283705c982e03b2e11b6826795
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Jun 18 10:46:04 2015 -0400

    Ensure that service values are strings
    
    Sometimes ints can sneak in in api version values. We never want that.
    
    Change-Id: I730be13d3328bdee1652186021ee1579f8ef4b57

commit 11059de528e58d50c1f9c53bf89ba244e327c8f4
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Jun 18 09:01:31 2015 -0400

    Pass token and endpoint to swift os_options
    
    get_capabilities runs through a code path in swiftclient where the auth
    token pieces need to be in os_options. We also need to tell swift to use
    keystone auth, not swift auth.
    
    Change-Id: I3768f40059b6f6591f67e47a3202ed17779d0fe8

commit 6098388a490c6e81f51161dd83b23fd205b34977
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Jun 17 12:17:52 2015 -0400

    Convert ironicclient node.validate() call to Task
    
    Changes the node.validate() calls to Task calls. Also adds missing
    test case.
    
    Change-Id: I3db70de3ecd1faf5380f9b3201dbecc37541b994

commit 208c084a5495af2d11aecda8d58fb0d7c9a48615
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Jun 17 12:02:03 2015 -0400

    Convert ironicclient node.list() call to Task
    
    Changes the node.list() calls to Task calls. Also adds missing
    test case.
    
    Change-Id: I5a7cd1a4193777d1c1f96c87efd1308a29f59b64

commit 03967b17ff5999242007db8fead832f9754bb55c
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Jun 17 09:55:32 2015 -0400

    Return True/False for delete methods
    
    This changes many (not all) of our delete methods to have consistent
    return values: True if the resource was deleted, False if it was not
    found for deletion.
    
    The methods being changed here either returned nothing at all, or
    they raised an exception on resource not found. The ones that raised
    an exception no longer raise this exception, and instead return False.
    
    We also make sure that a debug log message is output for a delete
    request that could not find the resource.
    
    Change-Id: I0ee4654dc6f68b475179d36002fe9db713e26290

commit 1550cfce0a11eb92f2411be9c94136e01c0a185b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Jun 14 04:18:32 2015 +0300

    Add some accessor methods to CloudConfig
    
    There are some questions that people might want to ask without
    necessarily digging in to the underlying dict (this came up when
    noodling on openstacksdk factory functions.
    
    Change-Id: I3d9554a5e64797794de646d4d0d61936b857f2b4

commit f6c0f808fa879024881aa7b714f05fc14175e73d
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Jun 15 15:51:47 2015 -0400

    Add delete method for security group rules
    
    Adds new API method for deleting a security group rule.
    
    This conforms to the newly agreed upon pattern of returning True
    if the resource was deleted, or False if it was not found and
    could not be deleted.
    
    Change-Id: I9c66aee078fa999a85336f600f086b93640ca96e

commit 3cee02eb80d048dbc520a933ab78a925c4e7118f
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Sun Jun 14 00:52:35 2015 +0100

    Add get_server_external_ipv6() to meta
    
    This function assumes that if a server has an IPv6 address, that address
    is reachable from outside the cloud
    
    Change-Id: Ie8949a85d676fc836f90303e61e5abcd1f11cc53

commit 669af9aa6083a7de717dde47251e506c99e06295
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Sun Jun 14 00:52:06 2015 +0100

    Refactor find_nova_addresses()
    
    Current implementation of find_nova_addresses() doesn't allow to search
    just IPv4 or IPv6 addresses without specifying key_name or ext_tag too.
    Moreover, when using key_name it doesn't take into account ext_tag.
    
    This patch refactors find_nova_addresses to be more "intuitive" and to
    allow searching just IPv4 or IPv6 addresses.
    
    Change-Id: I58601a8a12ede4519869c6cf2206a934c38553f3

commit 1f0171bea3d43635b02d40aaeab7ac969cfb54ee
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Sat Jun 13 15:39:04 2015 +0100

    Replace get_server_public_ip() with get_server_external_ipv4()
    
    get_server_public_ip() just returns floating IP addresses or addresses
    from a network named 'public'.
    
    get_server_external_ipv4() tries hard to find an IPv4 address reachable
    from outside the cloud.
    
    Change-Id: I8e2c856b8f913424d3c0f20b72f240e08e4b9f62

commit 07f72e19f585138994eed2a446aec53ab3b90705
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Sat Jun 6 17:49:02 2015 +0100

    Add get_server_external_ipv4() to meta
    
    It turned out we can't rely on get_server_public_ip to get an
    externally reachable IP of servers because not always floating IPs
    are used and not always are what the caller is looking for.
    
    get_server_external_ipv4() tries hard to provide an IP address of the
    given server that can be reached from networks that are external to
    the cloud.
    Unfortunately from some clouds (or for very particularly configured
    servers with multiple interfaces) it could not be possible to
    reliably determine those IP addresses.
    Those clouds are corner cases that are not supported by
    get_server_external_ipv4()
    
    Co-Authored-By: Monty Taylor <mordred at inaugust.com>
    Change-Id: I099193437d0f45cfda78923349e500e9b2e0e053

commit b533b09373386ea4615ae17797212ce04f6b78ca
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Fri Jun 12 22:15:15 2015 +0100

    Add more parameters to update_port()
    
    While writing an Ansible modules for Neutron port (os_port) it turned
    out almost all the parameters passed to create_port() function can be
    passed to update_port() as well.
    Official Neutron API documentation only mentions 'name',
    'admin_state_up', 'fixed_ips' and 'security_groups'.
    
    This patch add all the parameters that can actually be passed to the
    Neutron update_port method.
    
    Change-Id: I0e274d882295c7435cbeda529c4f48e2cccd9a79

commit 20f86ae4b66571cfb4926d1a1495a4744b0da62f
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Fri Jun 12 22:11:45 2015 +0100

    Improve documentation for create_port()
    
    Improve documentation for the fixed_ips parameter of create_port()
    
    Change-Id: Ie29e388a43a633e2434584b1dc3752cb83e325ae

commit 6f5bf9c60cf09ce3b7600695d4ce825285e272f9
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Fri Jun 12 09:29:52 2015 -0400

    Correct get_machine_by_mac and add test
    
    Corrected get_machine_by_mac so it is functional and added
    a test in order to help prevent it from being accidently broken
    at some point down the line.
    
    Change-Id: I1c1b40f1827c9fafe8826f7b07942c2ed7c85228

commit 965998c764557f3eff59cf040aa164f8402e9e47
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Jun 11 15:08:42 2015 -0400

    Add create method for secgroup rule
    
    Adds the creation method for security group rules.
    
    Rules, as returned from Nova, are normalized to look more like Neutron
    rule definitions.
    
    Change-Id: I4b1fa8b3067997a3a87de1ca0e8c924ae0b69f2a

commit 2f499ab98b03201374b1a18cb0e1669530c7e328
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Jun 11 10:37:37 2015 -0400

    Coalesce port values in secgroup rules
    
    Nova uses -1 for non-specific port values in security group rules.
    Neutron rules represent these as None. We need to be consistent in
    the values we return from shade, so we'll pick the Neutron way since
    we make Nova rules look like Neutron rules anyway.
    
    Change-Id: I6b58c0f9d2f9f11860eade0b6ee2d164e67914b8

commit 120d68828965d8f2992fbb4c0a474a85d94b7246
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Jun 11 09:56:07 2015 -0400

    Move _utils unit testing to separate file
    
    As more functions get added to _utils, it will be easier to have
    their unit tests in their own file.
    
    Change-Id: I59ec1b044de7b3777ede5ad62de5bad041d1a6d3

commit 78a3b204a7307cab82d8032d13bf915b7370c64f
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Jun 8 18:06:42 2015 -0400

    Add secgroup update API
    
    Add the update API method for security groups and tests.
    
    Change-Id: I7ac7b13e1beabec86fd11c62c0e905fd6f4589b5

commit eded4b31970d0762119548ef76e4f60dec2376d1
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Tue Jun 9 17:49:30 2015 +0200

    Add missing tests
    
    - Test get_all_clouds returns a full list of available clouds
    - Test env. variables are stripped of initial 'os_' and '-' replaced
      with '_'
    
    Change-Id: If277aade17776d57236cc0e48a46fbb04158e7ed

commit dfcccbf30b1f64b345e610e450e75e39de97dbbc
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jun 3 18:47:10 2015 -0400

    Add very initial support for passing in occ object
    
    We've got a split personality in terms of whether we should use or not
    use os-client-config... except we have a hard dependency on it. Maybe we
    should just use it.
    
    Change-Id: I398cfb474791fd0ee5e15de4e0ae222c1b25b9c0

commit de84b798f9eaac831621a63198ce2366effaeabd
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Tue Jun 9 13:00:16 2015 +0200

    Add test to check cert and key as a tuple
    
    When the cert file doesn't include a key within it, a tuple with
    the cert and key needs to be passed to the requests library.
    
    Change-Id: I17534b8e7d07b3ad102cc6a6a839541c83281b8e

commit fd16aa7d830cfe0c7f467205919e4a9d3a2fed9c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Jun 5 13:29:55 2015 -0400

    Don't emit volume tracebacks in inventory debug
    
    It's ok if a cloud doesn't have volumes, and it's a question we can ask
    of the cloud. Now, keystone tells us about it by way of throwing an
    EndpointNotFound exception. But it's a normal logic exception, not a
    "this is unexpected" exception. So we can handle it, log a sane error,
    and move on, rather than logging the full traceback.
    
    Change-Id: If6fc1ab0bb8247e0fdbd1920aa0b076ac1707cba

commit 3a81f596b2c8d08a77f1fdcb84c79e598d673c2e
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Jun 8 15:36:28 2015 -0400

    Return new secgroup object
    
    The create method for a security group had a bug in that it was
    not returning the newly created security group.
    
    This also moves the logic for normalizing the nova data into the
    _utils module since it is reused.
    
    Change-Id: I19a3063769f1fc8c7bfd1d57aae0e5b839b8189c

commit 843402653d8c05698db481c4146a67846219ae60
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Sat Jun 6 13:06:39 2015 +0200

    Use one yaml file per vendor
    
    With an increasing numbers of vendors, having all profiles in
    a single file, and with dicts inside dicts inside dicts... is
    getting more complicated to have a general view of what is
    available.
    
    Change-Id: I6f386829774365125d585a6ff1b6e22f4c98df2a

commit 9f7a50619a170ec9c9d702862ea617cc1b17e765
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Sat Jun 6 12:50:42 2015 +0200

    Raise warning when a vendor profile is missing
    
    Change-Id: I12f5c9d824abee4af42403a86db8bf4a8bbcac16

commit d710accb3fd95eb7e5bc108a484e3ecc78498af7
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Sat Jun 6 13:32:20 2015 +0200

    Some cleanup in the README.rst
    
    Change-Id: I9f7c6c727708a9095566bce8d4ff03837be95d07

commit a2f25244d352f3f537f602f6a4b8f0ca785c05b6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Jun 5 15:48:17 2015 -0400

    Add support for OVH Public Cloud
    
    Change-Id: If2b4bc34a159d1ef4180fbd5de9bbedfaa5b3e82

commit 7e605f963fe88eded0017a4fdf85ebf13b4c52c1
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Thu Jun 4 13:39:12 2015 +0200

    Add SSL documentation to README.rst
    
    Explain usage and warn avoid behavior with conflicting
    cacert and verify options.
    
    Change-Id: I25b43ba47bd0feb941b649265c6e67723a93e277

commit 0b2a5557360c1f3eda37c4cf836ac54139822533
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Jun 5 14:14:44 2015 -0400

    Port ironic client port.get_by_address() to a Task
    
    This call was not yet a Task.
    
    Change-Id: Ibc46791240fe2f3671bc5d41f0134704fdb57bf7

commit fae69e63f2196485921fe8b829da73cb9afcdc1e
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Jun 5 14:06:25 2015 -0400

    Port ironic client port.get() to a Task
    
    This call was not yet a Task.
    
    Change-Id: I3c28b9dfb03d8eca6936973ae43a01eedd6e6f8b

commit 92b4cc30d7388917a27931b35f53a2655688b3ef
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 21 10:17:18 2015 -0400

    Add inventory command to shade
    
    The ansible inventory plugin is actually really useful for general
    purpose debugging of cloud metadata. Also, having this in tree means we
    can test it and make sure we don't break the interface for people.
    
    Change-Id: Ibb1463936fac9a7e959e291a3856c4f8d32898e0

commit 2c926e618c17933b29a077d48bfda2dda0131a93
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Jun 5 10:58:57 2015 -0400

    Extract logging config into a helper function
    
    It's an error to have a library class set up logging output for you, as
    this will prevent a consumer from doing what they need to do with their
    logging config.
    
    However, for simple scripts, the complexity of what needs to be done for
    "normal" operation is a bit onerous.
    
    Create a simple helper function that a user can run to set up the two
    most common types of logging expected for simple scripts.
    
    Change-Id: I81ef597712ff885d95194c6e29a45a1b2e7f86b9

commit 95beafeadd99383fc99dd8aff5bfc9ce8ece7030
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Jun 5 10:40:01 2015 -0400

    Stringify project details
    
    There are some clouds that have things like integer project names.
    That's no fun when they are interperted at int, so stringify them.
    Stringifying integer project ids is apparently less important, but does
    not hurt.
    
    Change-Id: Ife9ecaa28c552d589dbea9a065da0dfa483592eb

commit bc253d62b9a61575c3ba2f443b2429b5df904905
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Thu Jun 4 13:06:43 2015 +0200

    Raise a warning with conflicting SSL params
    
    Setting a cacert to check the cloud cert is useless when
    changing the default verify flag to False since this will have
    precedence. Raise a warning to alert the user about this
    behavior.
    
    Change-Id: I099d03fef5e8da0d6eed572613f4693604173ecd

commit b1e562c3e59f64118d184e8655c7bfe343a09cdc
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Thu Jun 4 11:21:38 2015 +0200

    Change references of "clouds.yaml" for real file
    
    The config file clouds.yaml can be located in several places, and
    even the file extension can be .yml. Replace all user visible
    messages making reference for that file to show the full path
    of the config file used.
    
    Change-Id: I489d87368b72dfe69b7d4e3c07ba5d5249c45667

commit cf0bdc420aea3b4d282c01cdda17d14738ff13f7
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Jun 4 21:22:13 2015 -0400

    Add create method for security groups
    
    Adds the API method to create a security group, using nova or neutron.
    
    Change-Id: I495c8272220837982b7e1f880646748a30b7d727

commit 50975f52edd0ffe656d95b67c85b466c7dce12b9
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Jun 4 15:11:20 2015 -0400

    Add delete method for security groups
    
    Adds the API method to delete a security group, using nova or neutron,
    and consolidates existing and new security group tests into a new file.
    
    Change-Id: Ib85b3ec0de8b2b42f691c3e2127adb16e8b14c99

commit 8c445b52242371d98e566bf002f48b94b7dd00b5
Author: Clint Byrum <clint at fewbar.com>
Date:   Mon Jun 1 12:10:06 2015 -0700

    Switch to SwiftService for segmented uploads
    
    Swift caps individual file sizes at various levels, so we need to adapt
    to this and upload in segments. swiftclient includes the SwiftService
    object to do just that.
    
    This adds a functional test to try to upload files to swift.  Because
    sending 5GB of nulls does take a while, we're just going to try a
    segmented upload and an unsegmented one, and see how that goes.
    
    Note that this test coverage found a missing ObjectDelete task which
    has been added. We also add the ObjectCapabilities task so that we can
    make sure segment_size is never higher than max_file_size.
    
    Change-Id: I43903235576245a316ae1921505237e9298b5200

commit f02636ecb9b2bc99a31d1a3c6c5901b90436e186
Author: Clint Byrum <clint at fewbar.com>
Date:   Tue Jun 2 14:34:21 2015 -0700

    Add support to get a SwiftService object
    
    This adds a property of the cloud, swift_service, for the purpose of
    enabling uploads via SwiftService's more advanced segmenting
    capabilities.
    
    In writing tests, it became clear that cloud.swift_client was leaking
    exceptions, which we don't want it to do, which is why we add exception
    handling to that method.
    
    Change-Id: I045266e6d5f0b6bed3100905ada6ab35fbb06987

commit acc2cbdc98a80c71be4e1f55580914b9fdf8d4ab
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Thu Jun 4 10:24:58 2015 +0200

    Raise a warning when using 'cloud' in config
    
    The former use of 'cloud' in the config file, was changed
    in favor of 'profile' to avoid confusions.
    
    Change-Id: Iba08746a06ebb397ee1d0f59d5cda41db2b86053

commit 038ddd38185ace24e96017b3d638952a397e61c6
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Thu Jun 4 09:56:33 2015 +0200

    Add cloud vendor files config in doc
    
    Although it is possible to include specific config files for
    unknown vendors, this wasn't specified in the documentation.
    
    Change-Id: Ib27277d480e373a8a083e820161e0bdb985de284

commit 92040ef08cf8329d6f7f09c1bfa2dbd9fed2a0b4
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Tue May 5 00:25:06 2015 +0100

    Add port resource methods
    
    This change adds port CRUD methods to shade.
    
    Change-Id: I0f91dab236076511c9d35eac4d32afa31b5b9a4f

commit a4e9d5cfc0fb796b9c982a2faf8335d21af85020
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon May 4 17:26:36 2015 -0400

    Split security group list operations
    
    Security groups can come from either nova or neutron or not be
    available by the vendor. This uses a new flag from os-client-config
    to determine where we should get the list from. Also, a new exception
    is added for features that are not supported.
    
    This required a minimum version bump in os-client-config.
    
    Change-Id: I4474341ebc255700a06247846c6350981437e8ae

commit 988ab2a451a5af53a46fdf94ceffb2a864dbf8b1
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Mon Apr 27 00:03:39 2015 +0100

    Add keystone endpoint resource methods
    
    This change adds keystone endpoint resource methods to
    OperatorClouds instances.
    
    Only Keystone v2 API is currently supported.
    
    Change-Id: Idf3bd7500f5853ec329945d8c8203bd7b6aed52f

commit da6929777d2ae49dcebe1bbe730b1661b3153424
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Mon Apr 27 00:03:39 2015 +0100

    Add Keystone service resource methods
    
    This change adds keystone service resource methods to
    OperatorClouds.
    
    Only Keystone v2 API is currently supported
    
    Change-Id: I5d0b44664a6839502d86fed8d68717b086c34a81

commit fa0a120b4f8ace0b9b77ef797bc106d5f76c0557
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat May 9 10:11:37 2015 -0400

    Rely on defaults being present
    
    There will always be a fleshed out defaults dict now, so don't spend a
    lot of effort in dealing with one not being there.
    
    Change-Id: I93cea42c6e35457de1f2d8d1e37ead2ff41fba3a

commit fd731c1cec9fcb839320e99aa1ad8f23494acae6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat May 9 10:00:53 2015 -0400

    Consume os_client_config defaults as base defaults
    
    In 99% of invocations, os_client_config will be passing in default
    values. However, if someone decides to just construct an OpenStackCloud
    without going through os_client_config, there will be defaults missing.
    Grab the defaults from os_client_config and use them, even if they
    aren't passed in as arguments.
    
    Change-Id: I25a1ff3eeba445f91b9bde8cd4e2d68b72b06136

commit d5d539da8141ad5557bb32c89a6bbf4d591ec830
Author: James E. Blair <jeblair at hp.com>
Date:   Wed Jun 3 10:37:17 2015 -0700

    Remove hacking select line
    
    Contrary to popular belief, this does not mean "also check this".
    It means "only check this and don't check anything else".  So this
    was testing _only_ H321.
    
    Change-Id: I8ae173e62d57232cec1bf751004fe4213214353b

commit a0df67704ace186b18fd1ecdc220a7e56409bc6f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 2 15:56:17 2015 -0500

    Provide a helper method to get requests ssl values
    
    There is a weird logic around the interaction between how the openstack
    things all accept cacert and verify/insecure parameters and how requests
    wants them. Rather than spreading the parameter combining logic across
    the universe, put it here.
    
    Note that this inverts the usual requests logic in that !verify will
    override the presence of a cacert value and cause verification to NOT
    occur.  This is intended to become the normal mode of operation for
    OpenStack clients.
    
    Change-Id: I3c76d9a10e6e5d60a593ceefc87dafdc6857d9c6

commit 2fcf0530a6eba7ace554f5422110e81c9585a841
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Apr 17 17:01:20 2015 -0400

    Add design for an object interface
    
    We are currently butting up against the point where the functional
    interface is a bit ugly. Write up a general design for an object
    interface, as well as a few other design thoughts on the library.
    
    Change-Id: Iac675860336275ea56026fcbed27338ba80ef886

commit eccbd04f812e4a42fa9294df948613dff4591fbd
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Jun 3 10:38:21 2015 -0400

    Port ironic client node.list_ports() to a Task
    
    This call was not yet a Task. Port it, and add missing tests.
    
    Change-Id: I7195cd46e20e6653c03b88858995439bc8b3d631

commit 6c3b1e5f119b5207a11effd4258e0bcd4358d944
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Jun 3 09:56:03 2015 -0400

    Port ironic client port.list() to a Task
    
    This call was not yet a Task. Port it, and add missing tests.
    
    Change-Id: Ifc8b81f5e21b661911ba19f12ce8848e3abee809

commit dc012c3494be300133d8ac267e420d2593acdf1a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu May 28 10:31:06 2015 -0400

    Split list filtering into _utils
    
    The inventory module wants to use these. Also, they are not actually
    methods - they are simple functions. Split them out for sanity.
    
    Change-Id: Ib46f788da0f92ed49d350facc0a59cb1697f06ec

commit 8d9cab2eb9772d1d38ab8a333d8d4f6f2afbb0e3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 2 18:03:29 2015 -0500

    Cast nova server object to dict after refetch
    
    When we assign a floating ip to a server, we re-fetch it from the cloud
    so that the metadata is all correct. However, we weren't doing
    obj_to_dict on it like all of the other code paths that return out of
    create_server - which means that it bombs out on
    get_hostvars_from_server if subsequently passed to it.
    
    Change-Id: I3f69f525b7d57ec91f70b77cdbd62aed9816f17d

commit e763e3bb74cd62aaa8cfef3e9416d1a0d2b818ae
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Apr 26 13:17:11 2015 -0400

    Split iterate_timeout into _utils
    
    In keeping with the theme of decomposition, move _iterate_timeout into a
    file.
    
    Change-Id: I180177e8d7dc1458ea987da7273ada485abb72d7

commit 7e69d826c4366b402eefb209af6d399b9bb95c20
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Jun 2 16:35:14 2015 -0400

    Cleanup OperatorCloud doc errors/warnings
    
    Some of the OperatorCloud method docstrings were generating sphinx
    warnings, and the output just didn't look good. This cleans up the
    warnings and makes things pretty.
    
    Change-Id: I8be7acc9872d18b7ba899d75ba3dff43dc600731

commit ba0986f58ce7468bdc91380ecd1b07086fa37964
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jun 2 15:55:59 2015 -0500

    Add more defaults to our defaults file
    
    It's easier logic when we have default values for things.
    
    Change-Id: I2d66dcee68ea95371609640677fd41cca4b0a7cf

commit b431669a6b8210668fa37751bd208b55720ba314
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat May 30 13:02:47 2015 -0400

    Change naming in vendor doc to match vendors.py
    
    Change-Id: I90da039d8b0551b80ec34975480e650885f59d3a

commit f66aad5ad9b3ac3476d591c71546b468ab1407d3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat May 30 13:01:41 2015 -0400

    Add auro to list of known vendors
    
    Change-Id: I48d6cffdcc16bdbf4912da775fb29876007fe8db

commit d503f0594fbdc377c07e4d79ce2cb08f6226aa7d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri May 29 07:39:20 2015 -0400

    Add list of image params needed to disable agents
    
    Some clouds have an in-instance agent to handle things like online
    password resets and other such activities. When building and uploading
    images, it's often advantageous to not install such an agent and instead
    handle such things via config management... but doing so requires data
    to be set on the image itself.
    
    Change-Id: I5b7c9d72fd2d49890bc466d7dd22a3cb9595f670

commit cb54ac54609ec6319e8bfe91adc07a63a4c37d6c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed May 27 23:51:14 2015 -0400

    Update pbr version pins
    
    We've released 1.0, so we should use it. Also, you want at least 0.11.
    Update the hacking pin because we need new flake8 to deal with a
    pkg_resources issue.
    
    Change-Id: I62767ea281df94f67d453a14e9c8500aeb305e97

commit daab3615e2884100f88a797570c1326c8139983c
Author: Gregory Haynes <greg at greghaynes.net>
Date:   Thu May 14 20:01:38 2015 +0000

    Add set_one_cloud method
    
    It is useful for clients to be able to update configuration as well.
    By doing this in shade we can perform things like merging and do some
    testing rather than require clients to do it.
    
    Change-Id: Ia185847c29c10f2cc6838adf962defd80894d0db

commit b16d6d391779cc0a1bb156f0cf4468521f4e5d4e
Author: TerryHowe <terrylhowe at gmail.com>
Date:   Wed May 27 14:34:27 2015 -0600

    Add tests for get_cloud_names
    
    Change-Id: I21b71657d83fb25628f230a48ddca197570a38a9

commit 6daed957c3647efb3d47d7e85065a33a74e39047
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri May 22 11:25:37 2015 -0700

    Add flag to indicate handling of security groups
    
    Security groups can be handled by either nova, neutron, or just
    not be supported. This adds a flag for that. Values will be one
    of 'neutron' (the default), 'nova', or None. None indicates that
    security groups are not supported.
    
    Change-Id: I81a2e10e14e53acc9ffc328771d8ef721e2fd370

commit 88c5e08599d70bde80abea45404ead57d5a17388
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed May 27 22:44:08 2015 -0400

    Don't normalize too deeply
    
    We were normalizing the entire clouds.yaml output - but the keys
    underneath clouds: are names of clouds. We should not touch them.
    
    Instead - normalize the keys of the config dict we return.
    
    Change-Id: I792475d701d31201a9be6d54e066227d97b7ce5f

commit 2580c0aa0112d94606879c8f8864e34602ddaab8
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed May 27 16:09:49 2015 -0400

    Add tests for cloud config comparison
    
    Unit tests are good.
    
    Change-Id: Iaad73898daf6b00839be5a134558d53b95f0dd65

commit 9b98ee0e098cc33eb976a9d5e917d10a0ad7968c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed May 27 15:52:54 2015 -0400

    Add inequality method
    
    One method does not imply the other.
    
    Change-Id: Ifcd39ee188d88d9490f67b5644a941d4d1c6ec38

commit 5c60aad725b0b98008ee467c5130931339c12d48
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed May 27 08:50:32 2015 -0400

    Add an equality method for CloudConfig
    
    In order to track if a config has changed, we need to be able to compare
    the CloudConfig objects for equality.
    
    Change-Id: Icdd9acede81bc5fba60d877194048e24a62c9e5d

commit 5a4f809caf2223121803debab2e6ac52bc943116
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed May 27 08:46:21 2015 -0400

    Capture the filename used for config
    
    Consumers who may want to watch for config file changes would find such
    a thing interesting information.
    
    Change-Id: I66c59c6acdbb930f013d4742d5b3cc7e35a922d4

commit f3eb3d47bc51c5c4dbf8a609c27e99cf9abaca53
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed May 27 08:14:47 2015 -0400

    Normalize all keys down to _ instead of -
    
    It's really common to use the config dict in a **kwargs context.
    Therefore, normalize every key with a - to use _ instead.
    
    Testing for this is done by changing one of the base region_name args
    to be region-name.
    
    Change-Id: Ibd834f7a70cf2285619b5499492858b21635ba57

commit a5dd46af2ede29580450ffad46ad1888cca4a9ac
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed May 27 08:04:39 2015 -0400

    Expose method for getting a list of cloud names
    
    Knowing what cloud names os-client-config found can be useful for
    introspection or investigation.
    
    Change-Id: I77ab133634236d2a7a59ea805a6d650854165030

commit 353875b55e1c527a19a23e9e52a7514e84f6e9c8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed May 27 11:48:18 2015 -0400

    Set metadata headers on object create
    
    It's a common swift deployment pattern for an update to be a server-side
    object copy, which is quite expensive. Rather than doing a second update
    step, just set the headers when we upload the image.
    
    Change-Id: Ic4f5ddddfc403f21eba5972b24a3968ae3ce0a58

commit b51f9f841651710ed088867b9047a7311e39cdea
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed May 27 08:01:40 2015 -0400

    Rename cloud to profile
    
    The cloud parameter was confusing people, especially since it was
    inside of a dict that was named "clouds". profile was suggested as less
    confusing, which seems fine.
    
    Continue processing cloud as a parameter so that we don't break
    anyway, but change the docs to only mention profile.
    
    Change-Id: Idf3d089703985ecc60f23a3c780ddcab914aa678

commit 434d51aac292609162f738eea4611e2a52df8a0f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue May 26 14:49:56 2015 -0400

    Don't pass None as the cloud name
    
    cloud names want to be strings. If there is no cloud name, stringify
    None.
    
    Change-Id: I4fa5bb8ac03baf464cfa00b451627f63ff847fdf

commit 24385adb7a8829885f0172e0cd3607e5dba9a594
Author: Clark Boylan <clark.boylan at gmail.com>
Date:   Tue May 26 16:05:10 2015 -0700

    Always refresh glanceclient for tokens validity
    
    Glanceclient doesn't refresh tokens on its own. Work around this by
    always making a new glanceclient with a potentialy new token if the
    existing token is near expiration. This adds some overhead to our use of
    glance but that is preferable to having glanceclient break because its
    token has expired.
    
    Change-Id: If57531a72eb90ee7bc6e67905ddfd5bda9bb6f1b

commit be3ddcd09b7713d3651020d87a9d3295a007efd8
Author: Clark Boylan <clark.boylan at gmail.com>
Date:   Tue May 26 16:01:07 2015 -0700

    Don't cache keystone tokens as KSC does it for us
    
    We don't need to keep track of what our current valid keystone token is
    becauase keystone client does it for us. Instead defer to
    ksc.session.get_token() to either reuse a valid token or make a new one
    for us if necessary.
    
    Change-Id: I23f90b6292f32ce9cef962bdc641c291e4d2fe4d

commit 39eefc1989ff4e51db8716dd7106967b14fee12a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue May 26 18:05:57 2015 -0400

    Make sure glance image list actually runs in Tasks
    
    images.list() does not actually talk to an API. So putting it in
    TaskManager actually takes an execution slot that it does not need. On
    the other hand, the follow up list expansion DOES talk to the API. So
    put it in the Task, since it's the evil thing.
    
    Change-Id: I7f30ba908552fbecaedd364ecf20b19e096b03d9

commit f57433929a9d51fd7927ed43a639a1d8917695a4
Author: Clint Byrum <clint at fewbar.com>
Date:   Tue May 26 11:48:21 2015 -0700

    Make caching work when cloud name is None
    
    All of the other keys are coerced to strings through some method but a
    cloud name of None with no namespace produces a TypeError because
    sequence 0 is not a string when joined.
    
    Change-Id: I78d0e6daedfe3cf1a0db5f606c21af803450f018

commit 1dc1d25b8e1510e910f62a7ebb981af0298e336c
Author: Clint Byrum <clint at fewbar.com>
Date:   Wed May 13 14:11:59 2015 -0700

    Handle novaclient exception in delete_server wait
    
    When a wait is requested, we poll the nova server with the ID of the
    deleted server until it disappears. We might get an error on that poll,
    and we should wrap that exception to avoid leaking client exceptions.
    
    Change-Id: I6474bf37835728f70210ad29a3757a4488dfe037

commit 1cb9b2094a0a2de0afb5c14a44cabf5e2b181cbe
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun May 10 15:05:09 2015 -0400

    Support PUT in Image v2 API
    
    Not only is there a difference between put and task uploads, there is
    also a difference between v1 put and v2 put. Of course there is.
    
    Co-Authored-By: David Shrewsbury <shrewsbury.dave at gmail.com>
    
    Change-Id: I63f8dd4279cf242da7e76018580479968bc9aaef

commit 88a12a98fbab037b01e95a92bc79f44a9e9cc25d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat May 9 09:43:29 2015 -0400

    Make ironic use the API version system
    
    The other services honor settings for API versions. Make Ironic comply.
    
    Change-Id: I736785896d6d24e18b680d07c82b9922f9d39447

commit 6d654bc7adce911d34216b2038ef0e02cc6dba1c
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri May 15 08:55:48 2015 -0400

    Catch client exceptions during list ops
    
    We were not consistently catching the underlying client exceptions
    from the list operations, and just letting them escape as non-wrapped
    exceptions. This corrects that.
    
    Also, list_images() was trying to catch an OpenStackCloudException
    that was never going to happen from the code in the try block.
    
    Change-Id: Ia863ec2f988c7e90138097be15cd66fc858d1b21

commit ef47a50f72f757006d2af86a230fdb54fc9f19e6
Author: Jeremy Stanley <fungi at yuggoth.org>
Date:   Thu May 14 21:38:19 2015 +0000

    Replace ci.o.o links with docs.o.o/infra
    
    The http://ci.openstack.org/ documentation site has been deprecated,
    replaced by redirects to corresponding paths within
    http://docs.openstack.org/infra/ where other Project Infrastructure
    documentation already resides.
    
    Change-Id: I764b134046e175905f00fb2158e9078698364029

commit 5af9a9d198e0eeb90b2604fcb4b1c9c17f985c70
Author: Clint Byrum <clint at fewbar.com>
Date:   Thu May 14 10:29:51 2015 -0700

    Pass OS_ variables through to functional tests
    
    tox 2.0 isolates tests from environment variables by default now.
    
    Once devstack emits clouds.yaml we can remove this and consume that.
    
    Change-Id: I8e8c769bbdb3f467af0802e1d49f5ebd84663a8f

commit 5d9ab4498d7fedbb73f4c1a038bce95ad9f3c710
Author: Clint Byrum <clint at fewbar.com>
Date:   Wed May 13 17:15:44 2015 -0700

    Improve error message on auth_plugin failure
    
    We should include the error always!
    
    Change-Id: I018f554018c66967588dd7da4176066d4848d552

commit a0a36b849af1a8706872bbf598323dc0725c9bdd
Author: Clint Byrum <clint at fewbar.com>
Date:   Wed May 13 13:59:56 2015 -0700

    Handle novaclient exceptions during delete_server
    
    Currently they are allowed to bubble up without being caught.
    
    Change-Id: I0c5cf52a0315cee4a84ee4b3ff205778f461af2e

commit 569fe40caf7054048d4777883b81934056af841f
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Tue May 5 18:46:29 2015 +0100

    Add floating IP pool resource methods
    
    This change add floating IP pool resource list method.
    floating IP pool is a Nova API read-only resource.
    
    Change-Id: I1c68a696926f45e93050f441404726d92a717900

commit 9bcf25973899238132f1795fede2bb9a8376f5c8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue May 12 18:48:58 2015 -0400

    Don't error on missing certs
    
    We were trying to be too helpful. The underlying libraries do the right
    thing here.
    
    Change-Id: Iba1a87fee10ba5e5f6d7ea1e70632c47fd67275c

commit cbdc7c70801d7a0bd9a6ac51e0b9b6f4dc9e7b8d
Author: Dean Troyer <dtroyer at gmail.com>
Date:   Tue May 12 14:26:27 2015 -0500

    Change overriding defaults to kwarg
    
    Forcibly changing the global defaults isn't the nicest thing to do
    and turns out to be a pain during tests.  Make overriding defaults into
    an arg to OpenStackConfig.__init__().
    
    OSC is the only known user of set_default(), once this is released and
    in global-requirements OSC an be updated then set_default() can be removed.
    
    Change-Id: Iddbc66398e89f06f1d665d7b0ef243bc786c8e36

commit e71bee318c95b05fdf4d5e0102f7da60bde3adb5
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri May 8 15:23:55 2015 -0400

    Stop leaking server objects
    
    We should not be returning raw client objects when creating or
    rebuilding a server.
    
    The usage document is updated to indicate that access to resource
    values via attribute is deprecated, and the examples in the README
    now reflect dict-style access.
    
    Change-Id: Iac38d4c0b29f867cc3cefaccf48c1c3fcd17a3d9

commit 948aa01d0c15c1728deb954b2764682705176c9c
Author: Dean Troyer <dtroyer at gmail.com>
Date:   Mon May 11 17:29:42 2015 -0500

    Add tests for OSC usage
    
    OSC uses os-client-config as an intermediate handler in the
    argparse-to-final-options sequence.
    * Validate the expected usage of the argparse arguement to get_one_cloud().
    
    This turned out to be a problem with the way set_defaults() was implemented
    and has been withdrawn until set_defaults is re-worked as a kwarg to
    OpenStackCloud.__init__()
    * Validate setting the default auth_type value
    
    Change-Id: Idae91962f05d787cecf4a59fac01e9321bc69687

commit 3328cc77da66608a1b9437299ed7d97d5edfd618
Author: Gregory Haynes <greg at greghaynes.net>
Date:   Mon May 11 22:59:09 2015 +0000

    Use fakes instead of mocks for data objects
    
    We hit a nasty infinite recursion issue because we were passing mock's
    to obj_to_dict which was setting the mock's attributes as attributes of
    the returned Bunch objects. Really though, we should just not be turning
    mock objects into Bunch's.
    
    Change-Id: I91a69a87082b30e16545c45ef8705ef4e929d5ca

commit 4b40133e2199e11ccd5dc48c2ad60ac06d056d0a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon May 11 16:24:28 2015 -0400

    Use appdirs for platform-independent locations
    
    Cache, data and config files live rooted in different places across
    different OS's. Use appdirs to find where.
    
    Depends-On: Ic939dea11b7476ec504d2bf65854a0781b1bfb39
    Change-Id: I7338ae1d0442e0c5cc1ec4ae4d619fac319a4a28

commit 9b9e3d0d329b541960c8e28f897718a62a74ddf1
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat May 9 21:10:13 2015 -0400

    Add UnitedStack
    
    With Keystone v3 even!
    
    Change-Id: If9445d99ccfa5f15ca3760bee4da900f302dc698

commit 508c240f851dbfd5aa1d1223910ecb1df6a33b2a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat May 9 09:54:01 2015 -0400

    Expose function to get defaults dict
    
    shade needs sane defaults for some of these too, but it's entirely
    legitimate to use shade without having first created an os_client_config
    object. Adding a function to get a copy of the defaults dict allows it to be
    consumed as a single source or truth for default values.
    
    Change-Id: I616d9492c7e0f53c48519cc8dacf3dfbd0082e36

commit b16c49cfd6a0ee659e4493ef959e0483e93d350a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat May 9 09:50:33 2015 -0400

    Add default versions for trove and ironic
    
    Change-Id: Ib7af38664cfbe75c78c70693117f1193c4beb7e6

commit b9cdb7666580d81b956a045c0d10d697f0963164
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat May 9 09:41:36 2015 -0400

    Sort defaults list for less conflicts
    
    Change-Id: Ic27c50f745a093cc20e3f22f09698f7ae643bc83

commit 2f1e6c13bee31a7d43ef80847d764648afdb9578
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat May 9 08:49:59 2015 -0400

    Only add fall through cloud as a fall through
    
    We only want do define the 'openstack' cloud if there are neither
    environment varaibles nor config files. We need to define it as a place
    to put passed-in-parameters in the case of neither, but we don't want it
    any other time.
    
    The behavior can now be described as:
    - If you have a config file, you will get the clouds listed in it
    - If you have environment variable, you will get a cloud named 'envvars'
    - If you have neither, you will get a cloud named 'defaults'
    
    Change-Id: I6752c1ccecf1ef979b2603246eeaab7da360c8a4

commit 78df129bd21a1c0cdc9e3b61c9b6d508f29f26ae
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed May 6 12:03:42 2015 -0400

    Update images API for get/list/search interface
    
    Images API now conforms to the new search interface. This required
    us to no longer return a dict of images keyed by image ID, but, rather,
    just a list if images.
    
    The 'exclude' argument to get_image() was not being used by either
    nodepool or the Ansible modules, so this was simply removed to make
    that method conform to the standard interface. However, it is still
    used by the Ansible modules in get_image_id(), so that functionality
    is kept intact.
    
    Change-Id: Icf825fcb0471de4acb08b59b93a4dfcd399b4c69

commit 1981431c08f4c9fa0d206157baf55eccca17c1be
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Mon May 11 16:24:16 2015 +0100

    Rewrite extension checking methods
    
    Old implementation didn't work, was using ad-hoc caching and its name
    was too generic. Moreover it exposed 2 methods that should be private
    as Shade aims to hide implementation details.
    
    This change-set gets rid of extension_cache() and has_extension()
    methods and create _nova_extensions() and _has_nova_extension()
    methods.
    Caching is performed using _cache_on_arguments decorator.
    
    Change-Id: I6aa3ed5a306159ba477d15810138b3a4fb5a3649

commit 731cfab0e28fb0e1090708fd0244d13d376c3018
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue May 5 15:49:28 2015 -0400

    Update server API for get/list/search interface
    
    Support the new search interface, and transform the server objects
    to Bunch objects.
    
    Change-Id: Ic8ea3e79863e11b4a00f104557966c81e2f06388

commit 33634dda7219f334c5545cb93673311c8bc99130
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu May 7 18:50:28 2015 -0400

    Add flag to indicate where floating ips come from
    
    One of the things that's not possible to discover is where floating ips
    come from. You'd think that looking for a neutron endpoint would do it,
    but you'd be oh-so-wrong.
    
    Change-Id: I10a0c6f37afb409af0078cede3eac2eaa0ff4f04

commit f6d08765cd8ceb071e99453d3f17faabb5878431
Author: Gregory Haynes <greg at greghaynes.net>
Date:   Thu May 7 17:58:54 2015 +0000

    get_one_cloud should use auth merge
    
    Currently, get_one_cloud does not merge the auth dictionary, which means
    passing any auth value overrides all auth: values in clouds.yaml.
    
    Change-Id: I22c33648e32cc7ce8fc163433b7c72912c28beb9

commit dc8d21db11da1c80ad13f5626bbea63fdd649628
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue May 5 14:27:40 2015 -0600

    Also accept .yml as a suffix
    
    The ansible world uses .yml suffixes, which brings people to try to use
    that suffix on clouds.yaml files. It's easy enough to accept it as a
    possibility.
    
    Change-Id: Iba05eab9cf4406833afafe8143794461b656b548

commit cecbc2a4cf51064c462dd787f30bcc3a17e49769
Author: Clint Byrum <clint at fewbar.com>
Date:   Wed May 6 10:24:23 2015 -0700

    Fix delete_server when wait=True
    
    Functional tests were running with wait=False, which hid that we
    are not handling the expected NotFound error after delete. So we
    refactor delete_server to use get_server and be much simpler. Note that
    we call the ServerGet task directly since we already have the ID that we
    want to make sure we deleted, no need for listing at that point.
    
    Adding unit test coverage to help avoid these problems in the future as
    well.
    
    Change-Id: Ib78aef75a5ad3f75bc8ee2b81078d30cc2fc76db

commit 2e3498d76a09c7d3873944609e09d34c0a347b02
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue May 5 14:07:12 2015 -0400

    Return Bunch objects instead of plain dicts
    
    Bunch objects are dot-accessible dictionaries, so we can say
    server.name or server['name'] equally.
    
    Change-Id: I792c9792116824c4f8f840f961eaddc0b2060e6f

commit 760d996829979e4d2ba5c9d389961e6e375f15e9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 30 02:45:28 2015 +0200

    Switch tasks vs put on a boolean config flag
    
    Rackspace's requirement for task-create is a choice that is orthogonal
    to the v2 choice. Make that decision point clear. Also, rename the
    hidden methods just so that we're clear on what's happening.
    
    Update to a more recent version of os-client-config, since that also has
    support for the task-create flag.
    
    Depends-On: I2cdcfe302a73ebfa7f739399c1eeb3bc9f96ab3c
    Change-Id: I72bb5992eeb116f1338a090d997893b9ae93050c

commit f495ebd73f45d8782198484368472ff00d35728a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun May 3 08:40:48 2015 -0400

    Enhance the OperatorCloud constructor
    
    Set the default for endpoint_type to 'admin' and expand the docstring a
    smidge.
    
    Change-Id: Iab8bafcc497bf5d4a221581158371712db5b736b

commit f2a86ce4fccdb193117d61bcac973acbe4d8a5ca
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Mon Apr 27 18:11:32 2015 -0400

    Convert node_set_provision_state to task
    
    Changed node_set_provision_state to utilize a task instead of a
    direct ironicclient library API call.
    
    Additionally added basic unit tests for activate_node,
    deactivate_node, and node_set_provision_state.
    
    Change-Id: I036f1e87310e48727ef4e402e475c77cd014e6b1

commit 545d3f0f36b372acd895b0fcba9b3bbad1f5b6bd
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Mon Apr 27 16:30:31 2015 -0400

    Update recent Ironic exceptions
    
    Update of the recent changes landed for Ironic so that the returned
    exception messages are converted to a string like the other returned
    exception messages in Shade.
    
    Change-Id: I774b85692ae9adb5fa4202d1c0e3109dcb2fddf4

commit f62cf08348d27b64a7911ce47b5f709642fa2301
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Mon Apr 27 15:58:54 2015 -0400

    Enhance error message in update_machine
    
    Updated error messages through the use of try/except blocks in
    update_machine in order to help a user identify what the possible
    cause of a failure could be without studying the code.
    
    Change-Id: I04db479ce1b25aadd710cde5d90fe71fa528869b

commit 912af15b522423ee8f91d8b8861c4d4a090ef793
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat May 2 19:27:22 2015 -0400

    Remove crufty lines from README
    
    Change-Id: Ibf36a67503aab5f3bcd3ba535da5f9f54ce9c28d

commit 08f330d98cd74871599e1ac172aa3ba22f5e4b58
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Thu Apr 30 11:06:41 2015 +0100

    Rename get_endpoint() to get_session_endpoint()
    
    In a subsequent change, we will add Keystone endpoint methods.
    In that change, get_endpoint() would return an endpoint by id, as done
    by other get_<resource>() methods.
    This change renames get_endpoint() in OpenStackCloud with a more
    appropriate name, as it returns the current session endpoints.
    
    Change-Id: Ie91f97457fb164255d2adf4e84c1b1f729e797b0

commit ace6d92a77066a04c0ff59cce5ad95ee6906d2d1
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat May 2 18:16:40 2015 -0400

    Update vendor support to reflect v2 non-task
    
    Vexxhost and RunAbove both support v2 of glance, but do not require
    the task interface. Update the erroneous information. Also, there are
    two additional regions for Rackspace that we did not list. We don't
    list the Rackspace LON region because it does not work like the others
    and we do not know how to support it.
    
    Change-Id: Ib155d00d1d6bf7b2e5bcf4b868c268561e198611

commit a417f3882f79ade8565890619e72c5f5b6670215
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Apr 26 12:35:39 2015 -0400

    Make warlock filtering match dict filtering
    
    For obj_to_dict, we filter out keys that start with _ and values that
    are not normal values. Do the same for our warlock conversion.
    
    Change-Id: Idbf4303c1e4151494d1ea814be6ca5f86e76b16d

commit 4d80851fae66cb18db36b85007f19f9dbaa0aab7
Author: Davide Guerri <davide.guerri at gmail.com>
Date:   Tue Apr 28 10:30:25 2015 +0100

    Fix exception re-raise during task execution for py34
    
    This is the code fragment from six (executed when the interpreter is
    python 3):
    
        def reraise(tp, value, tb=None):
            if value is None:
                value = tp()
            if value.__traceback__ is not tb:
                raise value.with_traceback(tb)
            raise value
    
    We want `raise value` or `raise value.with_traceback(tb)` to be
    executed as we are invoking six.reraise with a class instance.
    
    Change-Id: Ic0c7e14cecb1cbdcb8cae87047e20514c4d38301

commit 59848071e41c1fec76928d8285223b5c30c4ce9a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Apr 26 10:47:57 2015 -0400

    Add more tests for server metadata processing
    
    Make sure that each of the things we do in get_hostvars_for_server is
    checked as working. In walking through it, found a bug in image ids from
    boot-from-volume servers.
    
    Change-Id: If71d2cd114c5b5406a39dbb04c96b61fc7193399

commit e1c2cd973b08e4448f0711019650eaad7f180ca6
Author: Joshua Harlow <harlowja at yahoo-inc.com>
Date:   Wed Apr 22 13:03:47 2015 -0700

    Add thread sync points to Task
    
    Although the default behavior of Task is to return immediately in shade,
    the reason it's abstracted at all is to facilitate multi-threaded
    rate-limited TaskManagers such as the one found in nodepool. In order
    for those to work, we kind of need the wait conditions to actual do
    something.
    
    Change-Id: Icce9729aa2f8f31931dd9d3723d9d5d758436fa9

commit be87e99e5daa47d3935c488655fb099c30d5831a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Apr 24 11:21:09 2015 -0400

    Add early service fail and active check method
    
    To make things clearer - do an active check at each client instantiation
    to make sure that the service exists in the catalog so that we can throw
    a clear error. Also, add a method that can be used for switching on
    things like "if neutron: neutron-floating-ips: else: nova-floating-ips"
    that doesn't have to do a REST roundtrip to find the failure.
    
    Change-Id: I43b32fff56e09f31bd6d6845b3bf9b5414632651

commit 896f844948c06ce26a5291eae1afa8b3c87cd0ca
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Apr 24 10:31:03 2015 -0400

    Add a method for getting an endpoint
    
    There are a couple of different things you need to get the right
    endpoint. We know them all, but the logic is spread out. Consolidate.
    Also, put the silly keystone-specific logic there, rather than in
    keystone_client.
    
    Change-Id: Ide66c62fe0babddb1530b4f3472a6aeb9713917a

commit 2c4d909111f1ffe49456eafd377e5407d0b7cac0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Apr 22 20:00:05 2015 -0400

    Raise a shade exception on broken volumes
    
    Some clouds don't have volumes and bomb out here, which is a bad place
    to bomb out. A later patch will add an active check for service
    existence, but we still should catch and throw here so that we're not
    leaking python-*client exceptions.
    
    Change-Id: I1f768dcd6ad6f54fb1b5638e9486653ee07965ef

commit 3b64ee66e4b56d81ea167afd7bb4babfe2d39c02
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Apr 24 18:32:15 2015 -0400

    Split exceptions into their own file
    
    We were getting to the point where we were making some circular depends.
    Clear that up by splitting the exceptions into their own file.
    
    We're importing * to keep the external interface in the ansible modules.
    
    Change-Id: I1d804377c3cd4eebcc94624902f9e5ec6ebf9321

commit abdb5ca0e78cf017b1353c5e2c39d76b237e6cf2
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Apr 30 14:58:57 2015 -0400

    Add minor OperatorCloud documentation
    
    The documentation for the OperatorCloud methods with docstrings will not
    be generated unless the class itself has a docstring. This adds a simple
    docstring just to get the documentation generated.
    
    Also adds a link to the CONTRIBUTING.rst doc pointing to the project
    documentation.
    
    Change-Id: I535289a938f68895c19b5e226d2e2302b566d00d

commit 87000d9f768f5ca95fea2727ea2ca0f32865d923
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Apr 30 09:36:38 2015 -0400

    Allow for int or string ID comparisons
    
    Some IDs are clearly strings (e.g., UUIDs) and some look like integers
    (e.g., flavor ID of '100'). Let's make it easy for a user by allowing
    for string or int. For example:
    
        flavor = cloud.get_flavor(100)
    
    or
    
        flavor = cloud.get_flavor('100')
    
    The former example using the int doesn't work, but this fixes that.
    
    Change-Id: If201352a9917d7c8fba7b386b38fced9949f00a9

commit 3f8431a9de68b9e2fa24237f51d5497ca5da0295
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 30 02:26:34 2015 +0200

    Add flag to trigger task interface for rackspace
    
    It turns out that the task interface for upload is not implied by v2
    glance api. Add a boolean flag that can be consumed elsewhere.
    
    Change-Id: I2cdcfe302a73ebfa7f739399c1eeb3bc9f96ab3c

commit 7468d1150c55c8cf277605d6e2cac22854751061
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Wed Apr 29 16:19:43 2015 -0400

    Change ironic maintenance method to align with power method
    
    Upon obtaining a better understanding of the Ironicclient and Ironic
    API interaction, along with what is actually returned, which should
    be None, it makes sense to have set_machine_maintenance_state match
    set_power_state in behavior.
    
    Change-Id: I2899f290c0521e35d010dc9246b590ca9e949214

commit 128a62f2fb43e0a9def19e9d64f20f0d666c16e9
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Thu Apr 9 22:19:08 2015 -0400

    Add Ironic machine power state pass-through
    
    Adding machine power state passthrough in the form of
    a _set_machine_power_state method, along with wrapper methods
    set_machine_power_on, set_machine_power_off and
    set_machine_power_reboot.
    
    Tests to utilize the on, off, and reboot methods have been
    which all invoke the _set_machine_power_state method.
    
    Change-Id: I4e1ce863d5a93d81ec90ae1c244cbfef68912916

commit a540167587ccbbea16227a66170ac1d3ad68bfcb
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Apr 29 15:02:59 2015 -0400

    Update secgroup API for new get/list/search API
    
    Security group API now conforms to the new get/list/search
    interface. Instead of a Nova object being returned, we now return
    a dict (or list of dicts).
    
    Change-Id: I0b84ef6065101948ffb2a0f56235bda7a071ad17

commit aa092bafd9c8ab1b19a72bf01a9a5f63ab26ee6b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Apr 26 09:21:17 2015 -0400

    Fix functional tests to run against live clouds
    
    It's possible a developer may have a test account on a live cloud,
    rather than a devstack. To support this, we should not make assumptions
    about content put into a cloud by devstack, but should request things we
    want - such as "the smallest flavor you have".
    
    Keep the attempt to use the cirros image to continue to support
    devstack, but fall back to the first ubuntu image found, since that's
    the most likely to be cached on compute hosts on public clouds.
    
    Change-Id: I6f0336d02cf924b3657fdc42bd151d11d5e3a6be

commit 930a8b1a7c980183df5469627a734033ca39a444
Author: Clint Byrum <clint at fewbar.com>
Date:   Tue Apr 28 15:27:27 2015 -0700

    Add functional tests for create_image
    
    Change-Id: Iadb70ca764fbc2c8102a988d6e03cf623b6df48d

commit 0a3cd476437e08717f3498ff93b905198407a666
Author: Clint Byrum <clint at fewbar.com>
Date:   Fri Apr 24 16:47:42 2015 -0700

    Do not cache unsteady state images
    
    States that are expected to change should not be cached, as this will
    just prolong any polling loops to detect the changes. This also makes
    for less invalidations as we can depend on the fact that the cache will
    only ever contain steady states.
    
    Change-Id: Ie241db6311540725d24dcc6328f6f965820baf1b

commit 41ef6412909516ed5f12b2c8935b5acfebad761c
Author: Clint Byrum <clint at fewbar.com>
Date:   Tue Apr 21 11:06:20 2015 -0700

    Add tests and invalidation for glance v2 upload
    
    This coverage exposed python3 incompatibilities, and also revealed that
    some more caches needed invalidating both before and after update.
    
    Change-Id: I0c9a2a435efae0e1b1ef016c46ec54f7278f97a5

commit 59041cc685f9c2e48a492f9dadaff8ee5e3ed5c9
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Apr 28 13:21:35 2015 -0400

    Allow complex filtering with embedded dicts
    
    Allow filtering of searchable data to be done with multiple levels
    of dict data, rather than only simple types (string, int, etc).
    Two tests are added for testing a dict within the filtering dict,
    and a dict within a dict within the filtering dict (to test the
    recursive aspect).
    
    Change-Id: I17562bfe6bf5cb6a0dc48c4a693fe755200eee08

commit 788dd1be83b0d6622f96f1562934d767db27865a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Apr 24 12:09:33 2015 -0400

    Call super in OpenStackCloudException
    
    Python3 does not have a message attribute. Also, we should pass all of
    the parameters correctly.
    
    Change-Id: I31168bf9e5152d786ce9c0369316e4a23e0f3d0c

commit 4d4d555e9686f31c741c4cd8b0a3c12a949dad4d
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Thu Apr 9 16:50:21 2015 -0400

    Add Ironic maintenance state pass-through
    
    Adding methods to Shade to support controlling the node maintenance
    state in Ironic via new methods set_machine_maintenace_state and
    remove_machine_from_maintenance.
    
    Basic tests added for both methods.
    
    Change-Id: I50e7f55199992228c0417c98d18a6e63588cd03d

commit 6ac348dd13760d23b1d099aca6973f3333dd98f2
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Wed Apr 15 13:16:30 2015 -0400

    Add update_machine method
    
    Additional method which leverages jsonpatch to appropriately update
    a machine's configuration as-necessary.
    
    Change-Id: I401829be21484519eb4880e7108c7693c9501df8

commit 34c1ad9a6a73dacace1a33748037b4f81a04dc54
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Apr 24 12:08:13 2015 -0400

    Replace e.message with str(e)
    
    Exception does not have a message field in python 3.
    
    Change-Id: Ic6c6c1dd519cf30db659bac73a3210e5bf0f0933

commit 746a1a84d750574cbb8dc603ad90cd546bf86a67
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Apr 23 14:10:35 2015 -0400

    Update flavor API for new get/list/search API
    
    The flavor API methods now support the get/list/search style interface.
    This required changing the format of the flavor list from a list of
    {flavor_id: flavor_obj} dicts to a list of converted flavor dicts.
    
    Change-Id: I593493c16f441470e9f210592c4baf2fa81664b5

commit cd2a8a6029af2e47d65b747db8f186a58ae28cd3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Apr 24 09:00:42 2015 -0400

    Add a docstring to the Task class
    
    The purpose of the Task class was a bit vague, so let's add a docstring.
    
    Change-Id: I74b65a4094f424f262d07c990e2f7ff04471664d

commit 3f1c99c032ca026dd85d726e78c56c5116ad029e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 21 10:43:26 2015 -0400

    Remove REST links from inventory metadata
    
    In the server_vars / meta / inventory context, the links values have no
    use, but they to make the data structure more chatty. Remove them so
    that examining the data is more betterer.
    
    Change-Id: Ib84e36a917b3511d59ff2b7aa6ad69712983665a

commit 8908ebd07a18697d9bae83d46e4a2a4600c29237
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Apr 22 19:39:41 2015 -0400

    Have get_image_name return an image_name
    
    Turns out an id is not a name.
    
    Change-Id: I5f28a52d2554ed29c9db05debbe5a0a3a7b52567

commit 3b72d6f4a7bfa97ed6ed85b54dced5571e6e8518
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Apr 23 10:47:54 2015 -0400

    Fix get_hostvars_from_server for volume API update
    
    The meta.get_hostvars_from_server() method was broken with the
    latest changes to the volume APIs that now return dict instead
    of an object. Converting it to a dict is no longer necessary.
    
    Change-Id: Ic5d501cc230a16da1ed2659e62da34c66ae37e81

commit e351f5090251ae63b771f7949a0455c026448ac7
Author: Clint Byrum <clint at fewbar.com>
Date:   Mon Apr 20 20:27:51 2015 -0700

    Add test for create_image with glance v1
    
    The path is different for v1 and v2 and so they will need completely
    separate tests.
    
    Change-Id: If258cb811ebc1a9210e49c97d33a5ebdf15932e1

commit 3e3f52528262fa6f29b8922a7bbc4730f5cc6fb7
Author: Clint Byrum <clint at fewbar.com>
Date:   Mon Apr 20 20:22:10 2015 -0700

    Explicitly request cloud name in test_caching
    
    It's not entirely clear why, but there is some confusing interaction
    going on with tests that causes tests to fail when run individually
    without this change.
    
    Change-Id: Ifc0b71656c87eacf3b8a37edafda00a7f3978b48

commit 10e123f4d56e34e4c187f6dbd24c54a9a05b689d
Author: Clint Byrum <clint at fewbar.com>
Date:   Thu Apr 16 23:06:12 2015 -0700

    Add test for caching in list_images
    
    Change-Id: I7f88854b822ad560bb0a2a6aae41c32a945f5258

commit 960537738180c7df482882d35879230ae8e306cf
Author: Clint Byrum <clint at fewbar.com>
Date:   Thu Apr 16 22:52:22 2015 -0700

    Test flavor cache and add invalidation
    
    Adding get_flavor_cache call so that the dogpile.cache decorator can
    provide a magic invalidate method.
    
    Change-Id: If3523430b9a9b816f72ef3aaf9100a2db17f09ad

commit 2deadb0c1b7508a8e8a9cefd26cb3847a4c92b45
Author: Clint Byrum <clint at fewbar.com>
Date:   Thu Apr 16 22:36:07 2015 -0700

    Fix major update_user issues
    
    update_user didn't actually work at all, and needed porting to the
    tasks system. Also it needs to invalidate the user cache to make sure
    the latest list is requested.
    
    Note that this breaks backward compatibility because defaulting the
    enabled argument to True would mean we are unable to tell if the user
    passed True, or left it blank. But the old method was entirely broken
    anyway so we don't care at all.
    
    Change-Id: Ief38f75b9b715cf149ada599c28cea03f99c8174

commit 31d07b49f300e385a42ca50c3ea6394eef8f2115
Author: Clint Byrum <clint at fewbar.com>
Date:   Thu Apr 16 16:26:39 2015 -0700

    create_user should return the user created
    
    Otherwise callers won't know what ID their new user was assigned.
    
    Change-Id: I3949b92aed7e1f262be43772846fc493e60f5462

commit 457db089ca9857ae995f25c677dcacc75d742f80
Author: Clint Byrum <clint at fewbar.com>
Date:   Tue Apr 14 16:12:30 2015 -0700

    Test that deleting user invalidates user cache
    
    In writing tests for this, a bug was found that there was no UserDelete
    task, and the old internal API no longer functions. So that bit of code
    was refactored to have a better chance at working in the real world.
    
    Change-Id: I06fad3133bb0c5f9bd23318e32eb1c538cc27c24

commit cb6673163dbe297c82b2bf2db2d96f4df3306948
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Apr 21 08:18:16 2015 -0400

    Use new getters in update_subnet and update_router
    
    Take advantage of the new style of object getters that will raise
    an exception on duplicates for us.
    
    Change-Id: I89799eeebef60adf92ffbe16b16cf6a798ecac83

commit c72204f6d1ac701148f3de3cb94d90d732aa2e88
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Apr 22 11:21:12 2015 -0400

    Update volume API for new getters and dict retval
    
    This switches the volume API to use the new get/list/search style.
    Doing this necessitated that we fix another issue with the volume
    API and NOT return the volume object as received from cinder, but
    rather convert it to a dict using meta.obj_to_dict.
    
    Change-Id: I81ba97d2b4fc9465e1b3538e97f5ceb9bef4f7e8

commit f351d4f65d1db65959fa4e171979254002fbb501
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Apr 17 15:00:53 2015 -0400

    Search methods for networks, subnets and routers
    
    Add get/list/search methods for network, subnet, and router
    objects.
    
    Change-Id: I3179cb88ec8a238165d629ddd23a619aae112879

commit c408583570ed9d5d823ff7766d5a2c73701a6f45
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Tue Apr 7 14:16:04 2015 -0400

    Update unregister_machine to use tasks
    
    Updated the unregister_machine to utilize tasks for the main
    actions taken by the module.
    
    Additionally, added a docstring to the method and a basic unit.
    
    Change-Id: I738d8573b0c5f7ae693a73326ffa517d401a8c53

commit a591e3e732e9801d72aa1b697ddcfb4771703f16
Author: Clint Byrum <clint at fewbar.com>
Date:   Tue Apr 14 15:49:58 2015 -0700

    Invalidate user cache on user create
    
    Change-Id: Iadca03e63c97d01d149c1c4940a7abf604c7a293

commit 9dfa4b8f946301a5742ba4fb46c5659b509cb7f5
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Tue Apr 7 12:59:08 2015 -0400

    Update register_machine to use tasks
    
    Updated register_machine to utilize tasks instead of direct calls to
    the ironicclient library which resulted in additional tasks beyond
    the initial MachineCreate task. Added MachinePortCreate along with
    MachinePortDelete and MachineDelete as the register_machine includes
    rollback functionality if port creation fails.
    
    Additionally, as part of this, the failure handling logic has been
    cleaned up in order to help ensure that all ports and nodes are
    completely deleted.
    
    Basic tests added to validate methods execute as expected.
    
    Change-Id: Ide208ce5445bbc50c0a9bd6476bf7fe306658831

commit 8ebba2af62f7b917427fa1233ad81314f4e47102
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Thu Apr 9 14:16:08 2015 -0400

    Add test of OperatorCloud auth_type=None
    
    Ironic features a noauth mode which is intended for use in isolated
    trusted environments.  As this is not a normal use case for shade,
    it is an increadibly important item to have a test for.
    
    Change-Id: If86b9df238982d912105fb08dcd59c9c85b7de4a

commit 3f6f25c100b5cad760c72c3c428d39859e6ab415
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Apr 15 17:27:14 2015 +0000

    Allow name or ID for update_router()
    
    Even though the router name is an updatable value, we should still
    allow specifying the name of the router to update along with the ID.
    This implies that we need to error if a name is used and multiple
    matches are found, since name is not a unique attribute.
    
    Change-Id: I17535ad363f0ff19fdc0fdde9fa472c7ce263b23

commit 9ac0ef59c20e1f0a526e2fa3a528cb0a1670de4e
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Apr 15 17:11:38 2015 +0000

    Allow name or ID for update_subnet()
    
    Even though the subnet name is an updatable value, we should still
    allow specifying the name of the subnet to update along with the ID.
    This implies that we need to error if a name is used and multiple
    matches are found, since name is not a unique attribute.
    
    Change-Id: Ie57900a3a31f470c5e411e0c9c141ede8b95e0b2

commit fbe5fd06749201f0b80ab75fe0f4f71439df6b25
Author: Clint Byrum <clint at fewbar.com>
Date:   Tue Apr 14 15:38:15 2015 -0700

    Add test for user_cache
    
    Since we intend to invalidate the user_cache, and properties and caching
    decorators don't play nicely, we split this into the property and a
    getter which can be called explicitly.
    
    Note that this test also uncovered a bug in user_cache, which was that
    it called a non-existent task.
    
    Change-Id: Ica04a82242cf4724155f99de5b8d3d9c356a8ec4

commit 0fd99acb5b0ef0461330daab065edef0449122e9
Author: Clint Byrum <clint at fewbar.com>
Date:   Mon Apr 13 15:59:59 2015 -0700

    MonkeyPatch time.sleep in unit tests to avoid wait
    
    There's no need to wait real world seconds when there are no real
    world servers at the other end of these API calls. We still do wait a
    little bit of time, in case there is some reliance on actually having
    called the real time.sleep, but this should feed up test running in
    a loop quite a bit.
    
    Also lowering timeout on rebuild_server as it unnecessarily sleeps
    for 1 second.
    
    Change-Id: Ic26e90af12aedbedfbe0cc468332b921516a8409

commit 94e392c822ac92ea576ce763fbf36fba677344e2
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Fri Apr 3 16:49:41 2015 -0400

    Add patch_machine method and operator unit test substrate
    
    Add method to allow machine configuration to be patched via shade in
    addition to a basic unit test and the requisite substrate for unit
    testing OperatorCloud methods.
    
    Change-Id: I1095be60748186c876d6267768f8353b67200eb1

commit 55665717dab19c59b358a5f05c95048ba37f6071
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Tue Apr 14 17:01:32 2015 -0400

    Wrap ironicclient methods that leak objects
    
    Wrap calls to python-ironicclient methods that leak objects instead
    of dictionaries, so dictionaries are only returned moving forward.
    
    Change-Id: I6483ac8c0c316d1a4682e6327d7d5c90498c65f3

commit 3cfc64cf3c3da42da73e481a44023942880b8f18
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Wed Apr 15 09:29:20 2015 -0400

    Basic test for meta method obj_list_to_dict
    
    Adding a basic test that exercises obj_list_to_dict and ultimately
    the obj_to_dict method
    
    Change-Id: I06ca3528c4e9f7c2eaccab22d17c8510f5f9f40e

commit fdccd14befbb79b4563dd3f1328c4024fb53f37e
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Fri Apr 3 14:07:17 2015 -0400

    Change Ironic node lookups to support names
    
    Ironic's API has been changed to support a node being
    looked up by name or UUID in the form of a general ID.
    
    Added a get_machine method and re-mapped the
    pre-existing get_machine_by_uuid method to it.
    
    Incremented the python-ironicclient requirements version as
    required to support name based ID lookups.
    
    Change-Id: I765de8c1b0059a6667f66cd4e0695ddf08d96842

commit c28877d490a3e1c516ef3311022e10ff4631c18d
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Tue Apr 14 19:21:35 2015 -0400

    Add meta method obj_list_to_dict
    
    Turns out some data structures returned are actually lists of objects
    and we need a method to facilitate the conversion of these data structures.
    
    Change-Id: Icaea889051b75034bb48a138a2cb34c86e4a0453

commit b55de0e1637b1e9f6e424b070d13577af42d7fc6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 14 11:23:49 2015 -0400

    Document vendor support information
    
    In the future, I'd like for this doc to be generated from the vendors.py
    file, but for now, this is great.
    
    Change-Id: Ifd0c8da5da46ba156c789f05398abcfa689f4f01

commit b7f38ff66144320116cb5ddf3aa39700dad42209
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 14 10:26:14 2015 -0400

    Reset cache default to 0
    
    None breaks the ansible inventory script.
    
    Change-Id: Iac30cdcce3a51910e0b373521263b239f7478a15

commit ebf2dbaf7cc4ec924a0a7dc1e452f33e16ef8f2c
Author: Clint Byrum <clint at fewbar.com>
Date:   Fri Apr 10 16:33:00 2015 -0700

    Add test for invalidation after delete
    
    We need to invalidate the volume list every time we add or delete.
    
    Change-Id: I243548dc3256260ae09017fd0eef4cbe673a4901

commit a6cd1a9ae32889b3eed3077f28c82ac80b7168dc
Author: Clint Byrum <clint at fewbar.com>
Date:   Fri Apr 10 16:27:14 2015 -0700

    Deprecate use of cache in list_volumes
    
    The more proactive approach is to invalidate rather than use
    cache=False. In all cases, we are about to update, or have just updated,
    the item that is in the cache. This will provide more liveness for other
    cache users with a shared cache, and will provide less skew between our
    own queries to the cache versus reality.
    
    Change-Id: I5a41a3d21fd451f5432daa4e268b57328a9ad90f

commit 36348231abb8576511db72fb32ca97592ddaa1db
Author: Clint Byrum <clint at fewbar.com>
Date:   Fri Apr 10 15:43:56 2015 -0700

    Invalidate volume list cache when creating
    
    We will handle other state-changing calls in subsequent patches.
    
    Change-Id: Iceff1df4dbb0b5fac87326114db9a13be2ccc267

commit 0e3e496a01d861fe16e5b50cb9586d9534f19c6e
Author: Clint Byrum <clint at fewbar.com>
Date:   Mon Apr 13 15:49:23 2015 -0700

    Make cache key generator ignore cache argument
    
    This argument pollutes the cache keys with cache:True, which is not
    actually relevant to the data requested, and makes invalidation
    complicated.
    
    Change-Id: Idd5e20de0fff6d540fadc79a5f30c52ff0e29136

commit 05ba6a5535ef700fa9a020d63922e16c12814bda
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Apr 8 17:57:10 2015 +0000

    Add get_subnet() method
    
    Although not currently used directly within shade, users of the
    shade library may need to get a subnet by name or ID.
    
    Change-Id: I6423bb32fd7e29c1d533fa3d8a6d1ad3fab0616b

commit f2e943e178e9d46ff911f224df8954a33a15a69c
Author: TerryHowe <terrylhowe at gmail.com>
Date:   Mon Apr 13 12:45:44 2015 -0600

    add .venv to gitignore
    
    Change-Id: I36856a31f7a68280f9b787e5ab9ce5ac3aa0dc60

commit 825e5b5e83385184a8472113d0d528aa770c3e95
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Apr 13 14:02:32 2015 -0400

    Move region_names out of auth dict
    
    region_name is not an auth parameter - this is just simply an error.
    
    Change-Id: I5cc3847932d7c51288f451b4532b71f95d8c823d

commit ce6502270fb863e31c64e8e029993e9239c0d46a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Apr 13 13:04:44 2015 -0400

    Add runabove to vendors
    
    Change-Id: I319365aeb3a5a00498b37128c5c9fbaf018d88f4

commit 5bc39aea20b30df03f3ceffda697be7ece9355d3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Apr 13 10:00:58 2015 -0400

    Add image information to vexxhost account
    
    Change-Id: I0e39c2a9828fb4fa73403158c3e58fb346ac9a10

commit d42de63d227c58279ded786b2e09a62426ab3832
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Apr 3 14:30:11 2015 +0000

    Add API method update_subnet()
    
    Add a method to update a subnet and unit tests for that.
    
    Also corrects the message in the exception raised from
    create_subnet().
    
    Change-Id: I1ad6c3bf7787ef7e26805a8fa6ce7f55f26924d3

commit 5ec510440933f2c1014c05b9bda15a5cf03ccca2
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Apr 3 12:49:02 2015 +0000

    Add API method delete_subnet()
    
    Add a method to delete a subnet and unit tests for that.
    
    Change-Id: Ia2901ccaf9a295ff61b525c989199ec75a8cb50e

commit c5d350c03d062af5fd4b9277accab4f4a0b64504
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Thu Apr 2 17:39:25 2015 +0000

    Add API method create_subnet()
    
    Add a method to create a subnet and associated unit tests.
    
    Methods for deleting and updating subnets will be added separately
    because large code reviews suck.
    
    Change-Id: Id2031a129a9204f07698f1912b7e743aff5d69f1

commit 6ec480162aac7ffe4d905a89836247077c352806
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Apr 13 10:00:58 2015 -0400

    Add vexxhost
    
    vexxhost has a public cloud - we should list them in our vendors file.
    
    Change-Id: Icf1276d59dadf50cabca3a7c2540121fb1cf7057

commit db39e9831ea600c8f7f02a5ddec2e0b8b5924de2
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Apr 11 09:16:56 2015 -0400

    Add DreamCompute to vendors list
    
    Change-Id: I4d81e221c8105d796dcd29fcd7628738486e4b00

commit ffafb52fa7d41e7e0d4d3a44588d94dcc8dfa200
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Apr 11 11:55:52 2015 -0400

    Allow overriding envvars as the name of the cloud
    
    For environment variables created cloud objects, it's possible someone
    may not want it to be called envvars. I mean, let's be honest, I cannot
    imagine why this would be important ... but people get emotional about
    things. Let them name their cloud "bunnyrabbit" because that makes
    people happy.
    
    Change-Id: I0c232de7d93080ea632fb66a82b9e6d3e925c901

commit 7e682d3bf097a006ec43c16ecc96664bf4b29294
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Apr 11 08:27:05 2015 -0400

    Put env vars into their own cloud config
    
    The semantics around mixing environment variables and config file values
    are confusing at best and no reasonable usecase has been expressed as to
    why doing so is desirable.
    
    Move the logic around environment variable processing to always provide
    an "envvars" cloud if any envvars are set. The cloud will only exist in
    the presence of OS_ env vars.
    
    get_one_cloud() will default to returning the envvars cloud if it
    exists.
    
    Change-Id: I6c3a54997c3278feedfdf93cc4d1e74b6235700a
    Closes-Bug: #1439927

commit 2ac9258563a969283472fbde053850eccbc2fbf2
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Apr 11 11:32:33 2015 -0400

    Add keystoneclient to test-requirements
    
    The auth parameter name validation requires keystoneclient and can't be
    tested if it's not there.
    
    While we're at it - update the current requirements to be inline with
    global requirements.
    
    Change-Id: I6da62476f3851670545143184f9f29479f1caaca

commit 52e676644415a7dd14629b3bdd467d9139850aa6
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Apr 11 08:06:29 2015 -0400

    Actually put some content into our sphinx docs
    
    The README is pretty good - get it into the main index page for the
    sphinx docs so that we can publish them.
    
    Partial-Bug: #1440814
    Change-Id: Ic72b81964cab1f939f08b957dec3be969c47a32e

commit 557f488a2d16b9a5ea8f242e0dc7d66a7d5ec85f
Author: Clint Byrum <clint at fewbar.com>
Date:   Fri Apr 10 15:29:39 2015 -0700

    Unsteady state in volume list should prevent cache
    
    Volumes that are in states that imply a state change should cause us to
    not cache. That way we are never spinning on a cache knowing a new state
    is impending. This is only the first half of the change that is needed.
    We also need to invalidate the volume list cache if we change anything.
    
    Note that the odd structure for the should_cache_fn is imposed on us by
    dogpile.cache's decorator function, which requires that things be fully
    defined at parse time.
    
    Change-Id: I8a34e3d04edea6c1b8ed636609102d7d0b7c86d8

commit bd78c48d1581d7faaec5cee70039260ec3449eb6
Author: Clint Byrum <clint at fewbar.com>
Date:   Fri Apr 10 14:53:31 2015 -0700

    Test volume list caching
    
    This behavior actually causes problems, but we want to make sure it is
    covered before changing behaviors.
    
    Change-Id: I5c7558a4b036d6b177bb01e8fb0582d936528c61

commit 0478c32706d71f4a0e67de3fb84828f30b432363
Author: Clint Byrum <clint at fewbar.com>
Date:   Wed Apr 8 15:47:35 2015 -0700

    Allow passing config into shade.openstack_cloud
    
    For some reason one cannot pass in a pre-defined configuration into
    shade.openstack_cloud. This made it very hard to use that function for
    testing.
    
    This also allows us to fully enable the caching test, since the memory
    backend is now used as configured in the test.
    
    Change-Id: I4d88537274d3163b975c6176a91a1f4617485c23

commit da1e06f6965c5fb1ed1a510074072df688645ad4
Author: Clint Byrum <clint at fewbar.com>
Date:   Wed Apr 8 13:06:32 2015 -0700

    Refactor caching to allow per-method invalidate
    
    Previously dogpile caching was hidden in private functions, but this is
    now how dogpile intends for the methods to be wrapped.
    
    Unfortunately, the property decorator also seems to make it impossible
    for dogpile to add the invalidate method, so properties with caching
    will need a non-property equivalent method added to the API.
    
    Change-Id: I0f10d8f7f1c6847d6122b7631306db292eaa8b8f

commit 021c75f39ebe232abd06f0033fa3e7ecb1a6bcbe
Author: Clint Byrum <clint at fewbar.com>
Date:   Wed Apr 8 12:58:57 2015 -0700

    Add tests for caching
    
    Currently we don't actually test caching as it is expected to happen.
    
    This test added coverage which found a python3 incompatibility in the
    key generation function, which has been corrected.
    
    Change-Id: Ifc7d5318350ef069c2e8f4dcc1ad96b05c2cffa2

commit b5bde90d963d4511d24bfd4967572d4c81027e32
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Apr 7 19:33:55 2015 -0400

    Rename auth_plugin to auth_type
    
    This is already auth_type in ansible and in os-client-config. We never
    noticed here because it defaults to password and we never pass in
    anything else and we pass it as a positional parameter. BUT - it's
    broken.
    
    Change-Id: I677a63489f818fdb46d179ebeb7f5286fb4fb0b7

commit 854efa48c6d8d739bb0183108187756338b2b429
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Apr 7 15:14:55 2015 -0400

    Update os-client-config min version
    
    The os-client-config library changed its default dogpile backend
    from memory to null after 0.6.0 was released. Caching is pretty
    much broken in shade, at the moment, so let's make 0.7.0 the
    minimum version.
    
    Change-Id: I640b0f50b195bd63db185a64d2a5223781f424d1

commit ff5444e75913d29c828894759bf9407faddc468e
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Apr 7 14:20:49 2015 -0400

    Fix volume operations
    
    The recent change to use Tasks has broken some volume operations.
    This corrects them.
    
    Change-Id: I29c40d978d4a5db0e8ee0daf4f4e2aa2f0ab9f66

commit 05119822dd4200ebb16cce84d16005679df6938b
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Apr 3 14:14:12 2015 +0000

    Fix exception in update_router()
    
    Correct variable used for router identification in exception message.
    The 'name' is optional, so use 'router_id'.
    
    Change-Id: I606b397019e73dd5b77695932f907d8ba31ca3dc

commit 5ca933aa7f0959f478dafeeebd2d3695d4026d0a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 2 13:48:10 2015 -0400

    Add API auto-generation based on docstrings
    
    We've been adding docstrings, maybe we should put them into our
    documentation.
    
    Change-Id: I11ee33e1b87854403ec8b4e35f338c2c604d7fa4

commit 8c3601474b2c5aa0c52bb1f85f9dc5caa1f048ed
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Apr 2 08:36:42 2015 -0400

    Fix docs nit - make it clear the arg is a string
    
    jeblair made a good point in a previous review, there is a string
    argument that the docs for made it look like you'd pass in a class.
    
    Change-Id: Icc9449f75165a3ef8d9920b68eb23c830f8198f0

commit 7eb7c4c89a4dcf18f34bd1004b700b45f3cc10f4
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Apr 1 11:17:31 2015 -0400

    Poll on the actual image showing up
    
    Turns out just polling on the task completion doesn't mean you actually
    have the image. You also need to poll on the image becoming a thing in
    glance.
    
    Change-Id: I910ac612e6af1f5888c1820a09ee79fab012bdae

commit b03f1f3b59236370349e84c4895ee4dca18e555f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Apr 1 10:44:14 2015 -0400

    Add delete_image call
    
    Lo and behold! Deleting images works differently between glance v1 and
    v2. Of course it does.
    
    Change-Id: I9eb97950507d95076342ef3cb56205ff505f7fae

commit a0d0d7139007655f7d3f6efbce7f0d1ecb6ded38
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Apr 1 11:19:46 2015 -0400

    Skip passing in timeout to glance if it's not set
    
    glanceclient wants to do a float type validation, which is laudable.
    However, it means we can't pass in timeout=None, and instead have to
    avoid passing in the parameter if we do not have it set.
    
    Change-Id: Ie6e144d6e3cedf5bf8846beefcfda0f3252377e6

commit 4fbc21bc61f4c46cbcdb707b07b107051993c1c6
Author: Timothy Chavez <timothy.chavez at hp.com>
Date:   Thu Apr 2 01:36:00 2015 -0500

    Add some unit test for create_server
    
    Begin adding unit tests to other shade methods starting with
    create_server.
    
    Change-Id: Ie68d91ce7bc56063aa8d0001de4ff37139a35b1f

commit 0a7479d8d997c1e69ba96e30194f4105ad0f8f7f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Mar 28 19:49:33 2015 -0400

    Migrate API calls to task management
    
    Now that we have a task management framework, make sure all of the API
    calls we make go through it. The net effect on people not taking
    advantage of the feature should be zero, but should allow for porting of
    nodepool to shade.
    
    Change-Id: I0f2cf912f45e76c9f5194e3b8813278b883b4adc

commit d9f4965e6221b059df810347eaf7c12fce5e9d5d
Author: Timothy Chavez <timothy.chavez at hp.com>
Date:   Wed Apr 1 23:18:03 2015 -0500

    Fix naming inconsistencies in rebuild_server tests
    
    There were a handful of naming inconsistencies in the rebuild_server
    tests that were corrected.
    
    Change-Id: I6d993892b140276294b00c9d92fc107569d8e740

commit fbac3c07a2aaa97454319394435efeca2bc3b07d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Mar 28 19:16:09 2015 -0400

    Add task management framework
    
    Some shade clients, like nodepool, have a need to manage threads that
    are doing API tasks and to manage rate limiting. That's not really a
    thing that's appropriate for shade to know about, but because shade does
    want to know the business logic, we need to provide a mechanism for
    people to do that.
    
    TaskManager is essentially nodepool.TaskManager except with
    threading features removed and reworked to do instantaneous blocking
    execution, since that's the behavior that most users will expect.
    
    A patch will follow to move API calls to be manged by Tasks and the
    shade.TaskManager. Once those are there, then nodepool can pass in its
    TaskManager and the API operations in shade will naturally be managed by
    the rate-limited operations in nodepool.
    
    Co-Authored-By: James E. Blair <jeblair at openstack.org>
    Change-Id: I60d25271de4009ee3f7f7684c72299fbd5d0f54f

commit 1c756b8a570e09db6d0e35da8f4b6387dda84b77
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Mar 28 14:59:58 2015 -0400

    Namespace caching per cloud
    
    In places where we have multiple clouds, such as nodepool, if we want
    to use shared or persistent caching, we need to include cloud name in
    the cache so that we don't try to return rackspace flavors to hp clouds.
    
    Change-Id: I65a7b1bf6818f6b40b42bd2fa4b560f127c5589b

commit c713eb3288fc89851df434ba9b3ddbaa84665682
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Mar 6 08:23:40 2015 -0500

    Allow for passing cache class in as a parameter
    
    It's possible you'd want to set the cache class either as a programmatic
    parameter to the constructor, or in the clouds.yaml config file.
    Facilitate both.
    
    Depends-On: I6c9eab71a88a534de7e52ad2a564450c44aacc1d
    Change-Id: I9575eae869881bf6784d2d867f2f571ddbab7769

commit 5ce06cc5e999d26f1d25e90e4384baebed410ff0
Author: Timothy Chavez <timothy.chavez at hp.com>
Date:   Tue Mar 3 19:37:53 2015 -0600

    Add 'rebuild' to shade
    
    Adding the ability to rebuild instances via shade.  While this is not
    used by nodepool currently, there is some interest in evaluating whether
    or not it could be a viable replacement for the current delete /
    create strategy employed by nodepool.  Having rebuild in shade now will
    make benchmarks a little simpler.
    
    Change-Id: I12a00b71d248ce77e038dce1642d229587487886

commit f5c647e744773690312874a653f92752d8a7541f
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Mar 31 18:33:39 2015 +0000

    Let router update to specify external gw net ID
    
    One can also update the external gateway network ID on a router.
    Let's allow that.
    
    Change-Id: If1026c897687d285f01bcfd847bfc004fa720887

commit 3de1b739c62ff49eea2c3e8a90c2dede2341a390
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Mar 29 12:10:08 2015 -0400

    Create swift container if it does not exist
    
    In the glance v2 image upload workflow, the user is not doing things
    with swift containers, swift containers are being created by shade. This
    means that it's shade's responsibility to ensure that the container
    exists before it attempts to upload something to it.
    
    Change-Id: I34cfc2821819aec105947dbe70a578307e583d77

commit 1bd2a10cc010770c5f378f0a4a765c30d68422c7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Mar 30 18:07:46 2015 -0400

    Fix a use of in where it should be equality
    
    The pattern for most other comparisons against name_or_id are if
    name_or_id in (name, id) - but in this case, because we're doing the
    name exclusion parameter as well, we split them. However, we kept the
    in, even though it should be testing for equality. This can cause some
    failures that make people sad.
    
    Change-Id: If33bfe5c1e32b36c27c32cfcba4c07dcf01a4e74

commit afd2b107a72a21ae1095ace92598c439a40d7b17
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Mar 29 12:27:11 2015 -0400

    Disable warnings about old Rackspace certificates
    
    Rackspace has 'old' certificates deployed that the urllib3 people don't
    like. There is nothing a user can do about this - so just disable the
    warnings.
    
    Change-Id: Ib2d34c89dace491dabf6bc402d37babd93488e20

commit 23d38f9b2ea81ea6f1bff29b4b0a74ab39e1651a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Mar 29 01:36:29 2015 -0400

    Pass socket timeout to all of the Client objects
    
    So far we've only been passing timeout to novaclient, but all of the
    Client objects support it as a pass through to requests. Go ahead and
    pass it.
    
    Change-Id: I095c1240693abf024bda2315dd77f4400b24a45b

commit ff25b8eb3bff5b162fc112a694f3838928f524ec
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Tue Mar 24 19:07:31 2015 +0000

    Add methods for logical router management
    
    Adds API methods to list existing routers, create a new logical
    router, update an existing router, and delete an existing logical
    router by name or UUID.
    
    It is considered an error if more than one router with the same
    name exists and you attempt to delete by name.
    
    Also... MOAR TESTS!!! ZOMG
    
    Change-Id: Ie6ea4eb5f2322bdda07e6db87e2cdbabea492ee9

commit a517079c44ae8bb256f95a8275cb966af5fb8778
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Mar 28 12:51:58 2015 -0400

    Add api-level timeout parameter
    
    Some of the underlying client libraries support a configurable api
    timeout parameter. Add support for configuring the Cloud object to
    pass those through.
    
    Change-Id: Ibfdde8ff86db848e9ce601b4f1bb31e1237c9534

commit 79a1c489a2fa72ee26f7434dd8b443b69c403a4d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Mar 28 11:36:44 2015 -0400

    Update .gitreview for git section rename
    
    Change-Id: I4a19b251c5fdf76ffb10387002a13336203a7b72

commit 0dc916570848d149fd92afe4f1173c7efd780273
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Mar 25 17:34:41 2015 +0000

    Custom exception needs str representation
    
    Raising an unhandled OpenStackCloudException should produce output
    with the error message. This doesn't happen unless we have a string
    representation for our custom exception.
    
    Change-Id: I6b7eab28ffa9385eea9233b0053ade5e3396c9c9

commit 924be2b545a4d00b9eacc5aa1c974e8ebf407c2f
Author: Clint Byrum <clint at fewbar.com>
Date:   Thu Feb 26 16:14:29 2015 -0800

    Add basic unit test for shade.openstack_cloud
    
    Just getting basic minimal surface area unit tests to help when making
    changes. This exposed some python3 incompatibilities in
    os-client-config, which is why the change Depends on
    Ia78bd8edd17c7d2360ad958b3de734503d400774.
    
    Change-Id: I9cf5082d01861a0b6b372728a33ce9df9ee8d300
    Depends-On: Ia78bd8edd17c7d2360ad958b3de734503d400774

commit 85cac59fe245685beffa3aaf82adf861a0098557
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Mar 6 08:10:52 2015 -0500

    Small fixes found working on ansible modules
    
    Renaming cloud to name was a bad idea - undo it. Also, for now, the
    image cache needs to be invalidated when you upload an image, otherwise
    everything breaks. We should do that more fine grained in the future.
    
    Change-Id: I72da02bdb6e4c0c9378136e5794f7640f0e6b8f6

commit 792703e0168586d1393e28900b6ec7b3bba7276f
Author: Clint Byrum <clint at fewbar.com>
Date:   Thu Mar 5 16:39:18 2015 -0800

    Disable dogpile.cache if cache_interval is None
    
    Since we only use the in-memory dogpile.cache, there's a real danger of
    a long running process leaking indefinitely and running out of memory.
    By not specifying an interval, a user will end up with a noop cache
    region which does not waste memory.
    
    Change-Id: I26887caf1f1146ece9785366724fb450db0107a4

commit 9869fa342a1e40c81277a19a3c08e20510dab260
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Feb 27 11:22:43 2015 -0500

    Add support for keystone projects
    
    Lo and behold, there are potential differences in the field in what one
    has to do to manage keystone projects.
    
    Change-Id: Iced2c5dde8a91451e2cfeed50742ed3d6fdbf2f4

commit 52a28ba7a57098adf068db6f8dc5b43a9e15e462
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Mar 1 14:38:00 2015 -0500

    Fix up and document input parameters
    
    In walking through fixing SSL parameters, it became clear that we have
    several confusing or vestigal parameters. Walk through and fix them all
    to make them clearer. Also - let people pass through params through the
    openstack_clouds code path.
    
    Change-Id: Idc5823ed470e3f973a23504db9d7b179396690e8

commit 74b90e8e9e9b5e11a7975c055838f7ed94949065
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Mar 16 09:24:12 2015 -0400

    Handle image name for boot from volume
    
    OpenStack apparenty has moments where it can return the image info
    as a unicode string, primarily when the server was booted from volume.
    
    Change-Id: I40c6796ab9d0cb2bc999b0d91313e62f10b1fccf

commit 7cb9d2b46e88b8ddd3582ea229bd929c31be3832
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Mar 16 12:04:27 2015 -0400

    Clean up race condition in functional tests
    
    This could all be made much fancier - but in general, for now, kill
    concurrency until we can get much richer isolation put in - and make
    sure that we're only cleaning up servers that we created in the test.
    
    Change-Id: Iea341076f55f41573ee2bb0f378c8602d21b39a2

commit 63e1630f2b44e1f867ed887ea7d66b76daca671a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Mar 6 08:21:43 2015 -0500

    Change dogpile cache defaults
    
    Memory cache can grow unbounded, so it should really be opt in. Change
    to match shade with the following defaults:
     - If you specify nothing, you get null cache
     - If you specify an expiration time and nothing else, you get memory
       cache
     - If you specify an explicit cache class, you will get that class
    
    Change-Id: I6c9eab71a88a534de7e52ad2a564450c44aacc1d

commit 738d215661c18aa3d37dd1262d6ca28045da5a7b
Author: Ricardo Carrillo Cruz <ricardo.carrillo.cruz at gmail.com>
Date:   Thu Mar 12 17:18:36 2015 +0100

    Add initial compute functional tests to Shade
    
    Also, modified tox.ini to add a 'functional' stanza and
    the testenv now runs only unit tests.
    
    Change-Id: Id8a1193c829f7f3ab764c334b1f796f19f447fdd
    Depends-On: I1cf58e6a4cf728c5d2a32d602d9dfae1d4dfd62c

commit e5d2782cef302dbc677ebba06f5f7f3e520b1031
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Tue Mar 10 19:00:50 2015 +0100

    Add cover to .gitignore
    
    Coverage reports in the cover directory should be ignored by git
    
    Change-Id: I4cde6b0b8fa2fa04ce6a4c308af3c37dfcdf1b5d

commit 99e85402b660a768071bc771cb3fd8cf9babb6af
Author: Ghe Rivero <ghe.rivero at hp.com>
Date:   Fri Mar 6 10:22:48 2015 +0100

    Add cover to .gitignore
    
    Cover reports in the cover directory are not ignored by git
    
    Change-Id: If1f473a9e453c53d1ace9efd6935cf5e7fb84e50

commit d5931d4658b43b5451adc38be5d6b7f257291098
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Mar 5 08:51:18 2015 -0500

    Flesh out api version defaults
    
    openstackclient needs a bit richer support for api version defaults.
    Namely, it knows what defaults it wants to have - but we need to do
    defaults processing in os-client-config to get sequencing correct. So
    provide an API call to set new defaults that can be used before config
    processing. Also, flesh out the dict of known default values with good
    defaults to match osc behavior, and add the known v1 default of HP to
    the vendors.py values.
    
    Change-Id: I45e2550af58aee616ca168d20a557077beeab007

commit 3b5a20ea037c8e01f5da2f98e9e47082cefad89e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Mar 3 16:09:00 2015 -0500

    Handle project_name/tenant_name in the auth dict
    
    We were doing backwards compat for project/tenant in a way that didn't
    notice anything in the auth dict - which is there project/tenant info
    goes. Ooops.
    
    Change-Id: I141c1d99f31f381898bf993c4e7fcab1078f40c6

commit df91dcf111a7aeecad948481fc102bedd3fad05d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Mar 3 16:34:19 2015 -0500

    Add two newlines to the ends of files
    
    flake8 bites it for me on these locally.
    
    Change-Id: I99291c64fafff423aa720da7dba030526ca0cb50

commit 6fff9fe2b41656739eca0a47d61e17e12e114f4f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Mar 3 07:31:32 2015 -0500

    Rename auth_plugin to auth_type
    
    To match with python-openstackclient is doing, change auth_plugin to
    auth_type. Since this is out in the wild already, add it to the
    backwards compat matrix.
    
    Change-Id: I36b3f18d57fa827028194f8af91ea309b53b6ee3

commit 55d04bfcff21ee74a2d4380a1d6e22d8f1ec10b2
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Tue Mar 3 11:58:45 2015 -0500

    Add ironic node deployment support
    
    Add methods required for deployment of nodes via ironic for the
    under development os_ironic_node ansible module.
    
    Change-Id: I42dcac0478706ffc7244387840cc6740fc3cfb79

commit 4ad95b33852fc99046a0d9f0ad75e2369ac747d3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Mar 1 11:13:01 2015 -0500

    Align cert, key, cacert and verify with requests
    
    The semantics of these values are specific, and an interface we'd
    carried over from the old ansible modules really just makes things more
    confusing.
    
    Requests expects that verify can either be True/False or can be the path
    to a cacert bundle. That makes it very hard to do input parameter
    validation in ansible. So - split that into verify which takes a boolean
    and a path to a cacert bundle.
    
    Requests also expects that cert can either be a path to a cert/key
    bundle, or a tuple of two paths. I'm not really sure why it thinks
    that's clever, but I don't.
    
    Change-Id: Ie96e7afe3ef056499477b746d9262975081206d7

commit 5ce3b222ab823802aae520ba965a8db7d1bf9420
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Feb 20 15:23:14 2015 -0500

    Add methods to create and delete networks
    
    The create_network() method currently does not support admin-level
    operations. This will be added real soon now.
    
    Change-Id: I5909b3cafd9c418f953a76cfaaf5c5708ad7e945

commit 62616f3eaaff708c583919b55093410a0179c940
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Thu Feb 26 16:01:50 2015 -0500

    Add behavior to enable ironic noauth mode
    
    Added behavior to enable users to utilize the ironic functionality with noauth
    mode set on the server side.  This logic is utilized if the auth_plugin is
    defined as: None or "None" or ''. Bumped os-client-config requirement
    because this working requires the pass-through support that got added
    there in 0.5.0.
    
    Change-Id: I3f8a9e0a9952be2d24c6cb655dfed9519134102e

commit 1ccad8c41c9cab2f577e6505daab858a2c9d22b5
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Feb 26 08:57:46 2015 -0500

    Add support for configuring dogpile.cache
    
    shade has added dogpile.cache support. Since os-client-config already
    supports processing global cache settings, go ahead and add support for
    a couple of settings that can be used to feed dogpile.cache.
    
    Change-Id: I4d40753b83041c8a48b5c0a6d446f9e0de68220a

commit f99dc5f293bb71185be2102ea646b07159faf0a0
Author: Clint Byrum <clint at fewbar.com>
Date:   Sat Feb 28 07:45:01 2015 -0800

    Fix coverage report
    
    Coverage can't handle package names that have dashes, as it uses the
    package name to look for the base module name. So we need to pass in the
    base module name as it is imported.
    
    Change-Id: I2840eea85acaee2d05cab47fb67010e002a14bc0

commit 15cbdf7947d106c472181aa2ebc67a17974f54e3
Author: Clint Byrum <clint at fewbar.com>
Date:   Fri Feb 27 11:23:16 2015 -0800

    Add more testing of vendor yaml loading
    
    Adding coverage for vendor yaml loading and refactoring some tests to
    make the structure for that sane.
    
    Change-Id: I7aca0fcc0b04371f9a71e71c0224897b19cb04af

commit e483abccbb84a9dd49b266105309610ca0924fb2
Author: Clint Byrum <clint at fewbar.com>
Date:   Fri Feb 27 11:23:16 2015 -0800

    More comprehensive unit tests for os-client-config
    
    This includes ensuring that yaml of a sane format can be loaded.
    
    Change-Id: I698b3139b7e44f000d2a413d17e79914ef542a22

commit 9752febeb6abd7d975af53e95ef1aed7c7d4cb56
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Thu Feb 26 13:14:17 2015 -0500

    Allow keystone validation bypass for noauth usage
    
    To enable the eventual use of the shade library for communication
    with ironic in situations where authentication is set to noauth, it
    is necessary to not attempt to validate a user's credentials.
    
    Added a check to disable authentication validation when the
    auth_plugin is set to '' or 'None' or None.
    
    Change-Id: I3807b4724ce5e204b5857c1dbf5325f0e3f4a78d

commit 076e9bd9bece61db43137eab553c1545e6701fca
Author: Clint Byrum <clint at fewbar.com>
Date:   Thu Feb 26 16:12:14 2015 -0800

    Add basic unit test for config
    
    Adding this exposed some python3 compatibility issues with iteritems.
    
    Change-Id: Ia78bd8edd17c7d2360ad958b3de734503d400774

commit 1d0e7fdc72a761e1062fddb503a032177322ae1b
Author: Ricardo Carrillo Cruz <ricardo.carrillo.cruz at gmail.com>
Date:   Thu Feb 26 17:08:56 2015 +0000

    Reorder envlist to avoid the rm -fr .testrepository when running tox -epy34
    
    Change-Id: Ibe34867caf97e05bc13614b3c685e8cfb0d6220a

commit acfcf5562b90312f873f595154297a6edd3834a0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Feb 15 11:15:31 2015 -0500

    Make image processing work for v2
    
    It turns out, not only is image _uploading_ different for v1 and v2,
    image metadata processing is completely different too. And, Rackspace
    disallows image properties with certain prefixes, the task checking loop
    can fail some times. Also, glance v2 warlock objects work differently.
    
    Change-Id: I37ac719270bde259ab1cf59763d3b949990bf497

commit 5bffc4e07124417460ba1db295c9c521057fbe04
Author: Yolanda Robla <yolanda.robla-mota at hp.com>
Date:   Tue Feb 24 14:50:08 2015 -0800

    Utilize dogpile.cache for caching
    
    In the future we can make the backend more configurable which will help
    users build more powerful things on top of shade with better caching
    available to them.
    
    Shade is caching elements like images, volumes and flavors
    that are subject to change (flavor the less of them). Storing
    items in a cache makes that changes to elements, like adding
    or deleting, or changes of status, are not perceived by the
    cache. However, the cache is still needed to improve performance
    when several concurrent calls are done.
    
    Change-Id: If072bcdbdaa2b0a021e26b1ea2211b1dfcc75880
    Co-Authored-By: Clint Byrum <clint at fewbar.com>

commit 6d31937a5a67c635ce84dbc6766fac0dd91cf59f
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Fri Feb 6 11:24:18 2015 -0500

    Add support for volume attach/detach
    
    Two new API methods for volume attaching and detaching.
    
    Change-Id: I25bca4d53fd0d77ee1c8a5344e6d6c3163955ac4

commit 93ce50c040dddf1ad91a929223342fd0cf459adb
Author: Yolanda Robla <yolanda.robla-mota at hp.com>
Date:   Fri Feb 20 14:13:30 2015 +0100

    Do not allow to pass *-cache on init
    
    Caches will be useful to query for facts once and
    then store them. But allowing to pass a list
    of known facts could lead in shade consuming facts
    that aren't reflecting the cloud behaviour, so
    removing that possibility.
    
    Change-Id: Ib3ea94ec3d014f4fe5d4480d779056bc5722de13

commit cec22cd55ec4dfeb562d3801e58fc26f10ddd61b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Feb 19 12:03:06 2015 -0800

    Import from v2 instead of v1_1
    
    novaclient has moved its API, because that provides tons of value.
    Change import lines to match.
    
    Change-Id: I299696fde803d619ca9408091c1ab8aa8f13ad8f

commit 637b5b264e4dc21148233a9afbbd7a3ea54e1c38
Author: Clint Byrum <clint at fewbar.com>
Date:   Wed Feb 25 05:09:19 2015 -0800

    Add unit test for meta.get_groups_from_server
    
    Change-Id: I01389ff20ecc37c7368702f6e3c6e904edde40fe

commit 47435af70b41adc9b5a387c7436263b0eef8ff29
Author: Clint Byrum <clint at fewbar.com>
Date:   Tue Feb 24 15:44:30 2015 -0800

    Add unit tests for meta module
    
    Just adding basic unit tests for getting server addresses.
    
    In the process of adding these we found a few py34 failures.
    
    Change-Id: Ifd99e3ac71c0939cc48cf2e952719fd591077e32

commit 7d39596bf60b1f5395bcc715175fcf84075ba921
Author: Yolanda Robla <yolanda.robla-mota at hp.com>
Date:   Sun Feb 22 12:48:44 2015 +0100

    Add a method to create image snapshots from nova.
    
    It encapsulate the novaclient.servers.create_image
    so we do not need to access directly to the python client
    library.
    
    Change-Id: I214993210cc3b46037c482dda815450446223850

commit 76c77d1a6a53ee678f56e5f5be1b615212599e71
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Feb 16 16:47:12 2015 -0500

    Return extra information for debugging on failures
    
    When spinning up a server, it's helpful to know things about why things
    went wrong.
    
    Change-Id: I9d78f3359801378f51a19ced25b58e17bd9e629d

commit 804b2f3a4e6d0f096c868cce10003bfcdee8fddd
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Feb 15 17:00:51 2015 -0500

    Don't try to add an IP if there is one
    
    On Rackspace there is an automatic IP. The code before inappropriately
    attempted to add a floating IP anyway.
    
    Change-Id: I63fd7ec0abc06a24b1869aa35cb1084cb228e4ca

commit 084df16c9b9d36571081bb07b336fb902ebc4dad
Author: Ricardo Carrillo Cruz <ricardo.carrillo.cruz at gmail.com>
Date:   Thu Feb 19 18:40:39 2015 +0100

    Revamp README file
    
    The README used only python-*client objects, thus defeating the
    purpose of shade, which is about putting a facade for all those
    interfaces to simplify things.
    README now shows you can use shade simplified interface and also
    access the underlying python-*client API objects.
    
    Change-Id: I0c638beab615177fc6ce3704c5443a3394a87ed0

commit 3d165aee7890ca822f33e118b9fa9d1f6a0109a7
Author: Yolanda Robla <yolanda.robla-mota at hp.com>
Date:   Wed Feb 18 12:44:20 2015 +0100

    Add hasExtension method to check cloud capabilities
    
    This method will be using an extension_cache that will query
    for the extensions to the cloud, then check if the extension
    asked is present on the list or not.
    
    Change-Id: I6f018d03e6314579435b042faf5d24b1f0473685

commit 2bad9dacbbd98705a7e10a520dc90162a275ce6e
Author: Yolanda Robla <yolanda.robla-mota at hp.com>
Date:   Wed Feb 18 17:20:22 2015 +0100

    Don't compare images when image is None
    
    Image cache can set images to None under certain workflow,
    and then we are accessing this None entry as it was
    an object. Add an extra check for that.
    
    Change-Id: Ia9b737c81ed8133ff5a6ba26f98b7f55fca095de

commit 23ab18efdf3fba068e0ebd7d32d3ad3a2813bcff
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Feb 12 08:29:12 2015 -0500

    Add service_catalog property
    
    Add a property for getting the service catalog. Although most of the
    time a user should not need to grab this directly, it can be invaluable
    in debugging situations - and is a public method because there is an
    ansible module that wants to directly expose it.
    
    Change-Id: If54cb94fc9a80f1dabe90b46ed2f62d8fcb8460f

commit 91bc405359d601c2eb0b9d6967af464705932b04
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Feb 11 13:28:30 2015 -0800

    Remove unnecessary container creation
    
    While putting an object, if you specify a container that does not
    exist, the container will be created for you.
    
    Change-Id: Icfb9eed1e661360e6a7610c99b3d68e439e36dc3

commit 7e4927e7b30a26cd440218acfdd798376fb3c1af
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Sun Feb 8 17:20:08 2015 -0500

    Make is_object_stale() a public method
    
    The _is_object_stale() is meant to be public, so remove the leading
    underscore.
    
    Change-Id: Ib4f3be43e563ce3109cceae14ffe69e1976fc4c8

commit 7385528671ea61617d7027fc33897ea850e7364c
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Wed Feb 11 13:09:21 2015 -0500

    Prefer dest value when option is depricated
    
    Changed logic that re-assigns depricated key names while preserving
    their values, to prefer the value stored in the dest key if it
    exists, instead of attempting to generate the new key name.
    
    Change-Id: Ibe961688cdb6bd4c9b2dbd27b08c722c3c741586

commit 56b75154fb4858fad5f1d7a910d5d7fbf785ef67
Author: Julia Kreger <juliaashleykreger at gmail.com>
Date:   Sun Feb 8 13:06:49 2015 -0500

    Allow region_name to be None
    
    When using the shade library with ansible playbooks and classical
    environment variables for authentication, it is possible for a
    region_name value to be passed in with the value of None.
    
    When the value is set to and preserved as None, the logic later
    on in the method will fail to create a config key/value entry for
    region_name which is required by code later on in the method.
    
    Modified the region_name check to not only check for the presence
    of a missing region_name value, but to check to see if that value
    is set to None.  This allows the value to be reset preventing the
    method from failing on the return call due to a missing key.
    
    Change-Id: Id8a3edf53ac751f0c6ee4d71405a926ba90c0602

commit 89d1e4d3c4cbbe67d60c5b96cfb8ae6762737fd2
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Feb 11 09:30:22 2015 -0500

    Don't return the auth dict inside the loop
    
    It turns out that when you're looping over a set of params to move them
    into an internal dict, returning inside the loop results in processing
    exactly one of them. This is not, it turns out, what you wanted.
    
    Change-Id: If1bf0c22b758e7238846b08991f4b0d25c841583

commit 01d7728504a77bdf03d6e4aa98edd66d55fa13f0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Feb 11 08:32:48 2015 -0500

    Make sure we're deep-copying the auth dict
    
    Having a defaults dict that has an empty dict and then does a bunch of
    updates means you have ONE instance of a dict that all of the other
    instances have references to.
    
    Change-Id: Id008f7ec98ff7b392553cebca5a5b301330e67a3

commit 2067982c3d9654103ccebb0c2043c63047bb28f1
Author: Adam Gandelman <adamg at ubuntu.com>
Date:   Thu Feb 5 13:41:32 2015 +0000

    Fix broken object hashing
    
    This fixes two issues around checksum accounting for objects.  It properly
    calls the correct hexdigest() functions when calculating hashes locally.
    Also, it uses the correct swift headers that allow these to do be stored on
    in the object's metadata.
    
    Change-Id: I55ea5aff0a4712e7b9f13e912008c3c98576414a

commit 37069cb7c3b9d3102aac78f7bc10d7a32f9a62b5
Author: Adam Gandelman <adamg at ubuntu.com>
Date:   Tue Jan 27 16:47:35 2015 -0800

    Adds some more swift operations
    
    This adds some more operations for swift, mostly around the ability
    to set a container as public private, both during creation and after.
    
    Change-Id: I1dbc02a61bd8642963bb6dafe62e150b023679b7

commit 0cba0b8b1263b89124ee67e8a9c07c3240afc5e5
Author: Adam Gandelman <adamg at ubuntu.com>
Date:   Mon Jan 26 17:31:26 2015 -0800

    Adds get_network() and list_networks function
    
    Adds new utility functions.
    
    Change-Id: I923b6cef5d671c5eb6bac2b1d197c034ae99f0fd

commit 1e572aaff584b8934ff19f36101d0ecc94b79ddd
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Feb 4 14:20:41 2015 -0500

    Add support for creating/deleting volumes
    
    This adds a new create_volume() method, and changes the existing
    delete_volume() method that didn't actually delete anything.
    
    Change-Id: Ic02a54bcf953c5cb124865f5e4c33cc36863aacb

commit eeaf4730292859e591df5a7d248885435f30e116
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Wed Feb 4 13:12:29 2015 -0500

    Get auth token lazily
    
    This addresses one of the comments from change ID
    Ia051f7c42aa3c0793cdadd5585e07c3220d5779d where it was suggested
    to get the auth token when we actually need it, and not before.
    
    Change-Id: I3fe485796a6057280933254e28ea6718e3a24d3d

commit 106e5561c9200a45d54740137d692cd8f026f986
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 27 14:22:49 2015 -0500

    Pass service_name to nova_client constructor
    
    Rackspace breaks without a service name passed to it, because they put
    two compute services in their service catalog. If we pass a service
    name, then keystone session can match the right thing.
    
    Change-Id: I300017c664559fbeabde54160e6d4867abc4ce4b

commit fcc108626bca5feefe276fc3f5a94c1740e3b8f2
Author: Adam Gandelman <adamg at ubuntu.com>
Date:   Thu Jan 15 15:02:12 2015 -0800

    Create a neutron client
    
    Creates a neutron_client property using token and endpoint from
    keystone session.
    
    Change-Id: I07199a272969c53610347f3ff05e60b0b3b8d317

commit d3daf5b896c23e113a4dfb324c24af31e276a0df
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 20 21:57:21 2015 -0800

    Port to use keystone sessions and auth plugins
    
    In order to properly support the input parameters we have, we need to go
    all they way in to full support for keystone plugins and session
    objects.
    
    Amazingly, this is not terribly hard to do.
    
    Change-Id: Ia051f7c42aa3c0793cdadd5585e07c3220d5779d

commit 8f1ca24bb83f108e302e3511b9825839e3cc9538
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 20 20:15:26 2015 -0500

    Add consistent methods for returning dicts
    
    There are enough places that want dicts that we should just have API
    calls for it. Several of the places want to do slightly smarter things
    when doing that too.
    
    Co-Authored-By: David Shrewsbury <shrewsbury.dave at gmail.com>
    
    Change-Id: I08245a89e5b497b9fe50af7d3538976b1ac82257

commit 4d1fae6c792660f4c9140b7195152815af2030b0
Author: Adam Gandelman <adamg at ubuntu.com>
Date:   Mon Feb 2 10:26:08 2015 -0500

    Add get_flavor method
    
    Simple utility method to get a flavor.
    
    Change-Id: I4246e91de97710e0966780cfcb085abff56c7dc0

commit bea5220e5a22953f349df48fa202283f5bdf0273
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Feb 2 10:12:58 2015 -0500

    Make get_image return None
    
    To make it more consistent with the interface elsewhere, make get_image
    return None when an Image is not found instead of throwing an exception.
    
    Change-Id: Id420abfeb32fa5d643d78ecec72db41be05093aa

commit 4bb72f8401264d17b5b1ff9a7aa0e53235fa3c33
Author: James E. Blair <jeblair at hp.com>
Date:   Wed Jan 21 15:52:37 2015 -0800

    Use the "iterate timeout" idiom from nodepool
    
    When waiting for something to happen inside of a timeout loop,
    use a generator to simplify and standardize the pattern.
    
    Change-Id: I1a49bd4ecde98bc6bbb20d64d43447f825776807

commit 2bbcb630144975d032ecc312177a11266c2ac57b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 27 16:51:53 2015 -0500

    Remove runtime depend on pbr
    
    os-client-config is not using pbr during runtime, so the runtime
    requirement for it was a lie.
    
    Change-Id: I3ed57ec5c2b0fdf4060ef17d6df1fa801cfa14cd

commit 569197d763aec46f8fe9838e554082069c2e3cdc
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 27 14:21:18 2015 -0500

    Provide Rackspace service_name override
    
    Rackspace puts two compute services in their catalog. This means that
    keystone session code cannot find the right one without a name match
    override.
    
    Change-Id: I1bc06b97261341ad01bf84ebf5a12294cd0d383c

commit 70b58cff5c43f0c66168b51fc2584af6b9dec955
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Jan 26 16:45:18 2015 -0500

    Fix obj_to_dict type filtering
    
    Commit 88f5f2661ee2ba31056251b4cdf91949fca0a031 fixed the python 3
    unit tests, but broke obj_to_dict() because client classes were no
    longer being filtered out (like nova's ServerManager class). Trying
    to remove these by using inspect.isclass() does not work as it does
    not recognize these types as classes (perhaps b/c they are being
    serialized?). This change reverts to the old style behaviour, but
    uses the six class to fix python3 compatibility.
    
    Change-Id: Ief7bba30d983f67cd28d886cd1d3dfd2a45e957d

commit c22531d54bff23ebfd995a9a7795b0f86d33d7d7
Author: Adam Gandelman <adamg at ubuntu.com>
Date:   Thu Jan 15 18:28:18 2015 -0800

    Adds a method to get security group
    
    Adds a method to get security group by name or id
    
    Change-Id: Ifaecf75490f45e636f00b4e7b1c02fb6af09e50e

commit ab117cfebac692343bf5929bc5d52ab3093b7e0d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jan 12 17:09:43 2015 -0800

    Pull in improvements from nodepool
    
    As part of starting to hack on using shade in nodepool, a few
    inconsistencies with the compute stack in shade became clear ... fix
    them up.
    
    Change-Id: If3b1301fce8c2c7592258de2381dacfa082f8e49

commit 5342d25cace4b8c37c1c3b4328e77dbdd1e7342e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jan 12 14:12:54 2015 -0800

    Remove positional args to create_server
    
    There's no good compelling reason to have them, and it just makes other
    places ugly and harder to use.
    
    Change-Id: I0c137c55d7f5b76f343d09f26abe926b2c44b147

commit 37cf9b8597b132ec0437fff357f02edd9aef741a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jan 12 12:59:07 2015 -0800

    Don't include deleted images by default
    
    Since this is an end-user consumption library, don't put images
    that are invalid in the list of images when the user asks for images.
    An API call option is provided to disable this filtering.
    
    Co-Authored-By: David Shrewsbury <shrewsbury.dave at gmail.com>
    Change-Id: I331b2d14199eab72f108b939ac4fbe0363565814

commit 9c9de96e963824530e5c7a827465d51e2bf1ab1a
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jan 7 11:37:24 2015 -0500

    Add image upload support
    
    There are at least 2 known mechanisms in the wild for uploading images
    to public glance endpoints that are completely different. Based on which
    version of the API we're running switch between them seamlessly. Note
    that the wait parameter isn't going to do anything for v1 because it's a
    sync call - maybe we should throw an error if someone tries to leave if
    set to false?
    
    Change-Id: Ifccf8aaa6cd7793a1b827914e7da4b2b82248544

commit abc21aaf7656147fa58c49ebccff91a3b8aaf3aa
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jan 7 10:08:06 2015 -0500

    Refactor glance version call into method
    
    In order to switch behavior between glance v1 and glance v2 image
    uploading, it needs to be possible to get the version in other places
    other than just client initialization.
    
    Change-Id: I1c7bcc9948c6ff7de5d4e14ce31b26e83328d5b8

commit a81d18dd0e21f4c19f7a9f2cb916a03a140daaa3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 6 13:08:47 2015 -0500

    Support uploading swift objects
    
    In addition to just needing to be able to upload swift objects into
    containers, we should be able to sanely interact with swift on general
    principle.
    
    Change-Id: I844ea7a26005e72ab037fe733681058944e847fa

commit 13a455f1181bef0dfea95aa1728f7f8ba5ba32f7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jan 12 10:10:36 2015 -0800

    Debug log any time we re-raise an exception
    
    We're masking exceptions on purpose, which is evil of course - but the
    reason is that they wind up being part of the API - and the
    python-*client-ness of a particulate exception is largely an
    implementation detail that might change. Eventually we want to have
    better exceptions across the board - but make sure that we don't lose
    the ability to debug the exceptions when they happen.
    
    Change-Id: I8a972e6608e33088234d67ea24886c782a80e3b4

commit bc5608837f7d144f2f480c45c9b5499fca22098e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 20 22:04:10 2015 -0800

    Start keeping default versions for all services
    
    It turns out we need to do the evil glance dance for almost everything.
    
    Change-Id: Ic0ad77ba0627bd4be88bdf0136aa04c2ba43afe6

commit c75daaa1f9f0881cae63337e0d9799555f569c06
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 20 19:07:08 2015 -0800

    Support keystone auth plugins in a generic way.
    
    Basically, if keystoneclient is available, validate arguments into
    the auth dict. If it's not - we should probably be talking about what
    possible use this library has - but it should degrade cleanly and treat
    everything as passthrough.
    
    Change-Id: Ia31039d5c724eba22d053a004eefeaf6857f500d

commit 621a8636f505dd5c091a7fa8155ea79dc36b1b41
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Jan 20 18:04:21 2015 -0800

    Replace defaults_dict with scanning env vars
    
    All of the OS_ env vars start with OS_. Also, because of keystoneclient
    auth plugins, we have no idea which ones we need. Instead of positively
    identifying them - just grab them all - since they're all base layer and
    can be overridden by everything else anyway.
    
    Change-Id: I633f5e7d27c0a6a5c9b25f53cb99fe05b63c78ae

commit f0a21c8f220450def5eee23beb17dda63712447f
Author: David Shrewsbury <shrewsbury.dave at gmail.com>
Date:   Mon Jan 12 19:34:52 2015 -0500

    Remove py26 support
    
    The code will not pass on py26 testing, but who cares about py26
    anymore anyway.
    
    Change-Id: I3009a01b392ade130f0802b3a995565d46c46b0f

commit e24208741361fc167d21f1624dba761453771a51
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Jan 12 17:14:03 2015 -0800

    Explain obj_to_dict
    
    It's entirely possile that the reason for the existence of this function
    may not be immediately apparent.
    
    Change-Id: Ia6839740d676ca99d919af732ede3a5982f5d864

commit 88f5f2661ee2ba31056251b4cdf91949fca0a031
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jan 7 20:08:04 2015 -0500

    Fix python3 unittests
    
    Turns out basestring and types.NoneType go away in python3 - so just do
    the logic a different way.
    
    Change-Id: Ic447e1f3bdf3eac7335995edd4d20b15820f78f0

commit 65fe04d5c2bbe4d66c3ba9ea43467ec38316eaa0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jan 7 13:03:32 2015 -0500

    Change meta info to be an Infra project

commit a56767a865baeeb0174c03e80809467edaaca2e0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jan 7 12:59:34 2015 -0500

    Fix flake8 errors and turn off hacking

commit 5b3c005aae0a4792458ba4b51b4bf9080a12c386
Author: Monty Taylor <mordred at inaugust.com>
Date:   Wed Jan 7 12:31:15 2015 -0500

    Fix up copyright headers

commit 3235321c01ad38e8ff3b170eac587cd8a175db3c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Dec 12 17:28:13 2014 +0000

    Add better caching around volumes

commit cdb3e37ccd079d10ca8fca334623a72fd260b726
Author: Jeremy Stanley <fungi at yuggoth.org>
Date:   Fri Dec 5 03:30:46 2014 +0000

    Workflow documentation is now in infra-manual
    
    Replace URLs for workflow documentation to appropriate parts of the
    OpenStack Project Infrastructure Manual.
    
    Change-Id: I97d11d3a24a374c9212cd29f49472e199b1c8bc0

commit ca54d7290000f77c5382e227a7cf6e631a151174
Author: Jeremy Stanley <fungi at yuggoth.org>
Date:   Mon Nov 24 17:10:43 2014 +0000

    Corrections to readme
    
    * README.rst: Remove docs and bugs links since the project is not
    currently publishing/consuming these anywhere that I can find. Also
    correct the source URL.
    
    Change-Id: I2b7002f7ea301a2c03a2e41e904de0c91a14831a

commit 98d3de9f08886950dec4006fdce1b1d467a724d2
Author: Alex Gaynor <alex.gaynor at gmail.com>
Date:   Sun Nov 9 08:18:42 2014 -0300

    Use yaml.safe_load instead of load.
    
    yaml.load will execute arbitrary code.
    
    Also use context managers to ensure files are closed
    
    Change-Id: I704baa7916ee834c12821009d8e3029b1b8fa340

commit 1c025d548f63b613c198f47065bde8cf43655fb3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Nov 2 13:44:36 2014 +0100

    Throw error if a non-existent cloud is requested
    
    The error messages when a bogus cloud is requested are very confusing.
    (They'll be things like "no auth url provided") Instead, be explicit
    on the problem.
    
    Change-Id: Idf68d1db7e5fccd712283775eb4d636d78ae5fc7

commit 4673bea22d7d481a79f62949e2fd8eb97e78cdb3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Oct 30 21:16:18 2014 +0100

    Support boot from volume
    
    The outbound interface for this is CRAZY

commit b3483829b581b92b55afa18bb4cc44615794f03e
Author: Monty Taylor <mordred at inaugust.com>
Date:   Thu Oct 30 20:33:48 2014 +0100

    Make get_image work on name or id
    
    There is no reason to make the user specify.  It's simple, while we're
    looping through images, if the id is an exact match, bingo - it's the
    image. If it's not, but the name is and matches the other rules, bingo.
    Everything else is stupid.

commit 8f1bb101ea688456de7dcd269dc885558aaea383
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Oct 26 15:04:43 2014 -0700

    Fix a missed argument from a previous refactor
    
    Region name support got changed a little while ago, and a call that
    should now be a keyword argument style stayed as a positional ... which
    means that we lost region name support for clouds with more than one
    region. (it treated all of them like the first region)
    
    Change-Id: I666758a775b8fc8e03b7e9ddd3aa494c13505612

commit 9c540a224da10f26a8579140a8a85587c9407bb1
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Oct 25 18:52:05 2014 -0700

    Add some additional server meta munging

commit 0ed767e20937a62ed2f190c6645673236b11237a
Author: Dean Troyer <dtroyer at gmail.com>
Date:   Sun Oct 12 20:06:14 2014 -0500

    Map CloudConfig attributes to CloudConfig.config
    
    Treat the CloudConfig object as if it has the config attributes directly.
    And add some simple tests.
    
    This makes it easier to replace an argparse.Namespace() object with a
    CloudConfig object.  It also might make initialization of some of the
    default attributes unnecessary.  An example of this usage is in
    https://review.openstack.org/#/c/129795/1/openstackclient/shell.py
    
    Change-Id: I00ced540cf94742e8cb738f8f0767445ffeb4bfe

commit 313fb397d516146164bc2c28cbadc95dad9be6a2
Author: Monty Taylor <mordred at inaugust.com>
Date:   Tue Oct 14 21:43:50 2014 -0700

    Support injecting mount-point meta info
    
    Volumes need to know where they're going to be mounted. But really,
    it's not the volume that needs to know that - it's the user associating
    volumes and servers. Make it something that can be injected into server
    metadata.

commit 86f2c2b7a935a8f25cbf34b5328a2103d1571a61
Author: Devananda van der Veen <devananda.vdv at gmail.com>
Date:   Tue Oct 14 09:06:14 2014 -0700

    Move ironic node create/delete logic into shade
    
    Move the logic around sanely registering and unregistering nodes,
    along with the associated NICs, out of shade-ansible and into shade.

commit 54a460673fa1b0135836290c508fb2cc89871cdf
Author: Devananda van der Veen <devananda.vdv at gmail.com>
Date:   Tue Oct 14 02:08:07 2014 -0700

    Refactor ironic commands into OperatorCloud class

commit caa65d79e9612587e00ebe2bfedaede1e17daabf
Author: Devananda van der Veen <devananda.vdv at gmail.com>
Date:   Tue Oct 14 02:07:34 2014 -0700

    fix typo in create_server

commit 4b1cdaa318a244a2afbf1c267dbfadf9dc6624e3
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 13 16:06:54 2014 -0700

    Don't die if we didn't grab a floating ip

commit f8a5ff706d2a0d02ef9e41dcb7a152007af83c99
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 13 14:01:13 2014 -0700

    Process flavor and image names

commit 77fce7d0aa06e9cfe96f0ac91dd7c11b7b5d0887
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 13 13:44:56 2014 -0700

    Stop prefixing values with slugify
    
    We're going to namespace this stuff properly so that we can have
    add_host inject things into the inventory properly.

commit 0968f7694b139f28b00b99deafc2100e4e67aa66
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 13 13:40:32 2014 -0700

    Don't access object members on a None

commit 1faac01ba5acc7e726919f036acad715dd8882a7
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Oct 13 13:02:25 2014 -0700

    Make all of the compute logic work

commit ddb1118af2145f386cf769944bc7738c9e6c88ab
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Oct 12 15:13:19 2014 -0700

    Add delete and get server name

commit a046b708d15e61f99ee840db1a2d2f960e0e9886
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Oct 12 13:07:35 2014 -0700

    Fixed up a bunch of flake8 warnings

commit 7fabe4bc11fbb2fd4115ec17fd1d869105d5324b
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Oct 12 12:59:43 2014 -0700

    Add in server metadata routines

commit 470f6ea9358ac6cd6a05a96805d06c3cf8501d97
Author: Dean Troyer <dtroyer at gmail.com>
Date:   Sat Oct 11 14:55:30 2014 -0500

    Add support for argparse Namespace objects
    
    The Namespace objects returned by argparse contain all defined options
    even if they are unspecified and default to None or ''.  Also it
    is not iterable.  Change all that to add only the options presented
    to argparse to the cloud_config.
    
    Change-Id: Ia22fad60c81ab0b2878b404c0c8608d903ca964b

commit b03d6e59b93cea29df30f286db02701e2e77effa
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Oct 11 09:41:48 2014 -0700

    Add support for command line argument processing
    
    Now takes the ability to pass in a dict of key/value pairs, probably
    from a command line processing thing like argparse, and to overlay them
    on the config that came from the files or env vars.
    
    Change-Id: I830699476e2340389979b34704c0dfbfe97a1e08

commit a23451831ee7601fee3aba519125f028bbc1c9d9
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Oct 11 10:33:38 2014 -0700

    Plumb through a small name change for args
    
    We want to be able to sanely and safely passthrough args lists from
    consumers. "name" is a very common thing to want to also be in a
    consuming args list, whereas "cloud" is clearly something we own.

commit 293745e7d75b28e8b803291672bf9b9dce938fde
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Oct 10 16:39:47 2014 -0700

    Consume project_name from os-client-config
    
    It's always project_name now.

commit 91afaeb4aeb811b28d27b9eaf3887235a841f680
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Oct 10 16:09:16 2014 -0700

    Handle lack of username for project_name defaults
    
    It's possible that there will not be a value in username, so we can't
    use it as a blind default.
    
    Change-Id: Iae93b9ec0e691c7b2174a0138c5455e36ad77ad7

commit 0aa553c4735963f06e69ada0ba8568f6fff4701d
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Oct 10 15:18:55 2014 -0700

    Handle the project/tenant nonesense more cleanly
    
    devstack clouds are more strict that public ones, so it's more important
    to get project_name vs. project_id correct. Solve it with brute force.
    
    Change-Id: I957b19c23266d379834361ab6a5b3b2dc5d15d3d

commit aa7964512b34d5d6c48d5da7067a9bf14a8cb24c
Author: Devananda van der Veen <devananda.vdv at gmail.com>
Date:   Thu Oct 9 15:45:44 2014 -0700

    add Ironic client

commit b1bb75a69b491b26048fd18c40a7ac87043ea93c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Sep 28 11:18:31 2014 -0700

    Add cache control settings
    
    Things need to do local caching, which means they need to control
    some settings about that. Add simple cache settings support.
    
    Change-Id: I7b56cc25ebe7a803816d95b79d0329f8e42025ba

commit 215425f421cb4b831f1a294d73a25a14f301c1f4
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Sep 28 11:49:13 2014 -0700

    Handle no vendor clouds config files
    
    Change-Id: If0ab1db3df8ba3a2880473f2287ae3f85c84d9d5

commit 67f1fbd22ed5d0558a92c49c5114a292d1f0cc01
Author: Monty Taylor <mordred at inaugust.com>
Date:   Fri Oct 10 15:24:15 2014 -0700

    Remove unused class method get_services
    
    Change-Id: Id133bc3c39b97a4489e75c3d38df601f999e8f3a

commit 21e3ecaf5b43e949fb92c2a9d8b72fe90cf4d47c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Sep 28 12:09:33 2014 -0700

    Updates to use keystone session

commit 2c2a2953771d6599cbb3b65500c1f55eb44cafe9
Author: Dean Troyer <dtroyer at gmail.com>
Date:   Mon Sep 22 19:54:57 2014 -0500

    Add clouds-public.yaml
    
    Put vendor config outside of the code in clouds-public.yaml. Fall back to
    vendors.py if clouds-public.yaml not found.
    
    The search follows the same rules as clouds.yaml, the file is the same
    format except the top-level key is 'public-clouds'.  Typically only auth_url
    and region_name are populated.

commit cb9e5059f6f9557fc9d62e12f4237719fb172e64
Author: Monty Taylor <mordred at inaugust.com>
Date:   Mon Sep 22 09:01:40 2014 -0700

    Prep for move to stackforge

commit 7bd5ff625f9c845e1199878caf15ed128a31bb52
Author: Dean Troyer <dtroyer at gmail.com>
Date:   Sun Sep 21 22:16:02 2014 -0500

    Handle missing vendor key
    
    Continue on if the configured vendor config is not present

commit b8382c349687b09e15f92cde9d0099fea5252657
Author: Dean Troyer <dtroyer at gmail.com>
Date:   Sun Sep 21 20:44:44 2014 -0500

    Make env vars lowest priority
    
    When working with multiple tools the project CLIs only know about options
    and environment variables.  When selecting a cloud config that includes
    a section from vendors.py environment vars overwrite that data if they
    are defined.  The priority order should be:
    
    * command line args
    * cloud config selection
    * environment variables

commit 1113d0523d1f35af11ac17112a6ac7cd2a1a085a
Author: Dean Troyer <dtroyer at gmail.com>
Date:   Sun Sep 21 18:28:15 2014 -0500

    Handle null region
    
    Not all clouds define/require region_name to be set

commit e3bef24a4b7fbe8ab1c49b6af08aa175ecb41644
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Sep 21 17:49:01 2014 -0700

    Discover Trove API version

commit 1277d4cfc58a0c4e7338e29ada0df9631d62da21
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Sep 21 14:33:07 2014 -0700

    Update the README file for more completeness

commit c938bb9dbe3dcc5c9476e3d257bfde76e6093964
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Sep 21 14:22:10 2014 -0700

    Offload config to the os-client-config library
    
    Also, while we're at it, add initial trove support.

commit 69d2a3e0ad97a20cec498ab87c81af5e11e5c79c
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Sep 21 14:17:38 2014 -0700

    Get rid of extra complexity with service values
    
    We don't need to enumerate the service types - we can simply match
    at consumption time on patterns.

commit 9bbb4f30f49eb157d31a9aa1c37aca3004656009
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Sep 21 12:20:55 2014 -0700

    Remove babel and add pyyaml

commit 6efe00dbf3959ebfbb49045f357823da0b94c3e0
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Sep 21 12:16:20 2014 -0700

    Port in config reading from shade

commit edadf145f3846c95b7faf48c4543bbd15765231f
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Sep 20 16:16:13 2014 -0700

    Initial Cookiecutter Commit.

commit 64292c803109a748e23b60e7a26aa10b619e0b94
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Sep 7 17:55:48 2014 -0700

    Add example code to README

commit ccdd146a82b42883f27eae97cf13f9f9b957aba8
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sun Sep 7 17:53:31 2014 -0700

    Add volumes and config file parsing

commit 4fd77e77cd5ff3f57fd05baee153457f4efa4e45
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Sep 6 17:51:56 2014 -0700

    Fix log invocations

commit f18e9e867efd8288eeeed2622ad1d8ad75a51c28
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Aug 30 17:50:38 2014 -0700

    Remove some extra lines from the README
    
    They are misleading - making it seem like docs are there.

commit 97c316f0cc6c309041f19a8db253f8d130a4c4ad
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Aug 30 17:41:36 2014 -0700

    Add the initial library code
    
    This is the first workable piece of library code.

commit c046b39e791b16a927dee61c57b9526d97ca6fb2
Author: Monty Taylor <mordred at inaugust.com>
Date:   Sat Aug 30 16:55:05 2014 -0700

    Initial cookiecutter repo


** Bug watch added: github.com/ansible/ansible/issues #24675
   https://github.com/ansible/ansible/issues/24675

** Bug watch added: github.com/ansible/ansible-modules-core/issues #5250
   https://github.com/ansible/ansible-modules-core/issues/5250

** Bug watch added: github.com/ansible/ansible-modules-core/issues #2474
   https://github.com/ansible/ansible-modules-core/issues/2474

** Bug watch added: github.com/ansible/ansible-modules-core/issues #2435
   https://github.com/ansible/ansible-modules-core/issues/2435

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to designate in Ubuntu.
https://bugs.launchpad.net/bugs/1280522

Title:
  Replace assertEqual(None, *) with assertIsNone in tests

Status in Anchor:
  Fix Released
Status in anvil:
  New
Status in bifrost:
  Fix Released
Status in Blazar:
  Fix Released
Status in Cinder:
  Fix Released
Status in congress:
  Fix Released
Status in Designate:
  Fix Released
Status in dox:
  New
Status in DragonFlow:
  New
Status in OpenStack Backup/Restore and DR (Freezer):
  New
Status in Glance:
  Fix Released
Status in glance_store:
  Fix Released
Status in heat-cfntools:
  Fix Released
Status in Heat Translator:
  Fix Released
Status in Ironic:
  Fix Released
Status in ironic-python-agent:
  Fix Released
Status in OpenStack Identity (keystone):
  Fix Released
Status in keystoneauth:
  Fix Released
Status in kolla-mesos:
  Fix Released
Status in Manila:
  Fix Released
Status in networking-brocade:
  New
Status in networking-cisco:
  Fix Released
Status in OpenStack Compute (nova):
  Fix Released
Status in octavia:
  Fix Released
Status in ooi:
  Fix Released
Status in os-brick:
  Fix Released
Status in os-client-config:
  Fix Released
Status in oslo.messaging:
  Fix Released
Status in python-barbicanclient:
  Fix Released
Status in python-ceilometerclient:
  Fix Released
Status in python-cinderclient:
  Fix Released
Status in python-congressclient:
  Fix Released
Status in python-cueclient:
  Fix Released
Status in python-designateclient:
  Fix Released
Status in Glance Client:
  Fix Released
Status in python-heatclient:
  Fix Released
Status in python-ironicclient:
  Fix Released
Status in python-manilaclient:
  Fix Released
Status in python-openstackclient:
  Fix Released
Status in OpenStack SDK:
  Fix Released
Status in python-swiftclient:
  Fix Released
Status in python-troveclient:
  Fix Released
Status in Python client library for Zaqar:
  Fix Released
Status in Quark: Money Reinvented:
  New
Status in Sahara:
  Fix Released
Status in OpenStack Search (Searchlight):
  Fix Released
Status in Solum:
  Fix Released
Status in Stackalytics:
  Fix Released
Status in OpenStack Object Storage (swift):
  Invalid
Status in taskflow:
  Fix Released
Status in tempest:
  Fix Released
Status in OpenStack DBaaS (Trove):
  Fix Released
Status in tuskar:
  Fix Released
Status in watcher:
  Fix Released
Status in zaqar:
  Fix Released
Status in Zun:
  Fix Released
Status in designate package in Ubuntu:
  Fix Released
Status in python-tuskarclient package in Ubuntu:
  Fix Committed

Bug description:
  Replace assertEqual(None, *) with assertIsNone in tests to have
  more clear messages in case of failure.

To manage notifications about this bug go to:
https://bugs.launchpad.net/anchor/+bug/1280522/+subscriptions



More information about the Ubuntu-openstack-bugs mailing list