summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-11-05 12:31:22 +0000
committerGerrit Code Review <review@openstack.org>2015-11-05 12:31:22 +0000
commitf40a04c30a5fc8bf71469a420bd7ce044aad9f88 (patch)
tree9d996434b1a92b6d20b76194ee3e07f86527b0a0
parent334ef75d4f02a1b6428ee347a85b496a86f90d76 (diff)
parent7107b5536e9ece347014ec88c5c5bb3e68050882 (diff)
downloadpython-openstackclient-f40a04c30a5fc8bf71469a420bd7ce044aad9f88.tar.gz
Merge "Add "server stop" command to osc."
-rw-r--r--doc/source/command-objects/server.rst15
-rw-r--r--doc/source/commands.rst3
-rw-r--r--openstackclient/compute/v2/server.py25
-rw-r--r--setup.cfg1
4 files changed, 43 insertions, 1 deletions
diff --git a/doc/source/command-objects/server.rst b/doc/source/command-objects/server.rst
index 4f0b836d..3cb6598d 100644
--- a/doc/source/command-objects/server.rst
+++ b/doc/source/command-objects/server.rst
@@ -610,6 +610,21 @@ Start server(s)
Server(s) to start (name or ID)
+server stop
+-----------
+
+Stop server(s)
+
+.. program:: server stop
+.. code:: bash
+
+ os server stop
+ <server> [<server> ...]
+
+.. describe:: <server>
+
+ Server(s) to stop (name or ID)
+
server suspend
--------------
diff --git a/doc/source/commands.rst b/doc/source/commands.rst
index d89e7193..34a30c4e 100644
--- a/doc/source/commands.rst
+++ b/doc/source/commands.rst
@@ -183,7 +183,8 @@ Those actions with an opposite action are noted in parens if applicable.
* ``save`` - download an object locally
* ``set`` (``unset``) - set a property on the object, formerly called metadata
* ``show`` - display detailed information about the specific object
-* ``start`` - start one or more servers
+* ``start`` (``stop``) - start one or more servers
+* ``stop`` (``start``) - stop one or more servers
* ``suspend`` (``resume``) - stop a server and save to disk freeing memory
* ``unlock`` (``lock``) - unlock a server
* ``unpause`` (``pause``) - return a paused server to running state
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 2768951d..e7dfbbef 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -1508,6 +1508,31 @@ class StartServer(command.Command):
).start()
+class StopServer(command.Command):
+ """Stop server(s)."""
+
+ log = logging.getLogger(__name__ + '.StopServer')
+
+ def get_parser(self, prog_name):
+ parser = super(StopServer, self).get_parser(prog_name)
+ parser.add_argument(
+ 'server',
+ metavar='<server>',
+ nargs="+",
+ help=_('Server(s) to stop (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,
+ ).stop()
+
+
class SuspendServer(command.Command):
"""Suspend server"""
diff --git a/setup.cfg b/setup.cfg
index cfbc7c29..d917f042 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -134,6 +134,7 @@ openstack.compute.v2 =
server_show = openstackclient.compute.v2.server:ShowServer
server_ssh = openstackclient.compute.v2.server:SshServer
server_start = openstackclient.compute.v2.server:StartServer
+ server_stop = openstackclient.compute.v2.server:StopServer
server_suspend = openstackclient.compute.v2.server:SuspendServer
server_unlock = openstackclient.compute.v2.server:UnlockServer
server_unpause = openstackclient.compute.v2.server:UnpauseServer