python-openstackclient 6.6.1__py3-none-any.whl → 7.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 (336) 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 +24 -20
  7. openstackclient/common/configuration.py +1 -1
  8. openstackclient/common/extension.py +1 -1
  9. openstackclient/common/limits.py +67 -34
  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 +299 -423
  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 +38 -32
  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 +9 -6
  22. openstackclient/compute/v2/keypair.py +7 -8
  23. openstackclient/compute/v2/server.py +479 -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 +125 -43
  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/releasenotes/notes/volume-backup-created-at-list-b49ec893ae1f6b0d.yaml +4 -0
  107. openstackclient/shell.py +4 -6
  108. openstackclient/tests/functional/base.py +1 -1
  109. openstackclient/tests/functional/common/test_extension.py +1 -1
  110. openstackclient/tests/functional/common/test_help.py +2 -2
  111. openstackclient/tests/functional/common/test_module.py +1 -1
  112. openstackclient/tests/functional/common/test_quota.py +43 -61
  113. openstackclient/tests/functional/compute/v2/common.py +2 -2
  114. openstackclient/tests/functional/compute/v2/test_flavor.py +2 -2
  115. openstackclient/tests/functional/compute/v2/test_keypair.py +1 -1
  116. openstackclient/tests/functional/compute/v2/test_server.py +5 -5
  117. openstackclient/tests/functional/compute/v2/test_server_event.py +1 -1
  118. openstackclient/tests/functional/identity/v2/common.py +3 -3
  119. openstackclient/tests/functional/identity/v3/common.py +12 -4
  120. openstackclient/tests/functional/identity/v3/test_application_credential.py +6 -12
  121. openstackclient/tests/functional/identity/v3/test_domain.py +1 -3
  122. openstackclient/tests/functional/identity/v3/test_endpoint.py +1 -1
  123. openstackclient/tests/functional/identity/v3/test_idp.py +1 -1
  124. openstackclient/tests/functional/identity/v3/test_region.py +1 -3
  125. openstackclient/tests/functional/identity/v3/test_role.py +2 -2
  126. openstackclient/tests/functional/identity/v3/test_role_assignment.py +210 -0
  127. openstackclient/tests/functional/identity/v3/test_service.py +1 -3
  128. openstackclient/tests/functional/identity/v3/test_service_provider.py +1 -3
  129. openstackclient/tests/functional/image/base.py +1 -1
  130. openstackclient/tests/functional/image/v2/test_image.py +1 -1
  131. openstackclient/tests/functional/image/v2/test_info.py +1 -1
  132. openstackclient/tests/functional/network/v2/common.py +4 -6
  133. openstackclient/tests/functional/network/v2/test_network.py +5 -3
  134. openstackclient/tests/functional/network/v2/test_network_agent.py +7 -5
  135. openstackclient/tests/functional/network/v2/test_network_qos_rule.py +4 -4
  136. openstackclient/tests/functional/network/v2/test_port.py +11 -7
  137. openstackclient/tests/functional/network/v2/test_router.py +2 -2
  138. openstackclient/tests/functional/object/v1/common.py +1 -1
  139. openstackclient/tests/functional/object/v1/test_container.py +3 -3
  140. openstackclient/tests/functional/object/v1/test_object.py +9 -13
  141. openstackclient/tests/functional/volume/base.py +1 -1
  142. openstackclient/tests/functional/volume/v1/test_service.py +1 -1
  143. openstackclient/tests/functional/volume/v1/test_snapshot.py +2 -2
  144. openstackclient/tests/functional/volume/v1/test_transfer_request.py +2 -2
  145. openstackclient/tests/functional/volume/v1/test_volume_type.py +1 -1
  146. openstackclient/tests/functional/volume/v2/test_service.py +2 -2
  147. openstackclient/tests/functional/volume/v2/test_volume_backup.py +2 -2
  148. openstackclient/tests/functional/volume/v2/test_volume_snapshot.py +2 -2
  149. openstackclient/tests/functional/volume/v2/test_volume_type.py +1 -1
  150. openstackclient/tests/functional/volume/v3/test_volume_snapshot.py +2 -2
  151. openstackclient/tests/functional/volume/v3/test_volume_type.py +1 -1
  152. openstackclient/tests/unit/api/fakes.py +1 -1
  153. openstackclient/tests/unit/api/test_api.py +2 -2
  154. openstackclient/tests/unit/api/test_compute_v2.py +522 -707
  155. openstackclient/tests/unit/api/test_image_v1.py +1 -1
  156. openstackclient/tests/unit/api/test_image_v2.py +1 -1
  157. openstackclient/tests/unit/api/test_object_store_v1.py +4 -4
  158. openstackclient/tests/unit/common/test_limits.py +73 -35
  159. openstackclient/tests/unit/common/test_logs.py +2 -2
  160. openstackclient/tests/unit/common/test_module.py +4 -2
  161. openstackclient/tests/unit/common/test_project_cleanup.py +31 -6
  162. openstackclient/tests/unit/common/test_quota.py +490 -630
  163. openstackclient/tests/unit/compute/v2/fakes.py +37 -286
  164. openstackclient/tests/unit/compute/v2/test_agent.py +189 -147
  165. openstackclient/tests/unit/compute/v2/test_aggregate.py +87 -57
  166. openstackclient/tests/unit/compute/v2/test_console.py +4 -5
  167. openstackclient/tests/unit/compute/v2/test_flavor.py +59 -68
  168. openstackclient/tests/unit/compute/v2/test_host.py +83 -54
  169. openstackclient/tests/unit/compute/v2/test_hypervisor.py +57 -34
  170. openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +2 -2
  171. openstackclient/tests/unit/compute/v2/test_keypair.py +65 -50
  172. openstackclient/tests/unit/compute/v2/test_server.py +2850 -2453
  173. openstackclient/tests/unit/compute/v2/test_server_backup.py +1 -1
  174. openstackclient/tests/unit/compute/v2/test_server_event.py +14 -39
  175. openstackclient/tests/unit/compute/v2/test_server_group.py +28 -29
  176. openstackclient/tests/unit/compute/v2/test_server_migration.py +43 -68
  177. openstackclient/tests/unit/compute/v2/test_server_volume.py +17 -34
  178. openstackclient/tests/unit/compute/v2/test_service.py +34 -52
  179. openstackclient/tests/unit/compute/v2/test_usage.py +4 -4
  180. openstackclient/tests/unit/fakes.py +12 -12
  181. openstackclient/tests/unit/identity/v2_0/fakes.py +27 -10
  182. openstackclient/tests/unit/identity/v2_0/test_catalog.py +3 -3
  183. openstackclient/tests/unit/identity/v2_0/test_endpoint.py +7 -7
  184. openstackclient/tests/unit/identity/v2_0/test_project.py +8 -8
  185. openstackclient/tests/unit/identity/v2_0/test_role.py +10 -10
  186. openstackclient/tests/unit/identity/v2_0/test_role_assignment.py +4 -4
  187. openstackclient/tests/unit/identity/v2_0/test_service.py +6 -6
  188. openstackclient/tests/unit/identity/v2_0/test_token.py +4 -4
  189. openstackclient/tests/unit/identity/v2_0/test_user.py +8 -8
  190. openstackclient/tests/unit/identity/v3/fakes.py +59 -20
  191. openstackclient/tests/unit/identity/v3/test_access_rule.py +5 -5
  192. openstackclient/tests/unit/identity/v3/test_application_credential.py +207 -230
  193. openstackclient/tests/unit/identity/v3/test_catalog.py +3 -3
  194. openstackclient/tests/unit/identity/v3/test_consumer.py +7 -8
  195. openstackclient/tests/unit/identity/v3/test_credential.py +9 -9
  196. openstackclient/tests/unit/identity/v3/test_domain.py +8 -8
  197. openstackclient/tests/unit/identity/v3/test_endpoint.py +13 -13
  198. openstackclient/tests/unit/identity/v3/test_endpoint_group.py +12 -14
  199. openstackclient/tests/unit/identity/v3/test_group.py +12 -12
  200. openstackclient/tests/unit/identity/v3/test_identity_provider.py +8 -8
  201. openstackclient/tests/unit/identity/v3/test_implied_role.py +5 -5
  202. openstackclient/tests/unit/identity/v3/test_limit.py +7 -7
  203. openstackclient/tests/unit/identity/v3/test_mappings.py +7 -7
  204. openstackclient/tests/unit/identity/v3/test_oauth.py +5 -5
  205. openstackclient/tests/unit/identity/v3/test_project.py +16 -16
  206. openstackclient/tests/unit/identity/v3/test_protocol.py +7 -7
  207. openstackclient/tests/unit/identity/v3/test_region.py +7 -7
  208. openstackclient/tests/unit/identity/v3/test_registered_limit.py +12 -13
  209. openstackclient/tests/unit/identity/v3/test_role.py +13 -13
  210. openstackclient/tests/unit/identity/v3/test_role_assignment.py +410 -331
  211. openstackclient/tests/unit/identity/v3/test_service.py +90 -94
  212. openstackclient/tests/unit/identity/v3/test_service_provider.py +7 -7
  213. openstackclient/tests/unit/identity/v3/test_token.py +4 -4
  214. openstackclient/tests/unit/identity/v3/test_trust.py +9 -9
  215. openstackclient/tests/unit/identity/v3/test_unscoped_saml.py +4 -4
  216. openstackclient/tests/unit/identity/v3/test_user.py +299 -327
  217. openstackclient/tests/unit/image/v1/test_image.py +6 -6
  218. openstackclient/tests/unit/image/v2/fakes.py +46 -9
  219. openstackclient/tests/unit/image/v2/test_cache.py +2 -2
  220. openstackclient/tests/unit/image/v2/test_image.py +3 -3
  221. openstackclient/tests/unit/image/v2/test_metadef_objects.py +62 -0
  222. openstackclient/tests/unit/image/v2/test_metadef_resource_type_association.py +131 -0
  223. openstackclient/tests/unit/integ/base.py +1 -1
  224. openstackclient/tests/unit/integ/cli/test_project.py +4 -4
  225. openstackclient/tests/unit/integ/cli/test_shell.py +7 -7
  226. openstackclient/tests/unit/network/test_common.py +12 -21
  227. openstackclient/tests/unit/network/v2/fakes.py +64 -130
  228. openstackclient/tests/unit/network/v2/test_address_group.py +15 -15
  229. openstackclient/tests/unit/network/v2/test_address_scope.py +13 -13
  230. openstackclient/tests/unit/network/v2/test_default_security_group_rule.py +49 -27
  231. openstackclient/tests/unit/network/v2/test_floating_ip_compute.py +40 -38
  232. openstackclient/tests/unit/network/v2/test_floating_ip_network.py +15 -15
  233. openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py +4 -7
  234. openstackclient/tests/unit/network/v2/test_floating_ip_pool_network.py +3 -5
  235. openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +11 -11
  236. openstackclient/tests/unit/network/v2/test_ip_availability.py +6 -6
  237. openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +11 -21
  238. openstackclient/tests/unit/network/v2/test_local_ip.py +7 -7
  239. openstackclient/tests/unit/network/v2/test_local_ip_association.py +3 -5
  240. openstackclient/tests/unit/network/v2/test_ndp_proxy.py +13 -13
  241. openstackclient/tests/unit/network/v2/test_network.py +23 -28
  242. openstackclient/tests/unit/network/v2/test_network_agent.py +17 -21
  243. openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py +8 -8
  244. openstackclient/tests/unit/network/v2/test_network_compute.py +66 -65
  245. openstackclient/tests/unit/network/v2/test_network_flavor.py +17 -19
  246. openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +13 -13
  247. openstackclient/tests/unit/network/v2/test_network_meter.py +11 -11
  248. openstackclient/tests/unit/network/v2/test_network_meter_rule.py +11 -11
  249. openstackclient/tests/unit/network/v2/test_network_qos_policy.py +11 -21
  250. openstackclient/tests/unit/network/v2/test_network_qos_rule.py +51 -77
  251. openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +5 -9
  252. openstackclient/tests/unit/network/v2/test_network_rbac.py +12 -12
  253. openstackclient/tests/unit/network/v2/test_network_segment.py +11 -15
  254. openstackclient/tests/unit/network/v2/test_network_segment_range.py +11 -13
  255. openstackclient/tests/unit/network/v2/test_network_service_provider.py +3 -5
  256. openstackclient/tests/unit/network/v2/test_network_trunk.py +11 -11
  257. openstackclient/tests/unit/network/v2/test_port.py +22 -25
  258. openstackclient/tests/unit/network/v2/test_router.py +721 -51
  259. openstackclient/tests/unit/network/v2/test_security_group_compute.py +65 -49
  260. openstackclient/tests/unit/network/v2/test_security_group_network.py +15 -15
  261. openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +57 -45
  262. openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +11 -19
  263. openstackclient/tests/unit/network/v2/test_subnet.py +29 -25
  264. openstackclient/tests/unit/network/v2/test_subnet_pool.py +15 -15
  265. openstackclient/tests/unit/object/v1/fakes.py +1 -1
  266. openstackclient/tests/unit/object/v1/test_container.py +5 -5
  267. openstackclient/tests/unit/object/v1/test_container_all.py +6 -6
  268. openstackclient/tests/unit/object/v1/test_object.py +3 -3
  269. openstackclient/tests/unit/object/v1/test_object_all.py +5 -5
  270. openstackclient/tests/unit/test_shell.py +5 -5
  271. openstackclient/tests/unit/utils.py +4 -1
  272. openstackclient/tests/unit/volume/test_find_resource.py +2 -2
  273. openstackclient/tests/unit/volume/v1/fakes.py +5 -6
  274. openstackclient/tests/unit/volume/v1/test_volume.py +5 -4
  275. openstackclient/tests/unit/volume/v2/fakes.py +39 -259
  276. openstackclient/tests/unit/volume/v2/test_consistency_group_snapshot.py +5 -5
  277. openstackclient/tests/unit/volume/v2/test_qos_specs.py +9 -9
  278. openstackclient/tests/unit/volume/v2/test_volume.py +21 -87
  279. openstackclient/tests/unit/volume/v2/test_volume_backup.py +10 -368
  280. openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +1 -1
  281. openstackclient/tests/unit/volume/v2/test_volume_transfer_request.py +0 -44
  282. openstackclient/tests/unit/volume/v2/test_volume_type.py +6 -87
  283. openstackclient/tests/unit/volume/v3/fakes.py +505 -22
  284. openstackclient/tests/unit/volume/v3/test_block_storage_cleanup.py +2 -3
  285. openstackclient/tests/unit/volume/v3/test_block_storage_cluster.py +10 -11
  286. openstackclient/tests/unit/volume/v3/test_block_storage_log_level.py +10 -6
  287. openstackclient/tests/unit/volume/v3/test_block_storage_manage.py +25 -17
  288. openstackclient/tests/unit/volume/v3/test_block_storage_resource_filter.py +6 -32
  289. openstackclient/tests/unit/volume/v3/test_service.py +271 -0
  290. openstackclient/tests/unit/volume/v3/test_volume.py +2177 -33
  291. openstackclient/tests/unit/volume/v3/test_volume_attachment.py +48 -52
  292. openstackclient/tests/unit/volume/v3/test_volume_backup.py +892 -0
  293. openstackclient/tests/unit/volume/v3/test_volume_group.py +19 -20
  294. openstackclient/tests/unit/volume/v3/test_volume_group_snapshot.py +14 -34
  295. openstackclient/tests/unit/volume/v3/test_volume_group_type.py +13 -16
  296. openstackclient/tests/unit/volume/v3/test_volume_message.py +10 -11
  297. openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +161 -0
  298. openstackclient/tests/unit/volume/v3/test_volume_transfer_request.py +425 -0
  299. openstackclient/tests/unit/volume/v3/test_volume_type.py +1109 -0
  300. openstackclient/volume/v1/qos_specs.py +7 -7
  301. openstackclient/volume/v1/service.py +2 -2
  302. openstackclient/volume/v1/volume.py +12 -12
  303. openstackclient/volume/v1/volume_backup.py +7 -7
  304. openstackclient/volume/v1/volume_snapshot.py +8 -8
  305. openstackclient/volume/v1/volume_transfer_request.py +5 -5
  306. openstackclient/volume/v1/volume_type.py +7 -7
  307. openstackclient/volume/v2/backup_record.py +2 -2
  308. openstackclient/volume/v2/consistency_group.py +7 -9
  309. openstackclient/volume/v2/consistency_group_snapshot.py +4 -12
  310. openstackclient/volume/v2/qos_specs.py +7 -7
  311. openstackclient/volume/v2/service.py +2 -2
  312. openstackclient/volume/v2/volume.py +80 -80
  313. openstackclient/volume/v2/volume_backend.py +2 -2
  314. openstackclient/volume/v2/volume_backup.py +9 -217
  315. openstackclient/volume/v2/volume_host.py +2 -2
  316. openstackclient/volume/v2/volume_snapshot.py +8 -8
  317. openstackclient/volume/v2/volume_transfer_request.py +5 -37
  318. openstackclient/volume/v2/volume_type.py +7 -89
  319. openstackclient/volume/v3/service.py +56 -0
  320. openstackclient/volume/v3/volume.py +971 -0
  321. openstackclient/volume/v3/volume_attachment.py +31 -29
  322. openstackclient/volume/v3/volume_backup.py +670 -0
  323. openstackclient/volume/v3/volume_message.py +1 -1
  324. openstackclient/volume/v3/volume_snapshot.py +97 -0
  325. openstackclient/volume/v3/volume_transfer_request.py +233 -0
  326. openstackclient/volume/v3/volume_type.py +967 -0
  327. {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.1.0.dist-info}/AUTHORS +6 -0
  328. {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.1.0.dist-info}/METADATA +4 -4
  329. python_openstackclient-7.1.0.dist-info/RECORD +503 -0
  330. {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.1.0.dist-info}/entry_points.txt +33 -27
  331. python_openstackclient-7.1.0.dist-info/pbr.json +1 -0
  332. python_openstackclient-6.6.1.dist-info/RECORD +0 -489
  333. python_openstackclient-6.6.1.dist-info/pbr.json +0 -1
  334. {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.1.0.dist-info}/LICENSE +0 -0
  335. {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.1.0.dist-info}/WHEEL +0 -0
  336. {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.1.0.dist-info}/top_level.txt +0 -0
@@ -10,13 +10,9 @@
10
10
  # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
11
11
  # License for the specific language governing permissions and limitations
12
12
  # under the License.
13
- #
14
13
 
15
- from unittest import mock
16
14
  from unittest.mock import call
17
15
 
18
- from cinderclient import api_versions
19
- from openstack import utils as sdk_utils
20
16
  from osc_lib import exceptions
21
17
 
22
18
  from openstackclient.tests.unit.volume.v2 import fakes as volume_fakes
@@ -37,29 +33,7 @@ class TestBackupLegacy(volume_fakes.TestVolume):
37
33
  self.restores_mock.reset_mock()
38
34
 
39
35
 
40
- class TestBackup(volume_fakes.TestVolume):
41
- def setUp(self):
42
- super().setUp()
43
-
44
- patcher = mock.patch.object(
45
- sdk_utils, 'supports_microversion', return_value=True
46
- )
47
- self.addCleanup(patcher.stop)
48
- self.supports_microversion_mock = patcher.start()
49
- self._set_mock_microversion(
50
- self.app.client_manager.volume.api_version.get_string()
51
- )
52
-
53
- def _set_mock_microversion(self, mock_v):
54
- """Set a specific microversion for the mock supports_microversion()."""
55
- self.supports_microversion_mock.reset_mock(return_value=True)
56
- self.supports_microversion_mock.side_effect = (
57
- lambda _, v: api_versions.APIVersion(v)
58
- <= api_versions.APIVersion(mock_v)
59
- )
60
-
61
-
62
- class TestBackupCreate(TestBackup):
36
+ class TestBackupCreate(volume_fakes.TestVolume):
63
37
  volume = volume_fakes.create_one_volume()
64
38
  snapshot = volume_fakes.create_one_snapshot()
65
39
  new_backup = volume_fakes.create_one_backup(
@@ -120,110 +94,12 @@ class TestBackupCreate(TestBackup):
120
94
  name=self.new_backup.name,
121
95
  description=self.new_backup.description,
122
96
  force=True,
123
- incremental=True,
97
+ is_incremental=True,
124
98
  snapshot_id=self.new_backup.snapshot_id,
125
99
  )
126
100
  self.assertEqual(self.columns, columns)
127
101
  self.assertEqual(self.data, data)
128
102
 
129
- def test_backup_create_with_properties(self):
130
- self._set_mock_microversion('3.43')
131
-
132
- arglist = [
133
- "--property",
134
- "foo=bar",
135
- "--property",
136
- "wow=much-cool",
137
- self.new_backup.volume_id,
138
- ]
139
- verifylist = [
140
- ("properties", {"foo": "bar", "wow": "much-cool"}),
141
- ("volume", self.new_backup.volume_id),
142
- ]
143
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
144
-
145
- columns, data = self.cmd.take_action(parsed_args)
146
-
147
- self.volume_sdk_client.create_backup.assert_called_with(
148
- volume_id=self.new_backup.volume_id,
149
- container=None,
150
- name=None,
151
- description=None,
152
- force=False,
153
- incremental=False,
154
- metadata={"foo": "bar", "wow": "much-cool"},
155
- )
156
- self.assertEqual(self.columns, columns)
157
- self.assertEqual(self.data, data)
158
-
159
- def test_backup_create_with_properties_pre_v343(self):
160
- self._set_mock_microversion('3.42')
161
-
162
- arglist = [
163
- "--property",
164
- "foo=bar",
165
- "--property",
166
- "wow=much-cool",
167
- self.new_backup.volume_id,
168
- ]
169
- verifylist = [
170
- ("properties", {"foo": "bar", "wow": "much-cool"}),
171
- ("volume", self.new_backup.volume_id),
172
- ]
173
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
174
-
175
- exc = self.assertRaises(
176
- exceptions.CommandError, self.cmd.take_action, parsed_args
177
- )
178
- self.assertIn("--os-volume-api-version 3.43 or greater", str(exc))
179
-
180
- def test_backup_create_with_availability_zone(self):
181
- self._set_mock_microversion('3.51')
182
-
183
- arglist = [
184
- "--availability-zone",
185
- "my-az",
186
- self.new_backup.volume_id,
187
- ]
188
- verifylist = [
189
- ("availability_zone", "my-az"),
190
- ("volume", self.new_backup.volume_id),
191
- ]
192
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
193
-
194
- columns, data = self.cmd.take_action(parsed_args)
195
-
196
- self.volume_sdk_client.create_backup.assert_called_with(
197
- volume_id=self.new_backup.volume_id,
198
- container=None,
199
- name=None,
200
- description=None,
201
- force=False,
202
- incremental=False,
203
- availability_zone="my-az",
204
- )
205
- self.assertEqual(self.columns, columns)
206
- self.assertEqual(self.data, data)
207
-
208
- def test_backup_create_with_availability_zone_pre_v351(self):
209
- self._set_mock_microversion('3.50')
210
-
211
- arglist = [
212
- "--availability-zone",
213
- "my-az",
214
- self.new_backup.volume_id,
215
- ]
216
- verifylist = [
217
- ("availability_zone", "my-az"),
218
- ("volume", self.new_backup.volume_id),
219
- ]
220
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
221
-
222
- exc = self.assertRaises(
223
- exceptions.CommandError, self.cmd.take_action, parsed_args
224
- )
225
- self.assertIn("--os-volume-api-version 3.51 or greater", str(exc))
226
-
227
103
  def test_backup_create_without_name(self):
228
104
  arglist = [
229
105
  "--description",
@@ -247,13 +123,13 @@ class TestBackupCreate(TestBackup):
247
123
  name=None,
248
124
  description=self.new_backup.description,
249
125
  force=False,
250
- incremental=False,
126
+ is_incremental=False,
251
127
  )
252
128
  self.assertEqual(self.columns, columns)
253
129
  self.assertEqual(self.data, data)
254
130
 
255
131
 
256
- class TestBackupDelete(TestBackup):
132
+ class TestBackupDelete(volume_fakes.TestVolume):
257
133
  backups = volume_fakes.create_backups(count=2)
258
134
 
259
135
  def setUp(self):
@@ -346,7 +222,7 @@ class TestBackupDelete(TestBackup):
346
222
  )
347
223
 
348
224
 
349
- class TestBackupList(TestBackup):
225
+ class TestBackupList(volume_fakes.TestVolume):
350
226
  volume = volume_fakes.create_one_volume()
351
227
  backups = volume_fakes.create_backups(
352
228
  attrs={'volume_id': volume.name}, count=3
@@ -359,6 +235,7 @@ class TestBackupList(TestBackup):
359
235
  'Status',
360
236
  'Size',
361
237
  'Incremental',
238
+ 'Created At',
362
239
  )
363
240
  columns_long = columns + (
364
241
  'Availability Zone',
@@ -376,6 +253,7 @@ class TestBackupList(TestBackup):
376
253
  b.status,
377
254
  b.size,
378
255
  b.is_incremental,
256
+ b.created_at,
379
257
  )
380
258
  )
381
259
  data_long = []
@@ -388,6 +266,7 @@ class TestBackupList(TestBackup):
388
266
  b.status,
389
267
  b.size,
390
268
  b.is_incremental,
269
+ b.created_at,
391
270
  b.availability_zone,
392
271
  volume_backup.VolumeIdColumn(b.volume_id),
393
272
  b.container,
@@ -479,7 +358,7 @@ class TestBackupList(TestBackup):
479
358
  self.assertCountEqual(self.data_long, list(data))
480
359
 
481
360
 
482
- class TestBackupRestore(TestBackup):
361
+ class TestBackupRestore(volume_fakes.TestVolume):
483
362
  volume = volume_fakes.create_one_volume()
484
363
  backup = volume_fakes.create_one_backup(
485
364
  attrs={'volume_id': volume.id},
@@ -592,91 +471,6 @@ class TestBackupSet(TestBackupLegacy):
592
471
  # Get the command object to test
593
472
  self.cmd = volume_backup.SetVolumeBackup(self.app, None)
594
473
 
595
- def test_backup_set_name(self):
596
- self.volume_client.api_version = api_versions.APIVersion('3.9')
597
-
598
- arglist = [
599
- '--name',
600
- 'new_name',
601
- self.backup.id,
602
- ]
603
- verifylist = [
604
- ('name', 'new_name'),
605
- ('backup', self.backup.id),
606
- ]
607
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
608
-
609
- # In base command class ShowOne in cliff, abstract method take_action()
610
- # returns nothing
611
- result = self.cmd.take_action(parsed_args)
612
- self.backups_mock.update.assert_called_once_with(
613
- self.backup.id, **{'name': 'new_name'}
614
- )
615
- self.assertIsNone(result)
616
-
617
- def test_backup_set_name_pre_v39(self):
618
- self.volume_client.api_version = api_versions.APIVersion('3.8')
619
-
620
- arglist = [
621
- '--name',
622
- 'new_name',
623
- self.backup.id,
624
- ]
625
- verifylist = [
626
- ('name', 'new_name'),
627
- ('backup', self.backup.id),
628
- ]
629
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
630
-
631
- exc = self.assertRaises(
632
- exceptions.CommandError, self.cmd.take_action, parsed_args
633
- )
634
- self.assertIn("--os-volume-api-version 3.9 or greater", str(exc))
635
-
636
- def test_backup_set_description(self):
637
- self.volume_client.api_version = api_versions.APIVersion('3.9')
638
-
639
- arglist = [
640
- '--description',
641
- 'new_description',
642
- self.backup.id,
643
- ]
644
- verifylist = [
645
- ('name', None),
646
- ('description', 'new_description'),
647
- ('backup', self.backup.id),
648
- ]
649
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
650
-
651
- result = self.cmd.take_action(parsed_args)
652
-
653
- # Set expected values
654
- kwargs = {'description': 'new_description'}
655
- self.backups_mock.update.assert_called_once_with(
656
- self.backup.id, **kwargs
657
- )
658
- self.assertIsNone(result)
659
-
660
- def test_backup_set_description_pre_v39(self):
661
- self.volume_client.api_version = api_versions.APIVersion('3.8')
662
-
663
- arglist = [
664
- '--description',
665
- 'new_description',
666
- self.backup.id,
667
- ]
668
- verifylist = [
669
- ('name', None),
670
- ('description', 'new_description'),
671
- ('backup', self.backup.id),
672
- ]
673
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
674
-
675
- exc = self.assertRaises(
676
- exceptions.CommandError, self.cmd.take_action, parsed_args
677
- )
678
- self.assertIn("--os-volume-api-version 3.9 or greater", str(exc))
679
-
680
474
  def test_backup_set_state(self):
681
475
  arglist = ['--state', 'error', self.backup.id]
682
476
  verifylist = [('state', 'error'), ('backup', self.backup.id)]
@@ -706,152 +500,8 @@ class TestBackupSet(TestBackupLegacy):
706
500
  self.backup.id, 'error'
707
501
  )
708
502
 
709
- def test_backup_set_no_property(self):
710
- self.volume_client.api_version = api_versions.APIVersion('3.43')
711
-
712
- arglist = [
713
- '--no-property',
714
- self.backup.id,
715
- ]
716
- verifylist = [
717
- ('no_property', True),
718
- ('backup', self.backup.id),
719
- ]
720
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
721
-
722
- result = self.cmd.take_action(parsed_args)
723
-
724
- # Set expected values
725
- kwargs = {
726
- 'metadata': {},
727
- }
728
- self.backups_mock.update.assert_called_once_with(
729
- self.backup.id, **kwargs
730
- )
731
- self.assertIsNone(result)
732
-
733
- def test_backup_set_no_property_pre_v343(self):
734
- self.volume_client.api_version = api_versions.APIVersion('3.42')
735
-
736
- arglist = [
737
- '--no-property',
738
- self.backup.id,
739
- ]
740
- verifylist = [
741
- ('no_property', True),
742
- ('backup', self.backup.id),
743
- ]
744
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
745
-
746
- exc = self.assertRaises(
747
- exceptions.CommandError, self.cmd.take_action, parsed_args
748
- )
749
- self.assertIn("--os-volume-api-version 3.43 or greater", str(exc))
750
-
751
- def test_backup_set_property(self):
752
- self.volume_client.api_version = api_versions.APIVersion('3.43')
753
-
754
- arglist = [
755
- '--property',
756
- 'foo=bar',
757
- self.backup.id,
758
- ]
759
- verifylist = [
760
- ('properties', {'foo': 'bar'}),
761
- ('backup', self.backup.id),
762
- ]
763
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
764
-
765
- result = self.cmd.take_action(parsed_args)
766
-
767
- # Set expected values
768
- kwargs = {
769
- 'metadata': {'wow': 'cool', 'foo': 'bar'},
770
- }
771
- self.backups_mock.update.assert_called_once_with(
772
- self.backup.id, **kwargs
773
- )
774
- self.assertIsNone(result)
775
-
776
- def test_backup_set_property_pre_v343(self):
777
- self.volume_client.api_version = api_versions.APIVersion('3.42')
778
-
779
- arglist = [
780
- '--property',
781
- 'foo=bar',
782
- self.backup.id,
783
- ]
784
- verifylist = [
785
- ('properties', {'foo': 'bar'}),
786
- ('backup', self.backup.id),
787
- ]
788
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
789
-
790
- exc = self.assertRaises(
791
- exceptions.CommandError, self.cmd.take_action, parsed_args
792
- )
793
- self.assertIn("--os-volume-api-version 3.43 or greater", str(exc))
794
-
795
-
796
- class TestBackupUnset(TestBackupLegacy):
797
- backup = volume_fakes.create_one_backup(
798
- attrs={'metadata': {'foo': 'bar'}},
799
- )
800
-
801
- def setUp(self):
802
- super().setUp()
803
-
804
- self.backups_mock.get.return_value = self.backup
805
-
806
- # Get the command object to test
807
- self.cmd = volume_backup.UnsetVolumeBackup(self.app, None)
808
-
809
- def test_backup_unset_property(self):
810
- self.volume_client.api_version = api_versions.APIVersion('3.43')
811
-
812
- arglist = [
813
- '--property',
814
- 'foo',
815
- self.backup.id,
816
- ]
817
- verifylist = [
818
- ('properties', ['foo']),
819
- ('backup', self.backup.id),
820
- ]
821
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
822
-
823
- result = self.cmd.take_action(parsed_args)
824
-
825
- # Set expected values
826
- kwargs = {
827
- 'metadata': {},
828
- }
829
- self.backups_mock.update.assert_called_once_with(
830
- self.backup.id, **kwargs
831
- )
832
- self.assertIsNone(result)
833
-
834
- def test_backup_unset_property_pre_v343(self):
835
- self.volume_client.api_version = api_versions.APIVersion('3.42')
836
-
837
- arglist = [
838
- '--property',
839
- 'foo',
840
- self.backup.id,
841
- ]
842
- verifylist = [
843
- ('properties', ['foo']),
844
- ('backup', self.backup.id),
845
- ]
846
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
847
-
848
- exc = self.assertRaises(
849
- exceptions.CommandError, self.cmd.take_action, parsed_args
850
- )
851
- self.assertIn("--os-volume-api-version 3.43 or greater", str(exc))
852
-
853
503
 
854
- class TestBackupShow(TestBackup):
504
+ class TestBackupShow(volume_fakes.TestVolume):
855
505
  backup = volume_fakes.create_one_backup()
856
506
 
857
507
  columns = (
@@ -860,20 +510,16 @@ class TestBackupShow(TestBackup):
860
510
  "created_at",
861
511
  "data_timestamp",
862
512
  "description",
863
- "encryption_key_id",
864
513
  "fail_reason",
865
514
  "has_dependent_backups",
866
515
  "id",
867
516
  "is_incremental",
868
- "metadata",
869
517
  "name",
870
518
  "object_count",
871
- "project_id",
872
519
  "size",
873
520
  "snapshot_id",
874
521
  "status",
875
522
  "updated_at",
876
- "user_id",
877
523
  "volume_id",
878
524
  )
879
525
  data = (
@@ -882,20 +528,16 @@ class TestBackupShow(TestBackup):
882
528
  backup.created_at,
883
529
  backup.data_timestamp,
884
530
  backup.description,
885
- backup.encryption_key_id,
886
531
  backup.fail_reason,
887
532
  backup.has_dependent_backups,
888
533
  backup.id,
889
534
  backup.is_incremental,
890
- backup.metadata,
891
535
  backup.name,
892
536
  backup.object_count,
893
- backup.project_id,
894
537
  backup.size,
895
538
  backup.snapshot_id,
896
539
  backup.status,
897
540
  backup.updated_at,
898
- backup.user_id,
899
541
  backup.volume_id,
900
542
  )
901
543
 
@@ -31,7 +31,7 @@ class TestVolumeSnapshot(volume_fakes.TestVolume):
31
31
  self.snapshots_mock.reset_mock()
32
32
  self.volumes_mock = self.volume_client.volumes
33
33
  self.volumes_mock.reset_mock()
34
- self.project_mock = self.app.client_manager.identity.projects
34
+ self.project_mock = self.identity_client.projects
35
35
  self.project_mock.reset_mock()
36
36
 
37
37
 
@@ -15,7 +15,6 @@
15
15
  from unittest import mock
16
16
  from unittest.mock import call
17
17
 
18
- from cinderclient import api_versions
19
18
  from osc_lib import exceptions
20
19
  from osc_lib import utils
21
20
 
@@ -176,49 +175,6 @@ class TestTransferCreate(TestTransfer):
176
175
  self.assertEqual(self.columns, columns)
177
176
  self.assertEqual(self.data, data)
178
177
 
179
- def test_transfer_create_with_no_snapshots(self):
180
- self.volume_client.api_version = api_versions.APIVersion('3.55')
181
-
182
- arglist = [
183
- '--no-snapshots',
184
- self.volume.id,
185
- ]
186
- verifylist = [
187
- ('name', None),
188
- ('snapshots', False),
189
- ('volume', self.volume.id),
190
- ]
191
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
192
-
193
- columns, data = self.cmd.take_action(parsed_args)
194
-
195
- self.transfer_mock.create.assert_called_once_with(
196
- self.volume.id, None, no_snapshots=True
197
- )
198
- self.assertEqual(self.columns, columns)
199
- self.assertEqual(self.data, data)
200
-
201
- def test_transfer_create_pre_v355(self):
202
- self.volume_client.api_version = api_versions.APIVersion('3.54')
203
-
204
- arglist = [
205
- '--no-snapshots',
206
- self.volume.id,
207
- ]
208
- verifylist = [
209
- ('name', None),
210
- ('snapshots', False),
211
- ('volume', self.volume.id),
212
- ]
213
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
214
-
215
- exc = self.assertRaises(
216
- exceptions.CommandError, self.cmd.take_action, parsed_args
217
- )
218
- self.assertIn(
219
- '--os-volume-api-version 3.55 or greater is required', str(exc)
220
- )
221
-
222
178
 
223
179
  class TestTransferDelete(TestTransfer):
224
180
  volume_transfers = volume_fakes.create_transfers(count=2)