summaryrefslogtreecommitdiff
path: root/openstackclient/volume/v2
diff options
context:
space:
mode:
authorDavid Rabel <rabel@b1-systems.de>2019-02-22 15:21:17 +0100
committerDean Troyer <dtroyer@gmail.com>2019-02-28 15:48:34 +0000
commite776a4f0260af1d2ae66439e647794395d470578 (patch)
tree8a3cff53849fcec9ee9e517f9bd29fd92e4004d5 /openstackclient/volume/v2
parent55cbbbe4692002e58120b0c129eb2add4f0bc18a (diff)
downloadpython-openstackclient-e776a4f0260af1d2ae66439e647794395d470578.tar.gz
Add --attached / --detached parameter to volume set
As to reflect cinder reset-state --attach-status functionality, this patch adds --attached / --detached parameter to OSC's volume set command. Change-Id: Ic8ee928c9ab0e579512cfb7608f63bfcc2993c7b Closes-Bug: #1745699
Diffstat (limited to 'openstackclient/volume/v2')
-rw-r--r--openstackclient/volume/v2/volume.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/openstackclient/volume/v2/volume.py b/openstackclient/volume/v2/volume.py
index 14a454c2..fa587b5f 100644
--- a/openstackclient/volume/v2/volume.py
+++ b/openstackclient/volume/v2/volume.py
@@ -559,6 +559,25 @@ class SetVolume(command.Command):
'in the database with no regard to actual status, '
'exercise caution when using)'),
)
+ attached_group = parser.add_mutually_exclusive_group()
+ attached_group.add_argument(
+ "--attached",
+ action="store_true",
+ help=_('Set volume attachment status to "attached" '
+ '(admin only) '
+ '(This option simply changes the state of the volume '
+ 'in the database with no regard to actual status, '
+ 'exercise caution when using)'),
+ )
+ attached_group.add_argument(
+ "--detached",
+ action="store_true",
+ help=_('Set volume attachment status to "detached" '
+ '(admin only) '
+ '(This option simply changes the state of the volume '
+ 'in the database with no regard to actual status, '
+ 'exercise caution when using)'),
+ )
parser.add_argument(
'--type',
metavar='<volume-type>',
@@ -645,6 +664,22 @@ class SetVolume(command.Command):
except Exception as e:
LOG.error(_("Failed to set volume state: %s"), e)
result += 1
+ if parsed_args.attached:
+ try:
+ volume_client.volumes.reset_state(
+ volume.id, state=None,
+ attach_status="attached")
+ except Exception as e:
+ LOG.error(_("Failed to set volume attach-status: %s"), e)
+ result += 1
+ if parsed_args.detached:
+ try:
+ volume_client.volumes.reset_state(
+ volume.id, state=None,
+ attach_status="detached")
+ except Exception as e:
+ LOG.error(_("Failed to set volume attach-status: %s"), e)
+ result += 1
if parsed_args.bootable or parsed_args.non_bootable:
try:
volume_client.volumes.set_bootable(