Allow user to list all volumes
One sub-command 'rsd volume list' has been added, which allow user to list all volumes of one storage service and return the brief info. Change-Id: Icbff783dbc738e503eca4fa7c2d68874073e89d7
This commit is contained in:
parent
9df5bd1dcc
commit
af84737f1b
|
@ -50,3 +50,25 @@ class ShowStorageServices(command.Command):
|
|||
storage_detail = rsd_client.storage_service.show(
|
||||
parsed_args.storageservice)
|
||||
print("{0}".format(json.dumps(storage_detail, indent=2)))
|
||||
|
||||
|
||||
class ListVolumes(command.Command):
|
||||
"""List all volumes of one storage service."""
|
||||
|
||||
_description = "List all volumes of one storage service"
|
||||
|
||||
def get_parser(self, prog_name):
|
||||
parser = super(ListVolumes, self).get_parser(prog_name)
|
||||
parser.add_argument(
|
||||
'storageservice',
|
||||
metavar='<storage service>',
|
||||
help='ID of the storage service.')
|
||||
|
||||
return parser
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
self.log.debug("take_action(%s)", parsed_args)
|
||||
rsd_client = self.app.client_manager.rsd
|
||||
volume_list = rsd_client.storage_service.list_volume(
|
||||
parsed_args.storageservice)
|
||||
print(volume_list)
|
||||
|
|
|
@ -63,3 +63,13 @@ class StorageServiceTest(testtools.TestCase):
|
|||
self.assertEqual(result, expected)
|
||||
self.mgr.client.get_storage_service.assert_called_once_with(
|
||||
'/redfish/v1/StorageServices/1-sv-1')
|
||||
|
||||
def test_list_volume(self):
|
||||
mock_sorage = mock.Mock()
|
||||
self.client.get_storage_service.return_value = mock_sorage
|
||||
mock_sorage.volumes.get_members.return_value = ()
|
||||
|
||||
self.mgr.list_volume('/redfish/v1/StorageServices/1-sv-1')
|
||||
self.mgr.client.get_storage_service.assert_called_once_with(
|
||||
'/redfish/v1/StorageServices/1-sv-1')
|
||||
mock_sorage.volumes.get_members.assert_called_once()
|
||||
|
|
|
@ -51,3 +51,13 @@ class StorageServiceManager(base.Manager):
|
|||
for item in storage.logical_drives.get_members()]
|
||||
|
||||
return storage_dict
|
||||
|
||||
def list_volume(self, storage_uri):
|
||||
storage = self.client.get_storage_service(storage_uri)
|
||||
|
||||
volume_collection = storage.volumes.get_members()
|
||||
storages = [utils.extract_attr(volume)
|
||||
for volume in volume_collection]
|
||||
volume_info_table = utils.print_dict(
|
||||
storages, ["Identity", "Name", "Description"])
|
||||
return volume_info_table
|
||||
|
|
|
@ -39,6 +39,7 @@ openstack.rsd.v1 =
|
|||
|
||||
rsd_storage_list = rsdclient.osc.v1.storage_service:ListStorageServices
|
||||
rsd_storage_show = rsdclient.osc.v1.storage_service:ShowStorageServices
|
||||
rsd_storage_volume_list = rsdclient.osc.v1.storage_service:ListVolumes
|
||||
|
||||
rsd_fabric_list = rsdclient.osc.v1.fabric:ListFabric
|
||||
rsd_fabric_show = rsdclient.osc.v1.fabric:ShowFabric
|
||||
|
|
Loading…
Reference in New Issue