Skip to content

Commit c1f0ad6

Browse files
committed
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
1 parent 90d86ef commit c1f0ad6

3 files changed

Lines changed: 12 additions & 10 deletions

File tree

doc/source/command-objects/server.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -253,17 +253,17 @@ List servers
253253
server lock
254254
-----------
255255
256-
Lock a server. A non-admin user will not be able to execute actions
256+
Lock server(s). A non-admin user will not be able to execute actions
257257
258258
.. program:: server lock
259259
.. code:: bash
260260
261261
os server lock
262-
<server>
262+
<server> [<server> ...]
263263
264264
.. describe:: <server>
265265
266-
Server (name or ID)
266+
Server(s) to lock (name or ID)
267267
268268
server migrate
269269
--------------

doc/source/commands.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ Those actions with an opposite action are noted in parens if applicable.
169169
* ``delete`` (``create``) - delete specific occurrences of the specified objects
170170
* ``issue`` (``revoke``) - issue a token
171171
* ``list`` - display summary information about multiple objects
172-
* ``lock`` (``unlock``) - lock a server so that non-admin user won't be able to execute actions
172+
* ``lock`` (``unlock``) - lock one or more servers so that non-admin user won't be able to execute actions
173173
* ``migrate`` - move a server to a different host; ``--live`` performs a
174174
live migration if possible
175175
* ``pause`` (``unpause``) - stop one or more servers and leave them in memory

openstackclient/compute/v2/server.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -798,7 +798,7 @@ def take_action(self, parsed_args):
798798

799799
class LockServer(command.Command):
800800

801-
"""Lock a server. A non-admin user will not be able to execute actions"""
801+
"""Lock server(s). A non-admin user will not be able to execute actions"""
802802

803803
log = logging.getLogger(__name__ + '.LockServer')
804804

@@ -807,18 +807,20 @@ def get_parser(self, prog_name):
807807
parser.add_argument(
808808
'server',
809809
metavar='<server>',
810-
help=_('Server (name or ID)'),
810+
nargs='+',
811+
help=_('Server(s) to lock (name or ID)'),
811812
)
812813
return parser
813814

814815
@utils.log_method(log)
815816
def take_action(self, parsed_args):
816817

817818
compute_client = self.app.client_manager.compute
818-
utils.find_resource(
819-
compute_client.servers,
820-
parsed_args.server,
821-
).lock()
819+
for server in parsed_args.server:
820+
utils.find_resource(
821+
compute_client.servers,
822+
server,
823+
).lock()
822824

823825

824826
# FIXME(dtroyer): Here is what I want, how with argparse/cliff?

0 commit comments

Comments
 (0)