diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-12-18 12:20:28 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-12-18 12:20:28 +0000 |
| commit | cc4ede88e929f26b152254cf8f8ffff80a18d89e (patch) | |
| tree | 2e082fec33552853366729179d30fa79658436de /openstackclient | |
| parent | 3ff713fd57e6439dc1ebce6935d72c5e794aa839 (diff) | |
| parent | d083ddb12f4b8eb0d72bb4ff60113cd0904d8c1d (diff) | |
| download | python-openstackclient-cc4ede88e929f26b152254cf8f8ffff80a18d89e.tar.gz | |
Merge "Add --default option to "volume type list""
Diffstat (limited to 'openstackclient')
| -rw-r--r-- | openstackclient/tests/functional/volume/v2/test_volume_type.py | 5 | ||||
| -rw-r--r-- | openstackclient/tests/unit/volume/v2/test_type.py | 27 | ||||
| -rw-r--r-- | openstackclient/volume/v2/volume_type.py | 29 |
3 files changed, 50 insertions, 11 deletions
diff --git a/openstackclient/tests/functional/volume/v2/test_volume_type.py b/openstackclient/tests/functional/volume/v2/test_volume_type.py index d8bd3a96..b4df5b2d 100644 --- a/openstackclient/tests/functional/volume/v2/test_volume_type.py +++ b/openstackclient/tests/functional/volume/v2/test_volume_type.py @@ -42,6 +42,11 @@ class VolumeTypeTests(common.BaseVolumeTests): raw_output = self.openstack('volume type list' + opts) self.assertIn(self.NAME, raw_output) + def test_volume_type_list_default(self): + opts = self.get_opts(self.HEADERS) + raw_output = self.openstack('volume type list --default' + opts) + self.assertEqual("lvmdriver-1\n", raw_output) + def test_volume_type_show(self): opts = self.get_opts(self.FIELDS) raw_output = self.openstack('volume type show ' + self.NAME + opts) diff --git a/openstackclient/tests/unit/volume/v2/test_type.py b/openstackclient/tests/unit/volume/v2/test_type.py index 325872d7..0d556e13 100644 --- a/openstackclient/tests/unit/volume/v2/test_type.py +++ b/openstackclient/tests/unit/volume/v2/test_type.py @@ -172,7 +172,11 @@ class TestTypeList(TestType): "Description", "Properties" ] - + data_with_default_type = [( + volume_types[0].id, + volume_types[0].name, + True + )] data = [] for t in volume_types: data.append(( @@ -194,6 +198,7 @@ class TestTypeList(TestType): super(TestTypeList, self).setUp() self.types_mock.list.return_value = self.volume_types + self.types_mock.default.return_value = self.volume_types[0] # get the command to test self.cmd = volume_type.ListVolumeType(self.app, None) @@ -203,6 +208,7 @@ class TestTypeList(TestType): ("long", False), ("private", False), ("public", False), + ("default", False), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -220,6 +226,7 @@ class TestTypeList(TestType): ("long", True), ("private", False), ("public", True), + ("default", False), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -236,6 +243,7 @@ class TestTypeList(TestType): ("long", False), ("private", True), ("public", False), + ("default", False), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -244,6 +252,23 @@ class TestTypeList(TestType): self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) + def test_type_list_with_default_option(self): + arglist = [ + "--default", + ] + verifylist = [ + ("long", False), + ("private", False), + ("public", False), + ("default", True), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + columns, data = self.cmd.take_action(parsed_args) + self.types_mock.default.assert_called_once_with() + self.assertEqual(self.columns, columns) + self.assertEqual(self.data_with_default_type, list(data)) + class TestTypeSet(TestType): diff --git a/openstackclient/volume/v2/volume_type.py b/openstackclient/volume/v2/volume_type.py index 42ebb53e..46466783 100644 --- a/openstackclient/volume/v2/volume_type.py +++ b/openstackclient/volume/v2/volume_type.py @@ -160,9 +160,16 @@ class ListVolumeType(command.Lister): '--long', action='store_true', default=False, - help=_('List additional fields in output')) + help=_('List additional fields in output') + ) public_group = parser.add_mutually_exclusive_group() public_group.add_argument( + "--default", + action='store_true', + default=False, + help=_('List the default volume type') + ) + public_group.add_argument( "--public", action="store_true", help=_("List only public types") @@ -175,6 +182,7 @@ class ListVolumeType(command.Lister): return parser def take_action(self, parsed_args): + volume_client = self.app.client_manager.volume if parsed_args.long: columns = ['ID', 'Name', 'Is Public', 'Description', 'Extra Specs'] column_headers = [ @@ -182,14 +190,16 @@ class ListVolumeType(command.Lister): else: columns = ['ID', 'Name', 'Is Public'] column_headers = columns - - is_public = None - if parsed_args.public: - is_public = True - if parsed_args.private: - is_public = False - data = self.app.client_manager.volume.volume_types.list( - is_public=is_public) + if parsed_args.default: + data = [volume_client.volume_types.default()] + else: + is_public = None + if parsed_args.public: + is_public = True + if parsed_args.private: + is_public = False + data = volume_client.volume_types.list( + is_public=is_public) return (column_headers, (utils.get_item_properties( s, columns, @@ -240,7 +250,6 @@ class SetVolumeType(command.Command): volume_type = utils.find_resource( volume_client.volume_types, parsed_args.volume_type) - result = 0 kwargs = {} if parsed_args.name: |
