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,8 +13,10 @@
13
13
 
14
14
  """Meter Rule Implementations"""
15
15
 
16
+ import argparse
16
17
  import logging
17
- import typing as ty
18
+ from collections.abc import Iterable, Sequence
19
+ from typing import Any
18
20
 
19
21
  from osc_lib import exceptions
20
22
  from osc_lib import utils
@@ -27,15 +29,17 @@ from openstackclient.network import common
27
29
  LOG = logging.getLogger(__name__)
28
30
 
29
31
 
30
- def _get_columns(item):
32
+ def _get_columns(item: Any) -> tuple[tuple[str, ...], tuple[str, ...]]:
31
33
  hidden_columns = ['location', 'tenant_id']
32
34
  return utils.get_osc_show_columns_for_sdk_resource(
33
35
  item, {}, hidden_columns
34
36
  )
35
37
 
36
38
 
37
- def _get_attrs(client_manager, parsed_args):
38
- attrs: dict[str, ty.Any] = {}
39
+ def _get_attrs(
40
+ client_manager: Any, parsed_args: argparse.Namespace
41
+ ) -> dict[str, Any]:
42
+ attrs: dict[str, Any] = {}
39
43
 
40
44
  if parsed_args.exclude:
41
45
  attrs['excluded'] = True
@@ -68,7 +72,7 @@ def _get_attrs(client_manager, parsed_args):
68
72
  class CreateMeterRule(command.ShowOne, common.NeutronCommandWithExtraArgs):
69
73
  _description = _("Create a new meter rule")
70
74
 
71
- def get_parser(self, prog_name):
75
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
72
76
  parser = super().get_parser(prog_name)
73
77
 
74
78
  parser.add_argument(
@@ -125,7 +129,9 @@ class CreateMeterRule(command.ShowOne, common.NeutronCommandWithExtraArgs):
125
129
 
126
130
  return parser
127
131
 
128
- def take_action(self, parsed_args):
132
+ def take_action(
133
+ self, parsed_args: argparse.Namespace
134
+ ) -> tuple[Sequence[str], Iterable[Any]]:
129
135
  client = self.app.client_manager.network
130
136
  _meter = client.find_metering_label(
131
137
  parsed_args.meter, ignore_missing=False
@@ -145,7 +151,7 @@ class CreateMeterRule(command.ShowOne, common.NeutronCommandWithExtraArgs):
145
151
  class DeleteMeterRule(command.Command):
146
152
  _description = _("Delete meter rule(s)")
147
153
 
148
- def get_parser(self, prog_name):
154
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
149
155
  parser = super().get_parser(prog_name)
150
156
 
151
157
  parser.add_argument(
@@ -157,7 +163,7 @@ class DeleteMeterRule(command.Command):
157
163
 
158
164
  return parser
159
165
 
160
- def take_action(self, parsed_args):
166
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
161
167
  client = self.app.client_manager.network
162
168
  result = 0
163
169
 
@@ -183,7 +189,9 @@ class DeleteMeterRule(command.Command):
183
189
  class ListMeterRule(command.Lister):
184
190
  _description = _("List meter rules")
185
191
 
186
- def take_action(self, parsed_args):
192
+ def take_action(
193
+ self, parsed_args: argparse.Namespace
194
+ ) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
187
195
  client = self.app.client_manager.network
188
196
 
189
197
  columns = (
@@ -218,7 +226,7 @@ class ListMeterRule(command.Lister):
218
226
  class ShowMeterRule(command.ShowOne):
219
227
  _description = _("Display meter rules details")
220
228
 
221
- def get_parser(self, prog_name):
229
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
222
230
  parser = super().get_parser(prog_name)
223
231
  parser.add_argument(
224
232
  'meter_rule_id',
@@ -227,7 +235,9 @@ class ShowMeterRule(command.ShowOne):
227
235
  )
228
236
  return parser
229
237
 
230
- def take_action(self, parsed_args):
238
+ def take_action(
239
+ self, parsed_args: argparse.Namespace
240
+ ) -> tuple[Sequence[str], Iterable[Any]]:
231
241
  client = self.app.client_manager.network
232
242
  obj = client.find_metering_label_rule(
233
243
  parsed_args.meter_rule_id, ignore_missing=False
@@ -13,8 +13,10 @@
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 logging
17
- import typing as ty
19
+ from typing import Any
18
20
 
19
21
  from cliff import columns as cliff_columns
20
22
  from osc_lib import exceptions
@@ -28,8 +30,8 @@ from openstackclient.network import common
28
30
  LOG = logging.getLogger(__name__)
29
31
 
30
32
 
31
- class RulesColumn(cliff_columns.FormattableColumn[ty.Any]):
32
- def human_readable(self):
33
+ class RulesColumn(cliff_columns.FormattableColumn[Any]):
34
+ def human_readable(self) -> str:
33
35
  return '\n'.join(str(v) for v in self._value)
34
36
 
35
37
 
@@ -38,7 +40,7 @@ _formatters = {
38
40
  }
39
41
 
40
42
 
41
- def _get_columns(item):
43
+ def _get_columns(item: Any) -> tuple[tuple[str, ...], tuple[str, ...]]:
42
44
  column_map = {
43
45
  'is_shared': 'shared',
44
46
  }
@@ -48,7 +50,9 @@ def _get_columns(item):
48
50
  )
49
51
 
50
52
 
51
- def _get_attrs(client_manager, parsed_args):
53
+ def _get_attrs(
54
+ client_manager: Any, parsed_args: argparse.Namespace
55
+ ) -> dict[str, Any]:
52
56
  attrs = {}
53
57
  if 'name' in parsed_args and parsed_args.name is not None:
54
58
  attrs['name'] = parsed_args.name
@@ -85,7 +89,7 @@ class CreateNetworkQosPolicy(
85
89
  ):
86
90
  _description = _("Create a QoS policy")
87
91
 
88
- def get_parser(self, prog_name):
92
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
89
93
  parser = super().get_parser(prog_name)
90
94
  parser.add_argument(
91
95
  'name', metavar='<name>', help=_("Name of QoS policy to create")
@@ -129,7 +133,9 @@ class CreateNetworkQosPolicy(
129
133
  )
130
134
  return parser
131
135
 
132
- def take_action(self, parsed_args):
136
+ def take_action(
137
+ self, parsed_args: argparse.Namespace
138
+ ) -> tuple[Sequence[str], Iterable[Any]]:
133
139
  client = self.app.client_manager.network
134
140
  attrs = _get_attrs(self.app.client_manager, parsed_args)
135
141
  attrs.update(
@@ -144,7 +150,7 @@ class CreateNetworkQosPolicy(
144
150
  class DeleteNetworkQosPolicy(command.Command):
145
151
  _description = _("Delete Qos Policy(s)")
146
152
 
147
- def get_parser(self, prog_name):
153
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
148
154
  parser = super().get_parser(prog_name)
149
155
  parser.add_argument(
150
156
  'policy',
@@ -154,7 +160,7 @@ class DeleteNetworkQosPolicy(command.Command):
154
160
  )
155
161
  return parser
156
162
 
157
- def take_action(self, parsed_args):
163
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
158
164
  client = self.app.client_manager.network
159
165
  result = 0
160
166
 
@@ -185,7 +191,7 @@ class DeleteNetworkQosPolicy(command.Command):
185
191
  class ListNetworkQosPolicy(command.Lister):
186
192
  _description = _("List QoS policies")
187
193
 
188
- def get_parser(self, prog_name):
194
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
189
195
  parser = super().get_parser(prog_name)
190
196
  parser.add_argument(
191
197
  '--project',
@@ -209,7 +215,9 @@ class ListNetworkQosPolicy(command.Lister):
209
215
  )
210
216
  return parser
211
217
 
212
- def take_action(self, parsed_args):
218
+ def take_action(
219
+ self, parsed_args: argparse.Namespace
220
+ ) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
213
221
  client = self.app.client_manager.network
214
222
  columns = (
215
223
  'id',
@@ -245,7 +253,7 @@ class ListNetworkQosPolicy(command.Lister):
245
253
  class SetNetworkQosPolicy(common.NeutronCommandWithExtraArgs):
246
254
  _description = _("Set QoS policy properties")
247
255
 
248
- def get_parser(self, prog_name):
256
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
249
257
  parser = super().get_parser(prog_name)
250
258
  parser.add_argument(
251
259
  'policy',
@@ -284,7 +292,7 @@ class SetNetworkQosPolicy(common.NeutronCommandWithExtraArgs):
284
292
  )
285
293
  return parser
286
294
 
287
- def take_action(self, parsed_args):
295
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
288
296
  client = self.app.client_manager.network
289
297
  obj = client.find_qos_policy(parsed_args.policy, ignore_missing=False)
290
298
  attrs = _get_attrs(self.app.client_manager, parsed_args)
@@ -297,7 +305,7 @@ class SetNetworkQosPolicy(common.NeutronCommandWithExtraArgs):
297
305
  class ShowNetworkQosPolicy(command.ShowOne):
298
306
  _description = _("Display QoS policy details")
299
307
 
300
- def get_parser(self, prog_name):
308
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
301
309
  parser = super().get_parser(prog_name)
302
310
  parser.add_argument(
303
311
  'policy',
@@ -306,7 +314,9 @@ class ShowNetworkQosPolicy(command.ShowOne):
306
314
  )
307
315
  return parser
308
316
 
309
- def take_action(self, parsed_args):
317
+ def take_action(
318
+ self, parsed_args: argparse.Namespace
319
+ ) -> tuple[Sequence[str], Iterable[Any]]:
310
320
  client = self.app.client_manager.network
311
321
  obj = client.find_qos_policy(parsed_args.policy, ignore_missing=False)
312
322
  display_columns, columns = _get_columns(obj)
@@ -13,7 +13,10 @@
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
19
+ from typing import Any, cast
17
20
 
18
21
  from osc_lib import exceptions
19
22
  from osc_lib import utils
@@ -72,14 +75,16 @@ ACTION_SET = 'update'
72
75
  ACTION_SHOW = 'get'
73
76
 
74
77
 
75
- def _get_columns(item):
78
+ def _get_columns(item: Any) -> tuple[tuple[str, ...], tuple[str, ...]]:
76
79
  hidden_columns = ['location', 'name', 'tenant_id']
77
80
  return utils.get_osc_show_columns_for_sdk_resource(
78
81
  item, {}, hidden_columns
79
82
  )
80
83
 
81
84
 
82
- def _check_type_parameters(attrs, type, is_create):
85
+ def _check_type_parameters(
86
+ attrs: dict[str, Any], type: str, is_create: bool
87
+ ) -> None:
83
88
  req_params = MANDATORY_PARAMETERS[type]
84
89
  opt_params = OPTIONAL_PARAMETERS[type]
85
90
  type_params = req_params | opt_params
@@ -102,7 +107,11 @@ def _check_type_parameters(attrs, type, is_create):
102
107
  raise exceptions.CommandError(msg)
103
108
 
104
109
 
105
- def _get_attrs(network_client, parsed_args, is_create=False):
110
+ def _get_attrs(
111
+ network_client: Any,
112
+ parsed_args: argparse.Namespace,
113
+ is_create: bool = False,
114
+ ) -> dict[str, Any]:
106
115
  attrs = {}
107
116
  qos = network_client.find_qos_policy(
108
117
  parsed_args.qos_policy, ignore_missing=False
@@ -148,19 +157,19 @@ def _get_attrs(network_client, parsed_args, is_create=False):
148
157
  return attrs
149
158
 
150
159
 
151
- def _rule_action_call(client, action, rule_type):
160
+ def _rule_action_call(client: Any, action: str, rule_type: str) -> Any:
152
161
  rule_type = rule_type.replace('-', '_')
153
162
  func_name = f'{action}_qos_{rule_type}_rule'
154
163
  return getattr(client, func_name)
155
164
 
156
165
 
157
- def _find_rule_type(qos, rule_id):
166
+ def _find_rule_type(qos: Any, rule_id: str) -> str | None:
158
167
  for rule in (r for r in qos.rules if r['id'] == rule_id):
159
- return rule['type'].replace('_', '-')
168
+ return cast(str, rule['type']).replace('_', '-')
160
169
  return None
161
170
 
162
171
 
163
- def _add_rule_arguments(parser):
172
+ def _add_rule_arguments(parser: argparse.ArgumentParser) -> None:
164
173
  parser.add_argument(
165
174
  '--max-kbps',
166
175
  dest='max_kbps',
@@ -230,7 +239,7 @@ class CreateNetworkQosRule(
230
239
  ):
231
240
  _description = _("Create new Network QoS rule")
232
241
 
233
- def get_parser(self, prog_name):
242
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
234
243
  parser = super().get_parser(prog_name)
235
244
  parser.add_argument(
236
245
  'qos_policy',
@@ -255,7 +264,9 @@ class CreateNetworkQosRule(
255
264
  _add_rule_arguments(parser)
256
265
  return parser
257
266
 
258
- def take_action(self, parsed_args):
267
+ def take_action(
268
+ self, parsed_args: argparse.Namespace
269
+ ) -> tuple[Sequence[str], Iterable[Any]]:
259
270
  network_client = self.app.client_manager.network
260
271
  try:
261
272
  attrs = _get_attrs(network_client, parsed_args, is_create=True)
@@ -276,7 +287,7 @@ class CreateNetworkQosRule(
276
287
  class DeleteNetworkQosRule(command.Command):
277
288
  _description = _("Delete Network QoS rule")
278
289
 
279
- def get_parser(self, prog_name):
290
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
280
291
  parser = super().get_parser(prog_name)
281
292
  parser.add_argument(
282
293
  'qos_policy',
@@ -290,7 +301,7 @@ class DeleteNetworkQosRule(command.Command):
290
301
  )
291
302
  return parser
292
303
 
293
- def take_action(self, parsed_args):
304
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
294
305
  network_client = self.app.client_manager.network
295
306
  rule_id = parsed_args.id
296
307
  try:
@@ -313,7 +324,7 @@ class DeleteNetworkQosRule(command.Command):
313
324
  class ListNetworkQosRule(command.Lister):
314
325
  _description = _("List Network QoS rules")
315
326
 
316
- def get_parser(self, prog_name):
327
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
317
328
  parser = super().get_parser(prog_name)
318
329
  parser.add_argument(
319
330
  'qos_policy',
@@ -322,7 +333,9 @@ class ListNetworkQosRule(command.Lister):
322
333
  )
323
334
  return parser
324
335
 
325
- def take_action(self, parsed_args):
336
+ def take_action(
337
+ self, parsed_args: argparse.Namespace
338
+ ) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
326
339
  client = self.app.client_manager.network
327
340
  columns = (
328
341
  'id',
@@ -359,7 +372,7 @@ class ListNetworkQosRule(command.Lister):
359
372
  class SetNetworkQosRule(common.NeutronCommandWithExtraArgs):
360
373
  _description = _("Set Network QoS rule properties")
361
374
 
362
- def get_parser(self, prog_name):
375
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
363
376
  parser = super().get_parser(prog_name)
364
377
  parser.add_argument(
365
378
  'qos_policy',
@@ -374,7 +387,7 @@ class SetNetworkQosRule(common.NeutronCommandWithExtraArgs):
374
387
  _add_rule_arguments(parser)
375
388
  return parser
376
389
 
377
- def take_action(self, parsed_args):
390
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
378
391
  network_client = self.app.client_manager.network
379
392
  try:
380
393
  qos = network_client.find_qos_policy(
@@ -405,7 +418,7 @@ class SetNetworkQosRule(common.NeutronCommandWithExtraArgs):
405
418
  class ShowNetworkQosRule(command.ShowOne):
406
419
  _description = _("Display Network QoS rule details")
407
420
 
408
- def get_parser(self, prog_name):
421
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
409
422
  parser = super().get_parser(prog_name)
410
423
  parser.add_argument(
411
424
  'qos_policy',
@@ -419,7 +432,9 @@ class ShowNetworkQosRule(command.ShowOne):
419
432
  )
420
433
  return parser
421
434
 
422
- def take_action(self, parsed_args):
435
+ def take_action(
436
+ self, parsed_args: argparse.Namespace
437
+ ) -> tuple[Sequence[str], Iterable[Any]]:
423
438
  network_client = self.app.client_manager.network
424
439
  rule_id = parsed_args.id
425
440
  try:
@@ -13,13 +13,17 @@
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
+
16
20
  from osc_lib import utils
17
21
 
18
22
  from openstackclient import command
19
23
  from openstackclient.i18n import _
20
24
 
21
25
 
22
- def _get_columns(item):
26
+ def _get_columns(item: Any) -> tuple[tuple[str, ...], tuple[str, ...]]:
23
27
  column_map = {
24
28
  "type": "rule_type_name",
25
29
  "drivers": "drivers",
@@ -33,7 +37,7 @@ def _get_columns(item):
33
37
  class ListNetworkQosRuleType(command.Lister):
34
38
  _description = _("List QoS rule types")
35
39
 
36
- def get_parser(self, prog_name):
40
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
37
41
  parser = super().get_parser(prog_name)
38
42
  supported = parser.add_mutually_exclusive_group()
39
43
  supported.add_argument(
@@ -54,7 +58,9 @@ class ListNetworkQosRuleType(command.Lister):
54
58
  )
55
59
  return parser
56
60
 
57
- def take_action(self, parsed_args):
61
+ def take_action(
62
+ self, parsed_args: argparse.Namespace
63
+ ) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
58
64
  client = self.app.client_manager.network
59
65
  columns = ('type',)
60
66
  column_headers = ('Type',)
@@ -82,7 +88,7 @@ class ListNetworkQosRuleType(command.Lister):
82
88
  class ShowNetworkQosRuleType(command.ShowOne):
83
89
  _description = _("Show details about supported QoS rule type")
84
90
 
85
- def get_parser(self, prog_name):
91
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
86
92
  parser = super().get_parser(prog_name)
87
93
  parser.add_argument(
88
94
  'rule_type',
@@ -91,7 +97,9 @@ class ShowNetworkQosRuleType(command.ShowOne):
91
97
  )
92
98
  return parser
93
99
 
94
- def take_action(self, parsed_args):
100
+ def take_action(
101
+ self, parsed_args: argparse.Namespace
102
+ ) -> tuple[Sequence[str], Iterable[Any]]:
95
103
  client = self.app.client_manager.network
96
104
  obj = client.get_qos_rule_type(parsed_args.rule_type)
97
105
  display_columns, columns = _get_columns(obj)
@@ -13,7 +13,10 @@
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
 
18
21
  from osc_lib import exceptions
19
22
  from osc_lib import utils
@@ -26,7 +29,7 @@ from openstackclient.network import common
26
29
  LOG = logging.getLogger(__name__)
27
30
 
28
31
 
29
- def _get_columns(item):
32
+ def _get_columns(item: Any) -> tuple[tuple[str, ...], tuple[str, ...]]:
30
33
  column_map = {
31
34
  'target_tenant': 'target_project_id',
32
35
  }
@@ -36,7 +39,9 @@ def _get_columns(item):
36
39
  )
37
40
 
38
41
 
39
- def _get_attrs(client_manager, parsed_args):
42
+ def _get_attrs(
43
+ client_manager: Any, parsed_args: argparse.Namespace
44
+ ) -> dict[str, Any]:
40
45
  attrs = {}
41
46
  attrs['object_type'] = parsed_args.type
42
47
  attrs['action'] = parsed_args.action
@@ -95,7 +100,7 @@ def _get_attrs(client_manager, parsed_args):
95
100
  class CreateNetworkRBAC(command.ShowOne, common.NeutronCommandWithExtraArgs):
96
101
  _description = _("Create network RBAC policy")
97
102
 
98
- def get_parser(self, prog_name):
103
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
99
104
  parser = super().get_parser(prog_name)
100
105
  parser.add_argument(
101
106
  'rbac_object',
@@ -166,7 +171,9 @@ class CreateNetworkRBAC(command.ShowOne, common.NeutronCommandWithExtraArgs):
166
171
  identity_common.add_project_domain_option_to_parser(parser)
167
172
  return parser
168
173
 
169
- def take_action(self, parsed_args):
174
+ def take_action(
175
+ self, parsed_args: argparse.Namespace
176
+ ) -> tuple[Sequence[str], Iterable[Any]]:
170
177
  client = self.app.client_manager.network
171
178
  attrs = _get_attrs(self.app.client_manager, parsed_args)
172
179
  attrs.update(
@@ -181,7 +188,7 @@ class CreateNetworkRBAC(command.ShowOne, common.NeutronCommandWithExtraArgs):
181
188
  class DeleteNetworkRBAC(command.Command):
182
189
  _description = _("Delete network RBAC policy(s)")
183
190
 
184
- def get_parser(self, prog_name):
191
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
185
192
  parser = super().get_parser(prog_name)
186
193
  parser.add_argument(
187
194
  'rbac_policy',
@@ -191,7 +198,7 @@ class DeleteNetworkRBAC(command.Command):
191
198
  )
192
199
  return parser
193
200
 
194
- def take_action(self, parsed_args):
201
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
195
202
  client = self.app.client_manager.network
196
203
  result = 0
197
204
 
@@ -220,7 +227,7 @@ class DeleteNetworkRBAC(command.Command):
220
227
  class ListNetworkRBAC(command.Lister):
221
228
  _description = _("List network RBAC policies")
222
229
 
223
- def get_parser(self, prog_name):
230
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
224
231
  parser = super().get_parser(prog_name)
225
232
  parser.add_argument(
226
233
  '--type',
@@ -265,7 +272,9 @@ class ListNetworkRBAC(command.Lister):
265
272
  )
266
273
  return parser
267
274
 
268
- def take_action(self, parsed_args):
275
+ def take_action(
276
+ self, parsed_args: argparse.Namespace
277
+ ) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
269
278
  client = self.app.client_manager.network
270
279
 
271
280
  columns: tuple[str, ...] = (
@@ -317,7 +326,7 @@ class ListNetworkRBAC(command.Lister):
317
326
  class SetNetworkRBAC(common.NeutronCommandWithExtraArgs):
318
327
  _description = _("Set network RBAC policy properties")
319
328
 
320
- def get_parser(self, prog_name):
329
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
321
330
  parser = super().get_parser(prog_name)
322
331
  parser.add_argument(
323
332
  'rbac_policy',
@@ -343,7 +352,7 @@ class SetNetworkRBAC(common.NeutronCommandWithExtraArgs):
343
352
  )
344
353
  return parser
345
354
 
346
- def take_action(self, parsed_args):
355
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
347
356
  client = self.app.client_manager.network
348
357
  obj = client.find_rbac_policy(
349
358
  parsed_args.rbac_policy, ignore_missing=False
@@ -366,7 +375,7 @@ class SetNetworkRBAC(common.NeutronCommandWithExtraArgs):
366
375
  class ShowNetworkRBAC(command.ShowOne):
367
376
  _description = _("Display network RBAC policy details")
368
377
 
369
- def get_parser(self, prog_name):
378
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
370
379
  parser = super().get_parser(prog_name)
371
380
  parser.add_argument(
372
381
  'rbac_policy',
@@ -375,7 +384,9 @@ class ShowNetworkRBAC(command.ShowOne):
375
384
  )
376
385
  return parser
377
386
 
378
- def take_action(self, parsed_args):
387
+ def take_action(
388
+ self, parsed_args: argparse.Namespace
389
+ ) -> tuple[Sequence[str], Iterable[Any]]:
379
390
  client = self.app.client_manager.network
380
391
  obj = client.find_rbac_policy(
381
392
  parsed_args.rbac_policy, ignore_missing=False
@@ -13,7 +13,10 @@
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
 
18
21
  from osc_lib import exceptions
19
22
  from osc_lib import utils
@@ -25,7 +28,7 @@ from openstackclient.network import common
25
28
  LOG = logging.getLogger(__name__)
26
29
 
27
30
 
28
- def _get_columns(item):
31
+ def _get_columns(item: Any) -> tuple[tuple[str, ...], tuple[str, ...]]:
29
32
  hidden_columns = ['location', 'tenant_id']
30
33
  return utils.get_osc_show_columns_for_sdk_resource(
31
34
  item, {}, hidden_columns
@@ -37,7 +40,7 @@ class CreateNetworkSegment(
37
40
  ):
38
41
  _description = _("Create new network segment")
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
  'name', metavar='<name>', help=_('New network segment name')
@@ -81,7 +84,9 @@ class CreateNetworkSegment(
81
84
  )
82
85
  return parser
83
86
 
84
- def take_action(self, parsed_args):
87
+ def take_action(
88
+ self, parsed_args: argparse.Namespace
89
+ ) -> tuple[Sequence[str], Iterable[Any]]:
85
90
  client = self.app.client_manager.network
86
91
  attrs = {}
87
92
  attrs['name'] = parsed_args.name
@@ -107,7 +112,7 @@ class CreateNetworkSegment(
107
112
  class DeleteNetworkSegment(command.Command):
108
113
  _description = _("Delete network segment(s)")
109
114
 
110
- def get_parser(self, prog_name):
115
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
111
116
  parser = super().get_parser(prog_name)
112
117
  parser.add_argument(
113
118
  'network_segment',
@@ -117,7 +122,7 @@ class DeleteNetworkSegment(command.Command):
117
122
  )
118
123
  return parser
119
124
 
120
- def take_action(self, parsed_args):
125
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
121
126
  client = self.app.client_manager.network
122
127
 
123
128
  result = 0
@@ -148,7 +153,7 @@ class DeleteNetworkSegment(command.Command):
148
153
  class ListNetworkSegment(command.Lister):
149
154
  _description = _("List network segments")
150
155
 
151
- def get_parser(self, prog_name):
156
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
152
157
  parser = super().get_parser(prog_name)
153
158
  parser.add_argument(
154
159
  '--long',
@@ -166,7 +171,9 @@ class ListNetworkSegment(command.Lister):
166
171
  )
167
172
  return parser
168
173
 
169
- def take_action(self, parsed_args):
174
+ def take_action(
175
+ self, parsed_args: argparse.Namespace
176
+ ) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
170
177
  network_client = self.app.client_manager.network
171
178
 
172
179
  filters = {}
@@ -211,7 +218,7 @@ class ListNetworkSegment(command.Lister):
211
218
  class SetNetworkSegment(common.NeutronCommandWithExtraArgs):
212
219
  _description = _("Set network segment properties")
213
220
 
214
- def get_parser(self, prog_name):
221
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
215
222
  parser = super().get_parser(prog_name)
216
223
  parser.add_argument(
217
224
  'network_segment',
@@ -230,7 +237,7 @@ class SetNetworkSegment(common.NeutronCommandWithExtraArgs):
230
237
  )
231
238
  return parser
232
239
 
233
- def take_action(self, parsed_args):
240
+ def take_action(self, parsed_args: argparse.Namespace) -> None:
234
241
  client = self.app.client_manager.network
235
242
  obj = client.find_segment(
236
243
  parsed_args.network_segment, ignore_missing=False
@@ -249,7 +256,7 @@ class SetNetworkSegment(common.NeutronCommandWithExtraArgs):
249
256
  class ShowNetworkSegment(command.ShowOne):
250
257
  _description = _("Display network segment details")
251
258
 
252
- def get_parser(self, prog_name):
259
+ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
253
260
  parser = super().get_parser(prog_name)
254
261
  parser.add_argument(
255
262
  'network_segment',
@@ -258,7 +265,9 @@ class ShowNetworkSegment(command.ShowOne):
258
265
  )
259
266
  return parser
260
267
 
261
- def take_action(self, parsed_args):
268
+ def take_action(
269
+ self, parsed_args: argparse.Namespace
270
+ ) -> tuple[Sequence[str], Iterable[Any]]:
262
271
  client = self.app.client_manager.network
263
272
  obj = client.find_segment(
264
273
  parsed_args.network_segment, ignore_missing=False