From 6a914d0056e810e1ef37eaf4f01cd5c85217aba6 Mon Sep 17 00:00:00 2001 From: qtang Date: Thu, 25 Aug 2016 10:56:58 +0800 Subject: Support mark volume as bootable in volume set Add --bootable | --non-bootable option in volume set to mark or unmark volume as bootable. Change-Id: Ifa6c2dd1642202f55b6d50e3b8614d3513d488f6 Closes-Bug:#1535704 --- openstackclient/volume/v1/volume.py | 18 +++++++++++++++++- openstackclient/volume/v2/volume.py | 18 ++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) (limited to 'openstackclient/volume') diff --git a/openstackclient/volume/v1/volume.py b/openstackclient/volume/v1/volume.py index 16f0d6db..69bf3803 100644 --- a/openstackclient/volume/v1/volume.py +++ b/openstackclient/volume/v1/volume.py @@ -363,6 +363,17 @@ class SetVolume(command.Command): help=_('Set a property on this volume ' '(repeat option to set multiple properties)'), ) + bootable_group = parser.add_mutually_exclusive_group() + bootable_group.add_argument( + "--bootable", + action="store_true", + help=_("Mark volume as bootable") + ) + bootable_group.add_argument( + "--non-bootable", + action="store_true", + help=_("Mark volume as non-bootable") + ) return parser def take_action(self, parsed_args): @@ -382,7 +393,12 @@ class SetVolume(command.Command): if parsed_args.property: volume_client.volumes.set_metadata(volume.id, parsed_args.property) - + if parsed_args.bootable or parsed_args.non_bootable: + try: + volume_client.volumes.set_bootable( + volume.id, parsed_args.bootable) + except Exception as e: + LOG.error(_("Failed to set volume bootable property: %s"), e) kwargs = {} if parsed_args.name: kwargs['display_name'] = parsed_args.name diff --git a/openstackclient/volume/v2/volume.py b/openstackclient/volume/v2/volume.py index 28946a5f..804e2337 100644 --- a/openstackclient/volume/v2/volume.py +++ b/openstackclient/volume/v2/volume.py @@ -404,6 +404,17 @@ class SetVolume(command.Command): '"deleting", "in-use", "attaching", "detaching", ' '"error_deleting" or "maintenance")'), ) + bootable_group = parser.add_mutually_exclusive_group() + bootable_group.add_argument( + "--bootable", + action="store_true", + help=_("Mark volume as bootable") + ) + bootable_group.add_argument( + "--non-bootable", + action="store_true", + help=_("Mark volume as non-bootable") + ) return parser def take_action(self, parsed_args): @@ -446,6 +457,13 @@ class SetVolume(command.Command): except Exception as e: LOG.error(_("Failed to set volume state: %s"), e) result += 1 + if parsed_args.bootable or parsed_args.non_bootable: + try: + volume_client.volumes.set_bootable( + volume.id, parsed_args.bootable) + except Exception as e: + LOG.error(_("Failed to set volume bootable property: %s"), e) + result += 1 kwargs = {} if parsed_args.name: -- cgit v1.2.1