diff options
Diffstat (limited to 'openstackclient/volume')
| -rw-r--r-- | openstackclient/volume/v1/volume.py | 18 | ||||
| -rw-r--r-- | openstackclient/volume/v2/volume.py | 19 |
2 files changed, 36 insertions, 1 deletions
diff --git a/openstackclient/volume/v1/volume.py b/openstackclient/volume/v1/volume.py index 739484df..8e1097f5 100644 --- a/openstackclient/volume/v1/volume.py +++ b/openstackclient/volume/v1/volume.py @@ -440,6 +440,15 @@ class SetVolume(command.Command): help=_('Extend volume size in GB'), ) parser.add_argument( + "--no-property", + dest="no_property", + action="store_true", + help=_("Remove all properties from <volume> " + "(specify both --no-property and --property to " + "remove the current properties before setting " + "new properties.)"), + ) + parser.add_argument( '--property', metavar='<key=value>', action=parseractions.KeyValueAction, @@ -489,6 +498,15 @@ class SetVolume(command.Command): except Exception as e: LOG.error(_("Failed to set volume size: %s"), e) result += 1 + + if parsed_args.no_property: + try: + volume_client.volumes.delete_metadata( + volume.id, volume.metadata.keys()) + except Exception as e: + LOG.error(_("Failed to clean volume properties: %s"), e) + result += 1 + if parsed_args.property: try: volume_client.volumes.set_metadata( diff --git a/openstackclient/volume/v2/volume.py b/openstackclient/volume/v2/volume.py index 78db261b..c361d700 100644 --- a/openstackclient/volume/v2/volume.py +++ b/openstackclient/volume/v2/volume.py @@ -524,6 +524,15 @@ class SetVolume(command.Command): help=_('New volume description'), ) parser.add_argument( + "--no-property", + dest="no_property", + action="store_true", + help=_("Remove all properties from <volume> " + "(specify both --no-property and --property to " + "remove the current properties before setting " + "new properties.)"), + ) + parser.add_argument( '--property', metavar='<key=value>', action=parseractions.KeyValueAction, @@ -561,7 +570,7 @@ class SetVolume(command.Command): choices=['never', 'on-demand'], help=_('Migration policy while re-typing volume ' '("never" or "on-demand", default is "never" ) ' - '(available only when "--type" option is specified)'), + '(available only when --type option is specified)'), ) bootable_group = parser.add_mutually_exclusive_group() bootable_group.add_argument( @@ -607,6 +616,14 @@ class SetVolume(command.Command): LOG.error(_("Failed to set volume size: %s"), e) result += 1 + if parsed_args.no_property: + try: + volume_client.volumes.delete_metadata( + volume.id, volume.metadata.keys()) + except Exception as e: + LOG.error(_("Failed to clean volume properties: %s"), e) + result += 1 + if parsed_args.property: try: volume_client.volumes.set_metadata( |
