summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTang Chen <tangchen@cn.fujitsu.com>2015-11-13 10:25:27 +0800
committerTang Chen <tangchen@cn.fujitsu.com>2015-11-13 10:36:22 +0800
commitc1f0ad6d714b1cb9cb9f9ba25c02243a0c5b7d66 (patch)
tree8e108bfc6a5de0165448b3a193ce4223087208e6
parent90d86ef01cb6ce93c3341562c0e0e79da0a6d4ad (diff)
downloadpython-openstackclient-c1f0ad6d714b1cb9cb9f9ba25c02243a0c5b7d66.tar.gz
Enable "openstack server lock" command to take multiple servers.
Current "openstack server lock" command could only lock one server. Improve it to be able to handle more than one servers. Also improve the doc to reflect the new feature. Change-Id: Ifcf103b1c32e6c547ac09f688b887b1c03f92b09 Implements: blueprint cmd-with-multi-servers
-rw-r--r--doc/source/command-objects/server.rst6
-rw-r--r--doc/source/commands.rst2
-rw-r--r--openstackclient/compute/v2/server.py14
3 files changed, 12 insertions, 10 deletions
diff --git a/doc/source/command-objects/server.rst b/doc/source/command-objects/server.rst
index 211963f3..d8b3dbcb 100644
--- a/doc/source/command-objects/server.rst
+++ b/doc/source/command-objects/server.rst
@@ -253,17 +253,17 @@ List servers
server lock
-----------
-Lock a server. A non-admin user will not be able to execute actions
+Lock server(s). A non-admin user will not be able to execute actions
.. program:: server lock
.. code:: bash
os server lock
- <server>
+ <server> [<server> ...]
.. describe:: <server>
- Server (name or ID)
+ Server(s) to lock (name or ID)
server migrate
--------------
diff --git a/doc/source/commands.rst b/doc/source/commands.rst
index 62ed7652..ca60ab8e 100644
--- a/doc/source/commands.rst
+++ b/doc/source/commands.rst
@@ -169,7 +169,7 @@ Those actions with an opposite action are noted in parens if applicable.
* ``delete`` (``create``) - delete specific occurrences of the specified objects
* ``issue`` (``revoke``) - issue a token
* ``list`` - display summary information about multiple objects
-* ``lock`` (``unlock``) - lock a server so that non-admin user won't be able to execute actions
+* ``lock`` (``unlock``) - lock one or more servers so that non-admin user won't be able to execute actions
* ``migrate`` - move a server to a different host; ``--live`` performs a
live migration if possible
* ``pause`` (``unpause``) - stop one or more servers and leave them in memory
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index a94857b4..15aff774 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -798,7 +798,7 @@ class ListServer(lister.Lister):
class LockServer(command.Command):
- """Lock a server. A non-admin user will not be able to execute actions"""
+ """Lock server(s). A non-admin user will not be able to execute actions"""
log = logging.getLogger(__name__ + '.LockServer')
@@ -807,7 +807,8 @@ class LockServer(command.Command):
parser.add_argument(
'server',
metavar='<server>',
- help=_('Server (name or ID)'),
+ nargs='+',
+ help=_('Server(s) to lock (name or ID)'),
)
return parser
@@ -815,10 +816,11 @@ class LockServer(command.Command):
def take_action(self, parsed_args):
compute_client = self.app.client_manager.compute
- utils.find_resource(
- compute_client.servers,
- parsed_args.server,
- ).lock()
+ for server in parsed_args.server:
+ utils.find_resource(
+ compute_client.servers,
+ server,
+ ).lock()
# FIXME(dtroyer): Here is what I want, how with argparse/cliff?