python-openstackclient 6.6.1__py3-none-any.whl → 7.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 (337) hide show
  1. openstackclient/api/api.py +4 -4
  2. openstackclient/api/compute_v2.py +352 -638
  3. openstackclient/api/image_v1.py +1 -1
  4. openstackclient/api/object_store_v1.py +3 -4
  5. openstackclient/common/availability_zone.py +1 -1
  6. openstackclient/common/clientmanager.py +16 -4
  7. openstackclient/common/configuration.py +1 -1
  8. openstackclient/common/extension.py +1 -1
  9. openstackclient/common/limits.py +66 -32
  10. openstackclient/common/module.py +3 -3
  11. openstackclient/common/progressbar.py +2 -2
  12. openstackclient/common/project_cleanup.py +5 -2
  13. openstackclient/common/quota.py +281 -410
  14. openstackclient/common/versions.py +1 -1
  15. openstackclient/compute/client.py +7 -116
  16. openstackclient/compute/v2/agent.py +75 -49
  17. openstackclient/compute/v2/aggregate.py +9 -9
  18. openstackclient/compute/v2/console.py +2 -2
  19. openstackclient/compute/v2/flavor.py +6 -6
  20. openstackclient/compute/v2/host.py +38 -33
  21. openstackclient/compute/v2/hypervisor.py +4 -3
  22. openstackclient/compute/v2/keypair.py +7 -8
  23. openstackclient/compute/v2/server.py +478 -396
  24. openstackclient/compute/v2/server_backup.py +1 -1
  25. openstackclient/compute/v2/server_group.py +4 -4
  26. openstackclient/compute/v2/server_image.py +1 -1
  27. openstackclient/compute/v2/server_migration.py +3 -4
  28. openstackclient/compute/v2/service.py +4 -4
  29. openstackclient/compute/v2/usage.py +3 -3
  30. openstackclient/identity/common.py +34 -0
  31. openstackclient/identity/v2_0/catalog.py +2 -2
  32. openstackclient/identity/v2_0/ec2creds.py +4 -4
  33. openstackclient/identity/v2_0/endpoint.py +4 -4
  34. openstackclient/identity/v2_0/project.py +6 -6
  35. openstackclient/identity/v2_0/role.py +5 -5
  36. openstackclient/identity/v2_0/role_assignment.py +1 -1
  37. openstackclient/identity/v2_0/service.py +4 -4
  38. openstackclient/identity/v2_0/token.py +2 -2
  39. openstackclient/identity/v2_0/user.py +7 -7
  40. openstackclient/identity/v3/access_rule.py +3 -3
  41. openstackclient/identity/v3/application_credential.py +127 -45
  42. openstackclient/identity/v3/catalog.py +2 -2
  43. openstackclient/identity/v3/consumer.py +4 -4
  44. openstackclient/identity/v3/credential.py +5 -5
  45. openstackclient/identity/v3/domain.py +5 -5
  46. openstackclient/identity/v3/ec2creds.py +4 -4
  47. openstackclient/identity/v3/endpoint.py +7 -7
  48. openstackclient/identity/v3/endpoint_group.py +8 -10
  49. openstackclient/identity/v3/federation_protocol.py +5 -5
  50. openstackclient/identity/v3/group.py +8 -8
  51. openstackclient/identity/v3/identity_provider.py +5 -5
  52. openstackclient/identity/v3/implied_role.py +3 -3
  53. openstackclient/identity/v3/limit.py +5 -5
  54. openstackclient/identity/v3/mapping.py +5 -5
  55. openstackclient/identity/v3/policy.py +5 -5
  56. openstackclient/identity/v3/project.py +5 -5
  57. openstackclient/identity/v3/region.py +5 -5
  58. openstackclient/identity/v3/registered_limit.py +5 -5
  59. openstackclient/identity/v3/role.py +7 -7
  60. openstackclient/identity/v3/role_assignment.py +92 -140
  61. openstackclient/identity/v3/service.py +64 -34
  62. openstackclient/identity/v3/service_provider.py +4 -4
  63. openstackclient/identity/v3/tag.py +2 -2
  64. openstackclient/identity/v3/token.py +5 -5
  65. openstackclient/identity/v3/trust.py +3 -3
  66. openstackclient/identity/v3/user.py +144 -80
  67. openstackclient/image/client.py +4 -4
  68. openstackclient/image/v1/image.py +8 -9
  69. openstackclient/image/v2/cache.py +12 -10
  70. openstackclient/image/v2/metadef_objects.py +44 -0
  71. openstackclient/image/v2/metadef_resource_type_association.py +189 -0
  72. openstackclient/image/v2/task.py +1 -1
  73. openstackclient/network/common.py +6 -5
  74. openstackclient/network/utils.py +2 -2
  75. openstackclient/network/v2/address_group.py +6 -6
  76. openstackclient/network/v2/address_scope.py +5 -5
  77. openstackclient/network/v2/default_security_group_rule.py +1 -1
  78. openstackclient/network/v2/floating_ip.py +8 -10
  79. openstackclient/network/v2/floating_ip_pool.py +6 -15
  80. openstackclient/network/v2/floating_ip_port_forwarding.py +5 -13
  81. openstackclient/network/v2/ip_availability.py +2 -2
  82. openstackclient/network/v2/l3_conntrack_helper.py +5 -5
  83. openstackclient/network/v2/network.py +8 -8
  84. openstackclient/network/v2/network_agent.py +8 -8
  85. openstackclient/network/v2/network_auto_allocated_topology.py +2 -2
  86. openstackclient/network/v2/network_flavor.py +6 -8
  87. openstackclient/network/v2/network_flavor_profile.py +4 -4
  88. openstackclient/network/v2/network_meter.py +3 -3
  89. openstackclient/network/v2/network_meter_rule.py +3 -3
  90. openstackclient/network/v2/network_qos_policy.py +5 -5
  91. openstackclient/network/v2/network_qos_rule.py +9 -9
  92. openstackclient/network/v2/network_qos_rule_type.py +1 -1
  93. openstackclient/network/v2/network_rbac.py +5 -5
  94. openstackclient/network/v2/network_segment.py +5 -5
  95. openstackclient/network/v2/network_segment_range.py +7 -7
  96. openstackclient/network/v2/network_trunk.py +7 -7
  97. openstackclient/network/v2/port.py +26 -12
  98. openstackclient/network/v2/router.py +403 -54
  99. openstackclient/network/v2/security_group.py +18 -14
  100. openstackclient/network/v2/security_group_rule.py +18 -15
  101. openstackclient/network/v2/subnet.py +15 -8
  102. openstackclient/network/v2/subnet_pool.py +6 -6
  103. openstackclient/object/v1/account.py +2 -2
  104. openstackclient/object/v1/container.py +7 -7
  105. openstackclient/object/v1/object.py +7 -7
  106. openstackclient/shell.py +4 -6
  107. openstackclient/tests/functional/base.py +1 -1
  108. openstackclient/tests/functional/common/test_extension.py +1 -1
  109. openstackclient/tests/functional/common/test_help.py +2 -2
  110. openstackclient/tests/functional/common/test_module.py +1 -1
  111. openstackclient/tests/functional/common/test_quota.py +43 -61
  112. openstackclient/tests/functional/compute/v2/common.py +2 -2
  113. openstackclient/tests/functional/compute/v2/test_flavor.py +2 -2
  114. openstackclient/tests/functional/compute/v2/test_keypair.py +1 -1
  115. openstackclient/tests/functional/compute/v2/test_server.py +5 -5
  116. openstackclient/tests/functional/compute/v2/test_server_event.py +1 -1
  117. openstackclient/tests/functional/identity/v2/common.py +3 -3
  118. openstackclient/tests/functional/identity/v3/common.py +14 -6
  119. openstackclient/tests/functional/identity/v3/test_application_credential.py +13 -19
  120. openstackclient/tests/functional/identity/v3/test_domain.py +1 -3
  121. openstackclient/tests/functional/identity/v3/test_endpoint.py +1 -1
  122. openstackclient/tests/functional/identity/v3/test_idp.py +1 -1
  123. openstackclient/tests/functional/identity/v3/test_limit.py +2 -2
  124. openstackclient/tests/functional/identity/v3/test_region.py +1 -3
  125. openstackclient/tests/functional/identity/v3/test_registered_limit.py +1 -1
  126. openstackclient/tests/functional/identity/v3/test_role.py +2 -2
  127. openstackclient/tests/functional/identity/v3/test_role_assignment.py +210 -0
  128. openstackclient/tests/functional/identity/v3/test_service.py +4 -6
  129. openstackclient/tests/functional/identity/v3/test_service_provider.py +1 -3
  130. openstackclient/tests/functional/image/base.py +1 -1
  131. openstackclient/tests/functional/image/v2/test_image.py +1 -1
  132. openstackclient/tests/functional/image/v2/test_info.py +1 -1
  133. openstackclient/tests/functional/network/v2/common.py +4 -6
  134. openstackclient/tests/functional/network/v2/test_network.py +5 -3
  135. openstackclient/tests/functional/network/v2/test_network_agent.py +7 -5
  136. openstackclient/tests/functional/network/v2/test_network_qos_rule.py +4 -4
  137. openstackclient/tests/functional/network/v2/test_port.py +11 -7
  138. openstackclient/tests/functional/network/v2/test_router.py +2 -2
  139. openstackclient/tests/functional/object/v1/common.py +1 -1
  140. openstackclient/tests/functional/object/v1/test_container.py +3 -3
  141. openstackclient/tests/functional/object/v1/test_object.py +9 -13
  142. openstackclient/tests/functional/volume/base.py +1 -1
  143. openstackclient/tests/functional/volume/v1/test_service.py +1 -1
  144. openstackclient/tests/functional/volume/v1/test_snapshot.py +2 -2
  145. openstackclient/tests/functional/volume/v1/test_transfer_request.py +2 -2
  146. openstackclient/tests/functional/volume/v1/test_volume_type.py +1 -1
  147. openstackclient/tests/functional/volume/v2/test_service.py +2 -2
  148. openstackclient/tests/functional/volume/v2/test_volume_backup.py +2 -2
  149. openstackclient/tests/functional/volume/v2/test_volume_snapshot.py +2 -2
  150. openstackclient/tests/functional/volume/v2/test_volume_type.py +1 -1
  151. openstackclient/tests/functional/volume/v3/test_volume_snapshot.py +2 -2
  152. openstackclient/tests/functional/volume/v3/test_volume_type.py +1 -1
  153. openstackclient/tests/unit/api/fakes.py +1 -1
  154. openstackclient/tests/unit/api/test_api.py +2 -2
  155. openstackclient/tests/unit/api/test_compute_v2.py +522 -707
  156. openstackclient/tests/unit/api/test_image_v1.py +1 -1
  157. openstackclient/tests/unit/api/test_image_v2.py +1 -1
  158. openstackclient/tests/unit/api/test_object_store_v1.py +4 -4
  159. openstackclient/tests/unit/common/test_limits.py +73 -35
  160. openstackclient/tests/unit/common/test_logs.py +2 -2
  161. openstackclient/tests/unit/common/test_module.py +4 -2
  162. openstackclient/tests/unit/common/test_project_cleanup.py +31 -6
  163. openstackclient/tests/unit/common/test_quota.py +490 -630
  164. openstackclient/tests/unit/compute/v2/fakes.py +37 -286
  165. openstackclient/tests/unit/compute/v2/test_agent.py +189 -147
  166. openstackclient/tests/unit/compute/v2/test_aggregate.py +18 -16
  167. openstackclient/tests/unit/compute/v2/test_console.py +4 -5
  168. openstackclient/tests/unit/compute/v2/test_flavor.py +59 -68
  169. openstackclient/tests/unit/compute/v2/test_host.py +83 -54
  170. openstackclient/tests/unit/compute/v2/test_hypervisor.py +28 -31
  171. openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +2 -2
  172. openstackclient/tests/unit/compute/v2/test_keypair.py +65 -50
  173. openstackclient/tests/unit/compute/v2/test_server.py +2895 -2459
  174. openstackclient/tests/unit/compute/v2/test_server_backup.py +1 -1
  175. openstackclient/tests/unit/compute/v2/test_server_event.py +14 -39
  176. openstackclient/tests/unit/compute/v2/test_server_group.py +28 -29
  177. openstackclient/tests/unit/compute/v2/test_server_migration.py +43 -68
  178. openstackclient/tests/unit/compute/v2/test_server_volume.py +17 -34
  179. openstackclient/tests/unit/compute/v2/test_service.py +34 -52
  180. openstackclient/tests/unit/compute/v2/test_usage.py +4 -4
  181. openstackclient/tests/unit/fakes.py +11 -11
  182. openstackclient/tests/unit/identity/v2_0/fakes.py +27 -10
  183. openstackclient/tests/unit/identity/v2_0/test_catalog.py +3 -3
  184. openstackclient/tests/unit/identity/v2_0/test_endpoint.py +7 -7
  185. openstackclient/tests/unit/identity/v2_0/test_project.py +8 -8
  186. openstackclient/tests/unit/identity/v2_0/test_role.py +10 -10
  187. openstackclient/tests/unit/identity/v2_0/test_role_assignment.py +4 -4
  188. openstackclient/tests/unit/identity/v2_0/test_service.py +6 -6
  189. openstackclient/tests/unit/identity/v2_0/test_token.py +4 -4
  190. openstackclient/tests/unit/identity/v2_0/test_user.py +8 -8
  191. openstackclient/tests/unit/identity/v3/fakes.py +59 -20
  192. openstackclient/tests/unit/identity/v3/test_access_rule.py +5 -5
  193. openstackclient/tests/unit/identity/v3/test_application_credential.py +212 -235
  194. openstackclient/tests/unit/identity/v3/test_catalog.py +3 -3
  195. openstackclient/tests/unit/identity/v3/test_consumer.py +7 -8
  196. openstackclient/tests/unit/identity/v3/test_credential.py +9 -9
  197. openstackclient/tests/unit/identity/v3/test_domain.py +8 -8
  198. openstackclient/tests/unit/identity/v3/test_endpoint.py +13 -13
  199. openstackclient/tests/unit/identity/v3/test_endpoint_group.py +12 -14
  200. openstackclient/tests/unit/identity/v3/test_group.py +12 -12
  201. openstackclient/tests/unit/identity/v3/test_identity_provider.py +8 -8
  202. openstackclient/tests/unit/identity/v3/test_implied_role.py +5 -5
  203. openstackclient/tests/unit/identity/v3/test_limit.py +7 -7
  204. openstackclient/tests/unit/identity/v3/test_mappings.py +7 -7
  205. openstackclient/tests/unit/identity/v3/test_oauth.py +5 -5
  206. openstackclient/tests/unit/identity/v3/test_project.py +16 -16
  207. openstackclient/tests/unit/identity/v3/test_protocol.py +7 -7
  208. openstackclient/tests/unit/identity/v3/test_region.py +7 -7
  209. openstackclient/tests/unit/identity/v3/test_registered_limit.py +12 -13
  210. openstackclient/tests/unit/identity/v3/test_role.py +13 -13
  211. openstackclient/tests/unit/identity/v3/test_role_assignment.py +410 -331
  212. openstackclient/tests/unit/identity/v3/test_service.py +93 -97
  213. openstackclient/tests/unit/identity/v3/test_service_provider.py +7 -7
  214. openstackclient/tests/unit/identity/v3/test_token.py +4 -4
  215. openstackclient/tests/unit/identity/v3/test_trust.py +9 -9
  216. openstackclient/tests/unit/identity/v3/test_unscoped_saml.py +4 -4
  217. openstackclient/tests/unit/identity/v3/test_user.py +299 -327
  218. openstackclient/tests/unit/image/v1/test_image.py +6 -6
  219. openstackclient/tests/unit/image/v2/fakes.py +46 -9
  220. openstackclient/tests/unit/image/v2/test_cache.py +2 -2
  221. openstackclient/tests/unit/image/v2/test_image.py +3 -3
  222. openstackclient/tests/unit/image/v2/test_metadef_objects.py +62 -0
  223. openstackclient/tests/unit/image/v2/test_metadef_resource_type_association.py +131 -0
  224. openstackclient/tests/unit/integ/base.py +1 -1
  225. openstackclient/tests/unit/integ/cli/test_project.py +4 -4
  226. openstackclient/tests/unit/integ/cli/test_shell.py +7 -7
  227. openstackclient/tests/unit/network/test_common.py +12 -21
  228. openstackclient/tests/unit/network/v2/fakes.py +64 -130
  229. openstackclient/tests/unit/network/v2/test_address_group.py +15 -15
  230. openstackclient/tests/unit/network/v2/test_address_scope.py +13 -13
  231. openstackclient/tests/unit/network/v2/test_default_security_group_rule.py +49 -27
  232. openstackclient/tests/unit/network/v2/test_floating_ip_compute.py +40 -38
  233. openstackclient/tests/unit/network/v2/test_floating_ip_network.py +15 -15
  234. openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py +4 -7
  235. openstackclient/tests/unit/network/v2/test_floating_ip_pool_network.py +3 -5
  236. openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +11 -11
  237. openstackclient/tests/unit/network/v2/test_ip_availability.py +6 -6
  238. openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +11 -21
  239. openstackclient/tests/unit/network/v2/test_local_ip.py +7 -7
  240. openstackclient/tests/unit/network/v2/test_local_ip_association.py +3 -5
  241. openstackclient/tests/unit/network/v2/test_ndp_proxy.py +13 -13
  242. openstackclient/tests/unit/network/v2/test_network.py +23 -28
  243. openstackclient/tests/unit/network/v2/test_network_agent.py +17 -21
  244. openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py +8 -8
  245. openstackclient/tests/unit/network/v2/test_network_compute.py +66 -65
  246. openstackclient/tests/unit/network/v2/test_network_flavor.py +17 -19
  247. openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +13 -13
  248. openstackclient/tests/unit/network/v2/test_network_meter.py +11 -11
  249. openstackclient/tests/unit/network/v2/test_network_meter_rule.py +11 -11
  250. openstackclient/tests/unit/network/v2/test_network_qos_policy.py +11 -21
  251. openstackclient/tests/unit/network/v2/test_network_qos_rule.py +51 -77
  252. openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +5 -9
  253. openstackclient/tests/unit/network/v2/test_network_rbac.py +12 -12
  254. openstackclient/tests/unit/network/v2/test_network_segment.py +11 -15
  255. openstackclient/tests/unit/network/v2/test_network_segment_range.py +11 -13
  256. openstackclient/tests/unit/network/v2/test_network_service_provider.py +3 -5
  257. openstackclient/tests/unit/network/v2/test_network_trunk.py +11 -11
  258. openstackclient/tests/unit/network/v2/test_port.py +22 -25
  259. openstackclient/tests/unit/network/v2/test_router.py +721 -51
  260. openstackclient/tests/unit/network/v2/test_security_group_compute.py +65 -49
  261. openstackclient/tests/unit/network/v2/test_security_group_network.py +15 -15
  262. openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +57 -45
  263. openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +11 -19
  264. openstackclient/tests/unit/network/v2/test_subnet.py +29 -25
  265. openstackclient/tests/unit/network/v2/test_subnet_pool.py +15 -15
  266. openstackclient/tests/unit/object/v1/fakes.py +1 -1
  267. openstackclient/tests/unit/object/v1/test_container.py +5 -5
  268. openstackclient/tests/unit/object/v1/test_container_all.py +6 -6
  269. openstackclient/tests/unit/object/v1/test_object.py +3 -3
  270. openstackclient/tests/unit/object/v1/test_object_all.py +5 -5
  271. openstackclient/tests/unit/test_shell.py +5 -5
  272. openstackclient/tests/unit/utils.py +4 -1
  273. openstackclient/tests/unit/volume/test_find_resource.py +2 -2
  274. openstackclient/tests/unit/volume/v1/fakes.py +5 -6
  275. openstackclient/tests/unit/volume/v1/test_volume.py +5 -4
  276. openstackclient/tests/unit/volume/v2/fakes.py +39 -259
  277. openstackclient/tests/unit/volume/v2/test_consistency_group_snapshot.py +5 -5
  278. openstackclient/tests/unit/volume/v2/test_qos_specs.py +9 -9
  279. openstackclient/tests/unit/volume/v2/test_volume.py +21 -87
  280. openstackclient/tests/unit/volume/v2/test_volume_backup.py +7 -368
  281. openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +1 -1
  282. openstackclient/tests/unit/volume/v2/test_volume_transfer_request.py +0 -44
  283. openstackclient/tests/unit/volume/v2/test_volume_type.py +6 -87
  284. openstackclient/tests/unit/volume/v3/fakes.py +505 -22
  285. openstackclient/tests/unit/volume/v3/test_block_storage_cleanup.py +2 -3
  286. openstackclient/tests/unit/volume/v3/test_block_storage_cluster.py +10 -11
  287. openstackclient/tests/unit/volume/v3/test_block_storage_log_level.py +10 -6
  288. openstackclient/tests/unit/volume/v3/test_block_storage_manage.py +25 -17
  289. openstackclient/tests/unit/volume/v3/test_block_storage_resource_filter.py +6 -32
  290. openstackclient/tests/unit/volume/v3/test_service.py +271 -0
  291. openstackclient/tests/unit/volume/v3/test_volume.py +2177 -33
  292. openstackclient/tests/unit/volume/v3/test_volume_attachment.py +48 -52
  293. openstackclient/tests/unit/volume/v3/test_volume_backup.py +892 -0
  294. openstackclient/tests/unit/volume/v3/test_volume_group.py +19 -20
  295. openstackclient/tests/unit/volume/v3/test_volume_group_snapshot.py +14 -34
  296. openstackclient/tests/unit/volume/v3/test_volume_group_type.py +13 -16
  297. openstackclient/tests/unit/volume/v3/test_volume_message.py +10 -11
  298. openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +161 -0
  299. openstackclient/tests/unit/volume/v3/test_volume_transfer_request.py +425 -0
  300. openstackclient/tests/unit/volume/v3/test_volume_type.py +1109 -0
  301. openstackclient/volume/v1/qos_specs.py +7 -7
  302. openstackclient/volume/v1/service.py +2 -2
  303. openstackclient/volume/v1/volume.py +12 -12
  304. openstackclient/volume/v1/volume_backup.py +7 -7
  305. openstackclient/volume/v1/volume_snapshot.py +8 -8
  306. openstackclient/volume/v1/volume_transfer_request.py +5 -5
  307. openstackclient/volume/v1/volume_type.py +7 -7
  308. openstackclient/volume/v2/backup_record.py +2 -2
  309. openstackclient/volume/v2/consistency_group.py +7 -9
  310. openstackclient/volume/v2/consistency_group_snapshot.py +4 -12
  311. openstackclient/volume/v2/qos_specs.py +7 -7
  312. openstackclient/volume/v2/service.py +2 -2
  313. openstackclient/volume/v2/volume.py +80 -80
  314. openstackclient/volume/v2/volume_backend.py +2 -2
  315. openstackclient/volume/v2/volume_backup.py +7 -217
  316. openstackclient/volume/v2/volume_host.py +2 -2
  317. openstackclient/volume/v2/volume_snapshot.py +8 -8
  318. openstackclient/volume/v2/volume_transfer_request.py +5 -37
  319. openstackclient/volume/v2/volume_type.py +7 -89
  320. openstackclient/volume/v3/service.py +56 -0
  321. openstackclient/volume/v3/volume.py +971 -0
  322. openstackclient/volume/v3/volume_attachment.py +31 -29
  323. openstackclient/volume/v3/volume_backup.py +670 -0
  324. openstackclient/volume/v3/volume_message.py +1 -1
  325. openstackclient/volume/v3/volume_snapshot.py +97 -0
  326. openstackclient/volume/v3/volume_transfer_request.py +233 -0
  327. openstackclient/volume/v3/volume_type.py +967 -0
  328. {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.0.0.dist-info}/AUTHORS +4 -0
  329. {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.0.0.dist-info}/METADATA +2 -3
  330. python_openstackclient-7.0.0.dist-info/RECORD +502 -0
  331. {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.0.0.dist-info}/entry_points.txt +33 -27
  332. python_openstackclient-7.0.0.dist-info/pbr.json +1 -0
  333. python_openstackclient-6.6.1.dist-info/RECORD +0 -489
  334. python_openstackclient-6.6.1.dist-info/pbr.json +0 -1
  335. {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.0.0.dist-info}/LICENSE +0 -0
  336. {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.0.0.dist-info}/WHEEL +0 -0
  337. {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.0.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,189 @@
1
+ # Licensed under the Apache License, Version 2.0 (the "License"); you may
2
+ # not use this file except in compliance with the License. You may obtain
3
+ # a copy of the License at
4
+ #
5
+ # http://www.apache.org/licenses/LICENSE-2.0
6
+ #
7
+ # Unless required by applicable law or agreed to in writing, software
8
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
9
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
10
+ # License for the specific language governing permissions and limitations
11
+ # under the License.
12
+
13
+ import logging
14
+
15
+ from osc_lib.command import command
16
+ from osc_lib import exceptions
17
+ from osc_lib import utils
18
+
19
+ from openstackclient.i18n import _
20
+
21
+ LOG = logging.getLogger(__name__)
22
+
23
+
24
+ def _get_columns(item):
25
+ column_map = {}
26
+ hidden_columns = ['location']
27
+ return utils.get_osc_show_columns_for_sdk_resource(
28
+ item, column_map, hidden_columns
29
+ )
30
+
31
+
32
+ class CreateMetadefResourceTypeAssociation(command.ShowOne):
33
+ _description = _("Create metadef resource type association")
34
+
35
+ def get_parser(self, prog_name):
36
+ parser = super().get_parser(prog_name)
37
+ parser.add_argument(
38
+ "namespace",
39
+ metavar="<namespace>",
40
+ help=_(
41
+ "The name of the namespace you want to create the "
42
+ "resource type association in"
43
+ ),
44
+ )
45
+ parser.add_argument(
46
+ "name",
47
+ metavar="<name>",
48
+ help=_("A name of the new resource type"),
49
+ )
50
+ parser.add_argument(
51
+ "--properties-target",
52
+ metavar="<properties_target>",
53
+ help=_(
54
+ "Some resource types allow more than one "
55
+ "key/value pair per instance."
56
+ ),
57
+ )
58
+ return parser
59
+
60
+ def take_action(self, parsed_args):
61
+ image_client = self.app.client_manager.image
62
+ kwargs = {}
63
+
64
+ kwargs['namespace'] = parsed_args.namespace
65
+ kwargs['name'] = parsed_args.name
66
+
67
+ if parsed_args.properties_target:
68
+ kwargs['properties_target'] = parsed_args.properties_target
69
+
70
+ obj = image_client.create_metadef_resource_type_association(
71
+ parsed_args.namespace, **kwargs
72
+ )
73
+
74
+ display_columns, columns = _get_columns(obj)
75
+ data = utils.get_item_properties(obj, columns, formatters={})
76
+
77
+ return (display_columns, data)
78
+
79
+
80
+ class DeleteMetadefResourceTypeAssociation(command.Command):
81
+ _description = _("Delete metadef resource type association")
82
+
83
+ def get_parser(self, prog_name):
84
+ parser = super().get_parser(prog_name)
85
+ parser.add_argument(
86
+ "metadef_namespace",
87
+ metavar="<metadef_namespace>",
88
+ help=_("The name of the namespace whose details you want to see"),
89
+ )
90
+ parser.add_argument(
91
+ "name",
92
+ metavar="<name>",
93
+ nargs="+",
94
+ help=_(
95
+ "The name of the resource type(s) (repeat option to delete"
96
+ "multiple metadef resource type associations)"
97
+ ),
98
+ )
99
+ parser.add_argument(
100
+ "--force",
101
+ dest='force',
102
+ action='store_true',
103
+ default=False,
104
+ help=_(
105
+ "Force delete the resource type association if the"
106
+ "namespace is protected"
107
+ ),
108
+ )
109
+ return parser
110
+
111
+ def take_action(self, parsed_args):
112
+ image_client = self.app.client_manager.image
113
+
114
+ result = 0
115
+ for resource_type in parsed_args.name:
116
+ try:
117
+ metadef_namespace = image_client.get_metadef_namespace(
118
+ parsed_args.metadef_namespace
119
+ )
120
+
121
+ kwargs = {}
122
+ is_initially_protected = (
123
+ True if metadef_namespace.is_protected else False
124
+ )
125
+ if is_initially_protected and parsed_args.force:
126
+ kwargs['is_protected'] = False
127
+
128
+ image_client.update_metadef_namespace(
129
+ metadef_namespace.namespace, **kwargs
130
+ )
131
+
132
+ try:
133
+ image_client.delete_metadef_resource_type_association(
134
+ resource_type, metadef_namespace, ignore_missing=False
135
+ )
136
+ finally:
137
+ if is_initially_protected:
138
+ kwargs['is_protected'] = True
139
+ image_client.update_metadef_namespace(
140
+ metadef_namespace.namespace, **kwargs
141
+ )
142
+
143
+ except Exception as e:
144
+ result += 1
145
+ LOG.error(
146
+ _(
147
+ "Failed to delete resource type with name or "
148
+ "ID '%(resource_type)s': %(e)s"
149
+ ),
150
+ {'resource_type': resource_type, 'e': e},
151
+ )
152
+
153
+ if result > 0:
154
+ total = len(parsed_args.metadef_namespace)
155
+ msg = _(
156
+ "%(result)s of %(total)s resource type failed to delete."
157
+ ) % {'result': result, 'total': total}
158
+ raise exceptions.CommandError(msg)
159
+
160
+
161
+ class ListMetadefResourceTypeAssociations(command.Lister):
162
+ _description = _("List metadef resource type associations")
163
+
164
+ def get_parser(self, prog_name):
165
+ parser = super().get_parser(prog_name)
166
+ parser.add_argument(
167
+ "metadef_namespace",
168
+ metavar="<metadef_namespace>",
169
+ help=_("The name of the namespace whose details you want to see"),
170
+ )
171
+ return parser
172
+
173
+ def take_action(self, parsed_args):
174
+ image_client = self.app.client_manager.image
175
+ data = image_client.metadef_resource_type_associations(
176
+ parsed_args.metadef_namespace,
177
+ )
178
+ columns = ['Name']
179
+ column_headers = columns
180
+ return (
181
+ column_headers,
182
+ (
183
+ utils.get_item_properties(
184
+ s,
185
+ columns,
186
+ )
187
+ for s in data
188
+ ),
189
+ )
@@ -64,7 +64,7 @@ class ShowTask(command.ShowOne):
64
64
  _description = _('Display task details')
65
65
 
66
66
  def get_parser(self, prog_name):
67
- parser = super(ShowTask, self).get_parser(prog_name)
67
+ parser = super().get_parser(prog_name)
68
68
 
69
69
  parser.add_argument(
70
70
  'task',
@@ -132,7 +132,7 @@ class NetDetectionMixin(metaclass=abc.ABCMeta):
132
132
 
133
133
  def get_parser(self, prog_name):
134
134
  LOG.debug('get_parser(%s)', prog_name)
135
- parser = super(NetDetectionMixin, self).get_parser(prog_name)
135
+ parser = super().get_parser(prog_name)
136
136
  parser = self.update_parser_common(parser)
137
137
  LOG.debug('common parser: %s', parser)
138
138
  if self.is_neutron or self.is_docs_build:
@@ -161,7 +161,7 @@ class NetDetectionMixin(metaclass=abc.ABCMeta):
161
161
  )
162
162
  elif self.is_nova_network:
163
163
  return self.take_action_compute(
164
- self.app.client_manager.compute, parsed_args
164
+ self.app.client_manager.sdk_connection.compute, parsed_args
165
165
  )
166
166
 
167
167
  def take_action_network(self, client, parsed_args):
@@ -210,7 +210,8 @@ class NetworkAndComputeDelete(NetworkAndComputeCommand, metaclass=abc.ABCMeta):
210
210
  )
211
211
  else:
212
212
  self.take_action_compute(
213
- self.app.client_manager.compute, parsed_args
213
+ self.app.client_manager.sdk_connection.compute,
214
+ parsed_args,
214
215
  )
215
216
  except Exception as e:
216
217
  msg = _(
@@ -267,7 +268,7 @@ class NetworkAndComputeShowOne(
267
268
  )
268
269
  else:
269
270
  return self.take_action_compute(
270
- self.app.client_manager.compute, parsed_args
271
+ self.app.client_manager.sdk_connection.compute, parsed_args
271
272
  )
272
273
  except openstack.exceptions.HttpException as exc:
273
274
  msg = _("Error while executing command: %s") % exc.message
@@ -318,7 +319,7 @@ class NeutronCommandWithExtraArgs(command.Command):
318
319
  return result
319
320
 
320
321
  def get_parser(self, prog_name):
321
- parser = super(NeutronCommandWithExtraArgs, self).get_parser(prog_name)
322
+ parser = super().get_parser(prog_name)
322
323
  parser.add_argument(
323
324
  '--extra-property',
324
325
  metavar='type=<property_type>,name=<property_name>,'
@@ -27,7 +27,7 @@ def transform_compute_security_group_rule(sg_rule):
27
27
  elif from_port is None and to_port is None:
28
28
  port_range = {'port_range': ""}
29
29
  else:
30
- port_range = {'port_range': "%s:%s" % (from_port, to_port)}
30
+ port_range = {'port_range': f"{from_port}:{to_port}"}
31
31
  info.update(port_range)
32
32
  if 'cidr' in info['ip_range']:
33
33
  info['ip_range'] = info['ip_range']['cidr']
@@ -76,7 +76,7 @@ def str2dict(strdict):
76
76
  msg = _("missing value for key '%s'")
77
77
  raise exceptions.CommandError(msg % kv)
78
78
  else:
79
- kvlist[i - 1] = "%s;%s" % (kvlist[i - 1], kv)
79
+ kvlist[i - 1] = f"{kvlist[i - 1]};{kv}"
80
80
  for kv in kvlist:
81
81
  key, sep, value = kv.partition(':')
82
82
  result[key] = value
@@ -61,7 +61,7 @@ class CreateAddressGroup(command.ShowOne, common.NeutronCommandWithExtraArgs):
61
61
  _description = _("Create a new Address Group")
62
62
 
63
63
  def get_parser(self, prog_name):
64
- parser = super(CreateAddressGroup, self).get_parser(prog_name)
64
+ parser = super().get_parser(prog_name)
65
65
  parser.add_argument(
66
66
  'name', metavar="<name>", help=_("New address group name")
67
67
  )
@@ -108,7 +108,7 @@ class DeleteAddressGroup(command.Command):
108
108
  _description = _("Delete address group(s)")
109
109
 
110
110
  def get_parser(self, prog_name):
111
- parser = super(DeleteAddressGroup, self).get_parser(prog_name)
111
+ parser = super().get_parser(prog_name)
112
112
  parser.add_argument(
113
113
  'address_group',
114
114
  metavar="<address-group>",
@@ -148,7 +148,7 @@ class ListAddressGroup(command.Lister):
148
148
  _description = _("List address groups")
149
149
 
150
150
  def get_parser(self, prog_name):
151
- parser = super(ListAddressGroup, self).get_parser(prog_name)
151
+ parser = super().get_parser(prog_name)
152
152
 
153
153
  parser.add_argument(
154
154
  '--name',
@@ -213,7 +213,7 @@ class SetAddressGroup(common.NeutronCommandWithExtraArgs):
213
213
  _description = _("Set address group properties")
214
214
 
215
215
  def get_parser(self, prog_name):
216
- parser = super(SetAddressGroup, self).get_parser(prog_name)
216
+ parser = super().get_parser(prog_name)
217
217
  parser.add_argument(
218
218
  'address_group',
219
219
  metavar="<address-group>",
@@ -265,7 +265,7 @@ class ShowAddressGroup(command.ShowOne):
265
265
  _description = _("Display address group details")
266
266
 
267
267
  def get_parser(self, prog_name):
268
- parser = super(ShowAddressGroup, self).get_parser(prog_name)
268
+ parser = super().get_parser(prog_name)
269
269
  parser.add_argument(
270
270
  'address_group',
271
271
  metavar="<address-group>",
@@ -289,7 +289,7 @@ class UnsetAddressGroup(command.Command):
289
289
  _description = _("Unset address group properties")
290
290
 
291
291
  def get_parser(self, prog_name):
292
- parser = super(UnsetAddressGroup, self).get_parser(prog_name)
292
+ parser = super().get_parser(prog_name)
293
293
  parser.add_argument(
294
294
  'address_group',
295
295
  metavar="<address-group>",
@@ -62,7 +62,7 @@ class CreateAddressScope(command.ShowOne, common.NeutronCommandWithExtraArgs):
62
62
  _description = _("Create a new Address Scope")
63
63
 
64
64
  def get_parser(self, prog_name):
65
- parser = super(CreateAddressScope, self).get_parser(prog_name)
65
+ parser = super().get_parser(prog_name)
66
66
  parser.add_argument(
67
67
  'name', metavar="<name>", help=_("New address scope name")
68
68
  )
@@ -113,7 +113,7 @@ class DeleteAddressScope(command.Command):
113
113
  _description = _("Delete address scope(s)")
114
114
 
115
115
  def get_parser(self, prog_name):
116
- parser = super(DeleteAddressScope, self).get_parser(prog_name)
116
+ parser = super().get_parser(prog_name)
117
117
  parser.add_argument(
118
118
  'address_scope',
119
119
  metavar="<address-scope>",
@@ -155,7 +155,7 @@ class ListAddressScope(command.Lister):
155
155
  _description = _("List address scopes")
156
156
 
157
157
  def get_parser(self, prog_name):
158
- parser = super(ListAddressScope, self).get_parser(prog_name)
158
+ parser = super().get_parser(prog_name)
159
159
 
160
160
  parser.add_argument(
161
161
  '--name',
@@ -249,7 +249,7 @@ class SetAddressScope(common.NeutronCommandWithExtraArgs):
249
249
  _description = _("Set address scope properties")
250
250
 
251
251
  def get_parser(self, prog_name):
252
- parser = super(SetAddressScope, self).get_parser(prog_name)
252
+ parser = super().get_parser(prog_name)
253
253
  parser.add_argument(
254
254
  'address_scope',
255
255
  metavar="<address-scope>",
@@ -294,7 +294,7 @@ class ShowAddressScope(command.ShowOne):
294
294
  _description = _("Display address scope details")
295
295
 
296
296
  def get_parser(self, prog_name):
297
- parser = super(ShowAddressScope, self).get_parser(prog_name)
297
+ parser = super().get_parser(prog_name)
298
298
  parser.add_argument(
299
299
  'address_scope',
300
300
  metavar="<address-scope>",
@@ -142,7 +142,7 @@ class CreateDefaultSecurityGroupRule(
142
142
  parser.add_argument(
143
143
  '--for-custom-sg',
144
144
  action='store_true',
145
- default=True,
145
+ default=False,
146
146
  help=_(
147
147
  "Set this default security group rule to be used in all "
148
148
  "custom security groups created manually by users"
@@ -9,18 +9,17 @@
9
9
  # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
10
10
  # License for the specific language governing permissions and limitations
11
11
  # under the License.
12
- #
13
12
 
14
13
  """IP Floating action implementations"""
15
14
 
16
15
  from osc_lib import utils
17
16
  from osc_lib.utils import tags as _tag
18
17
 
18
+ from openstackclient.api import compute_v2
19
19
  from openstackclient.i18n import _
20
20
  from openstackclient.identity import common as identity_common
21
21
  from openstackclient.network import common
22
22
 
23
-
24
23
  _formatters = {
25
24
  'port_details': utils.format_dict,
26
25
  }
@@ -200,7 +199,7 @@ class CreateFloatingIP(
200
199
  return (display_columns, data)
201
200
 
202
201
  def take_action_compute(self, client, parsed_args):
203
- obj = client.api.floating_ip_create(parsed_args.network)
202
+ obj = compute_v2.create_floating_ip(client, parsed_args.network)
204
203
  columns = _get_columns(obj)
205
204
  data = utils.get_dict_properties(obj, columns)
206
205
  return (columns, data)
@@ -230,7 +229,7 @@ class DeleteFloatingIP(common.NetworkAndComputeDelete):
230
229
  client.delete_ip(obj)
231
230
 
232
231
  def take_action_compute(self, client, parsed_args):
233
- client.api.floating_ip_delete(self.r)
232
+ compute_v2.delete_floating_ip(client, self.r)
234
233
 
235
234
 
236
235
  class ListFloatingIP(common.NetworkAndComputeLister):
@@ -421,8 +420,7 @@ class ListFloatingIP(common.NetworkAndComputeLister):
421
420
  'Pool',
422
421
  )
423
422
 
424
- data = client.api.floating_ip_list()
425
-
423
+ objs = compute_v2.list_floating_ips(client)
426
424
  return (
427
425
  headers,
428
426
  (
@@ -431,7 +429,7 @@ class ListFloatingIP(common.NetworkAndComputeLister):
431
429
  columns,
432
430
  formatters={},
433
431
  )
434
- for s in data
432
+ for s in objs
435
433
  ),
436
434
  )
437
435
 
@@ -440,7 +438,7 @@ class SetFloatingIP(common.NeutronCommandWithExtraArgs):
440
438
  _description = _("Set floating IP Properties")
441
439
 
442
440
  def get_parser(self, prog_name):
443
- parser = super(SetFloatingIP, self).get_parser(prog_name)
441
+ parser = super().get_parser(prog_name)
444
442
  parser.add_argument(
445
443
  'floating_ip',
446
444
  metavar='<floating-ip>',
@@ -538,7 +536,7 @@ class ShowFloatingIP(common.NetworkAndComputeShowOne):
538
536
  return (display_columns, data)
539
537
 
540
538
  def take_action_compute(self, client, parsed_args):
541
- obj = client.api.floating_ip_find(parsed_args.floating_ip)
539
+ obj = compute_v2.get_floating_ip(client, parsed_args.floating_ip)
542
540
  columns = _get_columns(obj)
543
541
  data = utils.get_dict_properties(obj, columns)
544
542
  return (columns, data)
@@ -548,7 +546,7 @@ class UnsetFloatingIP(common.NeutronCommandWithExtraArgs):
548
546
  _description = _("Unset floating IP Properties")
549
547
 
550
548
  def get_parser(self, prog_name):
551
- parser = super(UnsetFloatingIP, self).get_parser(prog_name)
549
+ parser = super().get_parser(prog_name)
552
550
  parser.add_argument(
553
551
  'floating_ip',
554
552
  metavar='<floating-ip>',
@@ -9,14 +9,12 @@
9
9
  # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
10
10
  # License for the specific language governing permissions and limitations
11
11
  # under the License.
12
- #
13
12
 
14
13
  """Floating IP Pool action implementations"""
15
14
 
16
-
17
15
  from osc_lib import exceptions
18
- from osc_lib import utils
19
16
 
17
+ from openstackclient.api import compute_v2
20
18
  from openstackclient.i18n import _
21
19
  from openstackclient.network import common
22
20
 
@@ -33,15 +31,8 @@ class ListFloatingIPPool(common.NetworkAndComputeLister):
33
31
 
34
32
  def take_action_compute(self, client, parsed_args):
35
33
  columns = ('Name',)
36
- data = client.api.floating_ip_pool_list()
37
-
38
- return (
39
- columns,
40
- (
41
- utils.get_dict_properties(
42
- s,
43
- columns,
44
- )
45
- for s in data
46
- ),
47
- )
34
+ data = [
35
+ (x['name'],) for x in compute_v2.list_floating_ip_pools(client)
36
+ ]
37
+
38
+ return (columns, data)
@@ -98,9 +98,7 @@ class CreateFloatingIPPortForwarding(
98
98
  _description = _("Create floating IP port forwarding")
99
99
 
100
100
  def get_parser(self, prog_name):
101
- parser = super(CreateFloatingIPPortForwarding, self).get_parser(
102
- prog_name
103
- )
101
+ parser = super().get_parser(prog_name)
104
102
  parser.add_argument(
105
103
  '--internal-ip-address',
106
104
  required=True,
@@ -201,9 +199,7 @@ class DeleteFloatingIPPortForwarding(command.Command):
201
199
  _description = _("Delete floating IP port forwarding")
202
200
 
203
201
  def get_parser(self, prog_name):
204
- parser = super(DeleteFloatingIPPortForwarding, self).get_parser(
205
- prog_name
206
- )
202
+ parser = super().get_parser(prog_name)
207
203
  parser.add_argument(
208
204
  'floating_ip',
209
205
  metavar='<floating-ip>',
@@ -256,9 +252,7 @@ class ListFloatingIPPortForwarding(command.Lister):
256
252
  _description = _("List floating IP port forwarding")
257
253
 
258
254
  def get_parser(self, prog_name):
259
- parser = super(ListFloatingIPPortForwarding, self).get_parser(
260
- prog_name
261
- )
255
+ parser = super().get_parser(prog_name)
262
256
  parser.add_argument(
263
257
  'floating_ip',
264
258
  metavar='<floating-ip>',
@@ -358,7 +352,7 @@ class SetFloatingIPPortForwarding(common.NeutronCommandWithExtraArgs):
358
352
  _description = _("Set floating IP Port Forwarding Properties")
359
353
 
360
354
  def get_parser(self, prog_name):
361
- parser = super(SetFloatingIPPortForwarding, self).get_parser(prog_name)
355
+ parser = super().get_parser(prog_name)
362
356
  parser.add_argument(
363
357
  'floating_ip',
364
358
  metavar='<floating-ip>',
@@ -458,9 +452,7 @@ class ShowFloatingIPPortForwarding(command.ShowOne):
458
452
  _description = _("Display floating IP Port Forwarding details")
459
453
 
460
454
  def get_parser(self, prog_name):
461
- parser = super(ShowFloatingIPPortForwarding, self).get_parser(
462
- prog_name
463
- )
455
+ parser = super().get_parser(prog_name)
464
456
  parser.add_argument(
465
457
  'floating_ip',
466
458
  metavar='<floating-ip>',
@@ -39,7 +39,7 @@ class ListIPAvailability(command.Lister):
39
39
  _description = _("List IP availability for network")
40
40
 
41
41
  def get_parser(self, prog_name):
42
- parser = super(ListIPAvailability, self).get_parser(prog_name)
42
+ parser = super().get_parser(prog_name)
43
43
  parser.add_argument(
44
44
  '--ip-version',
45
45
  type=int,
@@ -105,7 +105,7 @@ class ShowIPAvailability(command.ShowOne):
105
105
  _description = _("Show network IP availability details")
106
106
 
107
107
  def get_parser(self, prog_name):
108
- parser = super(ShowIPAvailability, self).get_parser(prog_name)
108
+ parser = super().get_parser(prog_name)
109
109
  parser.add_argument(
110
110
  'network',
111
111
  metavar="<network>",
@@ -49,7 +49,7 @@ class CreateConntrackHelper(command.ShowOne):
49
49
  _description = _("Create a new L3 conntrack helper")
50
50
 
51
51
  def get_parser(self, prog_name):
52
- parser = super(CreateConntrackHelper, self).get_parser(prog_name)
52
+ parser = super().get_parser(prog_name)
53
53
  parser.add_argument(
54
54
  'router',
55
55
  metavar='<router>',
@@ -95,7 +95,7 @@ class DeleteConntrackHelper(command.Command):
95
95
  _description = _("Delete L3 conntrack helper")
96
96
 
97
97
  def get_parser(self, prog_name):
98
- parser = super(DeleteConntrackHelper, self).get_parser(prog_name)
98
+ parser = super().get_parser(prog_name)
99
99
  parser.add_argument(
100
100
  'router',
101
101
  metavar='<router>',
@@ -143,7 +143,7 @@ class ListConntrackHelper(command.Lister):
143
143
  _description = _("List L3 conntrack helpers")
144
144
 
145
145
  def get_parser(self, prog_name):
146
- parser = super(ListConntrackHelper, self).get_parser(prog_name)
146
+ parser = super().get_parser(prog_name)
147
147
  parser.add_argument(
148
148
  'router',
149
149
  metavar='<router>',
@@ -206,7 +206,7 @@ class SetConntrackHelper(command.Command):
206
206
  _description = _("Set L3 conntrack helper properties")
207
207
 
208
208
  def get_parser(self, prog_name):
209
- parser = super(SetConntrackHelper, self).get_parser(prog_name)
209
+ parser = super().get_parser(prog_name)
210
210
  parser.add_argument(
211
211
  'router',
212
212
  metavar='<router>',
@@ -253,7 +253,7 @@ class ShowConntrackHelper(command.ShowOne):
253
253
  _description = _("Display L3 conntrack helper details")
254
254
 
255
255
  def get_parser(self, prog_name):
256
- parser = super(ShowConntrackHelper, self).get_parser(prog_name)
256
+ parser = super().get_parser(prog_name)
257
257
  parser.add_argument(
258
258
  'router',
259
259
  metavar='<router>',
@@ -9,7 +9,6 @@
9
9
  # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
10
10
  # License for the specific language governing permissions and limitations
11
11
  # under the License.
12
- #
13
12
 
14
13
  """Network action implementations"""
15
14
 
@@ -18,6 +17,7 @@ from osc_lib.cli import format_columns
18
17
  from osc_lib import utils
19
18
  from osc_lib.utils import tags as _tag
20
19
 
20
+ from openstackclient.api import compute_v2
21
21
  from openstackclient.i18n import _
22
22
  from openstackclient.identity import common as identity_common
23
23
  from openstackclient.network import common
@@ -61,7 +61,6 @@ def _get_columns_network(item):
61
61
  'tags': 'tags',
62
62
  }
63
63
  hidden_columns = ['location', 'tenant_id']
64
- hidden_columns = ['location']
65
64
  return utils.get_osc_show_columns_for_sdk_resource(
66
65
  item, column_map, hidden_columns
67
66
  )
@@ -389,7 +388,7 @@ class CreateNetwork(
389
388
 
390
389
  def take_action_compute(self, client, parsed_args):
391
390
  attrs = _get_attrs_compute(self.app.client_manager, parsed_args)
392
- obj = client.api.network_create(**attrs)
391
+ obj = compute_v2.create_network(client, **attrs)
393
392
  display_columns, columns = _get_columns_compute(obj)
394
393
  data = utils.get_dict_properties(obj, columns)
395
394
  return (display_columns, data)
@@ -417,7 +416,8 @@ class DeleteNetwork(common.NetworkAndComputeDelete):
417
416
  client.delete_network(obj)
418
417
 
419
418
  def take_action_compute(self, client, parsed_args):
420
- client.api.network_delete(self.r)
419
+ network = compute_v2.find_network(client, self.r)
420
+ compute_v2.delete_network(client, network['id'])
421
421
 
422
422
 
423
423
  # TODO(sindhu): Use the SDK resource mapped attribute names once the
@@ -674,7 +674,7 @@ class ListNetwork(common.NetworkAndComputeLister):
674
674
  'Subnet',
675
675
  )
676
676
 
677
- data = client.api.network_list()
677
+ data = compute_v2.list_networks(client)
678
678
 
679
679
  return (
680
680
  column_headers,
@@ -695,7 +695,7 @@ class SetNetwork(common.NeutronCommandWithExtraArgs):
695
695
  _description = _("Set network properties")
696
696
 
697
697
  def get_parser(self, prog_name):
698
- parser = super(SetNetwork, self).get_parser(prog_name)
698
+ parser = super().get_parser(prog_name)
699
699
  parser.add_argument(
700
700
  'network',
701
701
  metavar="<network>",
@@ -829,7 +829,7 @@ class ShowNetwork(common.NetworkAndComputeShowOne):
829
829
  return (display_columns, data)
830
830
 
831
831
  def take_action_compute(self, client, parsed_args):
832
- obj = client.api.network_find(parsed_args.network)
832
+ obj = compute_v2.find_network(client, parsed_args.network)
833
833
  display_columns, columns = _get_columns_compute(obj)
834
834
  data = utils.get_dict_properties(obj, columns)
835
835
  return (display_columns, data)
@@ -839,7 +839,7 @@ class UnsetNetwork(common.NeutronUnsetCommandWithExtraArgs):
839
839
  _description = _("Unset network properties")
840
840
 
841
841
  def get_parser(self, prog_name):
842
- parser = super(UnsetNetwork, self).get_parser(prog_name)
842
+ parser = super().get_parser(prog_name)
843
843
  parser.add_argument(
844
844
  'network',
845
845
  metavar="<network>",