python-openstackclient 8.2.0__py3-none-any.whl → 9.0.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.
Files changed (233) hide show
  1. openstackclient/api/object_store_v1.py +4 -1
  2. openstackclient/command.py +27 -0
  3. openstackclient/common/availability_zone.py +1 -1
  4. openstackclient/common/clientmanager.py +59 -21
  5. openstackclient/common/configuration.py +1 -1
  6. openstackclient/common/extension.py +1 -1
  7. openstackclient/common/limits.py +1 -1
  8. openstackclient/common/module.py +5 -3
  9. openstackclient/common/project_cleanup.py +10 -8
  10. openstackclient/common/quota.py +54 -23
  11. openstackclient/common/versions.py +1 -2
  12. openstackclient/compute/v2/agent.py +1 -1
  13. openstackclient/compute/v2/aggregate.py +6 -5
  14. openstackclient/compute/v2/console.py +5 -3
  15. openstackclient/compute/v2/console_connection.py +1 -1
  16. openstackclient/compute/v2/flavor.py +1 -1
  17. openstackclient/compute/v2/host.py +1 -1
  18. openstackclient/compute/v2/hypervisor.py +1 -1
  19. openstackclient/compute/v2/hypervisor_stats.py +1 -1
  20. openstackclient/compute/v2/keypair.py +1 -1
  21. openstackclient/compute/v2/server.py +78 -29
  22. openstackclient/compute/v2/server_backup.py +1 -1
  23. openstackclient/compute/v2/server_event.py +1 -1
  24. openstackclient/compute/v2/server_group.py +4 -2
  25. openstackclient/compute/v2/server_image.py +1 -1
  26. openstackclient/compute/v2/server_migration.py +1 -1
  27. openstackclient/compute/v2/server_volume.py +1 -1
  28. openstackclient/compute/v2/service.py +1 -1
  29. openstackclient/compute/v2/usage.py +6 -4
  30. openstackclient/identity/common.py +33 -1
  31. openstackclient/identity/v2_0/catalog.py +3 -2
  32. openstackclient/identity/v2_0/ec2creds.py +1 -1
  33. openstackclient/identity/v2_0/endpoint.py +1 -1
  34. openstackclient/identity/v2_0/project.py +17 -7
  35. openstackclient/identity/v2_0/role.py +1 -1
  36. openstackclient/identity/v2_0/role_assignment.py +3 -3
  37. openstackclient/identity/v2_0/service.py +4 -2
  38. openstackclient/identity/v2_0/token.py +1 -1
  39. openstackclient/identity/v2_0/user.py +2 -2
  40. openstackclient/identity/v3/access_rule.py +16 -4
  41. openstackclient/identity/v3/application_credential.py +30 -10
  42. openstackclient/identity/v3/catalog.py +3 -3
  43. openstackclient/identity/v3/consumer.py +1 -1
  44. openstackclient/identity/v3/credential.py +1 -1
  45. openstackclient/identity/v3/domain.py +10 -4
  46. openstackclient/identity/v3/ec2creds.py +1 -1
  47. openstackclient/identity/v3/endpoint.py +33 -12
  48. openstackclient/identity/v3/endpoint_group.py +1 -1
  49. openstackclient/identity/v3/federation_protocol.py +40 -41
  50. openstackclient/identity/v3/group.py +11 -5
  51. openstackclient/identity/v3/identity_provider.py +12 -10
  52. openstackclient/identity/v3/implied_role.py +1 -1
  53. openstackclient/identity/v3/limit.py +86 -85
  54. openstackclient/identity/v3/mapping.py +1 -1
  55. openstackclient/identity/v3/policy.py +1 -1
  56. openstackclient/identity/v3/project.py +191 -115
  57. openstackclient/identity/v3/region.py +1 -1
  58. openstackclient/identity/v3/registered_limit.py +97 -109
  59. openstackclient/identity/v3/role.py +20 -39
  60. openstackclient/identity/v3/role_assignment.py +12 -23
  61. openstackclient/identity/v3/service.py +1 -1
  62. openstackclient/identity/v3/service_provider.py +1 -1
  63. openstackclient/identity/v3/tag.py +1 -11
  64. openstackclient/identity/v3/token.py +3 -2
  65. openstackclient/identity/v3/trust.py +4 -2
  66. openstackclient/identity/v3/unscoped_saml.py +1 -1
  67. openstackclient/identity/v3/user.py +22 -13
  68. openstackclient/image/v1/image.py +19 -16
  69. openstackclient/image/v2/cache.py +1 -1
  70. openstackclient/image/v2/image.py +16 -12
  71. openstackclient/image/v2/info.py +1 -1
  72. openstackclient/image/v2/metadef_namespaces.py +1 -1
  73. openstackclient/image/v2/metadef_objects.py +1 -1
  74. openstackclient/image/v2/metadef_properties.py +3 -2
  75. openstackclient/image/v2/metadef_resource_type_association.py +1 -1
  76. openstackclient/image/v2/metadef_resource_types.py +1 -1
  77. openstackclient/image/v2/task.py +1 -1
  78. openstackclient/network/common.py +10 -9
  79. openstackclient/network/v2/address_group.py +4 -3
  80. openstackclient/network/v2/address_scope.py +8 -6
  81. openstackclient/network/v2/default_security_group_rule.py +9 -8
  82. openstackclient/network/v2/floating_ip.py +16 -9
  83. openstackclient/network/v2/floating_ip_port_forwarding.py +9 -6
  84. openstackclient/network/v2/ip_availability.py +7 -4
  85. openstackclient/network/v2/l3_conntrack_helper.py +11 -4
  86. openstackclient/network/v2/local_ip.py +13 -7
  87. openstackclient/network/v2/local_ip_association.py +7 -4
  88. openstackclient/network/v2/ndp_proxy.py +13 -6
  89. openstackclient/network/v2/network.py +33 -16
  90. openstackclient/network/v2/network_agent.py +5 -5
  91. openstackclient/network/v2/network_auto_allocated_topology.py +1 -1
  92. openstackclient/network/v2/network_flavor.py +1 -1
  93. openstackclient/network/v2/network_flavor_profile.py +1 -1
  94. openstackclient/network/v2/network_meter.py +1 -1
  95. openstackclient/network/v2/network_meter_rule.py +1 -1
  96. openstackclient/network/v2/network_qos_policy.py +7 -5
  97. openstackclient/network/v2/network_qos_rule.py +1 -1
  98. openstackclient/network/v2/network_qos_rule_type.py +1 -1
  99. openstackclient/network/v2/network_rbac.py +8 -5
  100. openstackclient/network/v2/network_segment.py +2 -2
  101. openstackclient/network/v2/network_segment_range.py +13 -6
  102. openstackclient/network/v2/network_service_provider.py +1 -1
  103. openstackclient/network/v2/network_trunk.py +65 -42
  104. openstackclient/network/v2/port.py +22 -20
  105. openstackclient/network/v2/router.py +19 -8
  106. openstackclient/network/v2/security_group.py +10 -6
  107. openstackclient/network/v2/security_group_rule.py +11 -5
  108. openstackclient/network/v2/subnet.py +17 -18
  109. openstackclient/network/v2/subnet_pool.py +11 -9
  110. openstackclient/network/v2/taas/__init__.py +0 -0
  111. openstackclient/network/v2/taas/tap_flow.py +245 -0
  112. openstackclient/network/v2/taas/tap_mirror.py +237 -0
  113. openstackclient/network/v2/taas/tap_service.py +211 -0
  114. openstackclient/object/v1/account.py +1 -1
  115. openstackclient/object/v1/container.py +1 -1
  116. openstackclient/object/v1/object.py +1 -1
  117. openstackclient/shell.py +18 -8
  118. openstackclient/tests/functional/identity/v3/test_catalog.py +42 -23
  119. openstackclient/tests/functional/identity/v3/test_limit.py +47 -0
  120. openstackclient/tests/functional/identity/v3/test_role_assignment.py +174 -0
  121. openstackclient/tests/functional/image/v2/test_cache.py +54 -0
  122. openstackclient/tests/functional/image/v2/test_metadef_objects.py +69 -0
  123. openstackclient/tests/functional/image/v2/test_metadef_resource_type.py +55 -0
  124. openstackclient/tests/functional/volume/v3/test_volume_snapshot.py +46 -132
  125. openstackclient/tests/unit/common/test_command.py +1 -1
  126. openstackclient/tests/unit/common/test_extension.py +2 -3
  127. openstackclient/tests/unit/common/test_module.py +14 -7
  128. openstackclient/tests/unit/common/test_quota.py +79 -0
  129. openstackclient/tests/unit/compute/v2/test_aggregate.py +5 -3
  130. openstackclient/tests/unit/compute/v2/test_console.py +1 -4
  131. openstackclient/tests/unit/compute/v2/test_flavor.py +1 -3
  132. openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +1 -9
  133. openstackclient/tests/unit/compute/v2/test_server.py +370 -38
  134. openstackclient/tests/unit/compute/v2/test_server_backup.py +1 -3
  135. openstackclient/tests/unit/compute/v2/test_service.py +1 -3
  136. openstackclient/tests/unit/fakes.py +35 -134
  137. openstackclient/tests/unit/identity/test_common.py +100 -0
  138. openstackclient/tests/unit/identity/v2_0/test_project.py +4 -4
  139. openstackclient/tests/unit/identity/v3/fakes.py +10 -2
  140. openstackclient/tests/unit/identity/v3/test_application_credential.py +3 -3
  141. openstackclient/tests/unit/identity/v3/test_domain.py +1 -1
  142. openstackclient/tests/unit/identity/v3/test_endpoint.py +1 -1
  143. openstackclient/tests/unit/identity/v3/test_group.py +4 -2
  144. openstackclient/tests/unit/identity/v3/test_identity_provider.py +10 -10
  145. openstackclient/tests/unit/identity/v3/test_limit.py +197 -145
  146. openstackclient/tests/unit/identity/v3/test_oauth.py +1 -1
  147. openstackclient/tests/unit/identity/v3/test_project.py +832 -513
  148. openstackclient/tests/unit/identity/v3/test_protocol.py +97 -88
  149. openstackclient/tests/unit/identity/v3/test_registered_limit.py +356 -221
  150. openstackclient/tests/unit/identity/v3/test_role.py +1 -82
  151. openstackclient/tests/unit/identity/v3/test_user.py +7 -51
  152. openstackclient/tests/unit/image/v2/test_image.py +116 -5
  153. openstackclient/tests/unit/network/test_common.py +9 -13
  154. openstackclient/tests/unit/network/v2/taas/__init__.py +0 -0
  155. openstackclient/tests/unit/network/v2/taas/test_osc_tap_flow.py +276 -0
  156. openstackclient/tests/unit/network/v2/taas/test_osc_tap_mirror.py +288 -0
  157. openstackclient/tests/unit/network/v2/taas/test_osc_tap_service.py +271 -0
  158. openstackclient/tests/unit/network/v2/test_address_group.py +19 -22
  159. openstackclient/tests/unit/network/v2/test_address_scope.py +10 -15
  160. openstackclient/tests/unit/network/v2/test_default_security_group_rule.py +38 -49
  161. openstackclient/tests/unit/network/v2/test_floating_ip_network.py +21 -27
  162. openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +21 -18
  163. openstackclient/tests/unit/network/v2/test_ip_availability.py +6 -8
  164. openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +6 -15
  165. openstackclient/tests/unit/network/v2/test_local_ip.py +12 -23
  166. openstackclient/tests/unit/network/v2/test_local_ip_association.py +13 -18
  167. openstackclient/tests/unit/network/v2/test_ndp_proxy.py +11 -21
  168. openstackclient/tests/unit/network/v2/test_network.py +41 -37
  169. openstackclient/tests/unit/network/v2/test_network_agent.py +13 -20
  170. openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py +5 -8
  171. openstackclient/tests/unit/network/v2/test_network_flavor.py +14 -26
  172. openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +14 -17
  173. openstackclient/tests/unit/network/v2/test_network_meter.py +7 -17
  174. openstackclient/tests/unit/network/v2/test_network_meter_rule.py +10 -20
  175. openstackclient/tests/unit/network/v2/test_network_qos_policy.py +7 -13
  176. openstackclient/tests/unit/network/v2/test_network_qos_rule.py +44 -54
  177. openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +2 -7
  178. openstackclient/tests/unit/network/v2/test_network_rbac.py +21 -36
  179. openstackclient/tests/unit/network/v2/test_network_segment.py +13 -29
  180. openstackclient/tests/unit/network/v2/test_network_segment_range.py +20 -19
  181. openstackclient/tests/unit/network/v2/test_network_service_provider.py +1 -4
  182. openstackclient/tests/unit/network/v2/test_network_trunk.py +52 -47
  183. openstackclient/tests/unit/network/v2/test_port.py +75 -86
  184. openstackclient/tests/unit/network/v2/test_router.py +104 -126
  185. openstackclient/tests/unit/network/v2/test_security_group_network.py +19 -26
  186. openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +17 -18
  187. openstackclient/tests/unit/network/v2/test_subnet.py +35 -46
  188. openstackclient/tests/unit/network/v2/test_subnet_pool.py +21 -33
  189. openstackclient/tests/unit/volume/test_find_resource.py +4 -13
  190. openstackclient/tests/unit/volume/v2/test_consistency_group.py +8 -2
  191. openstackclient/tests/unit/volume/v2/test_volume.py +7 -6
  192. openstackclient/tests/unit/volume/v2/test_volume_backup.py +3 -1
  193. openstackclient/tests/unit/volume/v3/test_volume.py +38 -12
  194. openstackclient/tests/unit/volume/v3/test_volume_backup.py +9 -0
  195. openstackclient/volume/client.py +7 -17
  196. openstackclient/volume/v2/backup_record.py +1 -1
  197. openstackclient/volume/v2/consistency_group.py +9 -9
  198. openstackclient/volume/v2/consistency_group_snapshot.py +3 -3
  199. openstackclient/volume/v2/qos_specs.py +3 -3
  200. openstackclient/volume/v2/service.py +1 -1
  201. openstackclient/volume/v2/volume.py +14 -7
  202. openstackclient/volume/v2/volume_backend.py +1 -1
  203. openstackclient/volume/v2/volume_backup.py +7 -5
  204. openstackclient/volume/v2/volume_host.py +1 -2
  205. openstackclient/volume/v2/volume_snapshot.py +4 -4
  206. openstackclient/volume/v2/volume_transfer_request.py +3 -3
  207. openstackclient/volume/v2/volume_type.py +16 -11
  208. openstackclient/volume/v3/block_storage_cleanup.py +1 -1
  209. openstackclient/volume/v3/block_storage_cluster.py +1 -1
  210. openstackclient/volume/v3/block_storage_log_level.py +1 -1
  211. openstackclient/volume/v3/block_storage_manage.py +1 -1
  212. openstackclient/volume/v3/block_storage_resource_filter.py +1 -1
  213. openstackclient/volume/v3/service.py +1 -1
  214. openstackclient/volume/v3/volume.py +16 -9
  215. openstackclient/volume/v3/volume_attachment.py +6 -5
  216. openstackclient/volume/v3/volume_backup.py +20 -5
  217. openstackclient/volume/v3/volume_group.py +1 -1
  218. openstackclient/volume/v3/volume_group_snapshot.py +1 -1
  219. openstackclient/volume/v3/volume_group_type.py +1 -1
  220. openstackclient/volume/v3/volume_message.py +1 -1
  221. openstackclient/volume/v3/volume_snapshot.py +4 -4
  222. openstackclient/volume/v3/volume_transfer_request.py +3 -3
  223. openstackclient/volume/v3/volume_type.py +20 -14
  224. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info}/METADATA +15 -13
  225. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info}/RECORD +231 -219
  226. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info}/WHEEL +1 -1
  227. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info}/entry_points.txt +15 -0
  228. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info/licenses}/AUTHORS +15 -0
  229. python_openstackclient-9.0.0.dist-info/pbr.json +1 -0
  230. openstackclient/tests/unit/common/test_logs.py +0 -221
  231. python_openstackclient-8.2.0.dist-info/pbr.json +0 -1
  232. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info/licenses}/LICENSE +0 -0
  233. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info}/top_level.txt +0 -0
@@ -16,10 +16,10 @@
16
16
  import logging
17
17
 
18
18
  from osc_lib.cli import parseractions
19
- from osc_lib.command import command
20
19
  from osc_lib import exceptions
21
20
  from osc_lib import utils
22
21
 
22
+ from openstackclient import command
23
23
  from openstackclient.i18n import _
24
24
  from openstackclient.network import common
25
25
  from openstackclient.network import utils as network_utils
@@ -150,7 +150,7 @@ class CreateDefaultSecurityGroupRule(
150
150
  return parser
151
151
 
152
152
  def take_action(self, parsed_args):
153
- client = self.app.client_manager.sdk_connection.network
153
+ client = self.app.client_manager.network
154
154
  # Build the create attributes.
155
155
  attrs = {}
156
156
  attrs['protocol'] = network_utils.get_protocol(parsed_args)
@@ -248,7 +248,7 @@ class DeleteDefaultSecurityGroupRule(command.Command):
248
248
 
249
249
  def take_action(self, parsed_args):
250
250
  result = 0
251
- client = self.app.client_manager.sdk_connection.network
251
+ client = self.app.client_manager.network
252
252
  for r in parsed_args.rule:
253
253
  try:
254
254
  obj = client.find_default_security_group_rule(
@@ -300,7 +300,8 @@ class ListDefaultSecurityGroupRule(command.Lister):
300
300
  metavar='<protocol>',
301
301
  type=network_utils.convert_to_lowercase,
302
302
  help=_(
303
- "List rules by the IP protocol (ah, dhcp, egp, esp, gre, "
303
+ "List only default rules with the specified IP protocol "
304
+ "(ah, dhcp, egp, esp, gre, "
304
305
  "icmp, igmp, ipv6-encap, ipv6-frag, ipv6-icmp, "
305
306
  "ipv6-nonxt, ipv6-opts, ipv6-route, ospf, pgm, rsvp, "
306
307
  "sctp, tcp, udp, udplite, vrrp and integer "
@@ -319,7 +320,7 @@ class ListDefaultSecurityGroupRule(command.Lister):
319
320
  '--ingress',
320
321
  action='store_true',
321
322
  help=_(
322
- "List default rules which will be applied to incoming "
323
+ "List only default rules which will be applied to incoming "
323
324
  "network traffic"
324
325
  ),
325
326
  )
@@ -327,14 +328,14 @@ class ListDefaultSecurityGroupRule(command.Lister):
327
328
  '--egress',
328
329
  action='store_true',
329
330
  help=_(
330
- "List default rules which will be applied to outgoing "
331
+ "List only default rules which will be applied to outgoing "
331
332
  "network traffic"
332
333
  ),
333
334
  )
334
335
  return parser
335
336
 
336
337
  def take_action(self, parsed_args):
337
- client = self.app.client_manager.sdk_connection.network
338
+ client = self.app.client_manager.network
338
339
  column_headers = (
339
340
  'ID',
340
341
  'IP Protocol',
@@ -403,7 +404,7 @@ class ShowDefaultSecurityGroupRule(command.ShowOne):
403
404
  return parser
404
405
 
405
406
  def take_action(self, parsed_args):
406
- client = self.app.client_manager.sdk_connection.network
407
+ client = self.app.client_manager.network
407
408
  obj = client.find_default_security_group_rule(
408
409
  parsed_args.rule, ignore_missing=False
409
410
  )
@@ -247,7 +247,7 @@ class ListFloatingIP(common.NetworkAndComputeLister):
247
247
  action='append',
248
248
  help=self.enhance_help_neutron(
249
249
  _(
250
- "List floating IP(s) according to given network "
250
+ "List only floating IP(s) with the specified network "
251
251
  "(name or ID) "
252
252
  "(repeat option to fiter on multiple networks)"
253
253
  )
@@ -260,7 +260,8 @@ class ListFloatingIP(common.NetworkAndComputeLister):
260
260
  action='append',
261
261
  help=self.enhance_help_neutron(
262
262
  _(
263
- "List floating IP(s) according to given port (name or ID) "
263
+ "List only floating IP(s) with the specified port "
264
+ "(name or ID) "
264
265
  "(repeat option to fiter on multiple ports)"
265
266
  )
266
267
  ),
@@ -269,14 +270,20 @@ class ListFloatingIP(common.NetworkAndComputeLister):
269
270
  '--fixed-ip-address',
270
271
  metavar='<ip-address>',
271
272
  help=self.enhance_help_neutron(
272
- _("List floating IP(s) according to given fixed IP address")
273
+ _(
274
+ "List only floating IP(s) with the specified fixed IP "
275
+ "address"
276
+ )
273
277
  ),
274
278
  )
275
279
  parser.add_argument(
276
280
  '--floating-ip-address',
277
281
  metavar='<ip-address>',
278
282
  help=self.enhance_help_neutron(
279
- _("List floating IP(s) according to given floating IP address")
283
+ _(
284
+ "List only floating IP(s) with the specified floating IP "
285
+ "address"
286
+ )
280
287
  ),
281
288
  )
282
289
  parser.add_argument(
@@ -285,8 +292,8 @@ class ListFloatingIP(common.NetworkAndComputeLister):
285
292
  choices=['ACTIVE', 'DOWN'],
286
293
  help=self.enhance_help_neutron(
287
294
  _(
288
- "List floating IP(s) according to given status ('ACTIVE', "
289
- "'DOWN')"
295
+ "List only floating IP(s) with the specified status "
296
+ "('ACTIVE', 'DOWN')"
290
297
  )
291
298
  ),
292
299
  )
@@ -295,8 +302,8 @@ class ListFloatingIP(common.NetworkAndComputeLister):
295
302
  metavar='<project>',
296
303
  help=self.enhance_help_neutron(
297
304
  _(
298
- "List floating IP(s) according to given project "
299
- "(name or ID) "
305
+ "List only floating IP(s) with the specified project "
306
+ "(name or ID)"
300
307
  )
301
308
  ),
302
309
  )
@@ -308,7 +315,7 @@ class ListFloatingIP(common.NetworkAndComputeLister):
308
315
  action='append',
309
316
  help=self.enhance_help_neutron(
310
317
  _(
311
- "List floating IP(s) according to given router "
318
+ "List only floating IP(s) with the specified router "
312
319
  "(name or ID) "
313
320
  "(repeat option to fiter on multiple routers)"
314
321
  )
@@ -16,10 +16,10 @@
16
16
  import logging
17
17
  import typing as ty
18
18
 
19
- from osc_lib.command import command
20
19
  from osc_lib import exceptions
21
20
  from osc_lib import utils
22
21
 
22
+ from openstackclient import command
23
23
  from openstackclient.i18n import _
24
24
  from openstackclient.network import common
25
25
 
@@ -265,8 +265,8 @@ class ListFloatingIPPortForwarding(command.Lister):
265
265
  '--port',
266
266
  metavar='<port>',
267
267
  help=_(
268
- "Filter the list result by the ID or name of "
269
- "the internal network port"
268
+ "List only floating IP port forwardings with the "
269
+ "specified internal network port (name or ID)"
270
270
  ),
271
271
  )
272
272
  parser.add_argument(
@@ -274,14 +274,17 @@ class ListFloatingIPPortForwarding(command.Lister):
274
274
  metavar='<port-number>',
275
275
  dest='external_protocol_port',
276
276
  help=_(
277
- "Filter the list result by the "
278
- "protocol port number of the floating IP"
277
+ "List only floating IP port forwardings with the "
278
+ "specified external protocol port number"
279
279
  ),
280
280
  )
281
281
  parser.add_argument(
282
282
  '--protocol',
283
283
  metavar='<protocol>',
284
- help=_("Filter the list result by the port protocol"),
284
+ help=_(
285
+ "List only floating IP port forwardings with the "
286
+ "specified protocol number"
287
+ ),
285
288
  )
286
289
 
287
290
  return parser
@@ -14,9 +14,9 @@
14
14
  """IP Availability Info implementations"""
15
15
 
16
16
  from osc_lib.cli import format_columns
17
- from osc_lib.command import command
18
17
  from osc_lib import utils
19
18
 
19
+ from openstackclient import command
20
20
  from openstackclient.i18n import _
21
21
  from openstackclient.identity import common as identity_common
22
22
 
@@ -47,14 +47,17 @@ class ListIPAvailability(command.Lister):
47
47
  metavar='<ip-version>',
48
48
  dest='ip_version',
49
49
  help=_(
50
- "List IP availability of given IP version "
51
- "networks (default is 4)"
50
+ "List only IP availability with the specified IP version "
51
+ "networks (4 or 6, default is 4)"
52
52
  ),
53
53
  )
54
54
  parser.add_argument(
55
55
  '--project',
56
56
  metavar='<project>',
57
- help=_("List IP availability of given project (name or ID)"),
57
+ help=_(
58
+ "List only IP availability with the specified project "
59
+ "(name or ID)"
60
+ ),
58
61
  )
59
62
  identity_common.add_project_domain_option_to_parser(parser)
60
63
  return parser
@@ -15,10 +15,10 @@
15
15
 
16
16
  import logging
17
17
 
18
- from osc_lib.command import command
19
18
  from osc_lib import exceptions
20
19
  from osc_lib import utils
21
20
 
21
+ from openstackclient import command
22
22
  from openstackclient.i18n import _
23
23
 
24
24
  LOG = logging.getLogger(__name__)
@@ -150,19 +150,26 @@ class ListConntrackHelper(command.Lister):
150
150
  parser.add_argument(
151
151
  '--helper',
152
152
  metavar='<helper>',
153
- help=_('The netfilter conntrack helper module'),
153
+ help=_(
154
+ 'List only helpers using the specified netfilter conntrack '
155
+ 'helper module'
156
+ ),
154
157
  )
155
158
  parser.add_argument(
156
159
  '--protocol',
157
160
  metavar='<protocol>',
158
161
  help=_(
159
- 'The network protocol for the netfilter conntrack target rule'
162
+ 'List only helpers with the specified network protocol for '
163
+ 'the netfilter conntrack target rule'
160
164
  ),
161
165
  )
162
166
  parser.add_argument(
163
167
  '--port',
164
168
  metavar='<port>',
165
- help=_('The network port for the netfilter conntrack target rule'),
169
+ help=_(
170
+ 'List only helpers with the specified network port for '
171
+ 'the netfilter conntrack target rule (name or ID)'
172
+ ),
166
173
  )
167
174
 
168
175
  return parser
@@ -17,10 +17,10 @@
17
17
 
18
18
  import logging
19
19
 
20
- from osc_lib.command import command
21
20
  from osc_lib import exceptions
22
21
  from osc_lib import utils
23
22
 
23
+ from openstackclient import command
24
24
  from openstackclient.i18n import _
25
25
  from openstackclient.identity import common as identity_common
26
26
 
@@ -198,32 +198,38 @@ class ListLocalIP(command.Lister):
198
198
  parser.add_argument(
199
199
  '--name',
200
200
  metavar='<name>',
201
- help=_("List only Local IPs of given name in output"),
201
+ help=_("List only local IP(s) with the specified name"),
202
202
  )
203
203
  parser.add_argument(
204
204
  '--project',
205
205
  metavar="<project>",
206
- help=_("List Local IPs according to their project (name or ID)"),
206
+ help=_(
207
+ "List only local IP(s) with the specified project (name or ID)"
208
+ ),
207
209
  )
208
210
  parser.add_argument(
209
211
  '--network',
210
212
  metavar='<network>',
211
- help=_("List Local IP(s) according to given network (name or ID)"),
213
+ help=_(
214
+ "List only local IP(s) with the specified network (name or ID)"
215
+ ),
212
216
  )
213
217
  parser.add_argument(
214
218
  '--local-port',
215
219
  metavar='<local-port>',
216
- help=_("List Local IP(s) according to given port (name or ID)"),
220
+ help=_(
221
+ "List only local IP(s) with the specified port (name or ID)"
222
+ ),
217
223
  )
218
224
  parser.add_argument(
219
225
  '--local-ip-address',
220
226
  metavar='<local-ip-address>',
221
- help=_("List Local IP(s) according to given Local IP Address"),
227
+ help=_("List only local IP(s) with the specified IP address"),
222
228
  )
223
229
  parser.add_argument(
224
230
  '--ip-mode',
225
231
  metavar='<ip_mode>',
226
- help=_("List Local IP(s) according to given IP mode"),
232
+ help=_("List only local IP(s) with the specified IP mode"),
227
233
  )
228
234
 
229
235
  identity_common.add_project_domain_option_to_parser(parser)
@@ -17,10 +17,10 @@
17
17
 
18
18
  import logging
19
19
 
20
- from osc_lib.command import command
21
20
  from osc_lib import exceptions
22
21
  from osc_lib import utils
23
22
 
23
+ from openstackclient import command
24
24
  from openstackclient.i18n import _
25
25
  from openstackclient.identity import common as identity_common
26
26
 
@@ -150,18 +150,21 @@ class ListLocalIPAssociation(command.Lister):
150
150
  '--fixed-port',
151
151
  metavar='<fixed-port>',
152
152
  help=_(
153
- "Filter the list result by the ID or name of the fixed port"
153
+ "List only local IP assocations with the specified fixed IP "
154
+ "port (name or ID)"
154
155
  ),
155
156
  )
156
157
  parser.add_argument(
157
158
  '--fixed-ip',
158
159
  metavar='<fixed-ip>',
159
- help=_("Filter the list result by fixed ip"),
160
+ help=_(
161
+ "List only local IP associations with the specified fixed IP"
162
+ ),
160
163
  )
161
164
  parser.add_argument(
162
165
  '--host',
163
166
  metavar='<host>',
164
- help=_("Filter the list result by given host"),
167
+ help=_("List only local IP associations with the specified host"),
165
168
  )
166
169
  identity_common.add_project_domain_option_to_parser(parser)
167
170
 
@@ -17,10 +17,10 @@
17
17
 
18
18
  import logging
19
19
 
20
- from osc_lib.command import command
21
20
  from osc_lib import exceptions
22
21
  from osc_lib import utils
23
22
 
23
+ from openstackclient import command
24
24
  from openstackclient.i18n import _
25
25
  from openstackclient.identity import common as identity_common
26
26
 
@@ -143,30 +143,37 @@ class ListNDPProxy(command.Lister):
143
143
  '--router',
144
144
  metavar='<router>',
145
145
  help=_(
146
- "List only NDP proxies belonging to this router (name or ID)"
146
+ "List only NDP proxies associated with the specifed router "
147
+ "(name or ID)"
147
148
  ),
148
149
  )
149
150
  parser.add_argument(
150
151
  '--port',
151
152
  metavar='<port>',
152
153
  help=_(
153
- "List only NDP proxies associated to this port (name or ID)"
154
+ "List only NDP proxies associated with the specified port "
155
+ "(name or ID)"
154
156
  ),
155
157
  )
156
158
  parser.add_argument(
157
159
  '--ip-address',
158
160
  metavar='<ip-address>',
159
- help=_("List only NDP proxies associated to this IPv6 address"),
161
+ help=_(
162
+ "List only NDP proxies associated with the specified "
163
+ "IPv6 address"
164
+ ),
160
165
  )
161
166
  parser.add_argument(
162
167
  '--project',
163
168
  metavar='<project>',
164
- help=_("List only NDP proxies of given project (name or ID)"),
169
+ help=_(
170
+ "List only NDP proxies with the specified project (name or ID)"
171
+ ),
165
172
  )
166
173
  parser.add_argument(
167
174
  '--name',
168
175
  metavar='<name>',
169
- help=_("List only NDP proxies of given name"),
176
+ help=_("List only NDP proxies with the specified name"),
170
177
  )
171
178
 
172
179
  identity_common.add_project_domain_option_to_parser(parser)
@@ -24,12 +24,12 @@ from openstackclient.identity import common as identity_common
24
24
  from openstackclient.network import common
25
25
 
26
26
 
27
- class AdminStateColumn(cliff_columns.FormattableColumn):
27
+ class AdminStateColumn(cliff_columns.FormattableColumn[bool]):
28
28
  def human_readable(self):
29
29
  return 'UP' if self._value else 'DOWN'
30
30
 
31
31
 
32
- class RouterExternalColumn(cliff_columns.FormattableColumn):
32
+ class RouterExternalColumn(cliff_columns.FormattableColumn[bool]):
33
33
  def human_readable(self):
34
34
  return 'External' if self._value else 'Internal'
35
35
 
@@ -401,6 +401,16 @@ class CreateNetwork(
401
401
  )
402
402
  raise exceptions.CommandError(msg)
403
403
 
404
+ if (
405
+ parsed_args.segmentation_id
406
+ and not parsed_args.provider_network_type
407
+ ):
408
+ msg = _(
409
+ "--provider-segment requires --provider-network-type "
410
+ "to be specified."
411
+ )
412
+ raise exceptions.CommandError(msg)
413
+
404
414
  attrs.update(
405
415
  self._parse_extra_properties(parsed_args.extra_properties)
406
416
  )
@@ -459,12 +469,12 @@ class ListNetwork(common.NetworkAndComputeLister):
459
469
  router_ext_group.add_argument(
460
470
  '--external',
461
471
  action='store_true',
462
- help=self.enhance_help_neutron(_("List external networks")),
472
+ help=self.enhance_help_neutron(_("List only external networks")),
463
473
  )
464
474
  router_ext_group.add_argument(
465
475
  '--internal',
466
476
  action='store_true',
467
- help=self.enhance_help_neutron(_("List internal networks")),
477
+ help=self.enhance_help_neutron(_("List only internal networks")),
468
478
  )
469
479
  parser.add_argument(
470
480
  '--long',
@@ -477,24 +487,26 @@ class ListNetwork(common.NetworkAndComputeLister):
477
487
  '--name',
478
488
  metavar='<name>',
479
489
  help=self.enhance_help_neutron(
480
- _("List networks according to their name")
490
+ _("List only networks with the specified name")
481
491
  ),
482
492
  )
483
493
  admin_state_group = parser.add_mutually_exclusive_group()
484
494
  admin_state_group.add_argument(
485
495
  '--enable',
486
496
  action='store_true',
487
- help=self.enhance_help_neutron(_("List enabled networks")),
497
+ help=self.enhance_help_neutron(_("List only enabled networks")),
488
498
  )
489
499
  admin_state_group.add_argument(
490
500
  '--disable',
491
501
  action='store_true',
492
- help=self.enhance_help_neutron(_("List disabled networks")),
502
+ help=self.enhance_help_neutron(_("List only disabled networks")),
493
503
  )
494
504
  parser.add_argument(
495
505
  '--project',
496
506
  metavar='<project>',
497
- help=_("List networks according to their project (name or ID)"),
507
+ help=_(
508
+ "List only networks with the specified project (name or ID)"
509
+ ),
498
510
  )
499
511
  identity_common.add_project_domain_option_to_parser(
500
512
  parser, enhance_help=self.enhance_help_neutron
@@ -504,14 +516,14 @@ class ListNetwork(common.NetworkAndComputeLister):
504
516
  '--share',
505
517
  action='store_true',
506
518
  help=self.enhance_help_neutron(
507
- _("List networks shared between projects")
519
+ _("List only networks shared between projects")
508
520
  ),
509
521
  )
510
522
  shared_group.add_argument(
511
523
  '--no-share',
512
524
  action='store_true',
513
525
  help=self.enhance_help_neutron(
514
- _("List networks not shared between projects")
526
+ _("List only networks not shared between projects")
515
527
  ),
516
528
  )
517
529
  parser.add_argument(
@@ -520,7 +532,7 @@ class ListNetwork(common.NetworkAndComputeLister):
520
532
  choices=['ACTIVE', 'BUILD', 'DOWN', 'ERROR'],
521
533
  help=self.enhance_help_neutron(
522
534
  _(
523
- "List networks according to their status "
535
+ "List only networks with the specified status "
524
536
  "('ACTIVE', 'BUILD', 'DOWN', 'ERROR')"
525
537
  )
526
538
  ),
@@ -531,7 +543,8 @@ class ListNetwork(common.NetworkAndComputeLister):
531
543
  choices=['flat', 'geneve', 'gre', 'local', 'vlan', 'vxlan'],
532
544
  help=self.enhance_help_neutron(
533
545
  _(
534
- "List networks according to their physical mechanisms. "
546
+ "List only networks with the specified physical "
547
+ "mechanisms. "
535
548
  "The supported options are: flat, geneve, gre, local, "
536
549
  "vlan and vxlan."
537
550
  )
@@ -542,7 +555,10 @@ class ListNetwork(common.NetworkAndComputeLister):
542
555
  metavar='<provider-physical-network>',
543
556
  dest='physical_network',
544
557
  help=self.enhance_help_neutron(
545
- _("List networks according to name of the physical network")
558
+ _(
559
+ "List only networks with the specified physical network "
560
+ "name"
561
+ )
546
562
  ),
547
563
  )
548
564
  parser.add_argument(
@@ -551,8 +567,9 @@ class ListNetwork(common.NetworkAndComputeLister):
551
567
  dest='segmentation_id',
552
568
  help=self.enhance_help_neutron(
553
569
  _(
554
- "List networks according to VLAN ID for VLAN networks or "
555
- "Tunnel ID for GENEVE/GRE/VXLAN networks"
570
+ "List only networks with the specified provider segment "
571
+ "ID (VLAN ID for VLAN networks or "
572
+ "Tunnel ID for GENEVE/GRE/VXLAN networks)"
556
573
  )
557
574
  ),
558
575
  )
@@ -561,7 +578,7 @@ class ListNetwork(common.NetworkAndComputeLister):
561
578
  metavar='<agent-id>',
562
579
  dest='agent_id',
563
580
  help=self.enhance_help_neutron(
564
- _('List networks hosted by agent (ID only)')
581
+ _('List only networks hosted the specified agent (ID only)')
565
582
  ),
566
583
  )
567
584
  _tag.add_tag_filtering_option_to_parser(
@@ -17,21 +17,21 @@ import logging
17
17
 
18
18
  from cliff import columns as cliff_columns
19
19
  from osc_lib.cli import format_columns
20
- from osc_lib.command import command
21
20
  from osc_lib import exceptions
22
21
  from osc_lib import utils
23
22
 
23
+ from openstackclient import command
24
24
  from openstackclient.i18n import _
25
25
 
26
26
  LOG = logging.getLogger(__name__)
27
27
 
28
28
 
29
- class AliveColumn(cliff_columns.FormattableColumn):
29
+ class AliveColumn(cliff_columns.FormattableColumn[bool]):
30
30
  def human_readable(self):
31
31
  return ":-)" if self._value else "XXX"
32
32
 
33
33
 
34
- class AdminStateColumn(cliff_columns.FormattableColumn):
34
+ class AdminStateColumn(cliff_columns.FormattableColumn[bool]):
35
35
  def human_readable(self):
36
36
  return 'UP' if self._value else 'DOWN'
37
37
 
@@ -205,12 +205,12 @@ class ListNetworkAgent(command.Lister):
205
205
  agent_type_group.add_argument(
206
206
  '--network',
207
207
  metavar='<network>',
208
- help=_('List agents hosting a network (name or ID)'),
208
+ help=_('List agents hosting the specified network (name or ID)'),
209
209
  )
210
210
  agent_type_group.add_argument(
211
211
  '--router',
212
212
  metavar='<router>',
213
- help=_('List agents hosting this router (name or ID)'),
213
+ help=_('List agents hosting the specified router (name or ID)'),
214
214
  )
215
215
  parser.add_argument(
216
216
  '--long',
@@ -15,9 +15,9 @@
15
15
 
16
16
  import logging
17
17
 
18
- from osc_lib.command import command
19
18
  from osc_lib import utils
20
19
 
20
+ from openstackclient import command
21
21
  from openstackclient.i18n import _
22
22
  from openstackclient.identity import common as identity_common
23
23
 
@@ -15,10 +15,10 @@
15
15
 
16
16
  import logging
17
17
 
18
- from osc_lib.command import command
19
18
  from osc_lib import exceptions
20
19
  from osc_lib import utils
21
20
 
21
+ from openstackclient import command
22
22
  from openstackclient.i18n import _
23
23
  from openstackclient.identity import common as identity_common
24
24
  from openstackclient.network import common
@@ -13,10 +13,10 @@
13
13
 
14
14
  import logging
15
15
 
16
- from osc_lib.command import command
17
16
  from osc_lib import exceptions
18
17
  from osc_lib import utils
19
18
 
19
+ from openstackclient import command
20
20
  from openstackclient.i18n import _
21
21
  from openstackclient.network import common
22
22
 
@@ -15,10 +15,10 @@
15
15
 
16
16
  import logging
17
17
 
18
- from osc_lib.command import command
19
18
  from osc_lib import exceptions
20
19
  from osc_lib import utils
21
20
 
21
+ from openstackclient import command
22
22
  from openstackclient.i18n import _
23
23
  from openstackclient.identity import common as identity_common
24
24
  from openstackclient.network import common
@@ -16,10 +16,10 @@
16
16
  import logging
17
17
  import typing as ty
18
18
 
19
- from osc_lib.command import command
20
19
  from osc_lib import exceptions
21
20
  from osc_lib import utils
22
21
 
22
+ from openstackclient import command
23
23
  from openstackclient.i18n import _
24
24
  from openstackclient.identity import common as identity_common
25
25
  from openstackclient.network import common