diff --git a/doc/source/command-objects/server.rst b/doc/source/command-objects/server.rst index 211963f3eb..d8b3dbcbaf 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 - + [ ...] .. describe:: - 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 62ed7652cc..ca60ab8e76 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 a94857b45c..15aff77493 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='', - 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?