python-openstackclient 7.3.1__py3-none-any.whl → 7.5.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)
@@ -123,37 +123,67 @@ class CreateTrust(command.ShowOne):
123
123
  # pointless, and trusts are immutable, so let's enforce it at the
124
124
  # client level.
125
125
  try:
126
- trustor_id = identity_client.find_user(
127
- parsed_args.trustor, parsed_args.trustor_domain
128
- ).id
129
- kwargs['trustor_id'] = trustor_id
126
+ if parsed_args.trustor_domain:
127
+ trustor_domain_id = identity_client.find_domain(
128
+ parsed_args.trustor_domain, ignore_missing=False
129
+ ).id
130
+ trustor_id = identity_client.find_user(
131
+ parsed_args.trustor,
132
+ ignore_missing=False,
133
+ domain_id=trustor_domain_id,
134
+ ).id
135
+ else:
136
+ trustor_id = identity_client.find_user(
137
+ parsed_args.trustor, ignore_missing=False
138
+ ).id
139
+ kwargs['trustor_user_id'] = trustor_id
130
140
  except sdk_exceptions.ForbiddenException:
131
- kwargs['trustor_id'] = parsed_args.trustor
141
+ kwargs['trustor_user_id'] = parsed_args.trustor
132
142
 
133
143
  try:
134
- trustee_id = identity_client.find_user(
135
- parsed_args.trustee, parsed_args.trustee_domain
136
- ).id
137
- kwargs['trustee_id'] = trustee_id
144
+ if parsed_args.trustee_domain:
145
+ trustee_domain_id = identity_client.find_domain(
146
+ parsed_args.trustee_domain, ignore_missing=False
147
+ ).id
148
+ trustee_id = identity_client.find_user(
149
+ parsed_args.trustee,
150
+ ignore_missing=False,
151
+ domain_id=trustee_domain_id,
152
+ ).id
153
+ else:
154
+ trustee_id = identity_client.find_user(
155
+ parsed_args.trustee, ignore_missing=False
156
+ ).id
157
+ kwargs['trustee_user_id'] = trustee_id
138
158
  except sdk_exceptions.ForbiddenException:
139
- kwargs['trustee_id'] = parsed_args.trustee
159
+ kwargs['trustee_user_id'] = parsed_args.trustee
140
160
 
141
161
  try:
142
- project_id = identity_client.find_project(
143
- parsed_args.project, parsed_args.project_domain
144
- ).id
162
+ if parsed_args.project_domain:
163
+ project_domain_id = identity_client.find_domain(
164
+ parsed_args.project_domain, ignore_missing=False
165
+ ).id
166
+ project_id = identity_client.find_project(
167
+ parsed_args.project,
168
+ ignore_missing=False,
169
+ domain_id=project_domain_id,
170
+ ).id
171
+ else:
172
+ project_id = identity_client.find_project(
173
+ parsed_args.project, ignore_missing=False
174
+ ).id
145
175
  kwargs['project_id'] = project_id
146
176
  except sdk_exceptions.ForbiddenException:
147
177
  kwargs['project_id'] = parsed_args.project
148
178
 
149
- role_ids = []
179
+ roles = []
150
180
  for role in parsed_args.roles:
151
181
  try:
152
182
  role_id = identity_client.find_role(role).id
153
183
  except sdk_exceptions.ForbiddenException:
154
184
  role_id = role
155
- role_ids.append(role_id)
156
- kwargs['roles'] = role_ids
185
+ roles.append({"id": role_id})
186
+ kwargs['roles'] = roles
157
187
 
158
188
  if parsed_args.expiration:
159
189
  expires_at = datetime.datetime.strptime(
@@ -161,8 +191,7 @@ class CreateTrust(command.ShowOne):
161
191
  )
162
192
  kwargs['expires_at'] = expires_at
163
193
 
164
- if parsed_args.is_impersonation:
165
- kwargs['is_impersonation'] = parsed_args.is_impersonation
194
+ kwargs['impersonation'] = bool(parsed_args.is_impersonation)
166
195
 
167
196
  trust = identity_client.create_trust(**kwargs)
168
197
 
@@ -289,9 +318,19 @@ class ListTrust(command.Lister):
289
318
  trustor = None
290
319
  if parsed_args.trustor:
291
320
  try:
292
- trustor_id = identity_client.find_user(
293
- parsed_args.trustor, parsed_args.trustor_domain
294
- ).id
321
+ if parsed_args.trustor_domain:
322
+ trustor_domain_id = identity_client.find_domain(
323
+ parsed_args.trustor_domain, ignore_missing=False
324
+ ).id
325
+ trustor_id = identity_client.find_user(
326
+ parsed_args.trustor,
327
+ ignore_missing=False,
328
+ domain_id=trustor_domain_id,
329
+ ).id
330
+ else:
331
+ trustor_id = identity_client.find_user(
332
+ parsed_args.trustor, ignore_missing=False
333
+ ).id
295
334
  trustor = trustor_id
296
335
  except sdk_exceptions.ForbiddenException:
297
336
  trustor = parsed_args.trustor
@@ -299,9 +338,19 @@ class ListTrust(command.Lister):
299
338
  trustee = None
300
339
  if parsed_args.trustee:
301
340
  try:
302
- trustee_id = identity_client.find_user(
303
- parsed_args.trustee, parsed_args.trustee_domain
304
- ).id
341
+ if parsed_args.trustee_domain:
342
+ trustee_domain_id = identity_client.find_domain(
343
+ parsed_args.trustee_domain, ignore_missing=False
344
+ ).id
345
+ trustee_id = identity_client.find_user(
346
+ parsed_args.trustee,
347
+ ignore_missing=False,
348
+ domain_id=trustee_domain_id,
349
+ ).id
350
+ else:
351
+ trustee_id = identity_client.find_user(
352
+ parsed_args.trustee, ignore_missing=False
353
+ ).id
305
354
  trustee = trustee_id
306
355
  except sdk_exceptions.ForbiddenException:
307
356
  trustee = parsed_args.trustee
@@ -612,10 +612,12 @@ class SetUser(command.Command):
612
612
  if parsed_args.description:
613
613
  kwargs['description'] = parsed_args.description
614
614
  if parsed_args.project:
615
- project_domain_id = identity_client.find_domain(
616
- name_or_id=parsed_args.project_domain,
617
- ignore_missing=False,
618
- ).id
615
+ project_domain_id = None
616
+ if parsed_args.project_domain:
617
+ project_domain_id = identity_client.find_domain(
618
+ name_or_id=parsed_args.project_domain,
619
+ ignore_missing=False,
620
+ ).id
619
621
  project_id = identity_client.find_project(
620
622
  name_or_id=parsed_args.project,
621
623
  ignore_missing=False,
@@ -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
@@ -70,12 +70,15 @@ class TestTrustCreate(identity_fakes.TestIdentityv3):
70
70
  # Set expected values
71
71
  kwargs = {
72
72
  'project_id': self.project.id,
73
- 'roles': [self.role.id],
73
+ 'roles': [{'id': self.role.id}],
74
+ 'impersonation': False,
74
75
  }
75
76
  # TrustManager.create(trustee_id, trustor_id, impersonation=,
76
77
  # project=, role_names=, expires_at=)
77
78
  self.identity_sdk_client.create_trust.assert_called_with(
78
- trustor_id=self.user.id, trustee_id=self.user.id, **kwargs
79
+ trustor_user_id=self.user.id,
80
+ trustee_user_id=self.user.id,
81
+ **kwargs,
79
82
  )
80
83
 
81
84
  collist = (
@@ -1206,6 +1206,17 @@ class TestUserSet(identity_fakes.TestIdentityv3):
1206
1206
  self.identity_sdk_client.update_user.assert_called_with(
1207
1207
  user=self.user, **kwargs
1208
1208
  )
1209
+ self.identity_sdk_client.find_domain.assert_not_called()
1210
+
1211
+ # Set expected values
1212
+ kwargs = {
1213
+ 'ignore_missing': False,
1214
+ 'domain_id': None,
1215
+ }
1216
+ self.identity_sdk_client.find_project.assert_called_once_with(
1217
+ name_or_id=self.project.id, **kwargs
1218
+ )
1219
+
1209
1220
  self.assertIsNone(result)
1210
1221
 
1211
1222
  def test_user_set_project_domain(self):
@@ -1238,6 +1249,11 @@ class TestUserSet(identity_fakes.TestIdentityv3):
1238
1249
  self.identity_sdk_client.update_user.assert_called_with(
1239
1250
  user=self.user, **kwargs
1240
1251
  )
1252
+
1253
+ self.identity_sdk_client.find_domain.assert_called_once_with(
1254
+ name_or_id=self.project.domain_id, ignore_missing=False
1255
+ )
1256
+
1241
1257
  self.assertIsNone(result)
1242
1258
 
1243
1259
  def test_user_set_enable(self):
@@ -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,
@@ -107,11 +107,13 @@ Dina Belova <dbelova@mirantis.com>
107
107
  Dirk Mueller <dirk@dmllr.de>
108
108
  Diwei Zhu <zhu.diw@northeastern.edu>
109
109
  Dmitrii Shcherbakov <dmitrii.shcherbakov@canonical.com>
110
+ Dmitriy Chubinidze <dcu995@gmail.com>
110
111
  Dmitriy Rabotyagov <drabotyagov@vexxhost.com>
111
112
  Dmitriy Rabotyagov <noonedeadpunk@ya.ru>
112
113
  Dmitry Tantsur <dtantsur@protonmail.com>
113
114
  Dolph Mathews <dolph.mathews@gmail.com>
114
115
  Dongcan Ye <hellochosen@gmail.com>
116
+ Doug Goldstein <cardoe@cardoe.com>
115
117
  Doug Hellmann <doug.hellmann@dreamhost.com>
116
118
  Doug Hellmann <doug@doughellmann.com>
117
119
  Doug Wiegley <dwiegley@salesforce.com>
@@ -424,6 +426,7 @@ Violet Kurtz <vi.kurtz@protonmail.com>
424
426
  Violet Kurtz <vikurtz@osuosl.org>
425
427
  Vishakha Agarwal <agarwalvishakha18@gmail.com>
426
428
  Vladimir Eremin <yottatsa@yandex-team.ru>
429
+ Vladimir Kozhukalov <kozhukalov@gmail.com>
427
430
  Vu Cong Tuan <tuanvc@vn.fujitsu.com>
428
431
  Wenran Xiao <xiaowenran@unitedstack.com>
429
432
  Wenzhi Yu <wenzhi_yu@163.com>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-openstackclient
3
- Version: 7.3.1
3
+ Version: 7.5.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
@@ -78,9 +78,9 @@ openstackclient/identity/v3/service.py,sha256=2VuxiOEuEnqjWEPNryKRe4LLe70-MIndkD
78
78
  openstackclient/identity/v3/service_provider.py,sha256=tw_X_S3dXZPs-AijTbi_UC14JivBZ-IxsVwcj-6dYSY,8433
79
79
  openstackclient/identity/v3/tag.py,sha256=dcVDheoWxdkwsZYvyJSpzIF2EGpqZtaE0h7x2halscc,3972
80
80
  openstackclient/identity/v3/token.py,sha256=dXP7iRYZRROw3k8knao6NteZeP67mVGCc2Y9jMHudnQ,7399
81
- openstackclient/identity/v3/trust.py,sha256=wfKh9Xp4d_FpvrqmiZ2F9nxgjx0Uc1MMYY3CYXXr57Y,11589
81
+ openstackclient/identity/v3/trust.py,sha256=5VZYtn8Dy_R_JlWmG3eiiv93cLwrlD7OiMcjO5qFDsU,13884
82
82
  openstackclient/identity/v3/unscoped_saml.py,sha256=A-645W2kp0_27NxG03YcEU9EtcCFex6Ojzw4fLApuds,2031
83
- openstackclient/identity/v3/user.py,sha256=oDz9nfUeDyFsjHMALmNZxrG5qoGROOZ9CoTmNg7EMls,24051
83
+ openstackclient/identity/v3/user.py,sha256=y0pKxoNnXmchABzTt8lg9tkgOPqTZxUYiaXjw1xSrlM,24147
84
84
  openstackclient/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
85
  openstackclient/image/client.py,sha256=I088KrjZ9ubuS_8NDX98W6_lHkdaxbBtRHTHt5q_HC8,1508
86
86
  openstackclient/image/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -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
@@ -340,9 +340,9 @@ openstackclient/tests/unit/identity/v3/test_role_assignment.py,sha256=Lpb0vwOfP7
340
340
  openstackclient/tests/unit/identity/v3/test_service.py,sha256=eFRjaeuJKd4_G1_gSTzAKmLTN035rQjY4E5RnLzMutY,15028
341
341
  openstackclient/tests/unit/identity/v3/test_service_provider.py,sha256=vAY1-5zzhbw_Fa5tcYMWzNezTKMpHfvYDYN2w6zOFdI,12080
342
342
  openstackclient/tests/unit/identity/v3/test_token.py,sha256=7Vp-thUbZcaXvIybvD40Xc8JfncZF9DcipgibyTjIdw,4098
343
- openstackclient/tests/unit/identity/v3/test_trust.py,sha256=P9FOE9SPWjqaOfA7pMa_1wEBewLsSIYpybel4i5lL0Q,12874
343
+ openstackclient/tests/unit/identity/v3/test_trust.py,sha256=C-RY9_SJypImzDbHgyMNj-yzvEfqdylwONdFFt8D4wg,12953
344
344
  openstackclient/tests/unit/identity/v3/test_unscoped_saml.py,sha256=gBtouVvKaOTflJ6TMg497ScL4GsVS3lVM_h8XKFExXg,3592
345
- openstackclient/tests/unit/identity/v3/test_user.py,sha256=BFNh4waeT_eM5IQkzPaeB6gxtDYh9CW1tuEDWbF8rQc,58245
345
+ openstackclient/tests/unit/identity/v3/test_user.py,sha256=z2fChcuhT711GDyKlYsIPpvAx2aDtFn9C2KAe4kvYNw,58719
346
346
  openstackclient/tests/unit/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
347
347
  openstackclient/tests/unit/image/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
348
348
  openstackclient/tests/unit/image/v1/fakes.py,sha256=rwYSQK12WxSaX2p-f15e6D94qC6lg1XIgBFvdiJ5aRc,2271
@@ -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.5.0.dist-info/AUTHORS,sha256=dLJoA2nJCPXXMQlfd8nyRZhXkR2Ai9t6frv3d3eZUII,21679
498
+ python_openstackclient-7.5.0.dist-info/LICENSE,sha256=XfKg2H1sVi8OoRxoisUlMqoo10TKvHmU_wU39ks7MyA,10143
499
+ python_openstackclient-7.5.0.dist-info/METADATA,sha256=t2n54Ya-t_0Ca4BJFk0TYWfMNjRbGhdPMRs4nsiRrpc,6516
500
+ python_openstackclient-7.5.0.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
501
+ python_openstackclient-7.5.0.dist-info/entry_points.txt,sha256=VsZCw-6So3hkHuIiX-dGaMVL1PEqmfDynF37m1EwjCs,53260
502
+ python_openstackclient-7.5.0.dist-info/pbr.json,sha256=E0U5ImtX7CrMc6toMJW1G42hL8cWtMsUKUJyLrUc3sM,47
503
+ python_openstackclient-7.5.0.dist-info/top_level.txt,sha256=htg7z9oZgysRuVUHn-m1Bk6XLGOeV65nMbZX9H8qhs0,16
504
+ python_openstackclient-7.5.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.3.0)
2
+ Generator: setuptools (75.3.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -0,0 +1 @@
1
+ {"git_version": "bc1930c2", "is_release": true}
@@ -1 +0,0 @@
1
- {"git_version": "0ba77e67", "is_release": true}