diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-04-25 21:15:43 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-04-25 21:15:43 +0000 |
| commit | 74162fa31a3c34ee08472f24318f1c326b493330 (patch) | |
| tree | 2630dafbee9dd36ef2681b05abd7f270c8c00bfd /openstackclient | |
| parent | a0a29df3e67b29880e62e1974dde18a4993f2aa1 (diff) | |
| parent | 27024d70af4756cb6e4b210b025ed7427541f773 (diff) | |
| download | python-openstackclient-74162fa31a3c34ee08472f24318f1c326b493330.tar.gz | |
Merge "Support quota show for current project"
Diffstat (limited to 'openstackclient')
| -rw-r--r-- | openstackclient/common/quota.py | 29 | ||||
| -rw-r--r-- | openstackclient/tests/common/test_quota.py | 11 |
2 files changed, 29 insertions, 11 deletions
diff --git a/openstackclient/common/quota.py b/openstackclient/common/quota.py index b3d4c3b6..b497a44d 100644 --- a/openstackclient/common/quota.py +++ b/openstackclient/common/quota.py @@ -145,7 +145,8 @@ class ShowQuota(command.ShowOne): parser.add_argument( 'project', metavar='<project/class>', - help='Show this project or class (name/ID)', + nargs='?', + help='Show quotas for this project or class (name or ID)', ) type_group = parser.add_mutually_exclusive_group() type_group.add_argument( @@ -164,12 +165,22 @@ class ShowQuota(command.ShowOne): ) return parser + def _get_project(self, parsed_args): + if parsed_args.project is not None: + identity_client = self.app.client_manager.identity + project = utils.find_resource( + identity_client.projects, + parsed_args.project, + ).id + elif self.app.client_manager.auth_ref: + # Get the project from the current auth + project = self.app.client_manager.auth_ref.project_id + else: + project = None + return project + def get_compute_volume_quota(self, client, parsed_args): - identity_client = self.app.client_manager.identity - project = utils.find_resource( - identity_client.projects, - parsed_args.project, - ).id + project = self._get_project(parsed_args) try: if parsed_args.quota_class: @@ -189,11 +200,7 @@ class ShowQuota(command.ShowOne): if parsed_args.quota_class or parsed_args.default: return {} if self.app.client_manager.is_network_endpoint_enabled(): - identity_client = self.app.client_manager.identity - project = utils.find_resource( - identity_client.projects, - parsed_args.project, - ).id + project = self._get_project(parsed_args) return self.app.client_manager.network.get_quota(project) else: return {} diff --git a/openstackclient/tests/common/test_quota.py b/openstackclient/tests/common/test_quota.py index edf29c9b..ba7ee469 100644 --- a/openstackclient/tests/common/test_quota.py +++ b/openstackclient/tests/common/test_quota.py @@ -59,6 +59,7 @@ class TestQuota(compute_fakes.TestComputev2): self.service_catalog_mock = \ self.app.client_manager.auth_ref.service_catalog self.service_catalog_mock.reset_mock() + self.app.client_manager.auth_ref.project_id = identity_fakes.project_id class TestQuotaSet(TestQuota): @@ -304,3 +305,13 @@ class TestQuotaShow(TestQuota): identity_fakes.project_id) self.volume_quotas_class_mock.get.assert_called_with( identity_fakes.project_id) + + def test_quota_show_no_project(self): + parsed_args = self.check_parser(self.cmd, [], []) + + self.cmd.take_action(parsed_args) + + self.quotas_mock.get.assert_called_with(identity_fakes.project_id) + self.volume_quotas_mock.get.assert_called_with( + identity_fakes.project_id) + self.network.get_quota.assert_called_with(identity_fakes.project_id) |
