python-openstackclient 9.0.0__py3-none-any.whl → 10.1.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 (352) hide show
  1. openstackclient/__init__.py +2 -6
  2. openstackclient/api/api.py +41 -23
  3. openstackclient/api/compute_v2.py +44 -25
  4. openstackclient/api/object_store_v1.py +75 -97
  5. openstackclient/api/volume_v2.py +2 -1
  6. openstackclient/api/volume_v3.py +2 -1
  7. openstackclient/common/availability_zone.py +59 -43
  8. openstackclient/common/clientmanager.py +56 -29
  9. openstackclient/common/configuration.py +10 -3
  10. openstackclient/common/envvars.py +2 -2
  11. openstackclient/common/extension.py +14 -5
  12. openstackclient/common/limits.py +10 -5
  13. openstackclient/common/module.py +36 -34
  14. openstackclient/common/pagination.py +50 -6
  15. openstackclient/common/progressbar.py +7 -6
  16. openstackclient/common/project_cleanup.py +11 -6
  17. openstackclient/common/quota.py +105 -103
  18. openstackclient/common/versions.py +8 -2
  19. openstackclient/compute/client.py +7 -3
  20. openstackclient/compute/v2/agent.py +17 -10
  21. openstackclient/compute/v2/aggregate.py +36 -22
  22. openstackclient/compute/v2/console.py +14 -8
  23. openstackclient/compute/v2/console_connection.py +11 -3
  24. openstackclient/compute/v2/flavor.py +42 -22
  25. openstackclient/compute/v2/host.py +14 -6
  26. openstackclient/compute/v2/hypervisor.py +16 -5
  27. openstackclient/compute/v2/hypervisor_stats.py +10 -2
  28. openstackclient/compute/v2/keypair.py +35 -16
  29. openstackclient/compute/v2/server.py +268 -179
  30. openstackclient/compute/v2/server_backup.py +10 -4
  31. openstackclient/compute/v2/server_event.py +28 -12
  32. openstackclient/compute/v2/server_group.py +23 -11
  33. openstackclient/compute/v2/server_image.py +19 -10
  34. openstackclient/compute/v2/server_migration.py +27 -10
  35. openstackclient/compute/v2/server_share.py +274 -0
  36. openstackclient/compute/v2/server_volume.py +13 -5
  37. openstackclient/compute/v2/service.py +17 -8
  38. openstackclient/compute/v2/usage.py +28 -23
  39. openstackclient/identity/client.py +8 -3
  40. openstackclient/identity/common.py +82 -47
  41. openstackclient/identity/v2_0/catalog.py +14 -7
  42. openstackclient/identity/v2_0/ec2creds.py +21 -10
  43. openstackclient/identity/v2_0/endpoint.py +23 -11
  44. openstackclient/identity/v2_0/project.py +25 -14
  45. openstackclient/identity/v2_0/role.py +28 -14
  46. openstackclient/identity/v2_0/role_assignment.py +9 -3
  47. openstackclient/identity/v2_0/service.py +23 -11
  48. openstackclient/identity/v2_0/token.py +12 -5
  49. openstackclient/identity/v2_0/user.py +26 -15
  50. openstackclient/identity/v3/access_rule.py +32 -12
  51. openstackclient/identity/v3/application_credential.py +66 -24
  52. openstackclient/identity/v3/catalog.py +14 -7
  53. openstackclient/identity/v3/consumer.py +22 -11
  54. openstackclient/identity/v3/credential.py +39 -17
  55. openstackclient/identity/v3/domain.py +40 -19
  56. openstackclient/identity/v3/ec2creds.py +25 -12
  57. openstackclient/identity/v3/endpoint.py +98 -64
  58. openstackclient/identity/v3/endpoint_group.py +28 -17
  59. openstackclient/identity/v3/federation_protocol.py +44 -20
  60. openstackclient/identity/v3/group.py +64 -40
  61. openstackclient/identity/v3/identity_provider.py +95 -57
  62. openstackclient/identity/v3/implied_role.py +21 -9
  63. openstackclient/identity/v3/limit.py +42 -17
  64. openstackclient/identity/v3/mapping.py +58 -28
  65. openstackclient/identity/v3/policy.py +23 -12
  66. openstackclient/identity/v3/project.py +59 -26
  67. openstackclient/identity/v3/region.py +39 -17
  68. openstackclient/identity/v3/registered_limit.py +41 -16
  69. openstackclient/identity/v3/role.py +62 -31
  70. openstackclient/identity/v3/role_assignment.py +25 -7
  71. openstackclient/identity/v3/service.py +39 -17
  72. openstackclient/identity/v3/service_provider.py +40 -16
  73. openstackclient/identity/v3/tag.py +23 -6
  74. openstackclient/identity/v3/token.py +30 -14
  75. openstackclient/identity/v3/trust.py +39 -18
  76. openstackclient/identity/v3/unscoped_saml.py +10 -2
  77. openstackclient/identity/v3/user.py +86 -36
  78. openstackclient/image/client.py +7 -3
  79. openstackclient/image/v1/image.py +33 -26
  80. openstackclient/image/v2/cache.py +16 -11
  81. openstackclient/image/v2/image.py +88 -56
  82. openstackclient/image/v2/info.py +7 -1
  83. openstackclient/image/v2/metadef_namespaces.py +117 -20
  84. openstackclient/image/v2/metadef_objects.py +32 -19
  85. openstackclient/image/v2/metadef_properties.py +30 -16
  86. openstackclient/image/v2/metadef_resource_type_association.py +14 -7
  87. openstackclient/image/v2/metadef_resource_types.py +7 -1
  88. openstackclient/image/v2/task.py +25 -27
  89. openstackclient/locale/tr_TR/LC_MESSAGES/openstackclient.po +7 -192
  90. openstackclient/network/client.py +7 -2
  91. openstackclient/network/common.py +16 -241
  92. openstackclient/network/utils.py +27 -54
  93. openstackclient/network/v2/address_group.py +39 -16
  94. openstackclient/network/v2/address_scope.py +36 -20
  95. openstackclient/network/v2/bgpvpn/bgpvpn.py +477 -0
  96. openstackclient/network/v2/bgpvpn/constants.py +30 -0
  97. openstackclient/network/v2/bgpvpn/network_association.py +226 -0
  98. openstackclient/network/v2/bgpvpn/port_association.py +504 -0
  99. openstackclient/network/v2/bgpvpn/router_association.py +301 -0
  100. openstackclient/network/v2/default_security_group_rule.py +31 -14
  101. openstackclient/network/v2/floating_ip.py +121 -162
  102. openstackclient/network/v2/floating_ip_port_forwarding.py +41 -19
  103. openstackclient/network/v2/fwaas/__init__.py +0 -0
  104. openstackclient/network/v2/fwaas/group.py +499 -0
  105. openstackclient/network/v2/fwaas/policy.py +518 -0
  106. openstackclient/network/v2/fwaas/rule.py +610 -0
  107. openstackclient/network/v2/ip_availability.py +25 -8
  108. openstackclient/network/v2/l3_conntrack_helper.py +35 -13
  109. openstackclient/network/v2/local_ip.py +27 -13
  110. openstackclient/network/v2/local_ip_association.py +17 -7
  111. openstackclient/network/v2/ndp_proxy.py +23 -11
  112. openstackclient/network/v2/network.py +213 -213
  113. openstackclient/network/v2/network_agent.py +77 -34
  114. openstackclient/network/v2/network_auto_allocated_topology.py +27 -15
  115. openstackclient/network/v2/network_flavor.py +45 -21
  116. openstackclient/network/v2/network_flavor_profile.py +42 -17
  117. openstackclient/network/v2/network_meter.py +39 -15
  118. openstackclient/network/v2/network_meter_rule.py +40 -12
  119. openstackclient/network/v2/network_qos_policy.py +39 -21
  120. openstackclient/network/v2/network_qos_rule.py +48 -18
  121. openstackclient/network/v2/network_qos_rule_type.py +28 -9
  122. openstackclient/network/v2/network_rbac.py +34 -16
  123. openstackclient/network/v2/network_segment.py +32 -11
  124. openstackclient/network/v2/network_segment_range.py +70 -31
  125. openstackclient/network/v2/network_service_provider.py +7 -1
  126. openstackclient/network/v2/network_trunk.py +41 -22
  127. openstackclient/network/v2/port.py +141 -40
  128. openstackclient/network/v2/router.py +101 -67
  129. openstackclient/network/v2/security_group.py +97 -198
  130. openstackclient/network/v2/security_group_rule.py +115 -282
  131. openstackclient/network/v2/subnet.py +63 -34
  132. openstackclient/network/v2/subnet_pool.py +42 -24
  133. openstackclient/network/v2/taas/tap_flow.py +35 -14
  134. openstackclient/network/v2/taas/tap_mirror.py +28 -14
  135. openstackclient/network/v2/taas/tap_service.py +26 -12
  136. openstackclient/object/client.py +7 -2
  137. openstackclient/object/v1/account.py +13 -6
  138. openstackclient/object/v1/container.py +28 -16
  139. openstackclient/object/v1/object.py +28 -16
  140. openstackclient/py.typed +0 -0
  141. openstackclient/shell.py +46 -10
  142. openstackclient/tests/functional/base.py +55 -20
  143. openstackclient/tests/functional/common/test_extension.py +4 -0
  144. openstackclient/tests/functional/common/test_quota.py +3 -1
  145. openstackclient/tests/functional/compute/v2/common.py +14 -13
  146. openstackclient/tests/functional/compute/v2/test_flavor.py +3 -1
  147. openstackclient/tests/functional/compute/v2/test_server.py +3 -0
  148. openstackclient/tests/functional/identity/v2/common.py +10 -6
  149. openstackclient/tests/functional/identity/v2/test_role.py +4 -4
  150. openstackclient/tests/functional/identity/v3/common.py +59 -19
  151. openstackclient/tests/functional/identity/v3/test_application_credential.py +1 -1
  152. openstackclient/tests/functional/identity/v3/test_group.py +20 -20
  153. openstackclient/tests/functional/identity/v3/test_idp.py +3 -1
  154. openstackclient/tests/functional/identity/v3/test_mapping.py +81 -0
  155. openstackclient/tests/functional/identity/v3/test_project.py +10 -10
  156. openstackclient/tests/functional/identity/v3/test_role.py +18 -18
  157. openstackclient/tests/functional/identity/v3/test_role_assignment.py +12 -12
  158. openstackclient/tests/functional/identity/v3/test_user.py +8 -8
  159. openstackclient/tests/functional/image/base.py +1 -6
  160. openstackclient/tests/functional/network/v2/common.py +5 -2
  161. openstackclient/tests/functional/network/v2/test_floating_ip.py +10 -4
  162. openstackclient/tests/functional/network/v2/test_ip_availability.py +4 -0
  163. openstackclient/tests/functional/network/v2/test_network_meter_rule.py +3 -2
  164. openstackclient/tests/functional/network/v2/test_network_segment.py +5 -0
  165. openstackclient/tests/functional/network/v2/test_subnet.py +13 -9
  166. openstackclient/tests/functional/object/v1/common.py +4 -0
  167. openstackclient/tests/functional/volume/v2/common.py +4 -0
  168. openstackclient/tests/functional/volume/v2/test_volume_snapshot.py +27 -11
  169. openstackclient/tests/functional/volume/v2/test_volume_type.py +2 -2
  170. openstackclient/tests/functional/volume/v3/common.py +4 -0
  171. openstackclient/tests/functional/volume/v3/test_volume_group.py +163 -0
  172. openstackclient/tests/functional/volume/v3/test_volume_snapshot.py +11 -7
  173. openstackclient/tests/functional/volume/v3/test_volume_type.py +2 -2
  174. openstackclient/tests/unit/common/test_availability_zone.py +35 -49
  175. openstackclient/tests/unit/common/test_extension.py +2 -2
  176. openstackclient/tests/unit/common/test_limits.py +1 -1
  177. openstackclient/tests/unit/common/test_module.py +82 -44
  178. openstackclient/tests/unit/common/test_project_cleanup.py +3 -1
  179. openstackclient/tests/unit/common/test_quota.py +15 -26
  180. openstackclient/tests/unit/compute/v2/fakes.py +26 -57
  181. openstackclient/tests/unit/compute/v2/test_agent.py +4 -4
  182. openstackclient/tests/unit/compute/v2/test_aggregate.py +1 -1
  183. openstackclient/tests/unit/compute/v2/test_console.py +2 -2
  184. openstackclient/tests/unit/compute/v2/test_console_connection.py +1 -1
  185. openstackclient/tests/unit/compute/v2/test_flavor.py +29 -3
  186. openstackclient/tests/unit/compute/v2/test_host.py +3 -3
  187. openstackclient/tests/unit/compute/v2/test_hypervisor.py +2 -2
  188. openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +1 -1
  189. openstackclient/tests/unit/compute/v2/test_keypair.py +7 -7
  190. openstackclient/tests/unit/compute/v2/test_server.py +26 -111
  191. openstackclient/tests/unit/compute/v2/test_server_backup.py +1 -1
  192. openstackclient/tests/unit/compute/v2/test_server_event.py +2 -2
  193. openstackclient/tests/unit/compute/v2/test_server_group.py +1 -1
  194. openstackclient/tests/unit/compute/v2/test_server_image.py +1 -1
  195. openstackclient/tests/unit/compute/v2/test_server_migration.py +4 -4
  196. openstackclient/tests/unit/compute/v2/test_server_share.py +287 -0
  197. openstackclient/tests/unit/compute/v2/test_server_volume.py +2 -2
  198. openstackclient/tests/unit/compute/v2/test_service.py +3 -3
  199. openstackclient/tests/unit/compute/v2/test_usage.py +1 -1
  200. openstackclient/tests/unit/identity/v2_0/fakes.py +3 -7
  201. openstackclient/tests/unit/identity/v2_0/test_endpoint.py +1 -1
  202. openstackclient/tests/unit/identity/v2_0/test_project.py +1 -1
  203. openstackclient/tests/unit/identity/v2_0/test_role.py +1 -1
  204. openstackclient/tests/unit/identity/v2_0/test_role_assignment.py +1 -1
  205. openstackclient/tests/unit/identity/v2_0/test_service.py +1 -1
  206. openstackclient/tests/unit/identity/v2_0/test_token.py +2 -2
  207. openstackclient/tests/unit/identity/v2_0/test_user.py +1 -1
  208. openstackclient/tests/unit/identity/v3/fakes.py +8 -38
  209. openstackclient/tests/unit/identity/v3/test_access_rule.py +3 -3
  210. openstackclient/tests/unit/identity/v3/test_application_credential.py +4 -4
  211. openstackclient/tests/unit/identity/v3/test_credential.py +5 -5
  212. openstackclient/tests/unit/identity/v3/test_domain.py +5 -5
  213. openstackclient/tests/unit/identity/v3/test_endpoint.py +6 -6
  214. openstackclient/tests/unit/identity/v3/test_endpoint_group.py +1 -1
  215. openstackclient/tests/unit/identity/v3/test_group.py +12 -22
  216. openstackclient/tests/unit/identity/v3/test_identity_provider.py +303 -299
  217. openstackclient/tests/unit/identity/v3/test_implied_role.py +1 -1
  218. openstackclient/tests/unit/identity/v3/test_limit.py +5 -5
  219. openstackclient/tests/unit/identity/v3/test_mappings.py +163 -79
  220. openstackclient/tests/unit/identity/v3/test_project.py +28 -5
  221. openstackclient/tests/unit/identity/v3/test_protocol.py +3 -3
  222. openstackclient/tests/unit/identity/v3/test_region.py +5 -5
  223. openstackclient/tests/unit/identity/v3/test_registered_limit.py +5 -5
  224. openstackclient/tests/unit/identity/v3/test_role.py +8 -8
  225. openstackclient/tests/unit/identity/v3/test_role_assignment.py +1 -1
  226. openstackclient/tests/unit/identity/v3/test_service.py +5 -5
  227. openstackclient/tests/unit/identity/v3/test_token.py +2 -2
  228. openstackclient/tests/unit/identity/v3/test_trust.py +4 -4
  229. openstackclient/tests/unit/identity/v3/test_user.py +77 -10
  230. openstackclient/tests/unit/image/v2/test_image.py +11 -11
  231. openstackclient/tests/unit/image/v2/test_metadef_namespaces.py +105 -6
  232. openstackclient/tests/unit/network/test_common.py +0 -155
  233. openstackclient/tests/unit/network/v2/bgpvpn/__init__.py +0 -0
  234. openstackclient/tests/unit/network/v2/bgpvpn/fakes.py +179 -0
  235. openstackclient/tests/unit/network/v2/bgpvpn/test_bgpvpn.py +584 -0
  236. openstackclient/tests/unit/network/v2/bgpvpn/test_network_association.py +285 -0
  237. openstackclient/tests/unit/network/v2/bgpvpn/test_port_association.py +384 -0
  238. openstackclient/tests/unit/network/v2/bgpvpn/test_router_association.py +297 -0
  239. openstackclient/tests/unit/network/v2/fakes.py +5 -77
  240. openstackclient/tests/unit/network/v2/fwaas/__init__.py +0 -0
  241. openstackclient/tests/unit/network/v2/fwaas/test_group.py +923 -0
  242. openstackclient/tests/unit/network/v2/fwaas/test_policy.py +869 -0
  243. openstackclient/tests/unit/network/v2/fwaas/test_rule.py +1005 -0
  244. openstackclient/tests/unit/network/v2/taas/{test_osc_tap_flow.py → test_tap_flow.py} +18 -25
  245. openstackclient/tests/unit/network/v2/taas/{test_osc_tap_mirror.py → test_tap_mirror.py} +19 -29
  246. openstackclient/tests/unit/network/v2/taas/{test_osc_tap_service.py → test_tap_service.py} +19 -29
  247. openstackclient/tests/unit/network/v2/test_address_group.py +26 -2
  248. openstackclient/tests/unit/network/v2/test_address_scope.py +24 -0
  249. openstackclient/tests/unit/network/v2/{test_floating_ip_network.py → test_floating_ip.py} +27 -2
  250. openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +37 -13
  251. openstackclient/tests/unit/network/v2/test_ip_availability.py +25 -0
  252. openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +29 -3
  253. openstackclient/tests/unit/network/v2/test_network.py +74 -12
  254. openstackclient/tests/unit/network/v2/test_network_agent.py +58 -5
  255. openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py +3 -3
  256. openstackclient/tests/unit/network/v2/test_network_flavor.py +26 -2
  257. openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +24 -0
  258. openstackclient/tests/unit/network/v2/test_network_meter.py +24 -0
  259. openstackclient/tests/unit/network/v2/test_network_qos_policy.py +25 -1
  260. openstackclient/tests/unit/network/v2/test_network_qos_rule.py +2 -2
  261. openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +24 -0
  262. openstackclient/tests/unit/network/v2/test_network_rbac.py +25 -1
  263. openstackclient/tests/unit/network/v2/test_network_segment.py +25 -1
  264. openstackclient/tests/unit/network/v2/test_network_segment_range.py +31 -10
  265. openstackclient/tests/unit/network/v2/test_network_trunk.py +1 -1
  266. openstackclient/tests/unit/network/v2/test_port.py +166 -0
  267. openstackclient/tests/unit/network/v2/test_router.py +36 -16
  268. openstackclient/tests/unit/network/v2/{test_security_group_network.py → test_security_group.py} +11 -8
  269. openstackclient/tests/unit/network/v2/{test_security_group_rule_network.py → test_security_group_rule.py} +28 -37
  270. openstackclient/tests/unit/network/v2/test_subnet.py +30 -5
  271. openstackclient/tests/unit/network/v2/test_subnet_pool.py +26 -1
  272. openstackclient/tests/unit/object/v1/fakes.py +8 -7
  273. openstackclient/tests/unit/object/v1/test_container.py +65 -101
  274. openstackclient/tests/unit/object/v1/test_container_all.py +8 -1
  275. openstackclient/tests/unit/object/v1/test_object.py +44 -84
  276. openstackclient/tests/unit/object/v1/test_object_all.py +8 -1
  277. openstackclient/tests/unit/test_hacking.py +108 -0
  278. openstackclient/tests/unit/volume/v2/fakes.py +21 -140
  279. openstackclient/tests/unit/volume/v2/test_volume_backup.py +6 -14
  280. openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +8 -1
  281. openstackclient/tests/unit/volume/v2/test_volume_type.py +2 -4
  282. openstackclient/tests/unit/volume/v3/fakes.py +205 -100
  283. openstackclient/tests/unit/volume/v3/test_backup_record.py +114 -0
  284. openstackclient/tests/unit/volume/v3/test_consistency_group.py +720 -0
  285. openstackclient/tests/unit/volume/v3/test_consistency_group_snapshot.py +354 -0
  286. openstackclient/tests/unit/volume/v3/test_qos_specs.py +455 -0
  287. openstackclient/tests/unit/volume/v3/test_volume.py +60 -3
  288. openstackclient/tests/unit/volume/v3/test_volume_attachment.py +3 -1
  289. openstackclient/tests/unit/volume/v3/test_volume_backend.py +158 -0
  290. openstackclient/tests/unit/volume/v3/test_volume_backup.py +6 -14
  291. openstackclient/tests/unit/volume/v3/test_volume_group_type.py +65 -0
  292. openstackclient/tests/unit/volume/v3/test_volume_host.py +115 -0
  293. openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +61 -1
  294. openstackclient/tests/unit/volume/v3/test_volume_type.py +2 -4
  295. openstackclient/volume/client.py +7 -3
  296. openstackclient/volume/v2/backup_record.py +15 -6
  297. openstackclient/volume/v2/consistency_group.py +29 -17
  298. openstackclient/volume/v2/consistency_group_snapshot.py +25 -10
  299. openstackclient/volume/v2/qos_specs.py +28 -17
  300. openstackclient/volume/v2/service.py +17 -6
  301. openstackclient/volume/v2/volume.py +60 -30
  302. openstackclient/volume/v2/volume_backend.py +19 -6
  303. openstackclient/volume/v2/volume_backup.py +48 -23
  304. openstackclient/volume/v2/volume_host.py +6 -4
  305. openstackclient/volume/v2/volume_snapshot.py +49 -24
  306. openstackclient/volume/v2/volume_transfer_request.py +31 -13
  307. openstackclient/volume/v2/volume_type.py +43 -24
  308. openstackclient/volume/v3/backup_record.py +94 -0
  309. openstackclient/volume/v3/block_storage_cleanup.py +11 -3
  310. openstackclient/volume/v3/block_storage_cluster.py +19 -7
  311. openstackclient/volume/v3/block_storage_log_level.py +15 -6
  312. openstackclient/volume/v3/block_storage_manage.py +10 -4
  313. openstackclient/volume/v3/block_storage_resource_filter.py +17 -5
  314. openstackclient/volume/v3/consistency_group.py +400 -0
  315. openstackclient/volume/v3/consistency_group_snapshot.py +225 -0
  316. openstackclient/volume/v3/qos_specs.py +389 -0
  317. openstackclient/volume/v3/service.py +16 -6
  318. openstackclient/volume/v3/volume.py +92 -40
  319. openstackclient/volume/v3/volume_attachment.py +47 -21
  320. openstackclient/volume/v3/volume_backend.py +130 -0
  321. openstackclient/volume/v3/volume_backup.py +55 -27
  322. openstackclient/volume/v3/volume_group.py +23 -13
  323. openstackclient/volume/v3/volume_group_snapshot.py +34 -17
  324. openstackclient/volume/v3/volume_group_type.py +27 -14
  325. openstackclient/volume/v3/volume_host.py +74 -0
  326. openstackclient/volume/v3/volume_message.py +18 -8
  327. openstackclient/volume/v3/volume_snapshot.py +70 -32
  328. openstackclient/volume/v3/volume_transfer_request.py +31 -13
  329. openstackclient/volume/v3/volume_type.py +42 -24
  330. {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/METADATA +7 -8
  331. python_openstackclient-10.1.0.dist-info/RECORD +524 -0
  332. {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/WHEEL +1 -1
  333. {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/entry_points.txt +77 -25
  334. {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/licenses/AUTHORS +9 -0
  335. python_openstackclient-10.1.0.dist-info/pbr.json +1 -0
  336. openstackclient/api/image_v1.py +0 -69
  337. openstackclient/api/image_v2.py +0 -79
  338. openstackclient/network/v2/floating_ip_pool.py +0 -38
  339. openstackclient/tests/functional/image/v1/test_image.py +0 -97
  340. openstackclient/tests/unit/api/test_image_v1.py +0 -96
  341. openstackclient/tests/unit/api/test_image_v2.py +0 -96
  342. openstackclient/tests/unit/network/v2/test_floating_ip_compute.py +0 -248
  343. openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py +0 -49
  344. openstackclient/tests/unit/network/v2/test_floating_ip_pool_network.py +0 -39
  345. openstackclient/tests/unit/network/v2/test_network_compute.py +0 -404
  346. openstackclient/tests/unit/network/v2/test_security_group_compute.py +0 -392
  347. openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +0 -555
  348. python_openstackclient-9.0.0.dist-info/RECORD +0 -499
  349. python_openstackclient-9.0.0.dist-info/pbr.json +0 -1
  350. /openstackclient/{tests/functional/image/v1 → network/v2/bgpvpn}/__init__.py +0 -0
  351. {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/licenses/LICENSE +0 -0
  352. {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/top_level.txt +0 -0
@@ -13,8 +13,18 @@
13
13
  # License for the specific language governing permissions and limitations
14
14
  # under the License.
15
15
 
16
+ import argparse
17
+ from collections.abc import Iterable, Sequence
16
18
  import itertools
17
-
19
+ from typing import Any, cast
20
+
21
+ from openstack.network.v2 import (
22
+ qos_bandwidth_limit_rule as _qos_bandwidth_limit_rule,
23
+ qos_dscp_marking_rule as _qos_dscp_marking_rule,
24
+ qos_minimum_bandwidth_rule as _qos_minimum_bandwidth_rule,
25
+ qos_minimum_packet_rate_rule as _qos_minimum_packet_rate_rule,
26
+ qos_packet_rate_limit_rule as _qos_packet_rate_limit_rule,
27
+ )
18
28
  from osc_lib import exceptions
19
29
  from osc_lib import utils
20
30
 
@@ -72,14 +82,24 @@ ACTION_SET = 'update'
72
82
  ACTION_SHOW = 'get'
73
83
 
74
84
 
75
- def _get_columns(item):
85
+ def _get_columns(
86
+ item: (
87
+ _qos_bandwidth_limit_rule.QoSBandwidthLimitRule
88
+ | _qos_dscp_marking_rule.QoSDSCPMarkingRule
89
+ | _qos_minimum_bandwidth_rule.QoSMinimumBandwidthRule
90
+ | _qos_minimum_packet_rate_rule.QoSMinimumPacketRateRule
91
+ | _qos_packet_rate_limit_rule.QoSPacketRateLimitRule
92
+ ),
93
+ ) -> tuple[tuple[str, ...], tuple[str, ...]]:
76
94
  hidden_columns = ['location', 'name', 'tenant_id']
77
95
  return utils.get_osc_show_columns_for_sdk_resource(
78
96
  item, {}, hidden_columns
79
97
  )
80
98
 
81
99
 
82
- def _check_type_parameters(attrs, type, is_create):
100
+ def _check_type_parameters(
101
+ attrs: dict[str, Any], type: str, is_create: bool
102
+ ) -> None:
83
103
  req_params = MANDATORY_PARAMETERS[type]
84
104
  opt_params = OPTIONAL_PARAMETERS[type]
85
105
  type_params = req_params | opt_params
@@ -102,7 +122,11 @@ def _check_type_parameters(attrs, type, is_create):
102
122
  raise exceptions.CommandError(msg)
103
123
 
104
124
 
105
- def _get_attrs(network_client, parsed_args, is_create=False):
125
+ def _get_attrs(
126
+ network_client: Any,
127
+ parsed_args: argparse.Namespace,
128
+ is_create: bool = False,
129
+ ) -> dict[str, Any]:
106
130
  attrs = {}
107
131
  qos = network_client.find_qos_policy(
108
132
  parsed_args.qos_policy, ignore_missing=False
@@ -148,19 +172,19 @@ def _get_attrs(network_client, parsed_args, is_create=False):
148
172
  return attrs
149
173
 
150
174
 
151
- def _rule_action_call(client, action, rule_type):
175
+ def _rule_action_call(client: Any, action: str, rule_type: str) -> Any:
152
176
  rule_type = rule_type.replace('-', '_')
153
177
  func_name = f'{action}_qos_{rule_type}_rule'
154
178
  return getattr(client, func_name)
155
179
 
156
180
 
157
- def _find_rule_type(qos, rule_id):
181
+ def _find_rule_type(qos: Any, rule_id: str) -> str | None:
158
182
  for rule in (r for r in qos.rules if r['id'] == rule_id):
159
- return rule['type'].replace('_', '-')
183
+ return cast(str, rule['type']).replace('_', '-')
160
184
  return None
161
185
 
162
186
 
163
- def _add_rule_arguments(parser):
187
+ def _add_rule_arguments(parser: argparse.ArgumentParser) -> None:
164
188
  parser.add_argument(
165
189
  '--max-kbps',
166
190
  dest='max_kbps',
@@ -230,7 +254,7 @@ class CreateNetworkQosRule(
230
254
  ):
231
255
  _description = _("Create new Network QoS rule")
232
256
 
233
- def get_parser(self, prog_name):
257
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
234
258
  parser = super().get_parser(prog_name)
235
259
  parser.add_argument(
236
260
  'qos_policy',
@@ -255,7 +279,9 @@ class CreateNetworkQosRule(
255
279
  _add_rule_arguments(parser)
256
280
  return parser
257
281
 
258
- def take_action(self, parsed_args):
282
+ def take_action(
283
+ self, parsed_args: argparse.Namespace
284
+ ) -> tuple[Sequence[str], Iterable[Any]]:
259
285
  network_client = self.app.client_manager.network
260
286
  try:
261
287
  attrs = _get_attrs(network_client, parsed_args, is_create=True)
@@ -276,7 +302,7 @@ class CreateNetworkQosRule(
276
302
  class DeleteNetworkQosRule(command.Command):
277
303
  _description = _("Delete Network QoS rule")
278
304
 
279
- def get_parser(self, prog_name):
305
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
280
306
  parser = super().get_parser(prog_name)
281
307
  parser.add_argument(
282
308
  'qos_policy',
@@ -290,7 +316,7 @@ class DeleteNetworkQosRule(command.Command):
290
316
  )
291
317
  return parser
292
318
 
293
- def take_action(self, parsed_args):
319
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
294
320
  network_client = self.app.client_manager.network
295
321
  rule_id = parsed_args.id
296
322
  try:
@@ -313,7 +339,7 @@ class DeleteNetworkQosRule(command.Command):
313
339
  class ListNetworkQosRule(command.Lister):
314
340
  _description = _("List Network QoS rules")
315
341
 
316
- def get_parser(self, prog_name):
342
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
317
343
  parser = super().get_parser(prog_name)
318
344
  parser.add_argument(
319
345
  'qos_policy',
@@ -322,7 +348,9 @@ class ListNetworkQosRule(command.Lister):
322
348
  )
323
349
  return parser
324
350
 
325
- def take_action(self, parsed_args):
351
+ def take_action(
352
+ self, parsed_args: argparse.Namespace
353
+ ) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
326
354
  client = self.app.client_manager.network
327
355
  columns = (
328
356
  'id',
@@ -359,7 +387,7 @@ class ListNetworkQosRule(command.Lister):
359
387
  class SetNetworkQosRule(common.NeutronCommandWithExtraArgs):
360
388
  _description = _("Set Network QoS rule properties")
361
389
 
362
- def get_parser(self, prog_name):
390
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
363
391
  parser = super().get_parser(prog_name)
364
392
  parser.add_argument(
365
393
  'qos_policy',
@@ -374,7 +402,7 @@ class SetNetworkQosRule(common.NeutronCommandWithExtraArgs):
374
402
  _add_rule_arguments(parser)
375
403
  return parser
376
404
 
377
- def take_action(self, parsed_args):
405
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
378
406
  network_client = self.app.client_manager.network
379
407
  try:
380
408
  qos = network_client.find_qos_policy(
@@ -405,7 +433,7 @@ class SetNetworkQosRule(common.NeutronCommandWithExtraArgs):
405
433
  class ShowNetworkQosRule(command.ShowOne):
406
434
  _description = _("Display Network QoS rule details")
407
435
 
408
- def get_parser(self, prog_name):
436
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
409
437
  parser = super().get_parser(prog_name)
410
438
  parser.add_argument(
411
439
  'qos_policy',
@@ -419,7 +447,9 @@ class ShowNetworkQosRule(command.ShowOne):
419
447
  )
420
448
  return parser
421
449
 
422
- def take_action(self, parsed_args):
450
+ def take_action(
451
+ self, parsed_args: argparse.Namespace
452
+ ) -> tuple[Sequence[str], Iterable[Any]]:
423
453
  network_client = self.app.client_manager.network
424
454
  rule_id = parsed_args.id
425
455
  try:
@@ -13,13 +13,21 @@
13
13
  # License for the specific language governing permissions and limitations
14
14
  # under the License.
15
15
 
16
+ import argparse
17
+ from collections.abc import Iterable, Sequence
18
+ from typing import Any
19
+
20
+ from openstack.network.v2 import qos_rule_type as _qos_rule_type
16
21
  from osc_lib import utils
17
22
 
18
23
  from openstackclient import command
24
+ from openstackclient.common import pagination
19
25
  from openstackclient.i18n import _
20
26
 
21
27
 
22
- def _get_columns(item):
28
+ def _get_columns(
29
+ item: _qos_rule_type.QoSRuleType,
30
+ ) -> tuple[tuple[str, ...], tuple[str, ...]]:
23
31
  column_map = {
24
32
  "type": "rule_type_name",
25
33
  "drivers": "drivers",
@@ -33,7 +41,7 @@ def _get_columns(item):
33
41
  class ListNetworkQosRuleType(command.Lister):
34
42
  _description = _("List QoS rule types")
35
43
 
36
- def get_parser(self, prog_name):
44
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
37
45
  parser = super().get_parser(prog_name)
38
46
  supported = parser.add_mutually_exclusive_group()
39
47
  supported.add_argument(
@@ -52,19 +60,28 @@ class ListNetworkQosRuleType(command.Lister):
52
60
  "List all QoS rule types implemented in Neutron QoS driver"
53
61
  ),
54
62
  )
63
+ pagination.add_marker_pagination_option_to_parser(parser)
55
64
  return parser
56
65
 
57
- def take_action(self, parsed_args):
66
+ def take_action(
67
+ self, parsed_args: argparse.Namespace
68
+ ) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
58
69
  client = self.app.client_manager.network
59
70
  columns = ('type',)
60
71
  column_headers = ('Type',)
61
72
 
62
- args = {}
73
+ filters = {}
74
+ if parsed_args.marker is not None:
75
+ filters['marker'] = parsed_args.marker
76
+ if parsed_args.limit is not None:
77
+ filters['limit'] = parsed_args.limit
78
+ if parsed_args.max_items is not None:
79
+ filters['max_items'] = parsed_args.max_items
63
80
  if parsed_args.all_supported:
64
- args['all_supported'] = True
81
+ filters['all_supported'] = True
65
82
  elif parsed_args.all_rules:
66
- args['all_rules'] = True
67
- data = client.qos_rule_types(**args)
83
+ filters['all_rules'] = True
84
+ data = client.qos_rule_types(**filters)
68
85
 
69
86
  return (
70
87
  column_headers,
@@ -82,7 +99,7 @@ class ListNetworkQosRuleType(command.Lister):
82
99
  class ShowNetworkQosRuleType(command.ShowOne):
83
100
  _description = _("Show details about supported QoS rule type")
84
101
 
85
- def get_parser(self, prog_name):
102
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
86
103
  parser = super().get_parser(prog_name)
87
104
  parser.add_argument(
88
105
  'rule_type',
@@ -91,7 +108,9 @@ class ShowNetworkQosRuleType(command.ShowOne):
91
108
  )
92
109
  return parser
93
110
 
94
- def take_action(self, parsed_args):
111
+ def take_action(
112
+ self, parsed_args: argparse.Namespace
113
+ ) -> tuple[Sequence[str], Iterable[Any]]:
95
114
  client = self.app.client_manager.network
96
115
  obj = client.get_qos_rule_type(parsed_args.rule_type)
97
116
  display_columns, columns = _get_columns(obj)
@@ -13,12 +13,17 @@
13
13
 
14
14
  """RBAC action implementations"""
15
15
 
16
+ import argparse
17
+ from collections.abc import Iterable, Sequence
16
18
  import logging
19
+ from typing import Any
17
20
 
21
+ from openstack.network.v2 import rbac_policy as _rbac_policy
18
22
  from osc_lib import exceptions
19
23
  from osc_lib import utils
20
24
 
21
25
  from openstackclient import command
26
+ from openstackclient.common import pagination
22
27
  from openstackclient.i18n import _
23
28
  from openstackclient.identity import common as identity_common
24
29
  from openstackclient.network import common
@@ -26,7 +31,9 @@ from openstackclient.network import common
26
31
  LOG = logging.getLogger(__name__)
27
32
 
28
33
 
29
- def _get_columns(item):
34
+ def _get_columns(
35
+ item: _rbac_policy.RBACPolicy,
36
+ ) -> tuple[tuple[str, ...], tuple[str, ...]]:
30
37
  column_map = {
31
38
  'target_tenant': 'target_project_id',
32
39
  }
@@ -36,7 +43,9 @@ def _get_columns(item):
36
43
  )
37
44
 
38
45
 
39
- def _get_attrs(client_manager, parsed_args):
46
+ def _get_attrs(
47
+ client_manager: Any, parsed_args: argparse.Namespace
48
+ ) -> dict[str, Any]:
40
49
  attrs = {}
41
50
  attrs['object_type'] = parsed_args.type
42
51
  attrs['action'] = parsed_args.action
@@ -90,12 +99,10 @@ def _get_attrs(client_manager, parsed_args):
90
99
  return attrs
91
100
 
92
101
 
93
- # TODO(abhiraut): Use the SDK resource mapped attribute names once the
94
- # OSC minimum requirements include SDK 1.0.
95
102
  class CreateNetworkRBAC(command.ShowOne, common.NeutronCommandWithExtraArgs):
96
103
  _description = _("Create network RBAC policy")
97
104
 
98
- def get_parser(self, prog_name):
105
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
99
106
  parser = super().get_parser(prog_name)
100
107
  parser.add_argument(
101
108
  'rbac_object',
@@ -166,7 +173,9 @@ class CreateNetworkRBAC(command.ShowOne, common.NeutronCommandWithExtraArgs):
166
173
  identity_common.add_project_domain_option_to_parser(parser)
167
174
  return parser
168
175
 
169
- def take_action(self, parsed_args):
176
+ def take_action(
177
+ self, parsed_args: argparse.Namespace
178
+ ) -> tuple[Sequence[str], Iterable[Any]]:
170
179
  client = self.app.client_manager.network
171
180
  attrs = _get_attrs(self.app.client_manager, parsed_args)
172
181
  attrs.update(
@@ -181,7 +190,7 @@ class CreateNetworkRBAC(command.ShowOne, common.NeutronCommandWithExtraArgs):
181
190
  class DeleteNetworkRBAC(command.Command):
182
191
  _description = _("Delete network RBAC policy(s)")
183
192
 
184
- def get_parser(self, prog_name):
193
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
185
194
  parser = super().get_parser(prog_name)
186
195
  parser.add_argument(
187
196
  'rbac_policy',
@@ -191,7 +200,7 @@ class DeleteNetworkRBAC(command.Command):
191
200
  )
192
201
  return parser
193
202
 
194
- def take_action(self, parsed_args):
203
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
195
204
  client = self.app.client_manager.network
196
205
  result = 0
197
206
 
@@ -220,7 +229,7 @@ class DeleteNetworkRBAC(command.Command):
220
229
  class ListNetworkRBAC(command.Lister):
221
230
  _description = _("List network RBAC policies")
222
231
 
223
- def get_parser(self, prog_name):
232
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
224
233
  parser = super().get_parser(prog_name)
225
234
  parser.add_argument(
226
235
  '--type',
@@ -263,9 +272,12 @@ class ListNetworkRBAC(command.Lister):
263
272
  default=False,
264
273
  help=_("List additional fields in output"),
265
274
  )
275
+ pagination.add_marker_pagination_option_to_parser(parser)
266
276
  return parser
267
277
 
268
- def take_action(self, parsed_args):
278
+ def take_action(
279
+ self, parsed_args: argparse.Namespace
280
+ ) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
269
281
  client = self.app.client_manager.network
270
282
 
271
283
  columns: tuple[str, ...] = (
@@ -297,6 +309,12 @@ class ListNetworkRBAC(command.Lister):
297
309
  parsed_args.target_project,
298
310
  ).id
299
311
  query['target_project_id'] = project_id
312
+ if parsed_args.marker is not None:
313
+ query['marker'] = parsed_args.marker
314
+ if parsed_args.limit is not None:
315
+ query['limit'] = parsed_args.limit
316
+ if parsed_args.max_items is not None:
317
+ query['max_items'] = parsed_args.max_items
300
318
 
301
319
  data = client.rbac_policies(**query)
302
320
 
@@ -312,12 +330,10 @@ class ListNetworkRBAC(command.Lister):
312
330
  )
313
331
 
314
332
 
315
- # TODO(abhiraut): Use the SDK resource mapped attribute names once the
316
- # OSC minimum requirements include SDK 1.0.
317
333
  class SetNetworkRBAC(common.NeutronCommandWithExtraArgs):
318
334
  _description = _("Set network RBAC policy properties")
319
335
 
320
- def get_parser(self, prog_name):
336
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
321
337
  parser = super().get_parser(prog_name)
322
338
  parser.add_argument(
323
339
  'rbac_policy',
@@ -343,7 +359,7 @@ class SetNetworkRBAC(common.NeutronCommandWithExtraArgs):
343
359
  )
344
360
  return parser
345
361
 
346
- def take_action(self, parsed_args):
362
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
347
363
  client = self.app.client_manager.network
348
364
  obj = client.find_rbac_policy(
349
365
  parsed_args.rbac_policy, ignore_missing=False
@@ -366,7 +382,7 @@ class SetNetworkRBAC(common.NeutronCommandWithExtraArgs):
366
382
  class ShowNetworkRBAC(command.ShowOne):
367
383
  _description = _("Display network RBAC policy details")
368
384
 
369
- def get_parser(self, prog_name):
385
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
370
386
  parser = super().get_parser(prog_name)
371
387
  parser.add_argument(
372
388
  'rbac_policy',
@@ -375,7 +391,9 @@ class ShowNetworkRBAC(command.ShowOne):
375
391
  )
376
392
  return parser
377
393
 
378
- def take_action(self, parsed_args):
394
+ def take_action(
395
+ self, parsed_args: argparse.Namespace
396
+ ) -> tuple[Sequence[str], Iterable[Any]]:
379
397
  client = self.app.client_manager.network
380
398
  obj = client.find_rbac_policy(
381
399
  parsed_args.rbac_policy, ignore_missing=False
@@ -13,19 +13,26 @@
13
13
 
14
14
  """Network segment action implementations"""
15
15
 
16
+ import argparse
17
+ from collections.abc import Iterable, Sequence
16
18
  import logging
19
+ from typing import Any
17
20
 
21
+ from openstack.network.v2 import segment as _segment
18
22
  from osc_lib import exceptions
19
23
  from osc_lib import utils
20
24
 
21
25
  from openstackclient import command
26
+ from openstackclient.common import pagination
22
27
  from openstackclient.i18n import _
23
28
  from openstackclient.network import common
24
29
 
25
30
  LOG = logging.getLogger(__name__)
26
31
 
27
32
 
28
- def _get_columns(item):
33
+ def _get_columns(
34
+ item: _segment.Segment,
35
+ ) -> tuple[tuple[str, ...], tuple[str, ...]]:
29
36
  hidden_columns = ['location', 'tenant_id']
30
37
  return utils.get_osc_show_columns_for_sdk_resource(
31
38
  item, {}, hidden_columns
@@ -37,7 +44,7 @@ class CreateNetworkSegment(
37
44
  ):
38
45
  _description = _("Create new network segment")
39
46
 
40
- def get_parser(self, prog_name):
47
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
41
48
  parser = super().get_parser(prog_name)
42
49
  parser.add_argument(
43
50
  'name', metavar='<name>', help=_('New network segment name')
@@ -81,7 +88,9 @@ class CreateNetworkSegment(
81
88
  )
82
89
  return parser
83
90
 
84
- def take_action(self, parsed_args):
91
+ def take_action(
92
+ self, parsed_args: argparse.Namespace
93
+ ) -> tuple[Sequence[str], Iterable[Any]]:
85
94
  client = self.app.client_manager.network
86
95
  attrs = {}
87
96
  attrs['name'] = parsed_args.name
@@ -107,7 +116,7 @@ class CreateNetworkSegment(
107
116
  class DeleteNetworkSegment(command.Command):
108
117
  _description = _("Delete network segment(s)")
109
118
 
110
- def get_parser(self, prog_name):
119
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
111
120
  parser = super().get_parser(prog_name)
112
121
  parser.add_argument(
113
122
  'network_segment',
@@ -117,7 +126,7 @@ class DeleteNetworkSegment(command.Command):
117
126
  )
118
127
  return parser
119
128
 
120
- def take_action(self, parsed_args):
129
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
121
130
  client = self.app.client_manager.network
122
131
 
123
132
  result = 0
@@ -148,7 +157,7 @@ class DeleteNetworkSegment(command.Command):
148
157
  class ListNetworkSegment(command.Lister):
149
158
  _description = _("List network segments")
150
159
 
151
- def get_parser(self, prog_name):
160
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
152
161
  parser = super().get_parser(prog_name)
153
162
  parser.add_argument(
154
163
  '--long',
@@ -164,9 +173,12 @@ class ListNetworkSegment(command.Lister):
164
173
  'network (name or ID)'
165
174
  ),
166
175
  )
176
+ pagination.add_marker_pagination_option_to_parser(parser)
167
177
  return parser
168
178
 
169
- def take_action(self, parsed_args):
179
+ def take_action(
180
+ self, parsed_args: argparse.Namespace
181
+ ) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
170
182
  network_client = self.app.client_manager.network
171
183
 
172
184
  filters = {}
@@ -175,6 +187,13 @@ class ListNetworkSegment(command.Lister):
175
187
  parsed_args.network, ignore_missing=False
176
188
  )
177
189
  filters = {'network_id': _network.id}
190
+ if parsed_args.marker is not None:
191
+ filters['marker'] = parsed_args.marker
192
+ if parsed_args.limit is not None:
193
+ filters['limit'] = parsed_args.limit
194
+ if parsed_args.max_items is not None:
195
+ filters['max_items'] = parsed_args.max_items
196
+
178
197
  data = network_client.segments(**filters)
179
198
 
180
199
  headers: tuple[str, ...] = (
@@ -211,7 +230,7 @@ class ListNetworkSegment(command.Lister):
211
230
  class SetNetworkSegment(common.NeutronCommandWithExtraArgs):
212
231
  _description = _("Set network segment properties")
213
232
 
214
- def get_parser(self, prog_name):
233
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
215
234
  parser = super().get_parser(prog_name)
216
235
  parser.add_argument(
217
236
  'network_segment',
@@ -230,7 +249,7 @@ class SetNetworkSegment(common.NeutronCommandWithExtraArgs):
230
249
  )
231
250
  return parser
232
251
 
233
- def take_action(self, parsed_args):
252
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
234
253
  client = self.app.client_manager.network
235
254
  obj = client.find_segment(
236
255
  parsed_args.network_segment, ignore_missing=False
@@ -249,7 +268,7 @@ class SetNetworkSegment(common.NeutronCommandWithExtraArgs):
249
268
  class ShowNetworkSegment(command.ShowOne):
250
269
  _description = _("Display network segment details")
251
270
 
252
- def get_parser(self, prog_name):
271
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
253
272
  parser = super().get_parser(prog_name)
254
273
  parser.add_argument(
255
274
  'network_segment',
@@ -258,7 +277,9 @@ class ShowNetworkSegment(command.ShowOne):
258
277
  )
259
278
  return parser
260
279
 
261
- def take_action(self, parsed_args):
280
+ def take_action(
281
+ self, parsed_args: argparse.Namespace
282
+ ) -> tuple[Sequence[str], Iterable[Any]]:
262
283
  client = self.app.client_manager.network
263
284
  obj = client.find_segment(
264
285
  parsed_args.network_segment, ignore_missing=False