From 9ca78367fd49763c20d2dbb92def2819f366fe80 Mon Sep 17 00:00:00 2001 From: Samuel de Medeiros Queiroz Date: Wed, 19 Jul 2017 06:01:32 -0400 Subject: [PATCH] De-client-ify Group Create Change-Id: Id7674f3aacdfa1448c243fe0e3932dc5f303e9ba --- shade/_tasks.py | 5 ----- shade/operatorcloud.py | 30 +++++++++++++++--------------- shade/tests/unit/test_groups.py | 6 +----- 3 files changed, 16 insertions(+), 25 deletions(-) diff --git a/shade/_tasks.py b/shade/_tasks.py index e197e8307..27b5847aa 100644 --- a/shade/_tasks.py +++ b/shade/_tasks.py @@ -167,11 +167,6 @@ class GroupList(task_manager.Task): return client.keystone_client.groups.list() -class GroupCreate(task_manager.Task): - def main(self, client): - return client.keystone_client.groups.create(**self.args) - - class GroupDelete(task_manager.Task): def main(self, client): return client.keystone_client.groups.delete(**self.args) diff --git a/shade/operatorcloud.py b/shade/operatorcloud.py index 4cd7227e1..ad511e282 100644 --- a/shade/operatorcloud.py +++ b/shade/operatorcloud.py @@ -1275,22 +1275,22 @@ class OperatorCloud(openstackcloud.OpenStackCloud): :raises: ``OpenStackCloudException``: if something goes wrong during the openstack API call. """ - with _utils.shade_exceptions( - "Error creating group {group}".format(group=name) - ): - domain_id = None - if domain: - dom = self.get_domain(domain) - if not dom: - raise OpenStackCloudException( - "Creating group {group} failed: Invalid domain " - "{domain}".format(group=name, domain=domain) - ) - domain_id = dom['id'] + group_ref = {'name': name} + if description: + group_ref['description'] = description + if domain: + dom = self.get_domain(domain) + if not dom: + raise OpenStackCloudException( + "Creating group {group} failed: Invalid domain " + "{domain}".format(group=name, domain=domain) + ) + group_ref['domain_id'] = dom['id'] - group = self.manager.submit_task(_tasks.GroupCreate( - name=name, description=description, domain=domain_id) - ) + error_msg = "Error creating group {group}".format(group=name) + data = self._identity_client.post( + '/groups', json={'group': group_ref}, error_message=error_msg) + group = self._get_and_munchify('group', data) self.list_groups.invalidate(self) return _utils.normalize_groups([group])[0] diff --git a/shade/tests/unit/test_groups.py b/shade/tests/unit/test_groups.py index 4f9dec447..ed7761fee 100644 --- a/shade/tests/unit/test_groups.py +++ b/shade/tests/unit/test_groups.py @@ -72,11 +72,7 @@ class TestGroups(base.RequestsMockTestCase): uri=self.get_mock_url(), status_code=200, json=group_data.json_response, - validate=dict(json=group_data.json_request)), - dict(method='GET', - uri=self.get_mock_url(append=[group_data.group_id]), - status_code=200, - json=group_data.json_response) + validate=dict(json=group_data.json_request)) ]) self.op_cloud.create_group( name=group_data.group_name, description=group_data.description,