Change volume create --volume-type to --type
This makes it consistent with the other --type options in OSC. Also add a few more volume_create tests. Change-Id: I50ef927932cabf157ecdfd6c4faa1914b4fdf413
This commit is contained in:
parent
a93851d6af
commit
870e7ddbcc
@ -24,7 +24,14 @@ volume_id = 'vvvvvvvv-vvvv-vvvv-vvvvvvvv'
|
|||||||
volume_name = 'nigel'
|
volume_name = 'nigel'
|
||||||
volume_description = 'Nigel Tufnel'
|
volume_description = 'Nigel Tufnel'
|
||||||
volume_size = 120
|
volume_size = 120
|
||||||
volume_metadata = {}
|
volume_type = 'to-eleven'
|
||||||
|
volume_zone = 'stonehenge'
|
||||||
|
volume_metadata = {
|
||||||
|
'Alpha': 'a',
|
||||||
|
'Beta': 'b',
|
||||||
|
'Gamma': 'g',
|
||||||
|
}
|
||||||
|
volume_metadata_str = "Alpha='a', Beta='b', Gamma='g'"
|
||||||
|
|
||||||
VOLUME = {
|
VOLUME = {
|
||||||
'id': volume_id,
|
'id': volume_id,
|
||||||
@ -33,6 +40,8 @@ VOLUME = {
|
|||||||
'size': volume_size,
|
'size': volume_size,
|
||||||
'status': '',
|
'status': '',
|
||||||
'attach_status': 'detached',
|
'attach_status': 'detached',
|
||||||
|
'availability_zone': volume_zone,
|
||||||
|
'volume_type': volume_type,
|
||||||
'metadata': volume_metadata,
|
'metadata': volume_metadata,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,10 +71,6 @@ class TestVolumeCreate(TestVolume):
|
|||||||
# DisplayCommandBase.take_action() returns two tuples
|
# DisplayCommandBase.take_action() returns two tuples
|
||||||
columns, data = self.cmd.take_action(parsed_args)
|
columns, data = self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
# Set expected values
|
|
||||||
#kwargs = {
|
|
||||||
# 'metadata': volume_fakes.volume_metadata,
|
|
||||||
#}
|
|
||||||
# VolumeManager.create(size, snapshot_id=, source_volid=,
|
# VolumeManager.create(size, snapshot_id=, source_volid=,
|
||||||
# display_name=, display_description=,
|
# display_name=, display_description=,
|
||||||
# volume_type=, user_id=,
|
# volume_type=, user_id=,
|
||||||
@ -96,22 +92,90 @@ class TestVolumeCreate(TestVolume):
|
|||||||
|
|
||||||
collist = (
|
collist = (
|
||||||
'attach_status',
|
'attach_status',
|
||||||
|
'availability_zone',
|
||||||
'display_description',
|
'display_description',
|
||||||
'display_name',
|
'display_name',
|
||||||
'id',
|
'id',
|
||||||
'properties',
|
'properties',
|
||||||
'size',
|
'size',
|
||||||
'status',
|
'status',
|
||||||
|
'type',
|
||||||
)
|
)
|
||||||
self.assertEqual(columns, collist)
|
self.assertEqual(columns, collist)
|
||||||
datalist = (
|
datalist = (
|
||||||
'detached',
|
'detached',
|
||||||
|
volume_fakes.volume_zone,
|
||||||
volume_fakes.volume_description,
|
volume_fakes.volume_description,
|
||||||
volume_fakes.volume_name,
|
volume_fakes.volume_name,
|
||||||
volume_fakes.volume_id,
|
volume_fakes.volume_id,
|
||||||
'',
|
volume_fakes.volume_metadata_str,
|
||||||
volume_fakes.volume_size,
|
volume_fakes.volume_size,
|
||||||
'',
|
'',
|
||||||
|
volume_fakes.volume_type,
|
||||||
|
)
|
||||||
|
self.assertEqual(data, datalist)
|
||||||
|
|
||||||
|
def test_volume_create_options(self):
|
||||||
|
arglist = [
|
||||||
|
'--size', str(volume_fakes.volume_size),
|
||||||
|
'--description', volume_fakes.volume_description,
|
||||||
|
'--type', volume_fakes.volume_type,
|
||||||
|
'--availability-zone', volume_fakes.volume_zone,
|
||||||
|
volume_fakes.volume_name,
|
||||||
|
]
|
||||||
|
verifylist = [
|
||||||
|
('size', volume_fakes.volume_size),
|
||||||
|
('description', volume_fakes.volume_description),
|
||||||
|
('type', volume_fakes.volume_type),
|
||||||
|
('availability_zone', volume_fakes.volume_zone),
|
||||||
|
('name', volume_fakes.volume_name),
|
||||||
|
]
|
||||||
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||||
|
|
||||||
|
# DisplayCommandBase.take_action() returns two tuples
|
||||||
|
columns, data = self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
|
# VolumeManager.create(size, snapshot_id=, source_volid=,
|
||||||
|
# display_name=, display_description=,
|
||||||
|
# volume_type=, user_id=,
|
||||||
|
# project_id=, availability_zone=,
|
||||||
|
# metadata=, imageRef=)
|
||||||
|
self.volumes_mock.create.assert_called_with(
|
||||||
|
volume_fakes.volume_size,
|
||||||
|
None,
|
||||||
|
None,
|
||||||
|
volume_fakes.volume_name,
|
||||||
|
volume_fakes.volume_description,
|
||||||
|
volume_fakes.volume_type,
|
||||||
|
None,
|
||||||
|
None,
|
||||||
|
volume_fakes.volume_zone,
|
||||||
|
None,
|
||||||
|
None,
|
||||||
|
)
|
||||||
|
|
||||||
|
collist = (
|
||||||
|
'attach_status',
|
||||||
|
'availability_zone',
|
||||||
|
'display_description',
|
||||||
|
'display_name',
|
||||||
|
'id',
|
||||||
|
'properties',
|
||||||
|
'size',
|
||||||
|
'status',
|
||||||
|
'type',
|
||||||
|
)
|
||||||
|
self.assertEqual(columns, collist)
|
||||||
|
datalist = (
|
||||||
|
'detached',
|
||||||
|
volume_fakes.volume_zone,
|
||||||
|
volume_fakes.volume_description,
|
||||||
|
volume_fakes.volume_name,
|
||||||
|
volume_fakes.volume_id,
|
||||||
|
volume_fakes.volume_metadata_str,
|
||||||
|
volume_fakes.volume_size,
|
||||||
|
'',
|
||||||
|
volume_fakes.volume_type,
|
||||||
)
|
)
|
||||||
self.assertEqual(data, datalist)
|
self.assertEqual(data, datalist)
|
||||||
|
|
||||||
@ -146,10 +210,6 @@ class TestVolumeCreate(TestVolume):
|
|||||||
# DisplayCommandBase.take_action() returns two tuples
|
# DisplayCommandBase.take_action() returns two tuples
|
||||||
columns, data = self.cmd.take_action(parsed_args)
|
columns, data = self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
# Set expected values
|
|
||||||
#kwargs = {
|
|
||||||
# 'metadata': volume_fakes.volume_metadata,
|
|
||||||
#}
|
|
||||||
# VolumeManager.create(size, snapshot_id=, source_volid=,
|
# VolumeManager.create(size, snapshot_id=, source_volid=,
|
||||||
# display_name=, display_description=,
|
# display_name=, display_description=,
|
||||||
# volume_type=, user_id=,
|
# volume_type=, user_id=,
|
||||||
@ -172,22 +232,26 @@ class TestVolumeCreate(TestVolume):
|
|||||||
|
|
||||||
collist = (
|
collist = (
|
||||||
'attach_status',
|
'attach_status',
|
||||||
|
'availability_zone',
|
||||||
'display_description',
|
'display_description',
|
||||||
'display_name',
|
'display_name',
|
||||||
'id',
|
'id',
|
||||||
'properties',
|
'properties',
|
||||||
'size',
|
'size',
|
||||||
'status',
|
'status',
|
||||||
|
'type',
|
||||||
)
|
)
|
||||||
self.assertEqual(columns, collist)
|
self.assertEqual(columns, collist)
|
||||||
datalist = (
|
datalist = (
|
||||||
'detached',
|
'detached',
|
||||||
|
volume_fakes.volume_zone,
|
||||||
volume_fakes.volume_description,
|
volume_fakes.volume_description,
|
||||||
volume_fakes.volume_name,
|
volume_fakes.volume_name,
|
||||||
volume_fakes.volume_id,
|
volume_fakes.volume_id,
|
||||||
'',
|
volume_fakes.volume_metadata_str,
|
||||||
volume_fakes.volume_size,
|
volume_fakes.volume_size,
|
||||||
'',
|
'',
|
||||||
|
volume_fakes.volume_type,
|
||||||
)
|
)
|
||||||
self.assertEqual(data, datalist)
|
self.assertEqual(data, datalist)
|
||||||
|
|
||||||
@ -222,10 +286,6 @@ class TestVolumeCreate(TestVolume):
|
|||||||
# DisplayCommandBase.take_action() returns two tuples
|
# DisplayCommandBase.take_action() returns two tuples
|
||||||
columns, data = self.cmd.take_action(parsed_args)
|
columns, data = self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
# Set expected values
|
|
||||||
#kwargs = {
|
|
||||||
# 'metadata': volume_fakes.volume_metadata,
|
|
||||||
#}
|
|
||||||
# VolumeManager.create(size, snapshot_id=, source_volid=,
|
# VolumeManager.create(size, snapshot_id=, source_volid=,
|
||||||
# display_name=, display_description=,
|
# display_name=, display_description=,
|
||||||
# volume_type=, user_id=,
|
# volume_type=, user_id=,
|
||||||
@ -248,21 +308,86 @@ class TestVolumeCreate(TestVolume):
|
|||||||
|
|
||||||
collist = (
|
collist = (
|
||||||
'attach_status',
|
'attach_status',
|
||||||
|
'availability_zone',
|
||||||
'display_description',
|
'display_description',
|
||||||
'display_name',
|
'display_name',
|
||||||
'id',
|
'id',
|
||||||
'properties',
|
'properties',
|
||||||
'size',
|
'size',
|
||||||
'status',
|
'status',
|
||||||
|
'type',
|
||||||
)
|
)
|
||||||
self.assertEqual(columns, collist)
|
self.assertEqual(columns, collist)
|
||||||
datalist = (
|
datalist = (
|
||||||
'detached',
|
'detached',
|
||||||
|
volume_fakes.volume_zone,
|
||||||
volume_fakes.volume_description,
|
volume_fakes.volume_description,
|
||||||
volume_fakes.volume_name,
|
volume_fakes.volume_name,
|
||||||
volume_fakes.volume_id,
|
volume_fakes.volume_id,
|
||||||
'',
|
volume_fakes.volume_metadata_str,
|
||||||
volume_fakes.volume_size,
|
volume_fakes.volume_size,
|
||||||
'',
|
'',
|
||||||
|
volume_fakes.volume_type,
|
||||||
|
)
|
||||||
|
self.assertEqual(data, datalist)
|
||||||
|
|
||||||
|
def test_volume_create_properties(self):
|
||||||
|
arglist = [
|
||||||
|
'--property', 'Alpha=a',
|
||||||
|
'--property', 'Beta=b',
|
||||||
|
'--size', str(volume_fakes.volume_size),
|
||||||
|
volume_fakes.volume_name,
|
||||||
|
]
|
||||||
|
verifylist = [
|
||||||
|
('property', {'Alpha': 'a', 'Beta': 'b'}),
|
||||||
|
('size', volume_fakes.volume_size),
|
||||||
|
('name', volume_fakes.volume_name),
|
||||||
|
]
|
||||||
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||||
|
|
||||||
|
# DisplayCommandBase.take_action() returns two tuples
|
||||||
|
columns, data = self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
|
# VolumeManager.create(size, snapshot_id=, source_volid=,
|
||||||
|
# display_name=, display_description=,
|
||||||
|
# volume_type=, user_id=,
|
||||||
|
# project_id=, availability_zone=,
|
||||||
|
# metadata=, imageRef=)
|
||||||
|
self.volumes_mock.create.assert_called_with(
|
||||||
|
volume_fakes.volume_size,
|
||||||
|
None,
|
||||||
|
None,
|
||||||
|
volume_fakes.volume_name,
|
||||||
|
None,
|
||||||
|
None,
|
||||||
|
None,
|
||||||
|
None,
|
||||||
|
None,
|
||||||
|
{'Alpha': 'a', 'Beta': 'b'},
|
||||||
|
None,
|
||||||
|
)
|
||||||
|
|
||||||
|
collist = (
|
||||||
|
'attach_status',
|
||||||
|
'availability_zone',
|
||||||
|
'display_description',
|
||||||
|
'display_name',
|
||||||
|
'id',
|
||||||
|
'properties',
|
||||||
|
'size',
|
||||||
|
'status',
|
||||||
|
'type',
|
||||||
|
)
|
||||||
|
self.assertEqual(columns, collist)
|
||||||
|
datalist = (
|
||||||
|
'detached',
|
||||||
|
volume_fakes.volume_zone,
|
||||||
|
volume_fakes.volume_description,
|
||||||
|
volume_fakes.volume_name,
|
||||||
|
volume_fakes.volume_id,
|
||||||
|
volume_fakes.volume_metadata_str,
|
||||||
|
volume_fakes.volume_size,
|
||||||
|
'',
|
||||||
|
volume_fakes.volume_type,
|
||||||
)
|
)
|
||||||
self.assertEqual(data, datalist)
|
self.assertEqual(data, datalist)
|
||||||
|
@ -56,7 +56,7 @@ class CreateVolume(show.ShowOne):
|
|||||||
help='Description of the volume',
|
help='Description of the volume',
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--volume-type',
|
'--type',
|
||||||
metavar='<volume-type>',
|
metavar='<volume-type>',
|
||||||
help='Type of volume',
|
help='Type of volume',
|
||||||
)
|
)
|
||||||
@ -124,7 +124,7 @@ class CreateVolume(show.ShowOne):
|
|||||||
source_volume,
|
source_volume,
|
||||||
parsed_args.name,
|
parsed_args.name,
|
||||||
parsed_args.description,
|
parsed_args.description,
|
||||||
parsed_args.volume_type,
|
parsed_args.type,
|
||||||
user,
|
user,
|
||||||
project,
|
project,
|
||||||
parsed_args.availability_zone,
|
parsed_args.availability_zone,
|
||||||
@ -133,7 +133,10 @@ class CreateVolume(show.ShowOne):
|
|||||||
)
|
)
|
||||||
# Map 'metadata' column to 'properties'
|
# Map 'metadata' column to 'properties'
|
||||||
volume._info.update(
|
volume._info.update(
|
||||||
{'properties': utils.format_dict(volume._info.pop('metadata'))}
|
{
|
||||||
|
'properties': utils.format_dict(volume._info.pop('metadata')),
|
||||||
|
'type': volume._info.pop('volume_type'),
|
||||||
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
return zip(*sorted(six.iteritems(volume._info)))
|
return zip(*sorted(six.iteritems(volume._info)))
|
||||||
@ -331,7 +334,10 @@ class ShowVolume(show.ShowOne):
|
|||||||
volume = utils.find_resource(volume_client.volumes, parsed_args.volume)
|
volume = utils.find_resource(volume_client.volumes, parsed_args.volume)
|
||||||
# Map 'metadata' column to 'properties'
|
# Map 'metadata' column to 'properties'
|
||||||
volume._info.update(
|
volume._info.update(
|
||||||
{'properties': utils.format_dict(volume._info.pop('metadata'))}
|
{
|
||||||
|
'properties': utils.format_dict(volume._info.pop('metadata')),
|
||||||
|
'type': volume._info.pop('volume_type'),
|
||||||
|
},
|
||||||
)
|
)
|
||||||
if 'os-vol-tenant-attr:tenant_id' in volume._info:
|
if 'os-vol-tenant-attr:tenant_id' in volume._info:
|
||||||
volume._info.update(
|
volume._info.update(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user