python-openstackclient 9.0.0__py3-none-any.whl → 10.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. openstackclient/__init__.py +2 -6
  2. openstackclient/api/api.py +41 -23
  3. openstackclient/api/compute_v2.py +44 -25
  4. openstackclient/api/object_store_v1.py +75 -97
  5. openstackclient/api/volume_v2.py +2 -1
  6. openstackclient/api/volume_v3.py +2 -1
  7. openstackclient/common/availability_zone.py +59 -43
  8. openstackclient/common/clientmanager.py +56 -29
  9. openstackclient/common/configuration.py +10 -3
  10. openstackclient/common/envvars.py +2 -2
  11. openstackclient/common/extension.py +14 -5
  12. openstackclient/common/limits.py +10 -5
  13. openstackclient/common/module.py +36 -34
  14. openstackclient/common/pagination.py +50 -6
  15. openstackclient/common/progressbar.py +7 -6
  16. openstackclient/common/project_cleanup.py +11 -6
  17. openstackclient/common/quota.py +105 -103
  18. openstackclient/common/versions.py +8 -2
  19. openstackclient/compute/client.py +7 -3
  20. openstackclient/compute/v2/agent.py +17 -10
  21. openstackclient/compute/v2/aggregate.py +36 -22
  22. openstackclient/compute/v2/console.py +14 -8
  23. openstackclient/compute/v2/console_connection.py +11 -3
  24. openstackclient/compute/v2/flavor.py +42 -22
  25. openstackclient/compute/v2/host.py +14 -6
  26. openstackclient/compute/v2/hypervisor.py +16 -5
  27. openstackclient/compute/v2/hypervisor_stats.py +10 -2
  28. openstackclient/compute/v2/keypair.py +35 -16
  29. openstackclient/compute/v2/server.py +268 -179
  30. openstackclient/compute/v2/server_backup.py +10 -4
  31. openstackclient/compute/v2/server_event.py +28 -12
  32. openstackclient/compute/v2/server_group.py +23 -11
  33. openstackclient/compute/v2/server_image.py +19 -10
  34. openstackclient/compute/v2/server_migration.py +27 -10
  35. openstackclient/compute/v2/server_share.py +274 -0
  36. openstackclient/compute/v2/server_volume.py +13 -5
  37. openstackclient/compute/v2/service.py +17 -8
  38. openstackclient/compute/v2/usage.py +28 -23
  39. openstackclient/identity/client.py +8 -3
  40. openstackclient/identity/common.py +82 -47
  41. openstackclient/identity/v2_0/catalog.py +14 -7
  42. openstackclient/identity/v2_0/ec2creds.py +21 -10
  43. openstackclient/identity/v2_0/endpoint.py +23 -11
  44. openstackclient/identity/v2_0/project.py +25 -14
  45. openstackclient/identity/v2_0/role.py +28 -14
  46. openstackclient/identity/v2_0/role_assignment.py +9 -3
  47. openstackclient/identity/v2_0/service.py +23 -11
  48. openstackclient/identity/v2_0/token.py +12 -5
  49. openstackclient/identity/v2_0/user.py +26 -15
  50. openstackclient/identity/v3/access_rule.py +32 -12
  51. openstackclient/identity/v3/application_credential.py +66 -24
  52. openstackclient/identity/v3/catalog.py +14 -7
  53. openstackclient/identity/v3/consumer.py +22 -11
  54. openstackclient/identity/v3/credential.py +39 -17
  55. openstackclient/identity/v3/domain.py +40 -19
  56. openstackclient/identity/v3/ec2creds.py +25 -12
  57. openstackclient/identity/v3/endpoint.py +98 -64
  58. openstackclient/identity/v3/endpoint_group.py +28 -17
  59. openstackclient/identity/v3/federation_protocol.py +44 -20
  60. openstackclient/identity/v3/group.py +64 -40
  61. openstackclient/identity/v3/identity_provider.py +95 -57
  62. openstackclient/identity/v3/implied_role.py +21 -9
  63. openstackclient/identity/v3/limit.py +42 -17
  64. openstackclient/identity/v3/mapping.py +58 -28
  65. openstackclient/identity/v3/policy.py +23 -12
  66. openstackclient/identity/v3/project.py +59 -26
  67. openstackclient/identity/v3/region.py +39 -17
  68. openstackclient/identity/v3/registered_limit.py +41 -16
  69. openstackclient/identity/v3/role.py +62 -31
  70. openstackclient/identity/v3/role_assignment.py +25 -7
  71. openstackclient/identity/v3/service.py +39 -17
  72. openstackclient/identity/v3/service_provider.py +40 -16
  73. openstackclient/identity/v3/tag.py +23 -6
  74. openstackclient/identity/v3/token.py +30 -14
  75. openstackclient/identity/v3/trust.py +39 -18
  76. openstackclient/identity/v3/unscoped_saml.py +10 -2
  77. openstackclient/identity/v3/user.py +86 -36
  78. openstackclient/image/client.py +7 -3
  79. openstackclient/image/v1/image.py +33 -26
  80. openstackclient/image/v2/cache.py +16 -11
  81. openstackclient/image/v2/image.py +88 -56
  82. openstackclient/image/v2/info.py +7 -1
  83. openstackclient/image/v2/metadef_namespaces.py +117 -20
  84. openstackclient/image/v2/metadef_objects.py +32 -19
  85. openstackclient/image/v2/metadef_properties.py +30 -16
  86. openstackclient/image/v2/metadef_resource_type_association.py +14 -7
  87. openstackclient/image/v2/metadef_resource_types.py +7 -1
  88. openstackclient/image/v2/task.py +25 -27
  89. openstackclient/locale/tr_TR/LC_MESSAGES/openstackclient.po +7 -192
  90. openstackclient/network/client.py +7 -2
  91. openstackclient/network/common.py +16 -241
  92. openstackclient/network/utils.py +27 -54
  93. openstackclient/network/v2/address_group.py +39 -16
  94. openstackclient/network/v2/address_scope.py +36 -20
  95. openstackclient/network/v2/bgpvpn/bgpvpn.py +477 -0
  96. openstackclient/network/v2/bgpvpn/constants.py +30 -0
  97. openstackclient/network/v2/bgpvpn/network_association.py +226 -0
  98. openstackclient/network/v2/bgpvpn/port_association.py +504 -0
  99. openstackclient/network/v2/bgpvpn/router_association.py +301 -0
  100. openstackclient/network/v2/default_security_group_rule.py +31 -14
  101. openstackclient/network/v2/floating_ip.py +121 -162
  102. openstackclient/network/v2/floating_ip_port_forwarding.py +41 -19
  103. openstackclient/network/v2/fwaas/__init__.py +0 -0
  104. openstackclient/network/v2/fwaas/group.py +499 -0
  105. openstackclient/network/v2/fwaas/policy.py +518 -0
  106. openstackclient/network/v2/fwaas/rule.py +610 -0
  107. openstackclient/network/v2/ip_availability.py +25 -8
  108. openstackclient/network/v2/l3_conntrack_helper.py +35 -13
  109. openstackclient/network/v2/local_ip.py +27 -13
  110. openstackclient/network/v2/local_ip_association.py +17 -7
  111. openstackclient/network/v2/ndp_proxy.py +23 -11
  112. openstackclient/network/v2/network.py +213 -213
  113. openstackclient/network/v2/network_agent.py +77 -34
  114. openstackclient/network/v2/network_auto_allocated_topology.py +27 -15
  115. openstackclient/network/v2/network_flavor.py +45 -21
  116. openstackclient/network/v2/network_flavor_profile.py +42 -17
  117. openstackclient/network/v2/network_meter.py +39 -15
  118. openstackclient/network/v2/network_meter_rule.py +40 -12
  119. openstackclient/network/v2/network_qos_policy.py +39 -21
  120. openstackclient/network/v2/network_qos_rule.py +48 -18
  121. openstackclient/network/v2/network_qos_rule_type.py +28 -9
  122. openstackclient/network/v2/network_rbac.py +34 -16
  123. openstackclient/network/v2/network_segment.py +32 -11
  124. openstackclient/network/v2/network_segment_range.py +70 -31
  125. openstackclient/network/v2/network_service_provider.py +7 -1
  126. openstackclient/network/v2/network_trunk.py +41 -22
  127. openstackclient/network/v2/port.py +141 -40
  128. openstackclient/network/v2/router.py +101 -67
  129. openstackclient/network/v2/security_group.py +97 -198
  130. openstackclient/network/v2/security_group_rule.py +115 -282
  131. openstackclient/network/v2/subnet.py +63 -34
  132. openstackclient/network/v2/subnet_pool.py +42 -24
  133. openstackclient/network/v2/taas/tap_flow.py +35 -14
  134. openstackclient/network/v2/taas/tap_mirror.py +28 -14
  135. openstackclient/network/v2/taas/tap_service.py +26 -12
  136. openstackclient/object/client.py +7 -2
  137. openstackclient/object/v1/account.py +13 -6
  138. openstackclient/object/v1/container.py +28 -16
  139. openstackclient/object/v1/object.py +28 -16
  140. openstackclient/py.typed +0 -0
  141. openstackclient/shell.py +46 -10
  142. openstackclient/tests/functional/base.py +55 -20
  143. openstackclient/tests/functional/common/test_extension.py +4 -0
  144. openstackclient/tests/functional/common/test_quota.py +3 -1
  145. openstackclient/tests/functional/compute/v2/common.py +14 -13
  146. openstackclient/tests/functional/compute/v2/test_flavor.py +3 -1
  147. openstackclient/tests/functional/compute/v2/test_server.py +3 -0
  148. openstackclient/tests/functional/identity/v2/common.py +10 -6
  149. openstackclient/tests/functional/identity/v2/test_role.py +4 -4
  150. openstackclient/tests/functional/identity/v3/common.py +59 -19
  151. openstackclient/tests/functional/identity/v3/test_application_credential.py +1 -1
  152. openstackclient/tests/functional/identity/v3/test_group.py +20 -20
  153. openstackclient/tests/functional/identity/v3/test_idp.py +3 -1
  154. openstackclient/tests/functional/identity/v3/test_mapping.py +81 -0
  155. openstackclient/tests/functional/identity/v3/test_project.py +10 -10
  156. openstackclient/tests/functional/identity/v3/test_role.py +18 -18
  157. openstackclient/tests/functional/identity/v3/test_role_assignment.py +12 -12
  158. openstackclient/tests/functional/identity/v3/test_user.py +8 -8
  159. openstackclient/tests/functional/image/base.py +1 -6
  160. openstackclient/tests/functional/network/v2/common.py +5 -2
  161. openstackclient/tests/functional/network/v2/test_floating_ip.py +10 -4
  162. openstackclient/tests/functional/network/v2/test_ip_availability.py +4 -0
  163. openstackclient/tests/functional/network/v2/test_network_meter_rule.py +3 -2
  164. openstackclient/tests/functional/network/v2/test_network_segment.py +5 -0
  165. openstackclient/tests/functional/network/v2/test_subnet.py +13 -9
  166. openstackclient/tests/functional/object/v1/common.py +4 -0
  167. openstackclient/tests/functional/volume/v2/common.py +4 -0
  168. openstackclient/tests/functional/volume/v2/test_volume_snapshot.py +27 -11
  169. openstackclient/tests/functional/volume/v2/test_volume_type.py +2 -2
  170. openstackclient/tests/functional/volume/v3/common.py +4 -0
  171. openstackclient/tests/functional/volume/v3/test_volume_group.py +163 -0
  172. openstackclient/tests/functional/volume/v3/test_volume_snapshot.py +11 -7
  173. openstackclient/tests/functional/volume/v3/test_volume_type.py +2 -2
  174. openstackclient/tests/unit/common/test_availability_zone.py +35 -49
  175. openstackclient/tests/unit/common/test_extension.py +2 -2
  176. openstackclient/tests/unit/common/test_limits.py +1 -1
  177. openstackclient/tests/unit/common/test_module.py +82 -44
  178. openstackclient/tests/unit/common/test_project_cleanup.py +3 -1
  179. openstackclient/tests/unit/common/test_quota.py +15 -26
  180. openstackclient/tests/unit/compute/v2/fakes.py +26 -57
  181. openstackclient/tests/unit/compute/v2/test_agent.py +4 -4
  182. openstackclient/tests/unit/compute/v2/test_aggregate.py +1 -1
  183. openstackclient/tests/unit/compute/v2/test_console.py +2 -2
  184. openstackclient/tests/unit/compute/v2/test_console_connection.py +1 -1
  185. openstackclient/tests/unit/compute/v2/test_flavor.py +29 -3
  186. openstackclient/tests/unit/compute/v2/test_host.py +3 -3
  187. openstackclient/tests/unit/compute/v2/test_hypervisor.py +2 -2
  188. openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +1 -1
  189. openstackclient/tests/unit/compute/v2/test_keypair.py +7 -7
  190. openstackclient/tests/unit/compute/v2/test_server.py +26 -111
  191. openstackclient/tests/unit/compute/v2/test_server_backup.py +1 -1
  192. openstackclient/tests/unit/compute/v2/test_server_event.py +2 -2
  193. openstackclient/tests/unit/compute/v2/test_server_group.py +1 -1
  194. openstackclient/tests/unit/compute/v2/test_server_image.py +1 -1
  195. openstackclient/tests/unit/compute/v2/test_server_migration.py +4 -4
  196. openstackclient/tests/unit/compute/v2/test_server_share.py +287 -0
  197. openstackclient/tests/unit/compute/v2/test_server_volume.py +2 -2
  198. openstackclient/tests/unit/compute/v2/test_service.py +3 -3
  199. openstackclient/tests/unit/compute/v2/test_usage.py +1 -1
  200. openstackclient/tests/unit/identity/v2_0/fakes.py +3 -7
  201. openstackclient/tests/unit/identity/v2_0/test_endpoint.py +1 -1
  202. openstackclient/tests/unit/identity/v2_0/test_project.py +1 -1
  203. openstackclient/tests/unit/identity/v2_0/test_role.py +1 -1
  204. openstackclient/tests/unit/identity/v2_0/test_role_assignment.py +1 -1
  205. openstackclient/tests/unit/identity/v2_0/test_service.py +1 -1
  206. openstackclient/tests/unit/identity/v2_0/test_token.py +2 -2
  207. openstackclient/tests/unit/identity/v2_0/test_user.py +1 -1
  208. openstackclient/tests/unit/identity/v3/fakes.py +8 -38
  209. openstackclient/tests/unit/identity/v3/test_access_rule.py +3 -3
  210. openstackclient/tests/unit/identity/v3/test_application_credential.py +4 -4
  211. openstackclient/tests/unit/identity/v3/test_credential.py +5 -5
  212. openstackclient/tests/unit/identity/v3/test_domain.py +5 -5
  213. openstackclient/tests/unit/identity/v3/test_endpoint.py +6 -6
  214. openstackclient/tests/unit/identity/v3/test_endpoint_group.py +1 -1
  215. openstackclient/tests/unit/identity/v3/test_group.py +12 -22
  216. openstackclient/tests/unit/identity/v3/test_identity_provider.py +303 -299
  217. openstackclient/tests/unit/identity/v3/test_implied_role.py +1 -1
  218. openstackclient/tests/unit/identity/v3/test_limit.py +5 -5
  219. openstackclient/tests/unit/identity/v3/test_mappings.py +163 -79
  220. openstackclient/tests/unit/identity/v3/test_project.py +28 -5
  221. openstackclient/tests/unit/identity/v3/test_protocol.py +3 -3
  222. openstackclient/tests/unit/identity/v3/test_region.py +5 -5
  223. openstackclient/tests/unit/identity/v3/test_registered_limit.py +5 -5
  224. openstackclient/tests/unit/identity/v3/test_role.py +8 -8
  225. openstackclient/tests/unit/identity/v3/test_role_assignment.py +1 -1
  226. openstackclient/tests/unit/identity/v3/test_service.py +5 -5
  227. openstackclient/tests/unit/identity/v3/test_token.py +2 -2
  228. openstackclient/tests/unit/identity/v3/test_trust.py +4 -4
  229. openstackclient/tests/unit/identity/v3/test_user.py +77 -10
  230. openstackclient/tests/unit/image/v2/test_image.py +11 -11
  231. openstackclient/tests/unit/image/v2/test_metadef_namespaces.py +105 -6
  232. openstackclient/tests/unit/network/test_common.py +0 -155
  233. openstackclient/tests/unit/network/v2/bgpvpn/__init__.py +0 -0
  234. openstackclient/tests/unit/network/v2/bgpvpn/fakes.py +179 -0
  235. openstackclient/tests/unit/network/v2/bgpvpn/test_bgpvpn.py +584 -0
  236. openstackclient/tests/unit/network/v2/bgpvpn/test_network_association.py +285 -0
  237. openstackclient/tests/unit/network/v2/bgpvpn/test_port_association.py +384 -0
  238. openstackclient/tests/unit/network/v2/bgpvpn/test_router_association.py +297 -0
  239. openstackclient/tests/unit/network/v2/fakes.py +5 -77
  240. openstackclient/tests/unit/network/v2/fwaas/__init__.py +0 -0
  241. openstackclient/tests/unit/network/v2/fwaas/test_group.py +923 -0
  242. openstackclient/tests/unit/network/v2/fwaas/test_policy.py +869 -0
  243. openstackclient/tests/unit/network/v2/fwaas/test_rule.py +1005 -0
  244. openstackclient/tests/unit/network/v2/taas/{test_osc_tap_flow.py → test_tap_flow.py} +18 -25
  245. openstackclient/tests/unit/network/v2/taas/{test_osc_tap_mirror.py → test_tap_mirror.py} +19 -29
  246. openstackclient/tests/unit/network/v2/taas/{test_osc_tap_service.py → test_tap_service.py} +19 -29
  247. openstackclient/tests/unit/network/v2/test_address_group.py +26 -2
  248. openstackclient/tests/unit/network/v2/test_address_scope.py +24 -0
  249. openstackclient/tests/unit/network/v2/{test_floating_ip_network.py → test_floating_ip.py} +27 -2
  250. openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +37 -13
  251. openstackclient/tests/unit/network/v2/test_ip_availability.py +25 -0
  252. openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +29 -3
  253. openstackclient/tests/unit/network/v2/test_network.py +74 -12
  254. openstackclient/tests/unit/network/v2/test_network_agent.py +58 -5
  255. openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py +3 -3
  256. openstackclient/tests/unit/network/v2/test_network_flavor.py +26 -2
  257. openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +24 -0
  258. openstackclient/tests/unit/network/v2/test_network_meter.py +24 -0
  259. openstackclient/tests/unit/network/v2/test_network_qos_policy.py +25 -1
  260. openstackclient/tests/unit/network/v2/test_network_qos_rule.py +2 -2
  261. openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +24 -0
  262. openstackclient/tests/unit/network/v2/test_network_rbac.py +25 -1
  263. openstackclient/tests/unit/network/v2/test_network_segment.py +25 -1
  264. openstackclient/tests/unit/network/v2/test_network_segment_range.py +31 -10
  265. openstackclient/tests/unit/network/v2/test_network_trunk.py +1 -1
  266. openstackclient/tests/unit/network/v2/test_port.py +166 -0
  267. openstackclient/tests/unit/network/v2/test_router.py +36 -16
  268. openstackclient/tests/unit/network/v2/{test_security_group_network.py → test_security_group.py} +11 -8
  269. openstackclient/tests/unit/network/v2/{test_security_group_rule_network.py → test_security_group_rule.py} +28 -37
  270. openstackclient/tests/unit/network/v2/test_subnet.py +30 -5
  271. openstackclient/tests/unit/network/v2/test_subnet_pool.py +26 -1
  272. openstackclient/tests/unit/object/v1/fakes.py +8 -7
  273. openstackclient/tests/unit/object/v1/test_container.py +65 -101
  274. openstackclient/tests/unit/object/v1/test_container_all.py +8 -1
  275. openstackclient/tests/unit/object/v1/test_object.py +44 -84
  276. openstackclient/tests/unit/object/v1/test_object_all.py +8 -1
  277. openstackclient/tests/unit/test_hacking.py +108 -0
  278. openstackclient/tests/unit/volume/v2/fakes.py +21 -140
  279. openstackclient/tests/unit/volume/v2/test_volume_backup.py +6 -14
  280. openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +8 -1
  281. openstackclient/tests/unit/volume/v2/test_volume_type.py +2 -4
  282. openstackclient/tests/unit/volume/v3/fakes.py +205 -100
  283. openstackclient/tests/unit/volume/v3/test_backup_record.py +114 -0
  284. openstackclient/tests/unit/volume/v3/test_consistency_group.py +720 -0
  285. openstackclient/tests/unit/volume/v3/test_consistency_group_snapshot.py +354 -0
  286. openstackclient/tests/unit/volume/v3/test_qos_specs.py +455 -0
  287. openstackclient/tests/unit/volume/v3/test_volume.py +60 -3
  288. openstackclient/tests/unit/volume/v3/test_volume_attachment.py +3 -1
  289. openstackclient/tests/unit/volume/v3/test_volume_backend.py +158 -0
  290. openstackclient/tests/unit/volume/v3/test_volume_backup.py +6 -14
  291. openstackclient/tests/unit/volume/v3/test_volume_group_type.py +65 -0
  292. openstackclient/tests/unit/volume/v3/test_volume_host.py +115 -0
  293. openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +61 -1
  294. openstackclient/tests/unit/volume/v3/test_volume_type.py +2 -4
  295. openstackclient/volume/client.py +7 -3
  296. openstackclient/volume/v2/backup_record.py +15 -6
  297. openstackclient/volume/v2/consistency_group.py +29 -17
  298. openstackclient/volume/v2/consistency_group_snapshot.py +25 -10
  299. openstackclient/volume/v2/qos_specs.py +28 -17
  300. openstackclient/volume/v2/service.py +17 -6
  301. openstackclient/volume/v2/volume.py +60 -30
  302. openstackclient/volume/v2/volume_backend.py +19 -6
  303. openstackclient/volume/v2/volume_backup.py +48 -23
  304. openstackclient/volume/v2/volume_host.py +6 -4
  305. openstackclient/volume/v2/volume_snapshot.py +49 -24
  306. openstackclient/volume/v2/volume_transfer_request.py +31 -13
  307. openstackclient/volume/v2/volume_type.py +43 -24
  308. openstackclient/volume/v3/backup_record.py +94 -0
  309. openstackclient/volume/v3/block_storage_cleanup.py +11 -3
  310. openstackclient/volume/v3/block_storage_cluster.py +19 -7
  311. openstackclient/volume/v3/block_storage_log_level.py +15 -6
  312. openstackclient/volume/v3/block_storage_manage.py +10 -4
  313. openstackclient/volume/v3/block_storage_resource_filter.py +17 -5
  314. openstackclient/volume/v3/consistency_group.py +400 -0
  315. openstackclient/volume/v3/consistency_group_snapshot.py +225 -0
  316. openstackclient/volume/v3/qos_specs.py +389 -0
  317. openstackclient/volume/v3/service.py +16 -6
  318. openstackclient/volume/v3/volume.py +92 -40
  319. openstackclient/volume/v3/volume_attachment.py +47 -21
  320. openstackclient/volume/v3/volume_backend.py +130 -0
  321. openstackclient/volume/v3/volume_backup.py +55 -27
  322. openstackclient/volume/v3/volume_group.py +23 -13
  323. openstackclient/volume/v3/volume_group_snapshot.py +34 -17
  324. openstackclient/volume/v3/volume_group_type.py +27 -14
  325. openstackclient/volume/v3/volume_host.py +74 -0
  326. openstackclient/volume/v3/volume_message.py +18 -8
  327. openstackclient/volume/v3/volume_snapshot.py +70 -32
  328. openstackclient/volume/v3/volume_transfer_request.py +31 -13
  329. openstackclient/volume/v3/volume_type.py +42 -24
  330. {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/METADATA +7 -8
  331. python_openstackclient-10.1.0.dist-info/RECORD +524 -0
  332. {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/WHEEL +1 -1
  333. {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/entry_points.txt +77 -25
  334. {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/licenses/AUTHORS +9 -0
  335. python_openstackclient-10.1.0.dist-info/pbr.json +1 -0
  336. openstackclient/api/image_v1.py +0 -69
  337. openstackclient/api/image_v2.py +0 -79
  338. openstackclient/network/v2/floating_ip_pool.py +0 -38
  339. openstackclient/tests/functional/image/v1/test_image.py +0 -97
  340. openstackclient/tests/unit/api/test_image_v1.py +0 -96
  341. openstackclient/tests/unit/api/test_image_v2.py +0 -96
  342. openstackclient/tests/unit/network/v2/test_floating_ip_compute.py +0 -248
  343. openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py +0 -49
  344. openstackclient/tests/unit/network/v2/test_floating_ip_pool_network.py +0 -39
  345. openstackclient/tests/unit/network/v2/test_network_compute.py +0 -404
  346. openstackclient/tests/unit/network/v2/test_security_group_compute.py +0 -392
  347. openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +0 -555
  348. python_openstackclient-9.0.0.dist-info/RECORD +0 -499
  349. python_openstackclient-9.0.0.dist-info/pbr.json +0 -1
  350. /openstackclient/{tests/functional/image/v1 → network/v2/bgpvpn}/__init__.py +0 -0
  351. {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/licenses/LICENSE +0 -0
  352. {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/top_level.txt +0 -0
@@ -790,7 +790,7 @@ class TestDeleteSubnet(TestSubnet):
790
790
 
791
791
  class TestListSubnet(TestSubnet):
792
792
  # The subnets going to be listed up.
793
- _subnet = network_fakes.FakeSubnet.create_subnets(count=3)
793
+ _subnets = network_fakes.FakeSubnet.create_subnets(count=3)
794
794
 
795
795
  columns = (
796
796
  'ID',
@@ -798,7 +798,8 @@ class TestListSubnet(TestSubnet):
798
798
  'Network',
799
799
  'Subnet',
800
800
  )
801
- columns_long = columns + (
801
+ columns_long = (
802
+ *columns,
802
803
  'Project',
803
804
  'DHCP',
804
805
  'Name Servers',
@@ -811,7 +812,7 @@ class TestListSubnet(TestSubnet):
811
812
  )
812
813
 
813
814
  data = []
814
- for subnet in _subnet:
815
+ for subnet in _subnets:
815
816
  data.append(
816
817
  (
817
818
  subnet.id,
@@ -822,7 +823,7 @@ class TestListSubnet(TestSubnet):
822
823
  )
823
824
 
824
825
  data_long = []
825
- for subnet in _subnet:
826
+ for subnet in _subnets:
826
827
  data_long.append(
827
828
  (
828
829
  subnet.id,
@@ -847,7 +848,7 @@ class TestListSubnet(TestSubnet):
847
848
  # Get the command object to test
848
849
  self.cmd = subnet_v2.ListSubnet(self.app, None)
849
850
 
850
- self.network_client.subnets.return_value = self._subnet
851
+ self.network_client.subnets.return_value = self._subnets
851
852
 
852
853
  def test_subnet_list_no_options(self):
853
854
  arglist = []
@@ -877,6 +878,30 @@ class TestListSubnet(TestSubnet):
877
878
  self.assertEqual(self.columns_long, columns)
878
879
  self.assertCountEqual(self.data_long, list(data))
879
880
 
881
+ def test_subnet_list_pagination(self):
882
+ arglist = [
883
+ '--marker',
884
+ self._subnets[0].id,
885
+ '--limit',
886
+ '1',
887
+ ]
888
+ verifylist = [
889
+ ('marker', self._subnets[0].id),
890
+ ('limit', 1),
891
+ ]
892
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
893
+
894
+ columns, data = self.cmd.take_action(parsed_args)
895
+
896
+ self.network_client.subnets.assert_called_once_with(
897
+ **{
898
+ 'marker': self._subnets[0].id,
899
+ 'limit': 1,
900
+ }
901
+ )
902
+ self.assertEqual(self.columns, columns)
903
+ self.assertEqual(self.data, list(data))
904
+
880
905
  def test_subnet_list_ip_version(self):
881
906
  arglist = [
882
907
  '--ip-version',
@@ -471,7 +471,8 @@ class TestListSubnetPool(TestSubnetPool):
471
471
  'Name',
472
472
  'Prefixes',
473
473
  )
474
- columns_long = columns + (
474
+ columns_long = (
475
+ *columns,
475
476
  'Default Prefix Length',
476
477
  'Address Scope',
477
478
  'Default Subnet Pool',
@@ -540,6 +541,30 @@ class TestListSubnetPool(TestSubnetPool):
540
541
  self.assertEqual(self.columns_long, columns)
541
542
  self.assertCountEqual(self.data_long, list(data))
542
543
 
544
+ def test_subnet_pool_list_pagination(self):
545
+ arglist = [
546
+ '--marker',
547
+ self._subnet_pools[0].id,
548
+ '--limit',
549
+ '1',
550
+ ]
551
+ verifylist = [
552
+ ('marker', self._subnet_pools[0].id),
553
+ ('limit', 1),
554
+ ]
555
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
556
+
557
+ columns, data = self.cmd.take_action(parsed_args)
558
+
559
+ self.network_client.subnet_pools.assert_called_once_with(
560
+ **{
561
+ 'marker': self._subnet_pools[0].id,
562
+ 'limit': 1,
563
+ }
564
+ )
565
+ self.assertEqual(self.columns, columns)
566
+ self.assertEqual(self.data, list(data))
567
+
543
568
  def test_subnet_pool_list_no_share(self):
544
569
  arglist = [
545
570
  '--no-share',
@@ -11,9 +11,8 @@
11
11
  # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12
12
  # License for the specific language governing permissions and limitations
13
13
  # under the License.
14
- #
15
14
 
16
- from keystoneauth1 import session
15
+ from unittest import mock
17
16
 
18
17
  from openstackclient.api import object_store_v1 as object_store
19
18
  from openstackclient.tests.unit import utils
@@ -80,12 +79,14 @@ OBJECT_2 = {
80
79
  object_upload_name = 'test-object-name'
81
80
 
82
81
 
83
- class TestObjectv1(utils.TestCommand):
82
+ class FakeClientMixin:
84
83
  def setUp(self):
85
84
  super().setUp()
86
85
 
87
- self.app.client_manager.session = session.Session()
88
- self.app.client_manager.object_store = object_store.APIv1(
89
- session=self.app.client_manager.session,
90
- endpoint=ENDPOINT,
86
+ self.app.client_manager.object_store = mock.Mock(
87
+ spec=object_store.APIv1
91
88
  )
89
+ self.object_store_client = self.app.client_manager.object_store
90
+
91
+
92
+ class TestObjectV1(FakeClientMixin, utils.TestCommand): ...
@@ -14,48 +14,21 @@
14
14
  #
15
15
 
16
16
  import copy
17
- from unittest import mock
18
17
 
19
- from openstackclient.api import object_store_v1 as object_store
20
18
  from openstackclient.object.v1 import container
21
19
  from openstackclient.tests.unit.object.v1 import fakes as object_fakes
22
20
 
23
21
 
24
- AUTH_TOKEN = "foobar"
25
- AUTH_URL = "http://0.0.0.0"
26
-
27
-
28
- class FakeClient:
29
- def __init__(self, endpoint=None, **kwargs):
30
- self.endpoint = AUTH_URL
31
- self.token = AUTH_TOKEN
32
-
33
-
34
- class TestContainer(object_fakes.TestObjectv1):
35
- columns = ('Name',)
36
-
22
+ class TestContainerDelete(object_fakes.TestObjectV1):
37
23
  def setUp(self):
38
24
  super().setUp()
39
- self.app.client_manager.object_store = object_store.APIv1(
40
- session=mock.Mock(),
41
- service_type="object-store",
42
- )
43
- self.api = self.app.client_manager.object_store
44
-
45
25
 
46
- @mock.patch('openstackclient.api.object_store_v1.APIv1.object_delete')
47
- @mock.patch('openstackclient.api.object_store_v1.APIv1.object_list')
48
- @mock.patch('openstackclient.api.object_store_v1.APIv1.container_delete')
49
- class TestContainerDelete(TestContainer):
50
- def setUp(self):
51
- super().setUp()
26
+ self.object_store_client.container_delete.return_value = None
52
27
 
53
28
  # Get the command object to test
54
29
  self.cmd = container.DeleteContainer(self.app, None)
55
30
 
56
- def test_container_delete(self, c_mock, o_list_mock, o_delete_mock):
57
- c_mock.return_value = None
58
-
31
+ def test_container_delete(self):
59
32
  arglist = [
60
33
  object_fakes.container_name,
61
34
  ]
@@ -68,16 +41,17 @@ class TestContainerDelete(TestContainer):
68
41
  self.assertIsNone(self.cmd.take_action(parsed_args))
69
42
 
70
43
  kwargs = {}
71
- c_mock.assert_called_with(
44
+ self.object_store_client.container_delete.assert_called_with(
72
45
  container=object_fakes.container_name, **kwargs
73
46
  )
74
- self.assertFalse(o_list_mock.called)
75
- self.assertFalse(o_delete_mock.called)
47
+ self.object_store_client.object_list.assert_not_called()
48
+ self.object_store_client.object_delete.assert_not_called()
76
49
 
77
- def test_recursive_delete(self, c_mock, o_list_mock, o_delete_mock):
78
- c_mock.return_value = None
79
- o_list_mock.return_value = [object_fakes.OBJECT]
80
- o_delete_mock.return_value = None
50
+ def test_recursive_delete(self):
51
+ self.object_store_client.object_delete.return_value = None
52
+ self.object_store_client.object_list.return_value = [
53
+ object_fakes.OBJECT
54
+ ]
81
55
 
82
56
  arglist = [
83
57
  '--recursive',
@@ -91,20 +65,22 @@ class TestContainerDelete(TestContainer):
91
65
 
92
66
  self.assertIsNone(self.cmd.take_action(parsed_args))
93
67
 
94
- kwargs = {}
95
- c_mock.assert_called_with(
96
- container=object_fakes.container_name, **kwargs
68
+ self.object_store_client.container_delete.assert_called_with(
69
+ container=object_fakes.container_name
97
70
  )
98
- o_list_mock.assert_called_with(container=object_fakes.container_name)
99
- o_delete_mock.assert_called_with(
71
+ self.object_store_client.object_list.assert_called_with(
72
+ container=object_fakes.container_name
73
+ )
74
+ self.object_store_client.object_delete.assert_called_with(
100
75
  container=object_fakes.container_name,
101
76
  object=object_fakes.OBJECT['name'],
102
77
  )
103
78
 
104
- def test_r_delete(self, c_mock, o_list_mock, o_delete_mock):
105
- c_mock.return_value = None
106
- o_list_mock.return_value = [object_fakes.OBJECT]
107
- o_delete_mock.return_value = None
79
+ def test_r_delete(self):
80
+ self.object_store_client.object_delete.return_value = None
81
+ self.object_store_client.object_list.return_value = [
82
+ object_fakes.OBJECT
83
+ ]
108
84
 
109
85
  arglist = [
110
86
  '-r',
@@ -118,27 +94,29 @@ class TestContainerDelete(TestContainer):
118
94
 
119
95
  self.assertIsNone(self.cmd.take_action(parsed_args))
120
96
 
121
- kwargs = {}
122
- c_mock.assert_called_with(
123
- container=object_fakes.container_name, **kwargs
97
+ self.object_store_client.container_delete.assert_called_with(
98
+ container=object_fakes.container_name
124
99
  )
125
- o_list_mock.assert_called_with(container=object_fakes.container_name)
126
- o_delete_mock.assert_called_with(
100
+ self.object_store_client.object_list.assert_called_with(
101
+ container=object_fakes.container_name
102
+ )
103
+ self.object_store_client.object_delete.assert_called_with(
127
104
  container=object_fakes.container_name,
128
105
  object=object_fakes.OBJECT['name'],
129
106
  )
130
107
 
131
108
 
132
- @mock.patch('openstackclient.api.object_store_v1.APIv1.container_list')
133
- class TestContainerList(TestContainer):
109
+ class TestContainerList(object_fakes.TestObjectV1):
110
+ columns = ('Name',)
111
+
134
112
  def setUp(self):
135
113
  super().setUp()
136
114
 
137
115
  # Get the command object to test
138
116
  self.cmd = container.ListContainer(self.app, None)
139
117
 
140
- def test_object_list_containers_no_options(self, c_mock):
141
- c_mock.return_value = [
118
+ def test_object_list_containers_no_options(self):
119
+ self.object_store_client.container_list.return_value = [
142
120
  copy.deepcopy(object_fakes.CONTAINER),
143
121
  copy.deepcopy(object_fakes.CONTAINER_3),
144
122
  copy.deepcopy(object_fakes.CONTAINER_2),
@@ -153,9 +131,7 @@ class TestContainerList(TestContainer):
153
131
  # containing the data to be listed.
154
132
  columns, data = self.cmd.take_action(parsed_args)
155
133
 
156
- # Set expected values
157
- kwargs = {}
158
- c_mock.assert_called_with(**kwargs)
134
+ self.object_store_client.container_list.assert_called_with()
159
135
 
160
136
  self.assertEqual(self.columns, columns)
161
137
  datalist = (
@@ -165,8 +141,8 @@ class TestContainerList(TestContainer):
165
141
  )
166
142
  self.assertEqual(datalist, tuple(data))
167
143
 
168
- def test_object_list_containers_prefix(self, c_mock):
169
- c_mock.return_value = [
144
+ def test_object_list_containers_prefix(self):
145
+ self.object_store_client.container_list.return_value = [
170
146
  copy.deepcopy(object_fakes.CONTAINER),
171
147
  copy.deepcopy(object_fakes.CONTAINER_3),
172
148
  ]
@@ -185,11 +161,9 @@ class TestContainerList(TestContainer):
185
161
  # containing the data to be listed.
186
162
  columns, data = self.cmd.take_action(parsed_args)
187
163
 
188
- # Set expected values
189
- kwargs = {
190
- 'prefix': 'bit',
191
- }
192
- c_mock.assert_called_with(**kwargs)
164
+ self.object_store_client.container_list.assert_called_with(
165
+ prefix='bit',
166
+ )
193
167
 
194
168
  self.assertEqual(self.columns, columns)
195
169
  datalist = (
@@ -198,8 +172,8 @@ class TestContainerList(TestContainer):
198
172
  )
199
173
  self.assertEqual(datalist, tuple(data))
200
174
 
201
- def test_object_list_containers_marker(self, c_mock):
202
- c_mock.return_value = [
175
+ def test_object_list_containers_marker(self):
176
+ self.object_store_client.container_list.return_value = [
203
177
  copy.deepcopy(object_fakes.CONTAINER),
204
178
  copy.deepcopy(object_fakes.CONTAINER_3),
205
179
  ]
@@ -221,12 +195,10 @@ class TestContainerList(TestContainer):
221
195
  # containing the data to be listed.
222
196
  columns, data = self.cmd.take_action(parsed_args)
223
197
 
224
- # Set expected values
225
- kwargs = {
226
- 'marker': object_fakes.container_name,
227
- 'end_marker': object_fakes.container_name_3,
228
- }
229
- c_mock.assert_called_with(**kwargs)
198
+ self.object_store_client.container_list.assert_called_with(
199
+ marker=object_fakes.container_name,
200
+ end_marker=object_fakes.container_name_3,
201
+ )
230
202
 
231
203
  self.assertEqual(self.columns, columns)
232
204
  datalist = (
@@ -235,8 +207,8 @@ class TestContainerList(TestContainer):
235
207
  )
236
208
  self.assertEqual(datalist, tuple(data))
237
209
 
238
- def test_object_list_containers_limit(self, c_mock):
239
- c_mock.return_value = [
210
+ def test_object_list_containers_limit(self):
211
+ self.object_store_client.container_list.return_value = [
240
212
  copy.deepcopy(object_fakes.CONTAINER),
241
213
  copy.deepcopy(object_fakes.CONTAINER_3),
242
214
  ]
@@ -255,11 +227,9 @@ class TestContainerList(TestContainer):
255
227
  # containing the data to be listed.
256
228
  columns, data = self.cmd.take_action(parsed_args)
257
229
 
258
- # Set expected values
259
- kwargs = {
260
- 'limit': 2,
261
- }
262
- c_mock.assert_called_with(**kwargs)
230
+ self.object_store_client.container_list.assert_called_with(
231
+ limit=2,
232
+ )
263
233
 
264
234
  self.assertEqual(self.columns, columns)
265
235
  datalist = (
@@ -268,8 +238,8 @@ class TestContainerList(TestContainer):
268
238
  )
269
239
  self.assertEqual(datalist, tuple(data))
270
240
 
271
- def test_object_list_containers_long(self, c_mock):
272
- c_mock.return_value = [
241
+ def test_object_list_containers_long(self):
242
+ self.object_store_client.container_list.return_value = [
273
243
  copy.deepcopy(object_fakes.CONTAINER),
274
244
  copy.deepcopy(object_fakes.CONTAINER_3),
275
245
  ]
@@ -287,9 +257,7 @@ class TestContainerList(TestContainer):
287
257
  # containing the data to be listed.
288
258
  columns, data = self.cmd.take_action(parsed_args)
289
259
 
290
- # Set expected values
291
- kwargs = {}
292
- c_mock.assert_called_with(**kwargs)
260
+ self.object_store_client.container_list.assert_called_with()
293
261
 
294
262
  collist = ('Name', 'Bytes', 'Count')
295
263
  self.assertEqual(collist, columns)
@@ -307,8 +275,8 @@ class TestContainerList(TestContainer):
307
275
  )
308
276
  self.assertEqual(datalist, tuple(data))
309
277
 
310
- def test_object_list_containers_all(self, c_mock):
311
- c_mock.return_value = [
278
+ def test_object_list_containers_all(self):
279
+ self.object_store_client.container_list.return_value = [
312
280
  copy.deepcopy(object_fakes.CONTAINER),
313
281
  copy.deepcopy(object_fakes.CONTAINER_2),
314
282
  copy.deepcopy(object_fakes.CONTAINER_3),
@@ -327,11 +295,9 @@ class TestContainerList(TestContainer):
327
295
  # containing the data to be listed.
328
296
  columns, data = self.cmd.take_action(parsed_args)
329
297
 
330
- # Set expected values
331
- kwargs = {
332
- 'full_listing': True,
333
- }
334
- c_mock.assert_called_with(**kwargs)
298
+ self.object_store_client.container_list.assert_called_with(
299
+ full_listing=True,
300
+ )
335
301
 
336
302
  self.assertEqual(self.columns, columns)
337
303
  datalist = (
@@ -342,16 +308,17 @@ class TestContainerList(TestContainer):
342
308
  self.assertEqual(datalist, tuple(data))
343
309
 
344
310
 
345
- @mock.patch('openstackclient.api.object_store_v1.APIv1.container_show')
346
- class TestContainerShow(TestContainer):
311
+ class TestContainerShow(object_fakes.TestObjectV1):
347
312
  def setUp(self):
348
313
  super().setUp()
349
314
 
350
315
  # Get the command object to test
351
316
  self.cmd = container.ShowContainer(self.app, None)
352
317
 
353
- def test_container_show(self, c_mock):
354
- c_mock.return_value = copy.deepcopy(object_fakes.CONTAINER)
318
+ def test_container_show(self):
319
+ self.object_store_client.container_show.return_value = copy.deepcopy(
320
+ object_fakes.CONTAINER
321
+ )
355
322
 
356
323
  arglist = [
357
324
  object_fakes.container_name,
@@ -366,11 +333,8 @@ class TestContainerShow(TestContainer):
366
333
  # data to be shown.
367
334
  columns, data = self.cmd.take_action(parsed_args)
368
335
 
369
- # Set expected values
370
- kwargs = {}
371
- # lib.container.show_container(api, url, container)
372
- c_mock.assert_called_with(
373
- container=object_fakes.container_name, **kwargs
336
+ self.object_store_client.container_show.assert_called_with(
337
+ container=object_fakes.container_name,
374
338
  )
375
339
 
376
340
  collist = ('bytes', 'count', 'name')
@@ -13,17 +13,24 @@
13
13
 
14
14
  import copy
15
15
 
16
+ from keystoneauth1 import session
16
17
  from requests_mock.contrib import fixture
17
18
 
19
+ from openstackclient.api import object_store_v1 as object_store
18
20
  from openstackclient.object.v1 import container as container_cmds
19
21
  from openstackclient.tests.unit.object.v1 import fakes as object_fakes
20
22
 
21
23
 
22
- class TestContainerAll(object_fakes.TestObjectv1):
24
+ class TestContainerAll(object_fakes.TestObjectV1):
23
25
  def setUp(self):
24
26
  super().setUp()
25
27
 
28
+ # these tests require a "real" client since we mock requests
26
29
  self.requests_mock = self.useFixture(fixture.Fixture())
30
+ self.app.client_manager.object_store = object_store.APIv1(
31
+ session=session.Session(),
32
+ endpoint=object_fakes.ENDPOINT,
33
+ )
27
34
 
28
35
 
29
36
  class TestContainerCreate(TestContainerAll):