diff options
| author | Zuul <zuul@review.opendev.org> | 2023-03-30 19:05:00 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2023-03-30 19:05:00 +0000 |
| commit | 4e9181aa1e22a1f8796f645da7937a275677d0c1 (patch) | |
| tree | b3e1d5d119a591af6ddc609f00e07947c67c1b1a /openstackclient/compute/v2 | |
| parent | 55f2819cefe83aeb86c2a6c95e8b949ebafc5fd9 (diff) | |
| parent | ce8171bad90f15ac8a753f50bb3792862b66cc7c (diff) | |
| download | python-openstackclient-4e9181aa1e22a1f8796f645da7937a275677d0c1.tar.gz | |
Merge "Switch server lock, unlock to sdk"
Diffstat (limited to 'openstackclient/compute/v2')
| -rw-r--r-- | openstackclient/compute/v2/server.py | 44 |
1 files changed, 27 insertions, 17 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py index 23bd5e6f..37c78b6f 100644 --- a/openstackclient/compute/v2/server.py +++ b/openstackclient/compute/v2/server.py @@ -2815,24 +2815,33 @@ A non-admin user will not be able to execute actions.""") '--reason', metavar='<reason>', default=None, - help=_("Reason for locking the server(s). Requires " - "``--os-compute-api-version`` 2.73 or greater.") + help=_( + 'Reason for locking the server(s) ' + '(supported by --os-compute-api-version 2.73 or above)' + ), ) return parser def take_action(self, parsed_args): + compute_client = self.app.client_manager.sdk_connection.compute + + kwargs = {} + if parsed_args.reason: + if not sdk_utils.supports_microversion(compute_client, '2.73'): + msg = _( + '--os-compute-api-version 2.73 or greater is required to ' + 'use the --reason option' + ) + raise exceptions.CommandError(msg) + + kwargs['locked_reason'] = parsed_args.reason - compute_client = self.app.client_manager.compute - support_reason = compute_client.api_version >= api_versions.APIVersion( - '2.73') - if not support_reason and parsed_args.reason: - msg = _('--os-compute-api-version 2.73 or greater is required to ' - 'use the --reason option.') - raise exceptions.CommandError(msg) for server in parsed_args.server: - serv = utils.find_resource(compute_client.servers, server) - (serv.lock(reason=parsed_args.reason) if support_reason - else serv.lock()) + server_id = compute_client.find_server( + server, + ignore_missing=False + ).id + compute_client.lock_server(server_id, **kwargs) # FIXME(dtroyer): Here is what I want, how with argparse/cliff? @@ -4654,7 +4663,7 @@ class UnlockServer(command.Command): _description = _("Unlock server(s)") def get_parser(self, prog_name): - parser = super(UnlockServer, self).get_parser(prog_name) + parser = super().get_parser(prog_name) parser.add_argument( 'server', metavar='<server>', @@ -4664,12 +4673,13 @@ class UnlockServer(command.Command): return parser def take_action(self, parsed_args): - compute_client = self.app.client_manager.compute + compute_client = self.app.client_manager.sdk_connection.compute for server in parsed_args.server: - utils.find_resource( - compute_client.servers, + server_id = compute_client.find_server( server, - ).unlock() + ignore_missing=False, + ).id + compute_client.unlock_server(server_id) class UnpauseServer(command.Command): |
