summaryrefslogtreecommitdiff
path: root/openstackclient/volume/v1
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-11-10 14:13:28 +0000
committerGerrit Code Review <review@openstack.org>2016-11-10 14:13:28 +0000
commitb37ad9992b69c16644222e8f092cd4bdc5e8292a (patch)
treed08dfacc3b325a234cf5da150db61c97d3be8c2f /openstackclient/volume/v1
parent8b2f25682850ca747dcc0961b894ed5f5644580a (diff)
parentd7c8bb88e4a117d8ab6a53c3a7d14cc7a4105eda (diff)
downloadpython-openstackclient-b37ad9992b69c16644222e8f092cd4bdc5e8292a.tar.gz
Merge "Add "volume migrate" command"
Diffstat (limited to 'openstackclient/volume/v1')
-rw-r--r--openstackclient/volume/v1/volume.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/openstackclient/volume/v1/volume.py b/openstackclient/volume/v1/volume.py
index cafe8ce6..63bcfbb8 100644
--- a/openstackclient/volume/v1/volume.py
+++ b/openstackclient/volume/v1/volume.py
@@ -344,6 +344,37 @@ class ListVolume(command.Lister):
) for s in data))
+class MigrateVolume(command.Command):
+ """Migrate volume to a new host"""
+
+ def get_parser(self, prog_name):
+ parser = super(MigrateVolume, self).get_parser(prog_name)
+ parser.add_argument(
+ 'volume',
+ metavar="<volume>",
+ help=_("Volume to migrate (name or ID)")
+ )
+ parser.add_argument(
+ '--host',
+ metavar="<host>",
+ required=True,
+ help=_("Destination host (takes the form: host@backend-name#pool)")
+ )
+ parser.add_argument(
+ '--force-host-copy',
+ action="store_true",
+ help=_("Enable generic host-based force-migration, "
+ "which bypasses driver optimizations")
+ )
+ return parser
+
+ def take_action(self, parsed_args):
+ volume_client = self.app.client_manager.volume
+ volume = utils.find_resource(volume_client.volumes, parsed_args.volume)
+ volume_client.volumes.migrate_volume(volume.id, parsed_args.host,
+ parsed_args.force_host_copy,)
+
+
class SetVolume(command.Command):
"""Set volume properties"""