Skip to content

Commit bbf7de8

Browse files
committed
trivial: Use plural for appended parameters
Multiple compute commands take a '--property' parameter or variant thereof. These should be stored in a 'properties' (plural) dest for sanity's sake. Correct this. Change-Id: If393836925fa736404527d9abd212b8ac9931027 Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
1 parent f200799 commit bbf7de8

6 files changed

Lines changed: 78 additions & 76 deletions

File tree

openstackclient/compute/v2/aggregate.py

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ def get_parser(self, prog_name):
101101
"--property",
102102
metavar="<key=value>",
103103
action=parseractions.KeyValueAction,
104+
dest="properties",
104105
help=_("Property to add to this aggregate "
105106
"(repeat option to set multiple properties)")
106107
)
@@ -116,10 +117,10 @@ def take_action(self, parsed_args):
116117

117118
aggregate = compute_client.create_aggregate(**attrs)
118119

119-
if parsed_args.property:
120+
if parsed_args.properties:
120121
aggregate = compute_client.set_aggregate_metadata(
121122
aggregate.id,
122-
parsed_args.property,
123+
parsed_args.properties,
123124
)
124125

125126
display_columns, columns = _get_aggregate_columns(aggregate)
@@ -269,12 +270,12 @@ def get_parser(self, prog_name):
269270
"--property",
270271
metavar="<key=value>",
271272
action=parseractions.KeyValueAction,
273+
dest="properties",
272274
help=_("Property to set on <aggregate> "
273275
"(repeat option to set multiple properties)")
274276
)
275277
parser.add_argument(
276278
"--no-property",
277-
dest="no_property",
278279
action="store_true",
279280
help=_("Remove all properties from <aggregate> "
280281
"(specify both --property and --no-property to "
@@ -296,21 +297,20 @@ def take_action(self, parsed_args):
296297
if kwargs:
297298
compute_client.update_aggregate(aggregate.id, **kwargs)
298299

299-
set_property = {}
300+
properties = {}
300301
if parsed_args.no_property:
301302
# NOTE(RuiChen): "availability_zone" can not be unset from
302303
# properties. It is already excluded from show and create output.
303-
set_property.update({key: None
304-
for key in aggregate.metadata.keys()
305-
if key != 'availability_zone'})
306-
if parsed_args.property:
307-
set_property.update(parsed_args.property)
308-
309-
if set_property:
310-
compute_client.set_aggregate_metadata(
311-
aggregate.id,
312-
set_property
313-
)
304+
properties.update({
305+
key: None for key in aggregate.metadata.keys()
306+
if key != 'availability_zone'
307+
})
308+
309+
if parsed_args.properties:
310+
properties.update(parsed_args.properties)
311+
312+
if properties:
313+
compute_client.set_aggregate_metadata(aggregate.id, properties)
314314

315315

316316
class ShowAggregate(command.ShowOne):
@@ -354,7 +354,9 @@ def get_parser(self, prog_name):
354354
parser.add_argument(
355355
"--property",
356356
metavar="<key>",
357-
action='append',
357+
action="append",
358+
default=[],
359+
dest="properties",
358360
help=_("Property to remove from aggregate "
359361
"(repeat option to remove multiple properties)")
360362
)
@@ -365,12 +367,10 @@ def take_action(self, parsed_args):
365367
aggregate = compute_client.find_aggregate(
366368
parsed_args.aggregate, ignore_missing=False)
367369

368-
unset_property = {}
369-
if parsed_args.property:
370-
unset_property.update({key: None for key in parsed_args.property})
371-
if unset_property:
372-
compute_client.set_aggregate_metadata(
373-
aggregate, unset_property)
370+
properties = {key: None for key in parsed_args.properties}
371+
372+
if properties:
373+
compute_client.set_aggregate_metadata(aggregate.id, properties)
374374

375375

376376
class CacheImageForAggregate(command.Command):

openstackclient/compute/v2/flavor.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ def get_parser(self, prog_name):
128128
"--property",
129129
metavar="<key=value>",
130130
action=parseractions.KeyValueAction,
131+
dest="properties",
131132
help=_("Property to add for this flavor "
132133
"(repeat option to set multiple properties)")
133134
)
@@ -191,12 +192,12 @@ def take_action(self, parsed_args):
191192
msg = _("Failed to add project %(project)s access to "
192193
"flavor: %(e)s")
193194
LOG.error(msg, {'project': parsed_args.project, 'e': e})
194-
if parsed_args.property:
195+
if parsed_args.properties:
195196
try:
196197
flavor = compute_client.create_flavor_extra_specs(
197-
flavor, parsed_args.property)
198+
flavor, parsed_args.properties)
198199
except Exception as e:
199-
LOG.error(_("Failed to set flavor property: %s"), e)
200+
LOG.error(_("Failed to set flavor properties: %s"), e)
200201

201202
display_columns, columns = _get_flavor_columns(flavor)
202203
data = utils.get_dict_properties(flavor, columns,
@@ -398,6 +399,7 @@ def get_parser(self, prog_name):
398399
"--property",
399400
metavar="<key=value>",
400401
action=parseractions.KeyValueAction,
402+
dest="properties",
401403
help=_("Property to add or modify for this flavor "
402404
"(repeat option to set multiple properties)")
403405
)
@@ -447,15 +449,15 @@ def take_action(self, parsed_args):
447449
compute_client.delete_flavor_extra_specs_property(
448450
flavor.id, key)
449451
except Exception as e:
450-
LOG.error(_("Failed to clear flavor property: %s"), e)
452+
LOG.error(_("Failed to clear flavor properties: %s"), e)
451453
result += 1
452454

453-
if parsed_args.property:
455+
if parsed_args.properties:
454456
try:
455457
compute_client.create_flavor_extra_specs(
456-
flavor.id, parsed_args.property)
458+
flavor.id, parsed_args.properties)
457459
except Exception as e:
458-
LOG.error(_("Failed to set flavor property: %s"), e)
460+
LOG.error(_("Failed to set flavor properties: %s"), e)
459461
result += 1
460462

461463
if parsed_args.project:
@@ -537,6 +539,7 @@ def get_parser(self, prog_name):
537539
"--property",
538540
metavar="<key>",
539541
action='append',
542+
dest="properties",
540543
help=_("Property to remove from flavor "
541544
"(repeat option to unset multiple properties)")
542545
)
@@ -563,8 +566,8 @@ def take_action(self, parsed_args):
563566
raise exceptions.CommandError(_(e.message))
564567

565568
result = 0
566-
if parsed_args.property:
567-
for key in parsed_args.property:
569+
if parsed_args.properties:
570+
for key in parsed_args.properties:
568571
try:
569572
compute_client.delete_flavor_extra_specs_property(
570573
flavor.id, key)

openstackclient/compute/v2/server.py

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -614,6 +614,7 @@ def get_parser(self, prog_name):
614614
'--image-property',
615615
metavar='<key=value>',
616616
action=parseractions.KeyValueAction,
617+
dest='image_properties',
617618
help=_("Image property to be matched"),
618619
)
619620
disk_group.add_argument(
@@ -659,6 +660,7 @@ def get_parser(self, prog_name):
659660
'--property',
660661
metavar='<key=value>',
661662
action=parseractions.KeyValueAction,
663+
dest='properties',
662664
help=_(
663665
'Set a property on this server '
664666
'(repeat option to set multiple values)'
@@ -886,8 +888,8 @@ def _show_progress(progress):
886888
image = image_client.find_image(
887889
parsed_args.image, ignore_missing=False)
888890

889-
if not image and parsed_args.image_property:
890-
def emit_duplicated_warning(img, image_property):
891+
if not image and parsed_args.image_properties:
892+
def emit_duplicated_warning(img):
891893
img_uuid_list = [str(image.id) for image in img]
892894
LOG.warning(
893895
'Multiple matching images: %(img_uuid_list)s\n'
@@ -930,9 +932,9 @@ def _match_image(image_api, wanted_properties):
930932

931933
return images_matched
932934

933-
images = _match_image(image_client, parsed_args.image_property)
935+
images = _match_image(image_client, parsed_args.image_properties)
934936
if len(images) > 1:
935-
emit_duplicated_warning(images, parsed_args.image_property)
937+
emit_duplicated_warning(images, parsed_args.image_properties)
936938
if images:
937939
image = images[0]
938940
else:
@@ -1195,7 +1197,7 @@ def _match_image(image_api, wanted_properties):
11951197
config_drive = parsed_args.config_drive
11961198

11971199
boot_kwargs = dict(
1198-
meta=parsed_args.property,
1200+
meta=parsed_args.properties,
11991201
files=files,
12001202
reservation_id=None,
12011203
min_count=parsed_args.min,
@@ -2473,6 +2475,7 @@ def get_parser(self, prog_name):
24732475
'--property',
24742476
metavar='<key=value>',
24752477
action=parseractions.KeyValueAction,
2478+
dest='properties',
24762479
help=_(
24772480
'Set a new property on the rebuilt server '
24782481
'(repeat option to set multiple values)'
@@ -2614,8 +2617,8 @@ def _show_progress(progress):
26142617
if parsed_args.preserve_ephemeral is not None:
26152618
kwargs['preserve_ephemeral'] = parsed_args.preserve_ephemeral
26162619

2617-
if parsed_args.property:
2618-
kwargs['meta'] = parsed_args.property
2620+
if parsed_args.properties:
2621+
kwargs['meta'] = parsed_args.properties
26192622

26202623
if parsed_args.description:
26212624
if compute_client.api_version < api_versions.APIVersion('2.19'):
@@ -3278,9 +3281,10 @@ def get_parser(self, prog_name):
32783281
help=_('Set new root password (interactive only)'),
32793282
)
32803283
parser.add_argument(
3281-
"--property",
3282-
metavar="<key=value>",
3284+
'--property',
3285+
metavar='<key=value>',
32833286
action=parseractions.KeyValueAction,
3287+
dest='properties',
32843288
help=_('Property to add/change for this server '
32853289
'(repeat option to set multiple properties)'),
32863290
)
@@ -3321,11 +3325,8 @@ def take_action(self, parsed_args):
33213325
if parsed_args.name:
33223326
server.update(name=parsed_args.name)
33233327

3324-
if parsed_args.property:
3325-
compute_client.servers.set_meta(
3326-
server,
3327-
parsed_args.property,
3328-
)
3328+
if parsed_args.properties:
3329+
compute_client.servers.set_meta(server, parsed_args.properties)
33293330

33303331
if parsed_args.state:
33313332
server.reset_state(state=parsed_args.state)
@@ -3740,6 +3741,7 @@ def get_parser(self, prog_name):
37403741
metavar='<key>',
37413742
action='append',
37423743
default=[],
3744+
dest='properties',
37433745
help=_('Property key to remove from server '
37443746
'(repeat option to remove multiple values)'),
37453747
)
@@ -3771,11 +3773,8 @@ def take_action(self, parsed_args):
37713773
parsed_args.server,
37723774
)
37733775

3774-
if parsed_args.property:
3775-
compute_client.servers.delete_meta(
3776-
server,
3777-
parsed_args.property,
3778-
)
3776+
if parsed_args.properties:
3777+
compute_client.servers.delete_meta(server, parsed_args.properties)
37793778

37803779
if parsed_args.description:
37813780
if compute_client.api_version < api_versions.APIVersion("2.19"):

openstackclient/tests/unit/compute/v2/test_aggregate.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -138,15 +138,15 @@ def test_aggregate_create_with_property(self):
138138
'ag1',
139139
]
140140
verifylist = [
141-
('property', {'key1': 'value1', 'key2': 'value2'}),
141+
('properties', {'key1': 'value1', 'key2': 'value2'}),
142142
('name', 'ag1'),
143143
]
144144
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
145145
columns, data = self.cmd.take_action(parsed_args)
146146
self.sdk_client.create_aggregate.assert_called_once_with(
147147
name=parsed_args.name)
148148
self.sdk_client.set_aggregate_metadata.assert_called_once_with(
149-
self.fake_ag.id, parsed_args.property)
149+
self.fake_ag.id, parsed_args.properties)
150150
self.assertEqual(self.columns, columns)
151151
self.assertItemsEqual(self.data, data)
152152

@@ -378,7 +378,7 @@ def test_aggregate_set_with_property(self):
378378
'ag1',
379379
]
380380
verifylist = [
381-
('property', {'key1': 'value1', 'key2': 'value2'}),
381+
('properties', {'key1': 'value1', 'key2': 'value2'}),
382382
('aggregate', 'ag1'),
383383
]
384384
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -388,7 +388,7 @@ def test_aggregate_set_with_property(self):
388388
parsed_args.aggregate, ignore_missing=False)
389389
self.assertNotCalled(self.sdk_client.update_aggregate)
390390
self.sdk_client.set_aggregate_metadata.assert_called_once_with(
391-
self.fake_ag.id, parsed_args.property)
391+
self.fake_ag.id, parsed_args.properties)
392392
self.assertIsNone(result)
393393

394394
def test_aggregate_set_with_no_property_and_property(self):
@@ -399,7 +399,7 @@ def test_aggregate_set_with_no_property_and_property(self):
399399
]
400400
verifylist = [
401401
('no_property', True),
402-
('property', {'key2': 'value2'}),
402+
('properties', {'key2': 'value2'}),
403403
('aggregate', 'ag1'),
404404
]
405405
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -509,14 +509,14 @@ def test_aggregate_unset(self):
509509
'ag1',
510510
]
511511
verifylist = [
512-
('property', ['unset_key']),
512+
('properties', ['unset_key']),
513513
('aggregate', 'ag1'),
514514
]
515515

516516
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
517517
result = self.cmd.take_action(parsed_args)
518518
self.sdk_client.set_aggregate_metadata.assert_called_once_with(
519-
self.fake_ag, {'unset_key': None})
519+
self.fake_ag.id, {'unset_key': None})
520520
self.assertIsNone(result)
521521

522522
def test_aggregate_unset_multiple_properties(self):
@@ -526,22 +526,22 @@ def test_aggregate_unset_multiple_properties(self):
526526
'ag1',
527527
]
528528
verifylist = [
529-
('property', ['unset_key1', 'unset_key2']),
529+
('properties', ['unset_key1', 'unset_key2']),
530530
('aggregate', 'ag1'),
531531
]
532532

533533
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
534534
result = self.cmd.take_action(parsed_args)
535535
self.sdk_client.set_aggregate_metadata.assert_called_once_with(
536-
self.fake_ag, {'unset_key1': None, 'unset_key2': None})
536+
self.fake_ag.id, {'unset_key1': None, 'unset_key2': None})
537537
self.assertIsNone(result)
538538

539539
def test_aggregate_unset_no_option(self):
540540
arglist = [
541541
'ag1',
542542
]
543543
verifylist = [
544-
('property', None),
544+
('properties', []),
545545
('aggregate', 'ag1'),
546546
]
547547
parsed_args = self.check_parser(self.cmd, arglist, verifylist)

0 commit comments

Comments
 (0)