Add ability to provide metadata on volume creation
Add argument and parser for shell to be able to take metadata input on volume create. Change-Id: I64c72df78b8e091e37b8986aea5bd4980a0c7a75
This commit is contained in:
@@ -90,6 +90,17 @@ def _translate_volume_snapshot_keys(collection):
|
||||
setattr(item, to_key, item._info[from_key])
|
||||
|
||||
|
||||
def _extract_metadata(arg_list):
|
||||
metadata = {}
|
||||
for metadatum in arg_list:
|
||||
assert(metadatum.find('=') > -1), "Improperly formatted metadata "\
|
||||
"input (%s)" % metadatum
|
||||
(key, value) = metadatum.split('=', 1)
|
||||
metadata[key] = value
|
||||
|
||||
return metadata
|
||||
|
||||
|
||||
@utils.arg('--all_tenants',
|
||||
dest='all_tenants',
|
||||
metavar='<0|1>',
|
||||
@@ -148,16 +159,28 @@ def do_show(cs, args):
|
||||
@utils.arg('--availability_zone', metavar='<availability_zone>',
|
||||
help='Optional availability zone for volume. (Default=None)',
|
||||
default=None)
|
||||
@utils.arg('--metadata',
|
||||
type=str,
|
||||
nargs='*',
|
||||
metavar='<key=value>',
|
||||
help='Optional metadata kv pairs. (Default=None)',
|
||||
default=None)
|
||||
@utils.service_type('volume')
|
||||
def do_create(cs, args):
|
||||
"""Add a new volume."""
|
||||
|
||||
volume_metadata = None
|
||||
if args.metadata is not None:
|
||||
volume_metadata = _extract_metadata(args.metadata)
|
||||
|
||||
cs.volumes.create(args.size,
|
||||
args.snapshot_id,
|
||||
args.display_name,
|
||||
args.display_description,
|
||||
args.volume_type,
|
||||
availability_zone=args.availability_zone,
|
||||
imageRef=args.image_id)
|
||||
imageRef=args.image_id,
|
||||
metadata=volume_metadata)
|
||||
|
||||
|
||||
@utils.arg('volume', metavar='<volume>', help='ID of the volume to delete.')
|
||||
|
Reference in New Issue
Block a user