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)
|
||||
|
||||
|
||||
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):
|
||||
def main(self, client):
|
||||
return client.keystone_client.groups.list()
|
||||
|
@ -1112,15 +1112,20 @@ class OperatorCloud(openstackcloud.OpenStackCloud):
|
||||
)
|
||||
domain_id = dom['id']
|
||||
|
||||
with _utils.shade_exceptions(
|
||||
"Error in updating domain {domain}".format(domain=domain_id)):
|
||||
domain = self.manager.submit_task(_tasks.DomainUpdate(
|
||||
domain=domain_id, name=name, description=description,
|
||||
enabled=enabled))
|
||||
domain_ref = {}
|
||||
domain_ref.update({'name': name} if name else {})
|
||||
domain_ref.update({'description': description} if description else {})
|
||||
domain_ref.update({'enabled': enabled} if enabled is not None else {})
|
||||
|
||||
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]
|
||||
|
||||
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 name_or_id: Name or ID of the domain to delete.
|
||||
@ -1135,19 +1140,18 @@ class OperatorCloud(openstackcloud.OpenStackCloud):
|
||||
raise OpenStackCloudException(
|
||||
"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:
|
||||
self.log.debug(
|
||||
"Domain %s not found for deleting", name_or_id)
|
||||
return False
|
||||
domain_id = dom['id']
|
||||
|
||||
with _utils.shade_exceptions(
|
||||
"Failed to delete domain {id}".format(id=domain_id)):
|
||||
# Deleting a domain is expensive, so disabling it first increases
|
||||
# the changes of success
|
||||
domain = self.update_domain(domain_id, enabled=False)
|
||||
self.manager.submit_task(_tasks.DomainDelete(domain=domain['id']))
|
||||
# A domain must be disabled before deleting
|
||||
self.update_domain(domain_id, enabled=False)
|
||||
error_msg = "Failed to delete domain {id}".format(id=domain_id)
|
||||
self._identity_client.delete('/domains/{id}'.format(id=domain_id),
|
||||
error_message=error_msg)
|
||||
|
||||
return True
|
||||
|
||||
|
@ -112,8 +112,6 @@ class TestDomains(base.RequestsMockTestCase):
|
||||
self.register_uris([
|
||||
dict(method='PATCH', uri=domain_resource_uri, status_code=200,
|
||||
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)])
|
||||
self.op_cloud.delete_domain(domain_data.domain_id)
|
||||
self.assert_calls()
|
||||
@ -129,8 +127,6 @@ class TestDomains(base.RequestsMockTestCase):
|
||||
json={'domains': [domain_data.json_response['domain']]}),
|
||||
dict(method='PATCH', uri=domain_resource_uri, status_code=200,
|
||||
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)])
|
||||
self.op_cloud.delete_domain(name_or_id=domain_data.domain_id)
|
||||
self.assert_calls()
|
||||
@ -148,11 +144,9 @@ class TestDomains(base.RequestsMockTestCase):
|
||||
self.register_uris([
|
||||
dict(method='PATCH', uri=domain_resource_uri, status_code=200,
|
||||
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)])
|
||||
with testtools.ExpectedException(
|
||||
shade.OpenStackCloudException,
|
||||
shade.OpenStackCloudURINotFound,
|
||||
"Failed to delete domain %s" % domain_data.domain_id
|
||||
):
|
||||
self.op_cloud.delete_domain(domain_data.domain_id)
|
||||
@ -165,9 +159,7 @@ class TestDomains(base.RequestsMockTestCase):
|
||||
self.register_uris([
|
||||
dict(method='PATCH', uri=domain_resource_uri, status_code=200,
|
||||
json=domain_data.json_response,
|
||||
validate=dict(json=domain_data.json_request)),
|
||||
dict(method='GET', uri=domain_resource_uri, status_code=200,
|
||||
json=domain_data.json_response)])
|
||||
validate=dict(json=domain_data.json_request))])
|
||||
domain = self.op_cloud.update_domain(
|
||||
domain_data.domain_id,
|
||||
name=domain_data.domain_name,
|
||||
@ -187,9 +179,7 @@ class TestDomains(base.RequestsMockTestCase):
|
||||
json={'domains': [domain_data.json_response['domain']]}),
|
||||
dict(method='PATCH', uri=domain_resource_uri, status_code=200,
|
||||
json=domain_data.json_response,
|
||||
validate=dict(json=domain_data.json_request)),
|
||||
dict(method='GET', uri=domain_resource_uri, status_code=200,
|
||||
json=domain_data.json_response)])
|
||||
validate=dict(json=domain_data.json_request))])
|
||||
domain = self.op_cloud.update_domain(
|
||||
name_or_id=domain_data.domain_id,
|
||||
name=domain_data.domain_name,
|
||||
@ -206,9 +196,11 @@ class TestDomains(base.RequestsMockTestCase):
|
||||
self.register_uris([
|
||||
dict(method='PATCH',
|
||||
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(
|
||||
shade.OpenStackCloudException,
|
||||
shade.OpenStackCloudHTTPError,
|
||||
"Error in updating domain %s" % domain_data.domain_id
|
||||
):
|
||||
self.op_cloud.delete_domain(domain_data.domain_id)
|
||||
|
Loading…
x
Reference in New Issue
Block a user