Skip to content

Commit 5898f13

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "compute: Migrate 'server set', 'server unset' commands"
2 parents 816f485 + bcaf2ab commit 5898f13

4 files changed

Lines changed: 243 additions & 137 deletions

File tree

openstackclient/compute/v2/server.py

Lines changed: 53 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -4415,30 +4415,29 @@ def get_parser(self, prog_name):
44154415
return parser
44164416

44174417
def take_action(self, parsed_args):
4418-
compute_client = self.app.client_manager.compute
4419-
server = utils.find_resource(
4420-
compute_client.servers,
4421-
parsed_args.server,
4418+
compute_client = self.app.client_manager.sdk_connection.compute
4419+
server = compute_client.find_server(
4420+
parsed_args.server, ignore_missing=False
44224421
)
44234422

44244423
if parsed_args.description:
4425-
if compute_client.api_version < api_versions.APIVersion("2.19"):
4424+
if not sdk_utils.supports_microversion(compute_client, '2.19'):
44264425
msg = _(
44274426
'--os-compute-api-version 2.19 or greater is required to '
44284427
'support the --description option'
44294428
)
44304429
raise exceptions.CommandError(msg)
44314430

44324431
if parsed_args.tags:
4433-
if compute_client.api_version < api_versions.APIVersion('2.26'):
4432+
if not sdk_utils.supports_microversion(compute_client, '2.26'):
44344433
msg = _(
44354434
'--os-compute-api-version 2.26 or greater is required to '
44364435
'support the --tag option'
44374436
)
44384437
raise exceptions.CommandError(msg)
44394438

44404439
if parsed_args.hostname:
4441-
if compute_client.api_version < api_versions.APIVersion('2.90'):
4440+
if not sdk_utils.supports_microversion(compute_client, '2.90'):
44424441
msg = _(
44434442
'--os-compute-api-version 2.90 or greater is required to '
44444443
'support the --hostname option'
@@ -4457,30 +4456,32 @@ def take_action(self, parsed_args):
44574456
update_kwargs['hostname'] = parsed_args.hostname
44584457

44594458
if update_kwargs:
4460-
server.update(**update_kwargs)
4459+
compute_client.update_server(server, **update_kwargs)
44614460

44624461
if parsed_args.properties:
4463-
compute_client.servers.set_meta(server, parsed_args.properties)
4462+
compute_client.set_server_metadata(
4463+
server, **parsed_args.properties
4464+
)
44644465

44654466
if parsed_args.state:
4466-
server.reset_state(state=parsed_args.state)
4467+
compute_client.reset_server_state(server, state=parsed_args.state)
44674468

44684469
if parsed_args.root_password:
44694470
p1 = getpass.getpass(_('New password: '))
44704471
p2 = getpass.getpass(_('Retype new password: '))
44714472
if p1 == p2:
4472-
server.change_password(p1)
4473+
compute_client.change_server_password(server, p1)
44734474
else:
44744475
msg = _("Passwords do not match, password unchanged")
44754476
raise exceptions.CommandError(msg)
44764477
elif parsed_args.password:
4477-
server.change_password(parsed_args.password)
4478+
compute_client.change_server_password(server, parsed_args.password)
44784479
elif parsed_args.no_password:
4479-
server.clear_password()
4480+
compute_client.clear_server_password(server)
44804481

44814482
if parsed_args.tags:
44824483
for tag in parsed_args.tags:
4483-
server.add_tag(tag=tag)
4484+
compute_client.add_tag_to_server(server, tag=tag)
44844485

44854486

44864487
class ShelveServer(command.Command):
@@ -4995,7 +4996,8 @@ def get_parser(self, prog_name):
49954996
metavar='<server>',
49964997
help=_('Server (name or ID)'),
49974998
)
4998-
parser.add_argument(
4999+
property_group = parser.add_mutually_exclusive_group()
5000+
property_group.add_argument(
49995001
'--property',
50005002
metavar='<key>',
50015003
action='append',
@@ -5006,16 +5008,22 @@ def get_parser(self, prog_name):
50065008
'(repeat option to remove multiple values)'
50075009
),
50085010
)
5011+
property_group.add_argument(
5012+
'--all-properties',
5013+
action='store_true',
5014+
help=_('Remove all properties'),
5015+
)
50095016
parser.add_argument(
50105017
'--description',
50115018
dest='description',
50125019
action='store_true',
50135020
help=_(
5014-
'Unset server description (supported by '
5015-
'--os-compute-api-version 2.19 or above)'
5021+
'Unset server description '
5022+
'(supported by --os-compute-api-version 2.19 or above)'
50165023
),
50175024
)
5018-
parser.add_argument(
5025+
tag_group = parser.add_mutually_exclusive_group()
5026+
tag_group.add_argument(
50195027
'--tag',
50205028
metavar='<tag>',
50215029
action='append',
@@ -5027,40 +5035,51 @@ def get_parser(self, prog_name):
50275035
'(supported by --os-compute-api-version 2.26 or above)'
50285036
),
50295037
)
5038+
tag_group.add_argument(
5039+
'--all-tags',
5040+
action='store_true',
5041+
help=_(
5042+
'Remove all tags '
5043+
'(supported by --os-compute-api-version 2.26 or above)'
5044+
),
5045+
)
50305046
return parser
50315047

50325048
def take_action(self, parsed_args):
5033-
compute_client = self.app.client_manager.compute
5034-
server = utils.find_resource(
5035-
compute_client.servers,
5036-
parsed_args.server,
5049+
compute_client = self.app.client_manager.sdk_connection.compute
5050+
5051+
server = compute_client.find_server(
5052+
parsed_args.server, ignore_missing=False
50375053
)
50385054

5039-
if parsed_args.properties:
5040-
compute_client.servers.delete_meta(server, parsed_args.properties)
5055+
if parsed_args.properties or parsed_args.all_properties:
5056+
compute_client.delete_server_metadata(
5057+
server, parsed_args.properties or None
5058+
)
50415059

50425060
if parsed_args.description:
5043-
if compute_client.api_version < api_versions.APIVersion("2.19"):
5061+
if not sdk_utils.supports_microversion(compute_client, '2.19'):
50445062
msg = _(
5045-
'--os-compute-api-version 2.19 or greater is '
5046-
'required to support the --description option'
5063+
'--os-compute-api-version 2.19 or greater is required to '
5064+
'support the --description option'
50475065
)
50485066
raise exceptions.CommandError(msg)
5049-
compute_client.servers.update(
5050-
server,
5051-
description="",
5052-
)
50535067

5054-
if parsed_args.tags:
5055-
if compute_client.api_version < api_versions.APIVersion('2.26'):
5068+
compute_client.update_server(server, description="")
5069+
5070+
if parsed_args.tags or parsed_args.all_tags:
5071+
if not sdk_utils.supports_microversion(compute_client, '2.26'):
50565072
msg = _(
50575073
'--os-compute-api-version 2.26 or greater is required to '
50585074
'support the --tag option'
50595075
)
50605076
raise exceptions.CommandError(msg)
50615077

50625078
for tag in parsed_args.tags:
5063-
compute_client.servers.delete_tag(server, tag=tag)
5079+
compute_client.remove_tag_from_server(server, tag)
5080+
5081+
if parsed_args.all_tags:
5082+
compute_client.remove_tags_from_server(server)
50645083

50655084

50665085
class UnshelveServer(command.Command):

0 commit comments

Comments
 (0)