summaryrefslogtreecommitdiff
path: root/openstackclient/compute/v2
diff options
context:
space:
mode:
authorxiexs <xiexs@cn.fujitsu.com>2015-11-24 00:40:20 -0500
committerxiexs <xiexs@cn.fujitsu.com>2015-11-24 00:40:26 -0500
commita41a8c42af47ea51782f90221e987287484a26d7 (patch)
treecc7a19b47efadce2946cf0363688ac7eb8ce2c22 /openstackclient/compute/v2
parent42a5909f6a6fa50726799e8220f8722f2b0a016f (diff)
downloadpython-openstackclient-a41a8c42af47ea51782f90221e987287484a26d7.tar.gz
Add "openstack server shelve" into OSC
Currently, the shelve operation is not supported by OSC. So, this patch attempts to add it into OSC. Change-Id: I92545300bef006a069338168d2de800e8a58af69 Implements: blueprint introduce-shelve-into-osc
Diffstat (limited to 'openstackclient/compute/v2')
-rw-r--r--openstackclient/compute/v2/server.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index aa4569c3..bb74ae43 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -1387,6 +1387,31 @@ class ShowServer(show.ShowOne):
return zip(*sorted(six.iteritems(data)))
+class ShelveServer(command.Command):
+ """Shelve server(s)"""
+
+ log = logging.getLogger(__name__ + '.ShelveServer')
+
+ def get_parser(self, prog_name):
+ parser = super(ShelveServer, self).get_parser(prog_name)
+ parser.add_argument(
+ 'server',
+ metavar='<server>',
+ nargs='+',
+ help=_('Server(s) to shelve (name or ID)'),
+ )
+ return parser
+
+ @utils.log_method(log)
+ def take_action(self, parsed_args):
+ compute_client = self.app.client_manager.compute
+ for server in parsed_args.server:
+ utils.find_resource(
+ compute_client.servers,
+ server,
+ ).shelve()
+
+
class SshServer(command.Command):
"""Ssh to server"""