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
This commit is contained in:
parent
752d01eb27
commit
766d6227a3
@ -415,7 +415,7 @@ class OpenStackCloud(
|
||||
if 'identity' not in self._raw_clients:
|
||||
identity_client = self._get_raw_client('identity')
|
||||
identity_url = self._discover_endpoint(
|
||||
'identity', version_required=True)
|
||||
'identity', version_required=True, versions=['3', '2'])
|
||||
identity_client.endpoint_override = identity_url
|
||||
self.cloud_config.config['identity_endpoint_override'] = \
|
||||
identity_url
|
||||
@ -429,13 +429,19 @@ class OpenStackCloud(
|
||||
self._raw_clients['raw-image'] = image_client
|
||||
return self._raw_clients['raw-image']
|
||||
|
||||
def _get_version_and_base_from_endpoint(self, endpoint):
|
||||
url, version = endpoint.rstrip('/').rsplit('/', 1)
|
||||
if version.endswith(self.current_project_id):
|
||||
url, version = endpoint.rstrip('/').rsplit('/', 1)
|
||||
if version.startswith('v'):
|
||||
return url, version[1]
|
||||
return "/".join([url, version]), None
|
||||
|
||||
def _get_version_from_endpoint(self, endpoint):
|
||||
endpoint_parts = endpoint.rstrip('/').split('/')
|
||||
if endpoint_parts[-1].endswith(self.current_project_id):
|
||||
endpoint_parts.pop()
|
||||
if endpoint_parts[-1].startswith('v'):
|
||||
return endpoint_parts[-1][1]
|
||||
return None
|
||||
return self._get_version_and_base_from_endpoint(endpoint)[1]
|
||||
|
||||
def _strip_version_from_endpoint(self, endpoint):
|
||||
return self._get_version_and_base_from_endpoint(endpoint)[0]
|
||||
|
||||
def _match_given_endpoint(self, given, version):
|
||||
given_version = self._get_version_from_endpoint(given)
|
||||
@ -443,7 +449,9 @@ class OpenStackCloud(
|
||||
return True
|
||||
return False
|
||||
|
||||
def _discover_endpoint(self, service_type, version_required=False):
|
||||
def _discover_endpoint(
|
||||
self, service_type, version_required=False,
|
||||
versions=None):
|
||||
# If endpoint_override is set, do nothing
|
||||
service_endpoint = self.cloud_config.get_endpoint(service_type)
|
||||
if service_endpoint:
|
||||
@ -452,56 +460,70 @@ class OpenStackCloud(
|
||||
client = self._get_raw_client(service_type)
|
||||
config_version = self.cloud_config.get_api_version(service_type)
|
||||
|
||||
if versions and config_version[0] not in versions:
|
||||
raise OpenStackCloudException(
|
||||
"Version {version} was requested for service {service_type}"
|
||||
" but shade only understands how to handle versions"
|
||||
" {versions}".format(
|
||||
version=config_version,
|
||||
service_type=service_type,
|
||||
versions=versions))
|
||||
|
||||
# shade only groks major versions at the moment
|
||||
if config_version:
|
||||
config_version = config_version[0]
|
||||
|
||||
# First - quick check to see if the endpoint in the catalog
|
||||
# is a versioned endpoint that matches the version we requested.
|
||||
# If it is, don't do any additoinal work.
|
||||
# If it is, don't do any additional work.
|
||||
catalog_endpoint = client.get_endpoint()
|
||||
if self._match_given_endpoint(
|
||||
catalog_endpoint, config_version):
|
||||
return catalog_endpoint
|
||||
|
||||
# Ok, do version discovery
|
||||
candidate_endpoints = None
|
||||
if not versions and config_version:
|
||||
versions = [config_version]
|
||||
|
||||
candidate_endpoints = []
|
||||
version_key = '{service}_api_version'.format(service=service_type)
|
||||
|
||||
# Next, try built-in keystoneauth discovery so that we can take
|
||||
# advantage of the discovery cache
|
||||
base_url = self._strip_version_from_endpoint(catalog_endpoint)
|
||||
try:
|
||||
versions = client.get('/')
|
||||
if 'values' in versions:
|
||||
versions = versions['values']
|
||||
if isinstance(versions, dict):
|
||||
versions = [versions]
|
||||
discovery = self.keystone_session.auth.get_discovery(
|
||||
self.keystone_session, base_url)
|
||||
|
||||
version_list = discovery.version_data(reverse=True)
|
||||
if config_version:
|
||||
candidate_endpoints = [
|
||||
version for version in versions
|
||||
if version['id'][1] == config_version]
|
||||
# If we have a specific version request, look for it first.
|
||||
for version_data in version_list:
|
||||
if str(version_data['version'][0]) == config_version:
|
||||
candidate_endpoints.append(version_data)
|
||||
|
||||
if not candidate_endpoints:
|
||||
candidate_endpoints = [
|
||||
version for version in versions
|
||||
if version['status'] in ('CURRENT', 'stable')]
|
||||
if not candidate_endpoints:
|
||||
candidate_endpoints = versions
|
||||
except (keystoneauth1.exceptions.connection.ConnectFailure,
|
||||
OpenStackCloudURINotFound) as e:
|
||||
# A 404 or a connection error is a likely thing to get
|
||||
# either with a misconfgured service. or we've already
|
||||
# gotten a versioned endpoint from the catalog
|
||||
# If we didn't find anything, look again, this time either
|
||||
# for the range, or just grab everything if we don't have
|
||||
# a range
|
||||
if str(version_data['version'][0]) in versions:
|
||||
candidate_endpoints.append(version_data)
|
||||
elif not config_version and not versions:
|
||||
candidate_endpoints.append(version_data)
|
||||
|
||||
except keystoneauth1.exceptions.DiscoveryFailure as e:
|
||||
self.log.debug(
|
||||
"Version discovery failed, assuming endpoint in"
|
||||
" the catalog is already versioned. {e}".format(e=str(e)))
|
||||
|
||||
if candidate_endpoints:
|
||||
# If we got more than one, pick the highest
|
||||
endpoint_description = candidate_endpoints[0]
|
||||
service_endpoint = [
|
||||
link['href'] for link in endpoint_description['links']
|
||||
if link['rel'] == 'self'][0]
|
||||
api_version = endpoint_description['id'][1]
|
||||
service_endpoint = endpoint_description['url']
|
||||
api_version = str(endpoint_description['version'][0])
|
||||
else:
|
||||
# Can't discover a version. Do best-attempt at inferring
|
||||
# version from URL so that later logic can do its best
|
||||
api_version = self._get_version_from_endpoint()
|
||||
api_version = self._get_version_from_endpoint(catalog_endpoint)
|
||||
if not api_version:
|
||||
if not config_version and version_required:
|
||||
raise OpenStackCloudException(
|
||||
@ -545,7 +567,8 @@ class OpenStackCloud(
|
||||
def _image_client(self):
|
||||
if 'image' not in self._raw_clients:
|
||||
image_client = self._get_raw_client('image')
|
||||
image_url = self._discover_endpoint('image', version_required=True)
|
||||
image_url = self._discover_endpoint(
|
||||
'image', version_required=True, versions=['2', '1'])
|
||||
image_client.endpoint_override = image_url
|
||||
self._raw_clients['image'] = image_client
|
||||
return self._raw_clients['image']
|
||||
|
@ -434,17 +434,6 @@ class RequestsMockTestCase(BaseTestCase):
|
||||
self._make_test_cloud(cloud_name='_test_cloud_v2_',
|
||||
identity_api_version='2.0')
|
||||
|
||||
def _add_discovery_uri_call(self):
|
||||
# NOTE(notmorgan): Temp workaround for transition to requests
|
||||
# mock for cases keystoneclient is still mocked directly. This allows
|
||||
# us to inject another call to discovery where needed in a test that
|
||||
# no longer mocks out kyestoneclient and performs the extra round
|
||||
# trips.
|
||||
self.__do_register_uris([
|
||||
dict(method='GET', uri='https://identity.example.com/',
|
||||
text=open(self.discovery_json, 'r').read()),
|
||||
])
|
||||
|
||||
def _make_test_cloud(self, cloud_name='_test_cloud_', **kwargs):
|
||||
test_cloud = os.environ.get('SHADE_OS_CLOUD', cloud_name)
|
||||
self.cloud_config = self.config.get_one_cloud(
|
||||
|
@ -1,22 +1,24 @@
|
||||
{
|
||||
"values": [{
|
||||
"id": "v1",
|
||||
"links": [
|
||||
{
|
||||
"href": "https://dns.example.com/v1",
|
||||
"rel": "self"
|
||||
}
|
||||
],
|
||||
"status": "DEPRECATED"
|
||||
}, {
|
||||
"id": "v2",
|
||||
"links": [
|
||||
{
|
||||
"href": "https://dns.example.com/v2",
|
||||
"rel": "self"
|
||||
}
|
||||
],
|
||||
"status": "CURRENT"
|
||||
}]
|
||||
"versions": {
|
||||
"values": [{
|
||||
"id": "v1",
|
||||
"links": [
|
||||
{
|
||||
"href": "https://dns.example.com/v1",
|
||||
"rel": "self"
|
||||
}
|
||||
],
|
||||
"status": "DEPRECATED"
|
||||
}, {
|
||||
"id": "v2",
|
||||
"links": [
|
||||
{
|
||||
"href": "https://dns.example.com/v2",
|
||||
"rel": "self"
|
||||
}
|
||||
],
|
||||
"status": "CURRENT"
|
||||
}]
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -107,7 +107,6 @@ class TestMemoryCache(base.RequestsMockTestCase):
|
||||
self.assertIsInstance(self.cloud, shade.OpenStackCloud)
|
||||
|
||||
def test_list_projects_v3(self):
|
||||
self._add_discovery_uri_call()
|
||||
project_one = self._get_project_data()
|
||||
project_two = self._get_project_data()
|
||||
project_list = [project_one, project_two]
|
||||
@ -312,7 +311,6 @@ class TestMemoryCache(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_list_users(self):
|
||||
self._add_discovery_uri_call()
|
||||
user_data = self._get_user_data(email='test@example.com')
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
|
@ -32,7 +32,6 @@ class TestDomains(base.RequestsMockTestCase):
|
||||
append=append, base_url_append=base_url_append)
|
||||
|
||||
def test_list_domains(self):
|
||||
self._add_discovery_uri_call()
|
||||
domain_data = self._get_domain_data()
|
||||
self.register_uris([
|
||||
dict(method='GET', uri=self.get_mock_url(), status_code=200,
|
||||
@ -46,7 +45,6 @@ class TestDomains(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_get_domain(self):
|
||||
self._add_discovery_uri_call()
|
||||
domain_data = self._get_domain_data()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
@ -59,7 +57,6 @@ class TestDomains(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_get_domain_with_name_or_id(self):
|
||||
self._add_discovery_uri_call()
|
||||
domain_data = self._get_domain_data()
|
||||
response = {'domains': [domain_data.json_response['domain']]}
|
||||
self.register_uris([
|
||||
@ -79,7 +76,6 @@ class TestDomains(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_create_domain(self):
|
||||
self._add_discovery_uri_call()
|
||||
domain_data = self._get_domain_data(description=uuid.uuid4().hex,
|
||||
enabled=True)
|
||||
self.register_uris([
|
||||
@ -99,7 +95,6 @@ class TestDomains(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_create_domain_exception(self):
|
||||
self._add_discovery_uri_call()
|
||||
with testtools.ExpectedException(
|
||||
shade.OpenStackCloudException,
|
||||
"Failed to create domain domain_name"
|
||||
@ -110,7 +105,6 @@ class TestDomains(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_delete_domain(self):
|
||||
self._add_discovery_uri_call()
|
||||
domain_data = self._get_domain_data()
|
||||
new_resp = domain_data.json_response.copy()
|
||||
new_resp['domain']['enabled'] = False
|
||||
@ -125,7 +119,6 @@ class TestDomains(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_delete_domain_name_or_id(self):
|
||||
self._add_discovery_uri_call()
|
||||
domain_data = self._get_domain_data()
|
||||
new_resp = domain_data.json_response.copy()
|
||||
new_resp['domain']['enabled'] = False
|
||||
@ -148,7 +141,6 @@ class TestDomains(base.RequestsMockTestCase):
|
||||
# to update domain even though it is called via delete_domain. This
|
||||
# should be fixed in shade to catch either a failure on PATCH,
|
||||
# subsequent GET, or DELETE call(s).
|
||||
self._add_discovery_uri_call()
|
||||
domain_data = self._get_domain_data()
|
||||
new_resp = domain_data.json_response.copy()
|
||||
new_resp['domain']['enabled'] = False
|
||||
@ -167,7 +159,6 @@ class TestDomains(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_update_domain(self):
|
||||
self._add_discovery_uri_call()
|
||||
domain_data = self._get_domain_data(
|
||||
description=self.getUniqueString('domainDesc'))
|
||||
domain_resource_uri = self.get_mock_url(append=[domain_data.domain_id])
|
||||
@ -188,7 +179,6 @@ class TestDomains(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_update_domain_name_or_id(self):
|
||||
self._add_discovery_uri_call()
|
||||
domain_data = self._get_domain_data(
|
||||
description=self.getUniqueString('domainDesc'))
|
||||
domain_resource_uri = self.get_mock_url(append=[domain_data.domain_id])
|
||||
@ -211,7 +201,6 @@ class TestDomains(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_update_domain_exception(self):
|
||||
self._add_discovery_uri_call()
|
||||
domain_data = self._get_domain_data(
|
||||
description=self.getUniqueString('domainDesc'))
|
||||
self.register_uris([
|
||||
|
@ -127,7 +127,6 @@ class TestCloudEndpoints(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_create_endpoint_v3(self):
|
||||
self._add_discovery_uri_call()
|
||||
service_data = self._get_service_data()
|
||||
public_endpoint_data = self._get_endpoint_v3_data(
|
||||
service_id=service_data.service_id, interface='public',
|
||||
@ -251,7 +250,6 @@ class TestCloudEndpoints(base.RequestsMockTestCase):
|
||||
self.op_cloud.update_endpoint, 'endpoint_id')
|
||||
|
||||
def test_update_endpoint_v3(self):
|
||||
self._add_discovery_uri_call()
|
||||
service_data = self._get_service_data()
|
||||
endpoint_data = self._get_endpoint_v3_data(
|
||||
service_id=service_data.service_id, interface='admin',
|
||||
@ -289,7 +287,6 @@ class TestCloudEndpoints(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_list_endpoints(self):
|
||||
self._add_discovery_uri_call()
|
||||
endpoints_data = [self._get_endpoint_v3_data() for e in range(1, 10)]
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
@ -317,7 +314,6 @@ class TestCloudEndpoints(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_search_endpoints(self):
|
||||
self._add_discovery_uri_call()
|
||||
endpoints_data = [self._get_endpoint_v3_data(region='region1')
|
||||
for e in range(0, 2)]
|
||||
endpoints_data.extend([self._get_endpoint_v3_data()
|
||||
@ -378,7 +374,6 @@ class TestCloudEndpoints(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_delete_endpoint(self):
|
||||
self._add_discovery_uri_call()
|
||||
endpoint_data = self._get_endpoint_v3_data()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
|
@ -18,7 +18,6 @@ class TestGroups(base.RequestsMockTestCase):
|
||||
def setUp(self, cloud_config_fixture='clouds.yaml'):
|
||||
super(TestGroups, self).setUp(
|
||||
cloud_config_fixture=cloud_config_fixture)
|
||||
self._add_discovery_uri_call()
|
||||
self.addCleanup(self.assert_calls)
|
||||
|
||||
def get_mock_url(self, service_type='identity', interface='admin',
|
||||
|
@ -44,7 +44,6 @@ class TestIdentityRoles(base.RequestsMockTestCase):
|
||||
qs_elements)
|
||||
|
||||
def test_list_roles(self):
|
||||
self._add_discovery_uri_call()
|
||||
role_data = self._get_role_data()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
@ -56,7 +55,6 @@ class TestIdentityRoles(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_get_role_by_name(self):
|
||||
self._add_discovery_uri_call()
|
||||
role_data = self._get_role_data()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
@ -72,7 +70,6 @@ class TestIdentityRoles(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_get_role_by_id(self):
|
||||
self._add_discovery_uri_call()
|
||||
role_data = self._get_role_data()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
@ -88,7 +85,6 @@ class TestIdentityRoles(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_create_role(self):
|
||||
self._add_discovery_uri_call()
|
||||
role_data = self._get_role_data()
|
||||
self.register_uris([
|
||||
dict(method='POST',
|
||||
@ -110,7 +106,6 @@ class TestIdentityRoles(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_delete_role_by_id(self):
|
||||
self._add_discovery_uri_call()
|
||||
role_data = self._get_role_data()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
@ -126,7 +121,6 @@ class TestIdentityRoles(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_delete_role_by_name(self):
|
||||
self._add_discovery_uri_call()
|
||||
role_data = self._get_role_data()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
@ -142,7 +136,6 @@ class TestIdentityRoles(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_list_role_assignments(self):
|
||||
self._add_discovery_uri_call()
|
||||
domain_data = self._get_domain_data()
|
||||
user_data = self._get_user_data(domain_id=domain_data.domain_id)
|
||||
group_data = self._get_group_data(domain_id=domain_data.domain_id)
|
||||
@ -177,7 +170,6 @@ class TestIdentityRoles(base.RequestsMockTestCase):
|
||||
matchers.Equals(project_data.project_id))
|
||||
|
||||
def test_list_role_assignments_filters(self):
|
||||
self._add_discovery_uri_call()
|
||||
domain_data = self._get_domain_data()
|
||||
user_data = self._get_user_data(domain_id=domain_data.domain_id)
|
||||
role_data = self._get_role_data()
|
||||
@ -208,7 +200,6 @@ class TestIdentityRoles(base.RequestsMockTestCase):
|
||||
self.assertThat(ret[0].domain, matchers.Equals(domain_data.domain_id))
|
||||
|
||||
def test_list_role_assignments_exception(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='role_assignments'),
|
||||
|
@ -25,7 +25,6 @@ class TestLimits(base.RequestsMockTestCase):
|
||||
|
||||
@mock.patch.object(shade.OpenStackCloud, 'nova_client')
|
||||
def test_other_get_compute_limits(self, mock_nova):
|
||||
self._add_discovery_uri_call()
|
||||
project = self.mock_for_keystone_projects(project_count=1,
|
||||
list_get=True)[0]
|
||||
self.op_cloud.get_compute_limits(project.project_id)
|
||||
|
@ -55,7 +55,6 @@ class TestProject(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_create_project_v3(self,):
|
||||
self._add_discovery_uri_call()
|
||||
project_data = self._get_project_data(
|
||||
description=self.getUniqueString('projectDesc'))
|
||||
self.register_uris([
|
||||
@ -107,7 +106,6 @@ class TestProject(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_delete_project_v3(self):
|
||||
self._add_discovery_uri_call()
|
||||
project_data = self._get_project_data(v3=False)
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
@ -122,7 +120,6 @@ class TestProject(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_update_project_not_found(self):
|
||||
self._add_discovery_uri_call()
|
||||
project_data = self._get_project_data()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
@ -175,7 +172,6 @@ class TestProject(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_update_project_v3(self):
|
||||
self._add_discovery_uri_call()
|
||||
project_data = self._get_project_data(
|
||||
description=self.getUniqueString('projectDesc'))
|
||||
self.register_uris([
|
||||
@ -205,7 +201,6 @@ class TestProject(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_list_projects_v3(self):
|
||||
self._add_discovery_uri_call()
|
||||
project_data = self._get_project_data(
|
||||
description=self.getUniqueString('projectDesc'))
|
||||
self.register_uris([
|
||||
@ -223,7 +218,6 @@ class TestProject(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_list_projects_v3_kwarg(self):
|
||||
self._add_discovery_uri_call()
|
||||
project_data = self._get_project_data(
|
||||
description=self.getUniqueString('projectDesc'))
|
||||
self.register_uris([
|
||||
@ -242,7 +236,6 @@ class TestProject(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_list_projects_search_compat(self):
|
||||
self._add_discovery_uri_call()
|
||||
project_data = self._get_project_data(
|
||||
description=self.getUniqueString('projectDesc'))
|
||||
self.register_uris([
|
||||
@ -258,7 +251,6 @@ class TestProject(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_list_projects_search_compat_v3(self):
|
||||
self._add_discovery_uri_call()
|
||||
project_data = self._get_project_data(
|
||||
description=self.getUniqueString('projectDesc'))
|
||||
self.register_uris([
|
||||
|
@ -23,7 +23,6 @@ class TestQuotas(base.RequestsMockTestCase):
|
||||
def setUp(self, cloud_config_fixture='clouds.yaml'):
|
||||
super(TestQuotas, self).setUp(
|
||||
cloud_config_fixture=cloud_config_fixture)
|
||||
self._add_discovery_uri_call()
|
||||
|
||||
@mock.patch.object(shade.OpenStackCloud, 'nova_client')
|
||||
def test_update_quotas(self, mock_nova):
|
||||
|
@ -361,7 +361,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_grant_role_user_project(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -437,7 +436,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_grant_role_user_project_exists(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -509,7 +507,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_grant_role_group_project(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -583,7 +580,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_grant_role_group_project_exists(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -655,7 +651,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_grant_role_user_domain(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -801,7 +796,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_grant_role_user_domain_exists(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -939,7 +933,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_grant_role_group_domain(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -1085,7 +1078,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_grant_role_group_domain_exists(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -1477,7 +1469,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_revoke_role_user_project(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -1537,7 +1528,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_revoke_role_user_project_exists(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -1623,7 +1613,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_revoke_role_group_project(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -1683,7 +1672,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_revoke_role_group_project_exists(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -1769,7 +1757,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_revoke_role_user_domain(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -1883,7 +1870,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_revoke_role_user_domain_exists(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -2049,7 +2035,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_revoke_role_group_domain(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -2163,7 +2148,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_revoke_role_group_domain_exists(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -2329,7 +2313,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_grant_no_role(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -2348,7 +2331,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_revoke_no_role(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -2367,7 +2349,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_grant_no_user_or_group_specified(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -2382,7 +2363,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_revoke_no_user_or_group_specified(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -2397,7 +2377,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_grant_no_user_or_group(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -2418,7 +2397,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_revoke_no_user_or_group(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -2439,7 +2417,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_grant_both_user_and_group(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -2465,7 +2442,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_revoke_both_user_and_group(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -2491,7 +2467,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_grant_both_project_and_domain(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -2539,7 +2514,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_revoke_both_project_and_domain(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -2592,7 +2566,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_grant_no_project_or_domain(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -2621,7 +2594,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_revoke_no_project_or_domain(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -2656,7 +2628,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_grant_bad_domain_exception(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
@ -2680,7 +2651,6 @@ class TestRoleAssignment(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_revoke_bad_domain_exception(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self.get_mock_url(resource='roles'),
|
||||
|
@ -67,7 +67,6 @@ class CloudServices(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_create_service_v3(self):
|
||||
self._add_discovery_uri_call()
|
||||
service_data = self._get_service_data(name='a service', type='network',
|
||||
description='A test service')
|
||||
self.register_uris([
|
||||
@ -103,7 +102,6 @@ class CloudServices(base.RequestsMockTestCase):
|
||||
'service_id', name='new name')
|
||||
|
||||
def test_update_service_v3(self):
|
||||
self._add_discovery_uri_call()
|
||||
service_data = self._get_service_data(name='a service', type='network',
|
||||
description='A test service')
|
||||
request = service_data.json_request.copy()
|
||||
@ -134,7 +132,6 @@ class CloudServices(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_list_services(self):
|
||||
self._add_discovery_uri_call()
|
||||
service_data = self._get_service_data()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
@ -153,7 +150,6 @@ class CloudServices(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_get_service(self):
|
||||
self._add_discovery_uri_call()
|
||||
service_data = self._get_service_data()
|
||||
service2_data = self._get_service_data()
|
||||
self.register_uris([
|
||||
@ -201,7 +197,6 @@ class CloudServices(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_search_services(self):
|
||||
self._add_discovery_uri_call()
|
||||
service_data = self._get_service_data()
|
||||
service2_data = self._get_service_data(type=service_data.service_type)
|
||||
self.register_uris([
|
||||
@ -263,7 +258,6 @@ class CloudServices(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_delete_service(self):
|
||||
self._add_discovery_uri_call()
|
||||
service_data = self._get_service_data()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
|
@ -22,7 +22,6 @@ class TestUsage(base.RequestsMockTestCase):
|
||||
|
||||
@mock.patch.object(shade.OpenStackCloud, 'nova_client')
|
||||
def test_get_usage(self, mock_nova):
|
||||
self._add_discovery_uri_call()
|
||||
project = self.mock_for_keystone_projects(project_count=1,
|
||||
list_get=True)[0]
|
||||
start = end = datetime.datetime.now()
|
||||
|
@ -67,7 +67,6 @@ class TestUsers(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_create_user_v3(self):
|
||||
self._add_discovery_uri_call()
|
||||
user_data = self._get_user_data(
|
||||
domain_id=uuid.uuid4().hex,
|
||||
description=self.getUniqueString('description'))
|
||||
@ -149,7 +148,6 @@ class TestUsers(base.RequestsMockTestCase):
|
||||
password=user_data.password)
|
||||
|
||||
def test_delete_user(self):
|
||||
self._add_discovery_uri_call()
|
||||
user_data = self._get_user_data(domain_id=uuid.uuid4().hex)
|
||||
user_resource_uri = self._get_keystone_mock_url(
|
||||
resource='users', append=[user_data.user_id])
|
||||
@ -167,7 +165,6 @@ class TestUsers(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_delete_user_not_found(self):
|
||||
self._add_discovery_uri_call()
|
||||
self.register_uris([
|
||||
dict(method='GET',
|
||||
uri=self._get_keystone_mock_url(resource='users'),
|
||||
@ -175,7 +172,6 @@ class TestUsers(base.RequestsMockTestCase):
|
||||
self.assertFalse(self.op_cloud.delete_user(self.getUniqueString()))
|
||||
|
||||
def test_add_user_to_group(self):
|
||||
self._add_discovery_uri_call()
|
||||
user_data = self._get_user_data()
|
||||
group_data = self._get_group_data()
|
||||
|
||||
@ -197,7 +193,6 @@ class TestUsers(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_is_user_in_group(self):
|
||||
self._add_discovery_uri_call()
|
||||
user_data = self._get_user_data()
|
||||
group_data = self._get_group_data()
|
||||
|
||||
@ -221,7 +216,6 @@ class TestUsers(base.RequestsMockTestCase):
|
||||
self.assert_calls()
|
||||
|
||||
def test_remove_user_from_group(self):
|
||||
self._add_discovery_uri_call()
|
||||
user_data = self._get_user_data()
|
||||
group_data = self._get_group_data()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user