summaryrefslogtreecommitdiff
path: root/openstackclient/compute/v2
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2023-03-30 19:05:00 +0000
committerGerrit Code Review <review@openstack.org>2023-03-30 19:05:00 +0000
commit4e9181aa1e22a1f8796f645da7937a275677d0c1 (patch)
treeb3e1d5d119a591af6ddc609f00e07947c67c1b1a /openstackclient/compute/v2
parent55f2819cefe83aeb86c2a6c95e8b949ebafc5fd9 (diff)
parentce8171bad90f15ac8a753f50bb3792862b66cc7c (diff)
downloadpython-openstackclient-4e9181aa1e22a1f8796f645da7937a275677d0c1.tar.gz
Merge "Switch server lock, unlock to sdk"
Diffstat (limited to 'openstackclient/compute/v2')
-rw-r--r--openstackclient/compute/v2/server.py44
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):