Merge "De-client-ify Domain Update and Delete"
This commit is contained in:
commit
95e444f257
@ -177,16 +177,6 @@ class DomainGet(task_manager.Task):
|
|||||||
return client.keystone_client.domains.get(**self.args)
|
return client.keystone_client.domains.get(**self.args)
|
||||||
|
|
||||||
|
|
||||||
class DomainUpdate(task_manager.Task):
|
|
||||||
def main(self, client):
|
|
||||||
return client.keystone_client.domains.update(**self.args)
|
|
||||||
|
|
||||||
|
|
||||||
class DomainDelete(task_manager.Task):
|
|
||||||
def main(self, client):
|
|
||||||
return client.keystone_client.domains.delete(**self.args)
|
|
||||||
|
|
||||||
|
|
||||||
class GroupList(task_manager.Task):
|
class GroupList(task_manager.Task):
|
||||||
def main(self, client):
|
def main(self, client):
|
||||||
return client.keystone_client.groups.list()
|
return client.keystone_client.groups.list()
|
||||||
|
@ -1112,15 +1112,20 @@ class OperatorCloud(openstackcloud.OpenStackCloud):
|
|||||||
)
|
)
|
||||||
domain_id = dom['id']
|
domain_id = dom['id']
|
||||||
|
|
||||||
with _utils.shade_exceptions(
|
domain_ref = {}
|
||||||
"Error in updating domain {domain}".format(domain=domain_id)):
|
domain_ref.update({'name': name} if name else {})
|
||||||
domain = self.manager.submit_task(_tasks.DomainUpdate(
|
domain_ref.update({'description': description} if description else {})
|
||||||
domain=domain_id, name=name, description=description,
|
domain_ref.update({'enabled': enabled} if enabled is not None else {})
|
||||||
enabled=enabled))
|
|
||||||
|
error_msg = "Error in updating domain {id}".format(id=domain_id)
|
||||||
|
data = self._identity_client.patch(
|
||||||
|
'/domains/{id}'.format(id=domain_id),
|
||||||
|
json={'domain': domain_ref}, error_message=error_msg)
|
||||||
|
domain = meta.get_and_munchify('domain', data)
|
||||||
return _utils.normalize_domains([domain])[0]
|
return _utils.normalize_domains([domain])[0]
|
||||||
|
|
||||||
def delete_domain(self, domain_id=None, name_or_id=None):
|
def delete_domain(self, domain_id=None, name_or_id=None):
|
||||||
"""Delete a Keystone domain.
|
"""Delete a domain.
|
||||||
|
|
||||||
:param domain_id: ID of the domain to delete.
|
:param domain_id: ID of the domain to delete.
|
||||||
:param name_or_id: Name or ID of the domain to delete.
|
:param name_or_id: Name or ID of the domain to delete.
|
||||||
@ -1135,19 +1140,18 @@ class OperatorCloud(openstackcloud.OpenStackCloud):
|
|||||||
raise OpenStackCloudException(
|
raise OpenStackCloudException(
|
||||||
"You must pass either domain_id or name_or_id value"
|
"You must pass either domain_id or name_or_id value"
|
||||||
)
|
)
|
||||||
dom = self.get_domain(None, name_or_id)
|
dom = self.get_domain(name_or_id=name_or_id)
|
||||||
if dom is None:
|
if dom is None:
|
||||||
self.log.debug(
|
self.log.debug(
|
||||||
"Domain %s not found for deleting", name_or_id)
|
"Domain %s not found for deleting", name_or_id)
|
||||||
return False
|
return False
|
||||||
domain_id = dom['id']
|
domain_id = dom['id']
|
||||||
|
|
||||||
with _utils.shade_exceptions(
|
# A domain must be disabled before deleting
|
||||||
"Failed to delete domain {id}".format(id=domain_id)):
|
self.update_domain(domain_id, enabled=False)
|
||||||
# Deleting a domain is expensive, so disabling it first increases
|
error_msg = "Failed to delete domain {id}".format(id=domain_id)
|
||||||
# the changes of success
|
self._identity_client.delete('/domains/{id}'.format(id=domain_id),
|
||||||
domain = self.update_domain(domain_id, enabled=False)
|
error_message=error_msg)
|
||||||
self.manager.submit_task(_tasks.DomainDelete(domain=domain['id']))
|
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@ -112,8 +112,6 @@ class TestDomains(base.RequestsMockTestCase):
|
|||||||
self.register_uris([
|
self.register_uris([
|
||||||
dict(method='PATCH', uri=domain_resource_uri, status_code=200,
|
dict(method='PATCH', uri=domain_resource_uri, status_code=200,
|
||||||
json=new_resp, validate={'domain': {'enabled': False}}),
|
json=new_resp, validate={'domain': {'enabled': False}}),
|
||||||
dict(method='GET', uri=domain_resource_uri, status_code=200,
|
|
||||||
json=new_resp),
|
|
||||||
dict(method='DELETE', uri=domain_resource_uri, status_code=204)])
|
dict(method='DELETE', uri=domain_resource_uri, status_code=204)])
|
||||||
self.op_cloud.delete_domain(domain_data.domain_id)
|
self.op_cloud.delete_domain(domain_data.domain_id)
|
||||||
self.assert_calls()
|
self.assert_calls()
|
||||||
@ -129,8 +127,6 @@ class TestDomains(base.RequestsMockTestCase):
|
|||||||
json={'domains': [domain_data.json_response['domain']]}),
|
json={'domains': [domain_data.json_response['domain']]}),
|
||||||
dict(method='PATCH', uri=domain_resource_uri, status_code=200,
|
dict(method='PATCH', uri=domain_resource_uri, status_code=200,
|
||||||
json=new_resp, validate={'domain': {'enabled': False}}),
|
json=new_resp, validate={'domain': {'enabled': False}}),
|
||||||
dict(method='GET', uri=domain_resource_uri, status_code=200,
|
|
||||||
json=new_resp),
|
|
||||||
dict(method='DELETE', uri=domain_resource_uri, status_code=204)])
|
dict(method='DELETE', uri=domain_resource_uri, status_code=204)])
|
||||||
self.op_cloud.delete_domain(name_or_id=domain_data.domain_id)
|
self.op_cloud.delete_domain(name_or_id=domain_data.domain_id)
|
||||||
self.assert_calls()
|
self.assert_calls()
|
||||||
@ -148,11 +144,9 @@ class TestDomains(base.RequestsMockTestCase):
|
|||||||
self.register_uris([
|
self.register_uris([
|
||||||
dict(method='PATCH', uri=domain_resource_uri, status_code=200,
|
dict(method='PATCH', uri=domain_resource_uri, status_code=200,
|
||||||
json=new_resp, validate={'domain': {'enabled': False}}),
|
json=new_resp, validate={'domain': {'enabled': False}}),
|
||||||
dict(method='GET', uri=domain_resource_uri, status_code=200,
|
|
||||||
json=new_resp),
|
|
||||||
dict(method='DELETE', uri=domain_resource_uri, status_code=404)])
|
dict(method='DELETE', uri=domain_resource_uri, status_code=404)])
|
||||||
with testtools.ExpectedException(
|
with testtools.ExpectedException(
|
||||||
shade.OpenStackCloudException,
|
shade.OpenStackCloudURINotFound,
|
||||||
"Failed to delete domain %s" % domain_data.domain_id
|
"Failed to delete domain %s" % domain_data.domain_id
|
||||||
):
|
):
|
||||||
self.op_cloud.delete_domain(domain_data.domain_id)
|
self.op_cloud.delete_domain(domain_data.domain_id)
|
||||||
@ -165,9 +159,7 @@ class TestDomains(base.RequestsMockTestCase):
|
|||||||
self.register_uris([
|
self.register_uris([
|
||||||
dict(method='PATCH', uri=domain_resource_uri, status_code=200,
|
dict(method='PATCH', uri=domain_resource_uri, status_code=200,
|
||||||
json=domain_data.json_response,
|
json=domain_data.json_response,
|
||||||
validate=dict(json=domain_data.json_request)),
|
validate=dict(json=domain_data.json_request))])
|
||||||
dict(method='GET', uri=domain_resource_uri, status_code=200,
|
|
||||||
json=domain_data.json_response)])
|
|
||||||
domain = self.op_cloud.update_domain(
|
domain = self.op_cloud.update_domain(
|
||||||
domain_data.domain_id,
|
domain_data.domain_id,
|
||||||
name=domain_data.domain_name,
|
name=domain_data.domain_name,
|
||||||
@ -187,9 +179,7 @@ class TestDomains(base.RequestsMockTestCase):
|
|||||||
json={'domains': [domain_data.json_response['domain']]}),
|
json={'domains': [domain_data.json_response['domain']]}),
|
||||||
dict(method='PATCH', uri=domain_resource_uri, status_code=200,
|
dict(method='PATCH', uri=domain_resource_uri, status_code=200,
|
||||||
json=domain_data.json_response,
|
json=domain_data.json_response,
|
||||||
validate=dict(json=domain_data.json_request)),
|
validate=dict(json=domain_data.json_request))])
|
||||||
dict(method='GET', uri=domain_resource_uri, status_code=200,
|
|
||||||
json=domain_data.json_response)])
|
|
||||||
domain = self.op_cloud.update_domain(
|
domain = self.op_cloud.update_domain(
|
||||||
name_or_id=domain_data.domain_id,
|
name_or_id=domain_data.domain_id,
|
||||||
name=domain_data.domain_name,
|
name=domain_data.domain_name,
|
||||||
@ -206,9 +196,11 @@ class TestDomains(base.RequestsMockTestCase):
|
|||||||
self.register_uris([
|
self.register_uris([
|
||||||
dict(method='PATCH',
|
dict(method='PATCH',
|
||||||
uri=self.get_mock_url(append=[domain_data.domain_id]),
|
uri=self.get_mock_url(append=[domain_data.domain_id]),
|
||||||
status_code=409)])
|
status_code=409,
|
||||||
|
json=domain_data.json_response,
|
||||||
|
validate=dict(json={'domain': {'enabled': False}}))])
|
||||||
with testtools.ExpectedException(
|
with testtools.ExpectedException(
|
||||||
shade.OpenStackCloudException,
|
shade.OpenStackCloudHTTPError,
|
||||||
"Error in updating domain %s" % domain_data.domain_id
|
"Error in updating domain %s" % domain_data.domain_id
|
||||||
):
|
):
|
||||||
self.op_cloud.delete_domain(domain_data.domain_id)
|
self.op_cloud.delete_domain(domain_data.domain_id)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user