diff options
| author | Zuul <zuul@review.opendev.org> | 2020-12-22 13:49:26 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2020-12-22 13:49:26 +0000 |
| commit | d10706a8db1d0f23566d4a3931d13d6cb0e84048 (patch) | |
| tree | aca63a3cd29ad560f58bb22b0dcae68c8bc96a64 /openstackclient | |
| parent | 0fd090eff39bf4084a521f02bb3eb303b70c084a (diff) | |
| parent | 3c80b1b3b29307381b869f6a767e14e9d47e212f (diff) | |
| download | python-openstackclient-d10706a8db1d0f23566d4a3931d13d6cb0e84048.tar.gz | |
Merge "Add project field in image list subcommand"
Diffstat (limited to 'openstackclient')
| -rw-r--r-- | openstackclient/image/v2/image.py | 15 | ||||
| -rw-r--r-- | openstackclient/tests/unit/image/v2/test_image.py | 15 |
2 files changed, 30 insertions, 0 deletions
diff --git a/openstackclient/image/v2/image.py b/openstackclient/image/v2/image.py index 58d92f51..fa7f4be5 100644 --- a/openstackclient/image/v2/image.py +++ b/openstackclient/image/v2/image.py @@ -592,6 +592,12 @@ class ListImage(command.Lister): ', '.join(MEMBER_STATUS_CHOICES)) ) parser.add_argument( + '--project', + metavar='<project>', + help=_("Search by project (admin only) (name or ID)") + ) + common.add_project_domain_option_to_parser(parser) + parser.add_argument( '--tag', metavar='<tag>', default=None, @@ -636,6 +642,7 @@ class ListImage(command.Lister): return parser def take_action(self, parsed_args): + identity_client = self.app.client_manager.identity image_client = self.app.client_manager.image kwargs = {} @@ -659,6 +666,14 @@ class ListImage(command.Lister): kwargs['member_status'] = parsed_args.member_status if parsed_args.tag: kwargs['tag'] = parsed_args.tag + project_id = None + if parsed_args.project: + project_id = common.find_project( + identity_client, + parsed_args.project, + parsed_args.project_domain, + ).id + kwargs['owner'] = project_id if parsed_args.long: columns = ( 'ID', diff --git a/openstackclient/tests/unit/image/v2/test_image.py b/openstackclient/tests/unit/image/v2/test_image.py index b72e9835..ebeb8353 100644 --- a/openstackclient/tests/unit/image/v2/test_image.py +++ b/openstackclient/tests/unit/image/v2/test_image.py @@ -769,6 +769,21 @@ class TestImageList(TestImage): self.assertEqual(self.columns, columns) self.assertEqual(ret_limit, len(tuple(data))) + def test_image_list_project_option(self): + self.client.find_image = mock.Mock(return_value=self._image) + arglist = [ + '--project', 'nova', + ] + verifylist = [ + ('project', 'nova'), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + columns, data = self.cmd.take_action(parsed_args) + + self.assertEqual(self.columns, columns) + self.assertItemsEqual(self.datalist, tuple(data)) + @mock.patch('osc_lib.utils.find_resource') def test_image_list_marker_option(self, fr_mock): # tangchen: Since image_fakes.IMAGE is a dict, it cannot offer a .id |
