python-openstackclient 8.3.0__py3-none-any.whl → 10.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 (292) 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 +58 -42
  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 +14 -6
  14. openstackclient/common/pagination.py +8 -2
  15. openstackclient/common/progressbar.py +7 -6
  16. openstackclient/common/project_cleanup.py +13 -7
  17. openstackclient/common/quota.py +126 -114
  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 +39 -21
  25. openstackclient/compute/v2/host.py +14 -6
  26. openstackclient/compute/v2/hypervisor.py +14 -5
  27. openstackclient/compute/v2/hypervisor_stats.py +10 -2
  28. openstackclient/compute/v2/keypair.py +29 -14
  29. openstackclient/compute/v2/server.py +251 -171
  30. openstackclient/compute/v2/server_backup.py +10 -4
  31. openstackclient/compute/v2/server_event.py +21 -12
  32. openstackclient/compute/v2/server_group.py +21 -11
  33. openstackclient/compute/v2/server_image.py +19 -10
  34. openstackclient/compute/v2/server_migration.py +24 -10
  35. openstackclient/compute/v2/server_share.py +274 -0
  36. openstackclient/compute/v2/server_volume.py +10 -4
  37. openstackclient/compute/v2/service.py +14 -7
  38. openstackclient/compute/v2/usage.py +26 -21
  39. openstackclient/identity/client.py +8 -3
  40. openstackclient/identity/common.py +103 -41
  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 +26 -12
  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 +26 -12
  51. openstackclient/identity/v3/application_credential.py +59 -24
  52. openstackclient/identity/v3/catalog.py +14 -7
  53. openstackclient/identity/v3/consumer.py +22 -11
  54. openstackclient/identity/v3/credential.py +36 -16
  55. openstackclient/identity/v3/domain.py +37 -18
  56. openstackclient/identity/v3/ec2creds.py +25 -12
  57. openstackclient/identity/v3/endpoint.py +42 -20
  58. openstackclient/identity/v3/endpoint_group.py +28 -17
  59. openstackclient/identity/v3/federation_protocol.py +71 -50
  60. openstackclient/identity/v3/group.py +55 -32
  61. openstackclient/identity/v3/identity_provider.py +92 -57
  62. openstackclient/identity/v3/implied_role.py +21 -9
  63. openstackclient/identity/v3/limit.py +115 -92
  64. openstackclient/identity/v3/mapping.py +26 -13
  65. openstackclient/identity/v3/policy.py +23 -12
  66. openstackclient/identity/v3/project.py +211 -122
  67. openstackclient/identity/v3/region.py +36 -16
  68. openstackclient/identity/v3/registered_limit.py +116 -109
  69. openstackclient/identity/v3/role.py +61 -31
  70. openstackclient/identity/v3/role_assignment.py +23 -6
  71. openstackclient/identity/v3/service.py +36 -16
  72. openstackclient/identity/v3/service_provider.py +37 -15
  73. openstackclient/identity/v3/tag.py +23 -17
  74. openstackclient/identity/v3/token.py +30 -14
  75. openstackclient/identity/v3/trust.py +32 -14
  76. openstackclient/identity/v3/unscoped_saml.py +10 -2
  77. openstackclient/identity/v3/user.py +49 -26
  78. openstackclient/image/client.py +7 -3
  79. openstackclient/image/v1/image.py +33 -26
  80. openstackclient/image/v2/cache.py +14 -9
  81. openstackclient/image/v2/image.py +76 -49
  82. openstackclient/image/v2/info.py +7 -1
  83. openstackclient/image/v2/metadef_namespaces.py +109 -13
  84. openstackclient/image/v2/metadef_objects.py +28 -15
  85. openstackclient/image/v2/metadef_properties.py +24 -13
  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 +15 -6
  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 +36 -22
  93. openstackclient/network/v2/address_group.py +27 -16
  94. openstackclient/network/v2/address_scope.py +24 -13
  95. openstackclient/network/v2/bgpvpn/bgpvpn.py +463 -0
  96. openstackclient/network/v2/bgpvpn/constants.py +30 -0
  97. openstackclient/network/v2/bgpvpn/network_association.py +214 -0
  98. openstackclient/network/v2/bgpvpn/port_association.py +490 -0
  99. openstackclient/network/v2/bgpvpn/router_association.py +288 -0
  100. openstackclient/network/v2/default_security_group_rule.py +19 -10
  101. openstackclient/network/v2/floating_ip.py +110 -159
  102. openstackclient/network/v2/floating_ip_port_forwarding.py +30 -18
  103. openstackclient/network/v2/fwaas/__init__.py +0 -0
  104. openstackclient/network/v2/fwaas/group.py +466 -0
  105. openstackclient/network/v2/fwaas/policy.py +518 -0
  106. openstackclient/network/v2/fwaas/rule.py +574 -0
  107. openstackclient/network/v2/ip_availability.py +13 -5
  108. openstackclient/network/v2/l3_conntrack_helper.py +22 -13
  109. openstackclient/network/v2/local_ip.py +24 -13
  110. openstackclient/network/v2/local_ip_association.py +14 -7
  111. openstackclient/network/v2/ndp_proxy.py +20 -11
  112. openstackclient/network/v2/network.py +129 -196
  113. openstackclient/network/v2/network_agent.py +46 -25
  114. openstackclient/network/v2/network_auto_allocated_topology.py +22 -11
  115. openstackclient/network/v2/network_flavor.py +27 -16
  116. openstackclient/network/v2/network_flavor_profile.py +23 -12
  117. openstackclient/network/v2/network_meter.py +21 -10
  118. openstackclient/network/v2/network_meter_rule.py +21 -11
  119. openstackclient/network/v2/network_qos_policy.py +25 -15
  120. openstackclient/network/v2/network_qos_rule.py +32 -17
  121. openstackclient/network/v2/network_qos_rule_type.py +13 -5
  122. openstackclient/network/v2/network_rbac.py +23 -12
  123. openstackclient/network/v2/network_segment.py +20 -11
  124. openstackclient/network/v2/network_segment_range.py +56 -29
  125. openstackclient/network/v2/network_service_provider.py +7 -1
  126. openstackclient/network/v2/network_trunk.py +38 -22
  127. openstackclient/network/v2/port.py +54 -29
  128. openstackclient/network/v2/router.py +75 -52
  129. openstackclient/network/v2/security_group.py +87 -157
  130. openstackclient/network/v2/security_group_rule.py +100 -280
  131. openstackclient/network/v2/subnet.py +49 -28
  132. openstackclient/network/v2/subnet_pool.py +30 -17
  133. openstackclient/network/v2/taas/tap_flow.py +22 -11
  134. openstackclient/network/v2/taas/tap_mirror.py +22 -11
  135. openstackclient/network/v2/taas/tap_service.py +23 -12
  136. openstackclient/object/client.py +7 -2
  137. openstackclient/object/v1/account.py +13 -6
  138. openstackclient/object/v1/container.py +25 -15
  139. openstackclient/object/v1/object.py +25 -15
  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 +25 -19
  151. openstackclient/tests/functional/identity/v3/test_group.py +20 -20
  152. openstackclient/tests/functional/identity/v3/test_idp.py +3 -1
  153. openstackclient/tests/functional/identity/v3/test_limit.py +47 -0
  154. openstackclient/tests/functional/identity/v3/test_project.py +10 -10
  155. openstackclient/tests/functional/identity/v3/test_role.py +18 -18
  156. openstackclient/tests/functional/identity/v3/test_role_assignment.py +12 -12
  157. openstackclient/tests/functional/identity/v3/test_user.py +8 -8
  158. openstackclient/tests/functional/image/base.py +1 -6
  159. openstackclient/tests/functional/image/v2/test_metadef_objects.py +69 -0
  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_snapshot.py +56 -138
  172. openstackclient/tests/functional/volume/v3/test_volume_type.py +2 -2
  173. openstackclient/tests/unit/common/test_availability_zone.py +35 -49
  174. openstackclient/tests/unit/common/test_extension.py +2 -2
  175. openstackclient/tests/unit/common/test_module.py +12 -7
  176. openstackclient/tests/unit/common/test_project_cleanup.py +3 -1
  177. openstackclient/tests/unit/common/test_quota.py +62 -23
  178. openstackclient/tests/unit/compute/v2/fakes.py +25 -0
  179. openstackclient/tests/unit/compute/v2/test_flavor.py +28 -2
  180. openstackclient/tests/unit/compute/v2/test_keypair.py +6 -6
  181. openstackclient/tests/unit/compute/v2/test_server.py +17 -104
  182. openstackclient/tests/unit/compute/v2/test_server_share.py +287 -0
  183. openstackclient/tests/unit/identity/v3/fakes.py +3 -0
  184. openstackclient/tests/unit/identity/v3/test_group.py +4 -14
  185. openstackclient/tests/unit/identity/v3/test_identity_provider.py +303 -299
  186. openstackclient/tests/unit/identity/v3/test_limit.py +197 -145
  187. openstackclient/tests/unit/identity/v3/test_project.py +831 -512
  188. openstackclient/tests/unit/identity/v3/test_protocol.py +97 -88
  189. openstackclient/tests/unit/identity/v3/test_registered_limit.py +355 -220
  190. openstackclient/tests/unit/identity/v3/test_user.py +4 -4
  191. openstackclient/tests/unit/image/v2/test_image.py +16 -16
  192. openstackclient/tests/unit/image/v2/test_metadef_namespaces.py +105 -6
  193. openstackclient/tests/unit/network/test_common.py +0 -155
  194. openstackclient/tests/unit/network/v2/bgpvpn/__init__.py +0 -0
  195. openstackclient/tests/unit/network/v2/bgpvpn/fakes.py +179 -0
  196. openstackclient/tests/unit/network/v2/bgpvpn/test_bgpvpn.py +584 -0
  197. openstackclient/tests/unit/network/v2/bgpvpn/test_network_association.py +285 -0
  198. openstackclient/tests/unit/network/v2/bgpvpn/test_port_association.py +384 -0
  199. openstackclient/tests/unit/network/v2/bgpvpn/test_router_association.py +297 -0
  200. openstackclient/tests/unit/network/v2/fwaas/__init__.py +0 -0
  201. openstackclient/tests/unit/network/v2/fwaas/test_group.py +897 -0
  202. openstackclient/tests/unit/network/v2/fwaas/test_policy.py +869 -0
  203. openstackclient/tests/unit/network/v2/fwaas/test_rule.py +980 -0
  204. openstackclient/tests/unit/network/v2/taas/{test_osc_tap_flow.py → test_tap_flow.py} +18 -25
  205. openstackclient/tests/unit/network/v2/taas/{test_osc_tap_mirror.py → test_tap_mirror.py} +19 -29
  206. openstackclient/tests/unit/network/v2/taas/{test_osc_tap_service.py → test_tap_service.py} +19 -29
  207. openstackclient/tests/unit/network/v2/test_address_group.py +2 -2
  208. openstackclient/tests/unit/network/v2/{test_floating_ip_network.py → test_floating_ip.py} +3 -2
  209. openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +13 -13
  210. openstackclient/tests/unit/network/v2/test_network_agent.py +8 -4
  211. openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py +3 -3
  212. openstackclient/tests/unit/network/v2/test_network_flavor.py +2 -2
  213. openstackclient/tests/unit/network/v2/test_network_qos_policy.py +1 -1
  214. openstackclient/tests/unit/network/v2/test_network_qos_rule.py +2 -2
  215. openstackclient/tests/unit/network/v2/test_network_rbac.py +1 -1
  216. openstackclient/tests/unit/network/v2/test_network_segment.py +1 -1
  217. openstackclient/tests/unit/network/v2/test_network_segment_range.py +7 -10
  218. openstackclient/tests/unit/network/v2/test_network_trunk.py +1 -1
  219. openstackclient/tests/unit/network/v2/test_router.py +8 -9
  220. openstackclient/tests/unit/network/v2/{test_security_group_network.py → test_security_group.py} +1 -20
  221. openstackclient/tests/unit/network/v2/{test_security_group_rule_network.py → test_security_group_rule.py} +7 -41
  222. openstackclient/tests/unit/network/v2/test_subnet.py +2 -1
  223. openstackclient/tests/unit/network/v2/test_subnet_pool.py +2 -1
  224. openstackclient/tests/unit/object/v1/fakes.py +8 -7
  225. openstackclient/tests/unit/object/v1/test_container.py +65 -101
  226. openstackclient/tests/unit/object/v1/test_container_all.py +8 -1
  227. openstackclient/tests/unit/object/v1/test_object.py +44 -84
  228. openstackclient/tests/unit/object/v1/test_object_all.py +8 -1
  229. openstackclient/tests/unit/test_hacking.py +108 -0
  230. openstackclient/tests/unit/volume/v2/fakes.py +1 -0
  231. openstackclient/tests/unit/volume/v2/test_consistency_group.py +8 -2
  232. openstackclient/tests/unit/volume/v2/test_volume.py +7 -6
  233. openstackclient/tests/unit/volume/v2/test_volume_backup.py +1 -5
  234. openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +2 -1
  235. openstackclient/tests/unit/volume/v2/test_volume_type.py +2 -4
  236. openstackclient/tests/unit/volume/v3/fakes.py +1 -0
  237. openstackclient/tests/unit/volume/v3/test_volume.py +94 -15
  238. openstackclient/tests/unit/volume/v3/test_volume_attachment.py +1 -1
  239. openstackclient/tests/unit/volume/v3/test_volume_backup.py +1 -5
  240. openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +55 -1
  241. openstackclient/tests/unit/volume/v3/test_volume_type.py +2 -4
  242. openstackclient/volume/client.py +7 -3
  243. openstackclient/volume/v2/backup_record.py +15 -6
  244. openstackclient/volume/v2/consistency_group.py +37 -25
  245. openstackclient/volume/v2/consistency_group_snapshot.py +27 -12
  246. openstackclient/volume/v2/qos_specs.py +30 -19
  247. openstackclient/volume/v2/service.py +17 -6
  248. openstackclient/volume/v2/volume.py +69 -34
  249. openstackclient/volume/v2/volume_backend.py +19 -6
  250. openstackclient/volume/v2/volume_backup.py +48 -22
  251. openstackclient/volume/v2/volume_host.py +6 -4
  252. openstackclient/volume/v2/volume_snapshot.py +52 -26
  253. openstackclient/volume/v2/volume_transfer_request.py +33 -15
  254. openstackclient/volume/v2/volume_type.py +46 -27
  255. openstackclient/volume/v3/block_storage_cleanup.py +11 -3
  256. openstackclient/volume/v3/block_storage_cluster.py +19 -7
  257. openstackclient/volume/v3/block_storage_log_level.py +15 -6
  258. openstackclient/volume/v3/block_storage_manage.py +10 -4
  259. openstackclient/volume/v3/block_storage_resource_filter.py +17 -5
  260. openstackclient/volume/v3/service.py +16 -6
  261. openstackclient/volume/v3/volume.py +103 -46
  262. openstackclient/volume/v3/volume_attachment.py +43 -21
  263. openstackclient/volume/v3/volume_backup.py +55 -26
  264. openstackclient/volume/v3/volume_group.py +23 -13
  265. openstackclient/volume/v3/volume_group_snapshot.py +32 -13
  266. openstackclient/volume/v3/volume_group_type.py +26 -13
  267. openstackclient/volume/v3/volume_message.py +15 -7
  268. openstackclient/volume/v3/volume_snapshot.py +71 -34
  269. openstackclient/volume/v3/volume_transfer_request.py +33 -15
  270. openstackclient/volume/v3/volume_type.py +45 -27
  271. {python_openstackclient-8.3.0.dist-info → python_openstackclient-10.0.0.dist-info}/METADATA +6 -6
  272. {python_openstackclient-8.3.0.dist-info → python_openstackclient-10.0.0.dist-info}/RECORD +279 -267
  273. {python_openstackclient-8.3.0.dist-info → python_openstackclient-10.0.0.dist-info}/WHEEL +1 -1
  274. {python_openstackclient-8.3.0.dist-info → python_openstackclient-10.0.0.dist-info}/entry_points.txt +53 -1
  275. {python_openstackclient-8.3.0.dist-info → python_openstackclient-10.0.0.dist-info}/licenses/AUTHORS +9 -0
  276. python_openstackclient-10.0.0.dist-info/pbr.json +1 -0
  277. openstackclient/api/image_v1.py +0 -69
  278. openstackclient/api/image_v2.py +0 -79
  279. openstackclient/network/v2/floating_ip_pool.py +0 -38
  280. openstackclient/tests/functional/image/v1/test_image.py +0 -97
  281. openstackclient/tests/unit/api/test_image_v1.py +0 -96
  282. openstackclient/tests/unit/api/test_image_v2.py +0 -96
  283. openstackclient/tests/unit/network/v2/test_floating_ip_compute.py +0 -248
  284. openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py +0 -49
  285. openstackclient/tests/unit/network/v2/test_floating_ip_pool_network.py +0 -39
  286. openstackclient/tests/unit/network/v2/test_network_compute.py +0 -404
  287. openstackclient/tests/unit/network/v2/test_security_group_compute.py +0 -392
  288. openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +0 -555
  289. python_openstackclient-8.3.0.dist-info/pbr.json +0 -1
  290. /openstackclient/{tests/functional/image/v1 → network/v2/bgpvpn}/__init__.py +0 -0
  291. {python_openstackclient-8.3.0.dist-info → python_openstackclient-10.0.0.dist-info}/licenses/LICENSE +0 -0
  292. {python_openstackclient-8.3.0.dist-info → python_openstackclient-10.0.0.dist-info}/top_level.txt +0 -0
@@ -13,7 +13,10 @@
13
13
 
14
14
  """L3 Conntrack Helper action implementations"""
15
15
 
16
+ import argparse
16
17
  import logging
18
+ from collections.abc import Iterable, Sequence
19
+ from typing import Any
17
20
 
18
21
  from osc_lib import exceptions
19
22
  from osc_lib import utils
@@ -24,16 +27,16 @@ from openstackclient.i18n import _
24
27
  LOG = logging.getLogger(__name__)
25
28
 
26
29
 
27
- def _get_columns(item):
30
+ def _get_columns(item: Any) -> tuple[tuple[str, ...], tuple[str, ...]]:
28
31
  hidden_columns = ['location', 'tenant_id']
29
32
  return utils.get_osc_show_columns_for_sdk_resource(
30
33
  item, {}, hidden_columns
31
34
  )
32
35
 
33
36
 
34
- def _get_attrs(client, parsed_args):
37
+ def _get_attrs(client: Any, parsed_args: argparse.Namespace) -> dict[str, Any]:
35
38
  router = client.find_router(parsed_args.router, ignore_missing=False)
36
- attrs = {'router_id': router.id}
39
+ attrs: dict[str, Any] = {'router_id': router.id}
37
40
  if parsed_args.helper:
38
41
  attrs['helper'] = parsed_args.helper
39
42
  if parsed_args.protocol:
@@ -47,7 +50,7 @@ def _get_attrs(client, parsed_args):
47
50
  class CreateConntrackHelper(command.ShowOne):
48
51
  _description = _("Create a new L3 conntrack helper")
49
52
 
50
- def get_parser(self, prog_name):
53
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
51
54
  parser = super().get_parser(prog_name)
52
55
  parser.add_argument(
53
56
  'router',
@@ -78,7 +81,9 @@ class CreateConntrackHelper(command.ShowOne):
78
81
 
79
82
  return parser
80
83
 
81
- def take_action(self, parsed_args):
84
+ def take_action(
85
+ self, parsed_args: argparse.Namespace
86
+ ) -> tuple[Sequence[str], Iterable[Any]]:
82
87
  client = self.app.client_manager.network
83
88
 
84
89
  attrs = _get_attrs(client, parsed_args)
@@ -92,7 +97,7 @@ class CreateConntrackHelper(command.ShowOne):
92
97
  class DeleteConntrackHelper(command.Command):
93
98
  _description = _("Delete L3 conntrack helper")
94
99
 
95
- def get_parser(self, prog_name):
100
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
96
101
  parser = super().get_parser(prog_name)
97
102
  parser.add_argument(
98
103
  'router',
@@ -108,7 +113,7 @@ class DeleteConntrackHelper(command.Command):
108
113
 
109
114
  return parser
110
115
 
111
- def take_action(self, parsed_args):
116
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
112
117
  client = self.app.client_manager.network
113
118
  result = 0
114
119
 
@@ -140,7 +145,7 @@ class DeleteConntrackHelper(command.Command):
140
145
  class ListConntrackHelper(command.Lister):
141
146
  _description = _("List L3 conntrack helpers")
142
147
 
143
- def get_parser(self, prog_name):
148
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
144
149
  parser = super().get_parser(prog_name)
145
150
  parser.add_argument(
146
151
  'router',
@@ -174,7 +179,9 @@ class ListConntrackHelper(command.Lister):
174
179
 
175
180
  return parser
176
181
 
177
- def take_action(self, parsed_args):
182
+ def take_action(
183
+ self, parsed_args: argparse.Namespace
184
+ ) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
178
185
  client = self.app.client_manager.network
179
186
  columns = (
180
187
  'id',
@@ -209,7 +216,7 @@ class ListConntrackHelper(command.Lister):
209
216
  class SetConntrackHelper(command.Command):
210
217
  _description = _("Set L3 conntrack helper properties")
211
218
 
212
- def get_parser(self, prog_name):
219
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
213
220
  parser = super().get_parser(prog_name)
214
221
  parser.add_argument(
215
222
  'router',
@@ -241,7 +248,7 @@ class SetConntrackHelper(command.Command):
241
248
  )
242
249
  return parser
243
250
 
244
- def take_action(self, parsed_args):
251
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
245
252
  client = self.app.client_manager.network
246
253
  attrs = _get_attrs(client, parsed_args)
247
254
  if attrs:
@@ -255,7 +262,7 @@ class SetConntrackHelper(command.Command):
255
262
  class ShowConntrackHelper(command.ShowOne):
256
263
  _description = _("Display L3 conntrack helper details")
257
264
 
258
- def get_parser(self, prog_name):
265
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
259
266
  parser = super().get_parser(prog_name)
260
267
  parser.add_argument(
261
268
  'router',
@@ -270,7 +277,9 @@ class ShowConntrackHelper(command.ShowOne):
270
277
 
271
278
  return parser
272
279
 
273
- def take_action(self, parsed_args):
280
+ def take_action(
281
+ self, parsed_args: argparse.Namespace
282
+ ) -> tuple[Sequence[str], Iterable[Any]]:
274
283
  client = self.app.client_manager.network
275
284
  router = client.find_router(parsed_args.router, ignore_missing=False)
276
285
  obj = client.get_conntrack_helper(
@@ -15,7 +15,10 @@
15
15
 
16
16
  """Node Local IP action implementations"""
17
17
 
18
+ import argparse
18
19
  import logging
20
+ from collections.abc import Iterable, Sequence
21
+ from typing import Any
19
22
 
20
23
  from osc_lib import exceptions
21
24
  from osc_lib import utils
@@ -27,15 +30,17 @@ from openstackclient.identity import common as identity_common
27
30
  LOG = logging.getLogger(__name__)
28
31
 
29
32
 
30
- def _get_columns(item):
33
+ def _get_columns(item: Any) -> tuple[tuple[str, ...], tuple[str, ...]]:
31
34
  hidden_columns = ['location', 'tenant_id']
32
35
  return utils.get_osc_show_columns_for_sdk_resource(
33
36
  item, {}, hidden_columns
34
37
  )
35
38
 
36
39
 
37
- def _get_attrs(client_manager, parsed_args):
38
- attrs = {}
40
+ def _get_attrs(
41
+ client_manager: Any, parsed_args: argparse.Namespace
42
+ ) -> dict[str, Any]:
43
+ attrs: dict[str, Any] = {}
39
44
  network_client = client_manager.network
40
45
 
41
46
  if parsed_args.name:
@@ -70,7 +75,7 @@ def _get_attrs(client_manager, parsed_args):
70
75
  class CreateLocalIP(command.ShowOne):
71
76
  _description = _("Create Local IP")
72
77
 
73
- def get_parser(self, prog_name):
78
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
74
79
  parser = super().get_parser(prog_name)
75
80
  parser.add_argument(
76
81
  '--name', metavar="<name>", help=_("New Local IP name")
@@ -105,7 +110,9 @@ class CreateLocalIP(command.ShowOne):
105
110
 
106
111
  return parser
107
112
 
108
- def take_action(self, parsed_args):
113
+ def take_action(
114
+ self, parsed_args: argparse.Namespace
115
+ ) -> tuple[Sequence[str], Iterable[Any]]:
109
116
  client = self.app.client_manager.network
110
117
  attrs = _get_attrs(self.app.client_manager, parsed_args)
111
118
 
@@ -119,7 +126,7 @@ class CreateLocalIP(command.ShowOne):
119
126
  class DeleteLocalIP(command.Command):
120
127
  _description = _("Delete Local IP(s)")
121
128
 
122
- def get_parser(self, prog_name):
129
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
123
130
  parser = super().get_parser(prog_name)
124
131
  parser.add_argument(
125
132
  'local_ip',
@@ -130,7 +137,7 @@ class DeleteLocalIP(command.Command):
130
137
 
131
138
  return parser
132
139
 
133
- def take_action(self, parsed_args):
140
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
134
141
  client = self.app.client_manager.network
135
142
  result = 0
136
143
 
@@ -160,7 +167,7 @@ class DeleteLocalIP(command.Command):
160
167
  class SetLocalIP(command.Command):
161
168
  _description = _("Set Local IP properties")
162
169
 
163
- def get_parser(self, prog_name):
170
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
164
171
  parser = super().get_parser(prog_name)
165
172
  parser.add_argument(
166
173
  'local_ip',
@@ -177,7 +184,7 @@ class SetLocalIP(command.Command):
177
184
  )
178
185
  return parser
179
186
 
180
- def take_action(self, parsed_args):
187
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
181
188
  client = self.app.client_manager.network
182
189
  obj = client.find_local_ip(parsed_args.local_ip, ignore_missing=False)
183
190
  attrs = {}
@@ -192,7 +199,7 @@ class SetLocalIP(command.Command):
192
199
  class ListLocalIP(command.Lister):
193
200
  _description = _("List Local IPs")
194
201
 
195
- def get_parser(self, prog_name):
202
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
196
203
  parser = super().get_parser(prog_name)
197
204
 
198
205
  parser.add_argument(
@@ -236,7 +243,9 @@ class ListLocalIP(command.Lister):
236
243
 
237
244
  return parser
238
245
 
239
- def take_action(self, parsed_args):
246
+ def take_action(
247
+ self, parsed_args: argparse.Namespace
248
+ ) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
240
249
  client = self.app.client_manager.network
241
250
  columns = (
242
251
  'id',
@@ -301,7 +310,7 @@ class ListLocalIP(command.Lister):
301
310
  class ShowLocalIP(command.ShowOne):
302
311
  _description = _("Display Local IP details")
303
312
 
304
- def get_parser(self, prog_name):
313
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
305
314
  parser = super().get_parser(prog_name)
306
315
  parser.add_argument(
307
316
  'local_ip',
@@ -311,7 +320,9 @@ class ShowLocalIP(command.ShowOne):
311
320
 
312
321
  return parser
313
322
 
314
- def take_action(self, parsed_args):
323
+ def take_action(
324
+ self, parsed_args: argparse.Namespace
325
+ ) -> tuple[Sequence[str], Iterable[Any]]:
315
326
  client = self.app.client_manager.network
316
327
  obj = client.find_local_ip(parsed_args.local_ip, ignore_missing=False)
317
328
  display_columns, columns = _get_columns(obj)
@@ -15,7 +15,10 @@
15
15
 
16
16
  """Node Local IP action implementations"""
17
17
 
18
+ import argparse
18
19
  import logging
20
+ from collections.abc import Iterable, Sequence
21
+ from typing import Any
19
22
 
20
23
  from osc_lib import exceptions
21
24
  from osc_lib import utils
@@ -27,7 +30,7 @@ from openstackclient.identity import common as identity_common
27
30
  LOG = logging.getLogger(__name__)
28
31
 
29
32
 
30
- def _get_columns(item):
33
+ def _get_columns(item: Any) -> tuple[tuple[str, ...], tuple[str, ...]]:
31
34
  hidden_columns = ['location', 'name', 'id', 'tenant_id']
32
35
  return utils.get_osc_show_columns_for_sdk_resource(
33
36
  item, {}, hidden_columns
@@ -37,7 +40,7 @@ def _get_columns(item):
37
40
  class CreateLocalIPAssociation(command.ShowOne):
38
41
  _description = _("Create Local IP Association")
39
42
 
40
- def get_parser(self, prog_name):
43
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
41
44
  parser = super().get_parser(prog_name)
42
45
  parser.add_argument(
43
46
  'local_ip',
@@ -61,7 +64,9 @@ class CreateLocalIPAssociation(command.ShowOne):
61
64
 
62
65
  return parser
63
66
 
64
- def take_action(self, parsed_args):
67
+ def take_action(
68
+ self, parsed_args: argparse.Namespace
69
+ ) -> tuple[Sequence[str], Iterable[Any]]:
65
70
  client = self.app.client_manager.network
66
71
 
67
72
  attrs = {}
@@ -83,7 +88,7 @@ class CreateLocalIPAssociation(command.ShowOne):
83
88
  class DeleteLocalIPAssociation(command.Command):
84
89
  _description = _("Delete Local IP association(s)")
85
90
 
86
- def get_parser(self, prog_name):
91
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
87
92
  parser = super().get_parser(prog_name)
88
93
  parser.add_argument(
89
94
  'local_ip',
@@ -100,7 +105,7 @@ class DeleteLocalIPAssociation(command.Command):
100
105
  )
101
106
  return parser
102
107
 
103
- def take_action(self, parsed_args):
108
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
104
109
  client = self.app.client_manager.network
105
110
  local_ip = client.find_local_ip(
106
111
  parsed_args.local_ip,
@@ -138,7 +143,7 @@ class DeleteLocalIPAssociation(command.Command):
138
143
  class ListLocalIPAssociation(command.Lister):
139
144
  _description = _("List Local IP Associations")
140
145
 
141
- def get_parser(self, prog_name):
146
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
142
147
  parser = super().get_parser(prog_name)
143
148
 
144
149
  parser.add_argument(
@@ -170,7 +175,9 @@ class ListLocalIPAssociation(command.Lister):
170
175
 
171
176
  return parser
172
177
 
173
- def take_action(self, parsed_args):
178
+ def take_action(
179
+ self, parsed_args: argparse.Namespace
180
+ ) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
174
181
  client = self.app.client_manager.network
175
182
  columns = (
176
183
  'local_ip_id',
@@ -15,7 +15,10 @@
15
15
 
16
16
  """Router NDP proxy action implementations"""
17
17
 
18
+ import argparse
18
19
  import logging
20
+ from collections.abc import Iterable, Sequence
21
+ from typing import Any
19
22
 
20
23
  from osc_lib import exceptions
21
24
  from osc_lib import utils
@@ -28,7 +31,7 @@ from openstackclient.identity import common as identity_common
28
31
  LOG = logging.getLogger(__name__)
29
32
 
30
33
 
31
- def _get_columns(item):
34
+ def _get_columns(item: Any) -> tuple[tuple[str, ...], tuple[str, ...]]:
32
35
  hidden_columns = ['location']
33
36
  return utils.get_osc_show_columns_for_sdk_resource(
34
37
  item, {}, hidden_columns
@@ -38,7 +41,7 @@ def _get_columns(item):
38
41
  class CreateNDPProxy(command.ShowOne):
39
42
  _description = _("Create NDP proxy")
40
43
 
41
- def get_parser(self, prog_name):
44
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
42
45
  parser = super().get_parser(prog_name)
43
46
  parser.add_argument(
44
47
  'router', metavar='<router>', help=_("The name or ID of a router")
@@ -75,7 +78,9 @@ class CreateNDPProxy(command.ShowOne):
75
78
 
76
79
  return parser
77
80
 
78
- def take_action(self, parsed_args):
81
+ def take_action(
82
+ self, parsed_args: argparse.Namespace
83
+ ) -> tuple[Sequence[str], Iterable[Any]]:
79
84
  attrs = {'name': parsed_args.name}
80
85
  client = self.app.client_manager.network
81
86
  router = client.find_router(
@@ -102,7 +107,7 @@ class CreateNDPProxy(command.ShowOne):
102
107
  class DeleteNDPProxy(command.Command):
103
108
  _description = _("Delete NDP proxy")
104
109
 
105
- def get_parser(self, prog_name):
110
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
106
111
  parser = super().get_parser(prog_name)
107
112
  parser.add_argument(
108
113
  'ndp_proxy',
@@ -112,7 +117,7 @@ class DeleteNDPProxy(command.Command):
112
117
  )
113
118
  return parser
114
119
 
115
- def take_action(self, parsed_args):
120
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
116
121
  client = self.app.client_manager.network
117
122
  result = 0
118
123
 
@@ -137,7 +142,7 @@ class DeleteNDPProxy(command.Command):
137
142
  class ListNDPProxy(command.Lister):
138
143
  _description = _("List NDP proxies")
139
144
 
140
- def get_parser(self, prog_name):
145
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
141
146
  parser = super().get_parser(prog_name)
142
147
  parser.add_argument(
143
148
  '--router',
@@ -180,7 +185,9 @@ class ListNDPProxy(command.Lister):
180
185
 
181
186
  return parser
182
187
 
183
- def take_action(self, parsed_args):
188
+ def take_action(
189
+ self, parsed_args: argparse.Namespace
190
+ ) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
184
191
  client = self.app.client_manager.network
185
192
  identity_client = self.app.client_manager.identity
186
193
 
@@ -239,7 +246,7 @@ class ListNDPProxy(command.Lister):
239
246
  class SetNDPProxy(command.Command):
240
247
  _description = _("Set NDP proxy properties")
241
248
 
242
- def get_parser(self, prog_name):
249
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
243
250
  parser = super().get_parser(prog_name)
244
251
  parser.add_argument(
245
252
  'ndp_proxy',
@@ -259,7 +266,7 @@ class SetNDPProxy(command.Command):
259
266
  )
260
267
  return parser
261
268
 
262
- def take_action(self, parsed_args):
269
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
263
270
  client = self.app.client_manager.network
264
271
  attrs = {}
265
272
  if parsed_args.description is not None:
@@ -276,7 +283,7 @@ class SetNDPProxy(command.Command):
276
283
  class ShowNDPProxy(command.ShowOne):
277
284
  _description = _("Display NDP proxy details")
278
285
 
279
- def get_parser(self, prog_name):
286
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
280
287
  parser = super().get_parser(prog_name)
281
288
  parser.add_argument(
282
289
  'ndp_proxy',
@@ -285,7 +292,9 @@ class ShowNDPProxy(command.ShowOne):
285
292
  )
286
293
  return parser
287
294
 
288
- def take_action(self, parsed_args):
295
+ def take_action(
296
+ self, parsed_args: argparse.Namespace
297
+ ) -> tuple[Sequence[str], Iterable[Any]]:
289
298
  client = self.app.client_manager.network
290
299
  obj = client.find_ndp_proxy(
291
300
  parsed_args.ndp_proxy, ignore_missing=False