python-openstackclient 7.3.1__py3-none-any.whl → 7.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -88,10 +88,10 @@ class CreateCredential(command.ShowOne):
88
88
  else:
89
89
  project = None
90
90
  credential = identity_client.create_credential(
91
- user=user_id,
91
+ user_id=user_id,
92
92
  type=parsed_args.type,
93
93
  blob=parsed_args.data,
94
- project=project,
94
+ project_id=project,
95
95
  )
96
96
 
97
97
  return _format_credential(credential)
@@ -538,12 +538,12 @@ class CreatePort(command.ShowOne, common.NeutronCommandWithExtraArgs):
538
538
  uplink_status_group.add_argument(
539
539
  '--enable-uplink-status-propagation',
540
540
  action='store_true',
541
- help=_("Enable uplink status propagate"),
541
+ help=_("Enable uplink status propagation (default)"),
542
542
  )
543
543
  uplink_status_group.add_argument(
544
544
  '--disable-uplink-status-propagation',
545
545
  action='store_true',
546
- help=_("Disable uplink status propagate (default)"),
546
+ help=_("Disable uplink status propagation"),
547
547
  )
548
548
  parser.add_argument(
549
549
  '--project',
@@ -1103,6 +1103,18 @@ class SetPort(common.NeutronCommandWithExtraArgs):
1103
1103
  "(requires data plane status extension)"
1104
1104
  ),
1105
1105
  )
1106
+ uplink_status_group = parser.add_mutually_exclusive_group()
1107
+ uplink_status_group.add_argument(
1108
+ '--enable-uplink-status-propagation',
1109
+ action='store_true',
1110
+ help=_('Enable uplink status propagation'),
1111
+ )
1112
+ uplink_status_group.add_argument(
1113
+ '--disable-uplink-status-propagation',
1114
+ action='store_true',
1115
+ help=_('Disable uplink status propagation'),
1116
+ )
1117
+
1106
1118
  _tag.add_tag_option_to_parser_for_set(parser, _('port'))
1107
1119
 
1108
1120
  return parser
@@ -237,6 +237,9 @@ def _get_attrs(client_manager, parsed_args):
237
237
  if 'flavor_id' in parsed_args and parsed_args.flavor_id is not None:
238
238
  flavor = n_client.find_flavor(parsed_args.flavor_id)
239
239
  attrs['flavor_id'] = flavor.id
240
+ elif 'flavor' in parsed_args and parsed_args.flavor is not None:
241
+ flavor = n_client.find_flavor(parsed_args.flavor, ignore_missing=False)
242
+ attrs['flavor_id'] = flavor.id
240
243
 
241
244
  for attr in ('enable_default_route_bfd', 'enable_default_route_ecmp'):
242
245
  value = getattr(parsed_args, attr, None)
@@ -73,10 +73,10 @@ class TestCredentialCreate(identity_fakes.TestIdentityv3):
73
73
  columns, data = self.cmd.take_action(parsed_args)
74
74
 
75
75
  kwargs = {
76
- 'user': self.credential.user_id,
76
+ 'user_id': self.credential.user_id,
77
77
  'type': self.credential.type,
78
78
  'blob': self.credential.blob,
79
- 'project': None,
79
+ 'project_id': None,
80
80
  }
81
81
  self.identity_sdk_client.create_credential.assert_called_once_with(
82
82
  **kwargs
@@ -105,10 +105,10 @@ class TestCredentialCreate(identity_fakes.TestIdentityv3):
105
105
  columns, data = self.cmd.take_action(parsed_args)
106
106
 
107
107
  kwargs = {
108
- 'user': self.credential.user_id,
108
+ 'user_id': self.credential.user_id,
109
109
  'type': self.credential.type,
110
110
  'blob': self.credential.blob,
111
- 'project': self.credential.project_id,
111
+ 'project_id': self.credential.project_id,
112
112
  }
113
113
  self.identity_sdk_client.create_credential.assert_called_once_with(
114
114
  **kwargs
@@ -2633,6 +2633,35 @@ class TestSetPort(TestPort):
2633
2633
  def test_set_trusted_false(self):
2634
2634
  self._test_set_trusted_field(False)
2635
2635
 
2636
+ def _test_set_uplink_status_propagation(self, uspropagation):
2637
+ arglist = [self._port.id]
2638
+ if uspropagation:
2639
+ arglist += ['--enable-uplink-status-propagation']
2640
+ else:
2641
+ arglist += ['--disable-uplink-status-propagation']
2642
+
2643
+ verifylist = [
2644
+ ('port', self._port.id),
2645
+ ]
2646
+ if uspropagation:
2647
+ verifylist.append(('enable_uplink_status_propagation', True))
2648
+ else:
2649
+ verifylist.append(('enable_uplink_status_propagation', False))
2650
+
2651
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
2652
+
2653
+ result = self.cmd.take_action(parsed_args)
2654
+ self.network_client.update_port.assert_called_once_with(
2655
+ self._port, **{'propagate_uplink_status': uspropagation}
2656
+ )
2657
+ self.assertIsNone(result)
2658
+
2659
+ def test_set_uplink_status_propagation_true(self):
2660
+ self._test_set_uplink_status_propagation(True)
2661
+
2662
+ def test_set_uplink_status_propagation_false(self):
2663
+ self._test_set_uplink_status_propagation(False)
2664
+
2636
2665
 
2637
2666
  class TestShowPort(TestPort):
2638
2667
  # The port to show.
@@ -384,7 +384,7 @@ class TestCreateRouter(TestRouter):
384
384
  def test_create_with_no_tag(self):
385
385
  self._test_create_with_tag(add_tags=False)
386
386
 
387
- def test_create_with_flavor_id_or_name(self):
387
+ def test_create_with_flavor_id_id(self):
388
388
  _flavor = network_fakes.create_one_network_flavor()
389
389
  self.network_client.find_flavor = mock.Mock(return_value=_flavor)
390
390
  arglist = [
@@ -392,7 +392,6 @@ class TestCreateRouter(TestRouter):
392
392
  '--flavor-id',
393
393
  _flavor.id,
394
394
  ]
395
- arglist_with_name = [self.new_router.name, '--flavor-id', _flavor.name]
396
395
  verifylist = [
397
396
  ('name', self.new_router.name),
398
397
  ('enable', True),
@@ -412,18 +411,69 @@ class TestCreateRouter(TestRouter):
412
411
  self.assertEqual(self.columns, columns)
413
412
  self.assertCountEqual(self.data, data)
414
413
 
415
- self.network_client.create_router.reset_mock()
416
- verifylist_w_name = [
414
+ def test_create_with_flavor_id_name(self):
415
+ _flavor = network_fakes.create_one_network_flavor()
416
+ self.network_client.find_flavor = mock.Mock(return_value=_flavor)
417
+ arglist = [self.new_router.name, '--flavor-id', _flavor.name]
418
+ verifylist = [
417
419
  ('name', self.new_router.name),
418
420
  ('enable', True),
419
421
  ('distributed', False),
420
422
  ('ha', False),
421
423
  ('flavor_id', _flavor.name),
422
424
  ]
423
- parsed_args_w_name = self.check_parser(
424
- self.cmd, arglist_with_name, verifylist_w_name
425
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
426
+ columns, data = self.cmd.take_action(parsed_args)
427
+ self.network_client.create_router.assert_called_once_with(
428
+ **{
429
+ 'admin_state_up': True,
430
+ 'name': self.new_router.name,
431
+ 'flavor_id': _flavor.id,
432
+ }
433
+ )
434
+ self.assertEqual(self.columns, columns)
435
+ self.assertCountEqual(self.data, data)
436
+
437
+ def test_create_with_flavor_id(self):
438
+ _flavor = network_fakes.create_one_network_flavor()
439
+ self.network_client.find_flavor = mock.Mock(return_value=_flavor)
440
+ arglist = [
441
+ self.new_router.name,
442
+ '--flavor',
443
+ _flavor.id,
444
+ ]
445
+ verifylist = [
446
+ ('name', self.new_router.name),
447
+ ('enable', True),
448
+ ('distributed', False),
449
+ ('ha', False),
450
+ ('flavor', _flavor.id),
451
+ ]
452
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
453
+ columns, data = self.cmd.take_action(parsed_args)
454
+ self.network_client.create_router.assert_called_once_with(
455
+ **{
456
+ 'admin_state_up': True,
457
+ 'name': self.new_router.name,
458
+ 'flavor_id': _flavor.id,
459
+ }
425
460
  )
426
- columns, data = self.cmd.take_action(parsed_args_w_name)
461
+ self.assertEqual(self.columns, columns)
462
+ self.assertCountEqual(self.data, data)
463
+
464
+ def test_create_with_flavor_name(self):
465
+ _flavor = network_fakes.create_one_network_flavor()
466
+ self.network_client.find_flavor = mock.Mock(return_value=_flavor)
467
+ arglist = [self.new_router.name, '--flavor', _flavor.name]
468
+ verifylist = [
469
+ ('name', self.new_router.name),
470
+ ('enable', True),
471
+ ('distributed', False),
472
+ ('ha', False),
473
+ ('flavor', _flavor.name),
474
+ ]
475
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
476
+ columns, data = self.cmd.take_action(parsed_args)
427
477
  self.network_client.create_router.assert_called_once_with(
428
478
  **{
429
479
  'admin_state_up': True,
@@ -112,6 +112,7 @@ Dmitriy Rabotyagov <noonedeadpunk@ya.ru>
112
112
  Dmitry Tantsur <dtantsur@protonmail.com>
113
113
  Dolph Mathews <dolph.mathews@gmail.com>
114
114
  Dongcan Ye <hellochosen@gmail.com>
115
+ Doug Goldstein <cardoe@cardoe.com>
115
116
  Doug Hellmann <doug.hellmann@dreamhost.com>
116
117
  Doug Hellmann <doug@doughellmann.com>
117
118
  Doug Wiegley <dwiegley@salesforce.com>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-openstackclient
3
- Version: 7.3.1
3
+ Version: 7.4.0
4
4
  Summary: OpenStack Command-line Client
5
5
  Home-page: https://docs.openstack.org/python-openstackclient/latest/
6
6
  Author: OpenStack
@@ -57,7 +57,7 @@ openstackclient/identity/v3/access_rule.py,sha256=s1bQ-dQwnUYKPbovwqObhHLmjATsjK
57
57
  openstackclient/identity/v3/application_credential.py,sha256=vCa4hAt7AhVtyZV1Ed_F3BuMtRK5JIxEzyRwXk-hJXA,11232
58
58
  openstackclient/identity/v3/catalog.py,sha256=49jDO5w8AqGgQxRppYmfi8R6P0Es7tnIraQzzFmYFAc,3300
59
59
  openstackclient/identity/v3/consumer.py,sha256=Fk1-wyUoTA638zHKf5KwTP4Os-RYctmBYkyen7fasIk,4845
60
- openstackclient/identity/v3/credential.py,sha256=cioV98t7HTUpjtMRLW7mY4EK-7jELtyFnNV30z6IvhY,7935
60
+ openstackclient/identity/v3/credential.py,sha256=3VMohFrTEqK3hcmBEaXWXwO16n9WCwUYBeav8IEbqsQ,7941
61
61
  openstackclient/identity/v3/domain.py,sha256=Hy_xsQd2tMNjlKsd-OY99XZTbys8XwSf3TOCqhX3YI8,7616
62
62
  openstackclient/identity/v3/ec2creds.py,sha256=BrLcjP_3i6PuMvgIarnhGjx7BxZ4VUVLz6MkE4gZ50I,7278
63
63
  openstackclient/identity/v3/endpoint.py,sha256=RPeAAiNBr6bMhhiCoNpPxanZVxjyiW2fhPxImi37Dks,13013
@@ -127,8 +127,8 @@ openstackclient/network/v2/network_segment.py,sha256=3bJFnFz4QOwgb_diuLZ-QJ9WOj3
127
127
  openstackclient/network/v2/network_segment_range.py,sha256=phZ4h-tRPpHbFNA8s_IegdXKm8Y84kffV62RxVITAn0,17514
128
128
  openstackclient/network/v2/network_service_provider.py,sha256=b0pKHxB5Qq1U2lfOCWHKJ8CMX661gBbKtv0jXvuE3Xg,1384
129
129
  openstackclient/network/v2/network_trunk.py,sha256=2QUGXB4lUGv9BvKPErzFUlgU9Tm_6Agp2pljRx3vTVw,13846
130
- openstackclient/network/v2/port.py,sha256=sarZXmbVioCIQdZkIP44D-ot_d22NvJEQSua2pu5sBg,50368
131
- openstackclient/network/v2/router.py,sha256=_-C3D4EnXFCzMYW2AML_t7zpaZROTFdudxmulw3f4rY,50102
130
+ openstackclient/network/v2/port.py,sha256=P9UvpFAV0JQsxk9m6pV7PdAXOoTF-lDRVEq5KUPYzb8,50825
131
+ openstackclient/network/v2/router.py,sha256=x6jC0qeeOwRAJbC9ZagWVkgcKtz_KX4MzQCYTU5Z_4w,50290
132
132
  openstackclient/network/v2/security_group.py,sha256=XYOze-FQFJWtGxBc-6hiGViKVSi6fDPRWtjC9Keb1Pw,15488
133
133
  openstackclient/network/v2/security_group_rule.py,sha256=UQwuJ2uOmdGpaxcmeKNf8c3ay8I5vVjzb4fSFT3liPg,22371
134
134
  openstackclient/network/v2/subnet.py,sha256=CzW5uV3AQUaOW9gf5IMwJJXJQtk-22cLfNkmazF_LZw,31325
@@ -321,7 +321,7 @@ openstackclient/tests/unit/identity/v3/test_access_rule.py,sha256=g8sWxkRiUZiJr0
321
321
  openstackclient/tests/unit/identity/v3/test_application_credential.py,sha256=o-1WAPU5PQ7xtNGj01zEpt2icB8sGXqCqXR0bG8IXaM,14851
322
322
  openstackclient/tests/unit/identity/v3/test_catalog.py,sha256=u8PIs1shX4IYE3_nd8B8H4f3dV_nqmR59IEX_DgqkYo,4766
323
323
  openstackclient/tests/unit/identity/v3/test_consumer.py,sha256=QcoK9U_Ce1XQMBRqhY2OJouPQXji0huykhehwM6kHlI,6693
324
- openstackclient/tests/unit/identity/v3/test_credential.py,sha256=8tvGjakbh-tPDAWPlk4FxQaMRoJcNoNlbgSfVfvbGUI,11953
324
+ openstackclient/tests/unit/identity/v3/test_credential.py,sha256=yTOl_7NnczmVNplhA8mrWiPnHOWX4AW_UwF5OvIqsro,11965
325
325
  openstackclient/tests/unit/identity/v3/test_domain.py,sha256=Dvy-WTkWxwVfHCeIebdmsFuXETNTdccCKqWkAWRXrt4,16203
326
326
  openstackclient/tests/unit/identity/v3/test_endpoint.py,sha256=kx9y_6XMvm6CQIejTX0zVvwisjoJ4hrpgE-tqtQOBKY,28478
327
327
  openstackclient/tests/unit/identity/v3/test_endpoint_group.py,sha256=g3JGihRqj0jLzmEJXdyOh1PVXyI_48NdeBsGbl9f7e4,16211
@@ -397,8 +397,8 @@ openstackclient/tests/unit/network/v2/test_network_segment.py,sha256=D6MVB6eETA2
397
397
  openstackclient/tests/unit/network/v2/test_network_segment_range.py,sha256=zLgAZdHqbWKn5tYYCUuDn9UA7BFOMYOowC3DQztrZyQ,23388
398
398
  openstackclient/tests/unit/network/v2/test_network_service_provider.py,sha256=iHsMqAGuK3onjUI46uGKX1_DwGq-y6b_SOR2IU9PdfU,2047
399
399
  openstackclient/tests/unit/network/v2/test_network_trunk.py,sha256=1VPt6Nzv92nRxLoDgwffmpTJ0sgYl4b5PmLO3qJ9INk,30556
400
- openstackclient/tests/unit/network/v2/test_port.py,sha256=V2Krim-bHykarUW1UOK7j_v1c54HnKfH4gXstSXe4jU,94737
401
- openstackclient/tests/unit/network/v2/test_router.py,sha256=ELxY_k5ibnxLYYbcr41X7GzAPpxGPuM23VyDseLnJ1A,84356
400
+ openstackclient/tests/unit/network/v2/test_port.py,sha256=SxoL8Oft3NwlQOp7SV98FZ3dM6Ha9BdQwUqmTWBHzvk,95789
401
+ openstackclient/tests/unit/network/v2/test_router.py,sha256=TaYFuKeCcM_WzR5V_-FJo5w2Z8sNUsPiKLm1S4245pM,86272
402
402
  openstackclient/tests/unit/network/v2/test_security_group_compute.py,sha256=725tUWOhxjWJwUXVdKfxD7eXMe7zrz7bKNdK_HvK624,12576
403
403
  openstackclient/tests/unit/network/v2/test_security_group_network.py,sha256=PIE6TgW-bUGSAZLk0B60lPELIJsw_MTKxxcHw-E1fak,20916
404
404
  openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py,sha256=8z6OfGcA69LumFpxglE9MzJS267Co08DAwUf4NNC9RA,19155
@@ -494,11 +494,11 @@ openstackclient/volume/v3/volume_message.py,sha256=HBBxPEcYoNqGjEbzGIEnIJ1XTcQ2K
494
494
  openstackclient/volume/v3/volume_snapshot.py,sha256=pZ4q_qCwqh4jaGhX28G59wsWDmEc3uXdbpeD176osZg,3186
495
495
  openstackclient/volume/v3/volume_transfer_request.py,sha256=PthOJV2m-pTV1njFzwTpaekXZkET1c6alIJrpuN7R6Q,7530
496
496
  openstackclient/volume/v3/volume_type.py,sha256=_nbmu6e87UAHRjh30fQIwScMubox_FpHcQKDUOxO4NA,33955
497
- python_openstackclient-7.3.1.dist-info/AUTHORS,sha256=z7JOCAe9kF-Kh6UmborfoPLRMILaSdEv8zUoNhaVdJM,21563
498
- python_openstackclient-7.3.1.dist-info/LICENSE,sha256=XfKg2H1sVi8OoRxoisUlMqoo10TKvHmU_wU39ks7MyA,10143
499
- python_openstackclient-7.3.1.dist-info/METADATA,sha256=PwCFj_JWf_t5YRjCoLkRGySOLjzfqPTCOFM8hfCpBYQ,6516
500
- python_openstackclient-7.3.1.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
501
- python_openstackclient-7.3.1.dist-info/entry_points.txt,sha256=VsZCw-6So3hkHuIiX-dGaMVL1PEqmfDynF37m1EwjCs,53260
502
- python_openstackclient-7.3.1.dist-info/pbr.json,sha256=E5uUJNuOcXl1clAJ5dAvKRdI6PEscruKO3B38AEFDLA,47
503
- python_openstackclient-7.3.1.dist-info/top_level.txt,sha256=htg7z9oZgysRuVUHn-m1Bk6XLGOeV65nMbZX9H8qhs0,16
504
- python_openstackclient-7.3.1.dist-info/RECORD,,
497
+ python_openstackclient-7.4.0.dist-info/AUTHORS,sha256=JEcKU3f-60jlNEfCB_U9elxEpvg-o-HNB_AFGF6zg7k,21598
498
+ python_openstackclient-7.4.0.dist-info/LICENSE,sha256=XfKg2H1sVi8OoRxoisUlMqoo10TKvHmU_wU39ks7MyA,10143
499
+ python_openstackclient-7.4.0.dist-info/METADATA,sha256=gc5mG6EMYbYGvHktTTd50EtNE9Frb_sgguIwo-Rjdso,6516
500
+ python_openstackclient-7.4.0.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
501
+ python_openstackclient-7.4.0.dist-info/entry_points.txt,sha256=VsZCw-6So3hkHuIiX-dGaMVL1PEqmfDynF37m1EwjCs,53260
502
+ python_openstackclient-7.4.0.dist-info/pbr.json,sha256=PIaHogvl-6SsHqyhVcnmyVjkEiRsEfltQ8jjvnwS8tA,47
503
+ python_openstackclient-7.4.0.dist-info/top_level.txt,sha256=htg7z9oZgysRuVUHn-m1Bk6XLGOeV65nMbZX9H8qhs0,16
504
+ python_openstackclient-7.4.0.dist-info/RECORD,,
@@ -0,0 +1 @@
1
+ {"git_version": "4b7e32ca", "is_release": true}
@@ -1 +0,0 @@
1
- {"git_version": "0ba77e67", "is_release": true}