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
@@ -14,29 +14,12 @@
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 object as obj
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 TestObject(object_fakes.TestObjectv1):
29
- def setUp(self):
30
- super().setUp()
31
- self.app.client_manager.object_store = object_store.APIv1(
32
- session=mock.Mock(),
33
- service_type="object-store",
34
- )
35
- self.api = self.app.client_manager.object_store
36
-
37
-
38
- @mock.patch('openstackclient.api.object_store_v1.APIv1.object_list')
39
- class TestObjectList(TestObject):
22
+ class TestObjectList(object_fakes.TestObjectV1):
40
23
  columns = ('Name',)
41
24
  datalist = ((object_fakes.object_name_2,),)
42
25
 
@@ -46,8 +29,8 @@ class TestObjectList(TestObject):
46
29
  # Get the command object to test
47
30
  self.cmd = obj.ListObject(self.app, None)
48
31
 
49
- def test_object_list_objects_no_options(self, o_mock):
50
- o_mock.return_value = [
32
+ def test_object_list_objects_no_options(self):
33
+ self.object_store_client.object_list.return_value = [
51
34
  copy.deepcopy(object_fakes.OBJECT),
52
35
  copy.deepcopy(object_fakes.OBJECT_2),
53
36
  ]
@@ -65,7 +48,7 @@ class TestObjectList(TestObject):
65
48
  # containing the data to be listed.
66
49
  columns, data = self.cmd.take_action(parsed_args)
67
50
 
68
- o_mock.assert_called_with(
51
+ self.object_store_client.object_list.assert_called_with(
69
52
  container=object_fakes.container_name,
70
53
  )
71
54
 
@@ -76,8 +59,8 @@ class TestObjectList(TestObject):
76
59
  )
77
60
  self.assertEqual(datalist, tuple(data))
78
61
 
79
- def test_object_list_objects_prefix(self, o_mock):
80
- o_mock.return_value = [
62
+ def test_object_list_objects_prefix(self):
63
+ self.object_store_client.object_list.return_value = [
81
64
  copy.deepcopy(object_fakes.OBJECT_2),
82
65
  ]
83
66
 
@@ -97,19 +80,16 @@ class TestObjectList(TestObject):
97
80
  # containing the data to be listed.
98
81
  columns, data = self.cmd.take_action(parsed_args)
99
82
 
100
- # Set expected values
101
- kwargs = {
102
- 'prefix': 'floppy',
103
- }
104
- o_mock.assert_called_with(
105
- container=object_fakes.container_name_2, **kwargs
83
+ self.object_store_client.object_list.assert_called_with(
84
+ container=object_fakes.container_name_2,
85
+ prefix='floppy',
106
86
  )
107
87
 
108
88
  self.assertEqual(self.columns, columns)
109
89
  self.assertEqual(self.datalist, tuple(data))
110
90
 
111
- def test_object_list_objects_delimiter(self, o_mock):
112
- o_mock.return_value = [
91
+ def test_object_list_objects_delimiter(self):
92
+ self.object_store_client.object_list.return_value = [
113
93
  copy.deepcopy(object_fakes.OBJECT_2),
114
94
  ]
115
95
 
@@ -129,19 +109,16 @@ class TestObjectList(TestObject):
129
109
  # containing the data to be listed.
130
110
  columns, data = self.cmd.take_action(parsed_args)
131
111
 
132
- # Set expected values
133
- kwargs = {
134
- 'delimiter': '=',
135
- }
136
- o_mock.assert_called_with(
137
- container=object_fakes.container_name_2, **kwargs
112
+ self.object_store_client.object_list.assert_called_with(
113
+ container=object_fakes.container_name_2,
114
+ delimiter='=',
138
115
  )
139
116
 
140
117
  self.assertEqual(self.columns, columns)
141
118
  self.assertEqual(self.datalist, tuple(data))
142
119
 
143
- def test_object_list_objects_marker(self, o_mock):
144
- o_mock.return_value = [
120
+ def test_object_list_objects_marker(self):
121
+ self.object_store_client.object_list.return_value = [
145
122
  copy.deepcopy(object_fakes.OBJECT_2),
146
123
  ]
147
124
 
@@ -161,19 +138,16 @@ class TestObjectList(TestObject):
161
138
  # containing the data to be listed.
162
139
  columns, data = self.cmd.take_action(parsed_args)
163
140
 
164
- # Set expected values
165
- kwargs = {
166
- 'marker': object_fakes.object_name_2,
167
- }
168
- o_mock.assert_called_with(
169
- container=object_fakes.container_name_2, **kwargs
141
+ self.object_store_client.object_list.assert_called_with(
142
+ container=object_fakes.container_name_2,
143
+ marker=object_fakes.object_name_2,
170
144
  )
171
145
 
172
146
  self.assertEqual(self.columns, columns)
173
147
  self.assertEqual(self.datalist, tuple(data))
174
148
 
175
- def test_object_list_objects_end_marker(self, o_mock):
176
- o_mock.return_value = [
149
+ def test_object_list_objects_end_marker(self):
150
+ self.object_store_client.object_list.return_value = [
177
151
  copy.deepcopy(object_fakes.OBJECT_2),
178
152
  ]
179
153
 
@@ -193,19 +167,16 @@ class TestObjectList(TestObject):
193
167
  # containing the data to be listed.
194
168
  columns, data = self.cmd.take_action(parsed_args)
195
169
 
196
- # Set expected values
197
- kwargs = {
198
- 'end_marker': object_fakes.object_name_2,
199
- }
200
- o_mock.assert_called_with(
201
- container=object_fakes.container_name_2, **kwargs
170
+ self.object_store_client.object_list.assert_called_with(
171
+ container=object_fakes.container_name_2,
172
+ end_marker=object_fakes.object_name_2,
202
173
  )
203
174
 
204
175
  self.assertEqual(self.columns, columns)
205
176
  self.assertEqual(self.datalist, tuple(data))
206
177
 
207
- def test_object_list_objects_limit(self, o_mock):
208
- o_mock.return_value = [
178
+ def test_object_list_objects_limit(self):
179
+ self.object_store_client.object_list.return_value = [
209
180
  copy.deepcopy(object_fakes.OBJECT_2),
210
181
  ]
211
182
 
@@ -225,19 +196,16 @@ class TestObjectList(TestObject):
225
196
  # containing the data to be listed.
226
197
  columns, data = self.cmd.take_action(parsed_args)
227
198
 
228
- # Set expected values
229
- kwargs = {
230
- 'limit': 2,
231
- }
232
- o_mock.assert_called_with(
233
- container=object_fakes.container_name_2, **kwargs
199
+ self.object_store_client.object_list.assert_called_with(
200
+ container=object_fakes.container_name_2,
201
+ limit=2,
234
202
  )
235
203
 
236
204
  self.assertEqual(self.columns, columns)
237
205
  self.assertEqual(self.datalist, tuple(data))
238
206
 
239
- def test_object_list_objects_long(self, o_mock):
240
- o_mock.return_value = [
207
+ def test_object_list_objects_long(self):
208
+ self.object_store_client.object_list.return_value = [
241
209
  copy.deepcopy(object_fakes.OBJECT),
242
210
  copy.deepcopy(object_fakes.OBJECT_2),
243
211
  ]
@@ -257,10 +225,8 @@ class TestObjectList(TestObject):
257
225
  # containing the data to be listed.
258
226
  columns, data = self.cmd.take_action(parsed_args)
259
227
 
260
- # Set expected values
261
- kwargs = {}
262
- o_mock.assert_called_with(
263
- container=object_fakes.container_name, **kwargs
228
+ self.object_store_client.object_list.assert_called_with(
229
+ container=object_fakes.container_name,
264
230
  )
265
231
 
266
232
  collist = ('Name', 'Bytes', 'Hash', 'Content Type', 'Last Modified')
@@ -283,8 +249,8 @@ class TestObjectList(TestObject):
283
249
  )
284
250
  self.assertEqual(datalist, tuple(data))
285
251
 
286
- def test_object_list_objects_all(self, o_mock):
287
- o_mock.return_value = [
252
+ def test_object_list_objects_all(self):
253
+ self.object_store_client.object_list.return_value = [
288
254
  copy.deepcopy(object_fakes.OBJECT),
289
255
  copy.deepcopy(object_fakes.OBJECT_2),
290
256
  ]
@@ -304,12 +270,9 @@ class TestObjectList(TestObject):
304
270
  # containing the data to be listed.
305
271
  columns, data = self.cmd.take_action(parsed_args)
306
272
 
307
- # Set expected values
308
- kwargs = {
309
- 'full_listing': True,
310
- }
311
- o_mock.assert_called_with(
312
- container=object_fakes.container_name, **kwargs
273
+ self.object_store_client.object_list.assert_called_with(
274
+ container=object_fakes.container_name,
275
+ full_listing=True,
313
276
  )
314
277
 
315
278
  self.assertEqual(self.columns, columns)
@@ -320,16 +283,17 @@ class TestObjectList(TestObject):
320
283
  self.assertEqual(datalist, tuple(data))
321
284
 
322
285
 
323
- @mock.patch('openstackclient.api.object_store_v1.APIv1.object_show')
324
- class TestObjectShow(TestObject):
286
+ class TestObjectShow(object_fakes.TestObjectV1):
325
287
  def setUp(self):
326
288
  super().setUp()
327
289
 
328
290
  # Get the command object to test
329
291
  self.cmd = obj.ShowObject(self.app, None)
330
292
 
331
- def test_object_show(self, c_mock):
332
- c_mock.return_value = copy.deepcopy(object_fakes.OBJECT)
293
+ def test_object_show(self):
294
+ self.object_store_client.object_show.return_value = copy.deepcopy(
295
+ object_fakes.OBJECT
296
+ )
333
297
 
334
298
  arglist = [
335
299
  object_fakes.container_name,
@@ -346,13 +310,9 @@ class TestObjectShow(TestObject):
346
310
  # data to be shown.
347
311
  columns, data = self.cmd.take_action(parsed_args)
348
312
 
349
- # Set expected values
350
- kwargs = {}
351
- # lib.container.show_container(api, url, container)
352
- c_mock.assert_called_with(
313
+ self.object_store_client.object_show.assert_called_with(
353
314
  container=object_fakes.container_name,
354
315
  object=object_fakes.object_name_1,
355
- **kwargs,
356
316
  )
357
317
 
358
318
  collist = ('bytes', 'content_type', 'hash', 'last_modified', 'name')
@@ -15,18 +15,25 @@ import copy
15
15
  import io
16
16
  from unittest import mock
17
17
 
18
+ from keystoneauth1 import session
18
19
  from osc_lib import exceptions
19
20
  from requests_mock.contrib import fixture
20
21
 
22
+ from openstackclient.api import object_store_v1 as object_store
21
23
  from openstackclient.object.v1 import object as object_cmds
22
24
  from openstackclient.tests.unit.object.v1 import fakes as object_fakes
23
25
 
24
26
 
25
- class TestObjectAll(object_fakes.TestObjectv1):
27
+ class TestObjectAll(object_fakes.TestObjectV1):
26
28
  def setUp(self):
27
29
  super().setUp()
28
30
 
31
+ # these tests require a "real" client since we mock requests
29
32
  self.requests_mock = self.useFixture(fixture.Fixture())
33
+ self.app.client_manager.object_store = object_store.APIv1(
34
+ session=session.Session(),
35
+ endpoint=object_fakes.ENDPOINT,
36
+ )
30
37
 
31
38
 
32
39
  class TestObjectCreate(TestObjectAll):
@@ -0,0 +1,108 @@
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 importlib.util
14
+ import os
15
+ import re
16
+ import subprocess
17
+ import sys
18
+ import unittest
19
+
20
+ import fixtures
21
+
22
+ ROOT_DIR = os.path.normpath(
23
+ os.path.join(os.path.dirname(__file__), '..', '..', '..')
24
+ )
25
+ SELFTEST_REGEX = re.compile(r'\b(Okay|[HEW]\d{3}|O\d{3}):\s(.*)')
26
+
27
+ # Checks that filter on 'openstackclient/tests/unit' in the filename need the
28
+ # temp file written into that path structure so the check is not skipped.
29
+ _UNIT_TEST_SUBDIRS = {
30
+ 'O401': os.path.join('openstackclient', 'tests', 'unit'),
31
+ 'O402': os.path.join('openstackclient', 'tests', 'unit'),
32
+ }
33
+
34
+
35
+ def _load_checks():
36
+ spec = importlib.util.spec_from_file_location(
37
+ '_osc_hacking_checks',
38
+ os.path.join(ROOT_DIR, 'hacking', 'checks.py'),
39
+ )
40
+ module = importlib.util.module_from_spec(spec)
41
+ spec.loader.exec_module(module)
42
+ return module
43
+
44
+
45
+ def _get_examples(check):
46
+ for line in check.__doc__.splitlines():
47
+ line = line.lstrip()
48
+ match = SELFTEST_REGEX.match(line)
49
+ if match:
50
+ yield match.group(1), match.group(2)
51
+
52
+
53
+ class HackingTestCase(unittest.TestCase):
54
+ def _test_check(self, code, source):
55
+ lines = [
56
+ part.replace(r'\t', '\t') + '\n' for part in source.split(r'\n')
57
+ ]
58
+ subdir = {
59
+ 'O401': os.path.join('openstackclient', 'tests', 'unit'),
60
+ 'O402': os.path.join('openstackclient', 'tests', 'unit'),
61
+ }.get(code, '')
62
+
63
+ with fixtures.TempDir() as tmp:
64
+ dirpath = os.path.join(tmp.path, subdir) if subdir else tmp.path
65
+ if subdir:
66
+ os.makedirs(dirpath)
67
+
68
+ fpath = os.path.join(dirpath, 'test_tmp.py')
69
+ with open(fpath, 'w') as f:
70
+ f.write(''.join(lines))
71
+
72
+ cmd = [
73
+ sys.executable,
74
+ '-mflake8',
75
+ '--config',
76
+ os.path.join(ROOT_DIR, 'tox.ini'),
77
+ f'--select={code}',
78
+ '--format=%(code)s\t%(path)s\t%(row)d',
79
+ fpath,
80
+ ]
81
+ out, _ = subprocess.Popen(
82
+ cmd, stdout=subprocess.PIPE, cwd=ROOT_DIR
83
+ ).communicate()
84
+ out = out.decode('utf-8')
85
+
86
+ if code == 'Okay':
87
+ self.assertEqual('', out)
88
+ else:
89
+ self.assertNotEqual('', out, f"Failed to trigger rule {code}")
90
+ self.assertEqual(code, out.split('\t')[0].rstrip(':'), out)
91
+
92
+ def test_checks(self):
93
+ checks_module = _load_checks()
94
+
95
+ for name in sorted(dir(checks_module)):
96
+ check = getattr(checks_module, name)
97
+ if not callable(check):
98
+ continue
99
+
100
+ if getattr(check, 'skip_on_py3', None) is not False:
101
+ continue
102
+
103
+ if not check.__doc__:
104
+ continue
105
+
106
+ for code, source in _get_examples(check):
107
+ with self.subTest(check=name, example=source):
108
+ self._test_check(code, source)
@@ -38,24 +38,14 @@ class FakeVolumeClient:
38
38
  self.management_url = kwargs['endpoint']
39
39
  self.api_version = api_versions.APIVersion('2.0')
40
40
 
41
- self.availability_zones = mock.Mock()
42
- self.availability_zones.resource_class = fakes.FakeResource(None, {})
43
41
  self.backups = mock.Mock()
44
42
  self.backups.resource_class = fakes.FakeResource(None, {})
45
- self.capabilities = mock.Mock()
46
- self.capabilities.resource_class = fakes.FakeResource(None, {})
47
43
  self.cgsnapshots = mock.Mock()
48
44
  self.cgsnapshots.resource_class = fakes.FakeResource(None, {})
49
45
  self.consistencygroups = mock.Mock()
50
46
  self.consistencygroups.resource_class = fakes.FakeResource(None, {})
51
- self.limits = mock.Mock()
52
- self.limits.resource_class = fakes.FakeResource(None, {})
53
- self.pools = mock.Mock()
54
- self.pools.resource_class = fakes.FakeResource(None, {})
55
47
  self.qos_specs = mock.Mock()
56
48
  self.qos_specs.resource_class = fakes.FakeResource(None, {})
57
- self.restores = mock.Mock()
58
- self.restores.resource_class = fakes.FakeResource(None, {})
59
49
  self.services = mock.Mock()
60
50
  self.services.resource_class = fakes.FakeResource(None, {})
61
51
  self.transfers = mock.Mock()
@@ -88,6 +78,7 @@ class FakeClientMixin:
88
78
  self.app.client_manager.sdk_connection.volume = mock.Mock(
89
79
  spec=block_storage_v2_proxy.Proxy,
90
80
  )
81
+ self.app.client_manager.sdk_connection.volume.api_version = '2'
91
82
  self.volume_sdk_client = self.app.client_manager.sdk_connection.volume
92
83
  self.set_volume_api_version() # default to the lowest
93
84
 
@@ -242,23 +233,6 @@ def create_one_service(attrs=None):
242
233
  return service
243
234
 
244
235
 
245
- def create_services(attrs=None, count=2):
246
- """Create multiple fake services.
247
-
248
- :param dict attrs:
249
- A dictionary with all attributes of service
250
- :param Integer count:
251
- The number of services to be faked
252
- :return:
253
- A list of FakeResource objects
254
- """
255
- services = []
256
- for n in range(0, count):
257
- services.append(create_one_service(attrs))
258
-
259
- return services
260
-
261
-
262
236
  def create_one_capability(attrs=None):
263
237
  """Create a fake volume backend capability.
264
238
 
@@ -399,6 +373,26 @@ def create_volumes(attrs=None, count=2):
399
373
  return volumes
400
374
 
401
375
 
376
+ def get_volumes(volumes=None, count=2):
377
+ """Get an iterable MagicMock object with a list of faked volumes.
378
+
379
+ If volumes list is provided, then initialize the Mock object with the
380
+ list. Otherwise create one.
381
+
382
+ :param List volumes:
383
+ A list of FakeResource objects faking volumes
384
+ :param Integer count:
385
+ The number of volumes to be faked
386
+ :return
387
+ An iterable Mock object with side_effect set to a list of faked
388
+ volumes
389
+ """
390
+ if volumes is None:
391
+ volumes = create_volumes(count)
392
+
393
+ return mock.Mock(side_effect=volumes)
394
+
395
+
402
396
  def create_one_sdk_volume(attrs=None):
403
397
  """Create a fake volume.
404
398
 
@@ -438,43 +432,6 @@ def create_one_sdk_volume(attrs=None):
438
432
  return _volume.Volume(**volume_info)
439
433
 
440
434
 
441
- def create_sdk_volumes(attrs=None, count=2):
442
- """Create multiple fake volumes.
443
-
444
- :param dict attrs:
445
- A dictionary with all attributes of volume
446
- :param Integer count:
447
- The number of volumes to be faked
448
- :return:
449
- A list of FakeResource objects
450
- """
451
- volumes = []
452
- for n in range(0, count):
453
- volumes.append(create_one_sdk_volume(attrs))
454
-
455
- return volumes
456
-
457
-
458
- def get_volumes(volumes=None, count=2):
459
- """Get an iterable MagicMock object with a list of faked volumes.
460
-
461
- If volumes list is provided, then initialize the Mock object with the
462
- list. Otherwise create one.
463
-
464
- :param List volumes:
465
- A list of FakeResource objects faking volumes
466
- :param Integer count:
467
- The number of volumes to be faked
468
- :return
469
- An iterable Mock object with side_effect set to a list of faked
470
- volumes
471
- """
472
- if volumes is None:
473
- volumes = create_volumes(count)
474
-
475
- return mock.Mock(side_effect=volumes)
476
-
477
-
478
435
  def create_one_backup(attrs=None):
479
436
  """Create a fake backup.
480
437
 
@@ -512,44 +469,6 @@ def create_one_backup(attrs=None):
512
469
  return backup
513
470
 
514
471
 
515
- def create_backups(attrs=None, count=2):
516
- """Create multiple fake backups.
517
-
518
- :param dict attrs:
519
- A dictionary with all attributes
520
- :param int count:
521
- The number of backups to fake
522
- :return: A list of fake
523
- openstack.block_storage.v2.backup.Backup objects
524
- """
525
- backups = []
526
- for i in range(0, count):
527
- backup = create_one_backup(attrs)
528
- backups.append(backup)
529
-
530
- return backups
531
-
532
-
533
- def get_backups(backups=None, count=2):
534
- """Get an iterable MagicMock object with a list of faked backups.
535
-
536
- If backups list is provided, then initialize the Mock object with the
537
- list. Otherwise create one.
538
-
539
- :param List backups:
540
- A list of FakeResource objects faking backups
541
- :param Integer count:
542
- The number of backups to be faked
543
- :return
544
- An iterable Mock object with side_effect set to a list of faked
545
- backups
546
- """
547
- if backups is None:
548
- backups = create_backups(count)
549
-
550
- return mock.Mock(side_effect=backups)
551
-
552
-
553
472
  def create_backup_record():
554
473
  """Gets a fake backup record for a given backup.
555
474
 
@@ -840,44 +759,6 @@ def create_one_snapshot(attrs=None):
840
759
  return snapshot
841
760
 
842
761
 
843
- def create_snapshots(attrs=None, count=2):
844
- """Create multiple fake snapshots.
845
-
846
- :param dict attrs:
847
- A dictionary with all attributes
848
- :param int count:
849
- The number of snapshots to fake
850
- :return:
851
- A list of FakeResource objects faking the snapshots
852
- """
853
- snapshots = []
854
- for i in range(0, count):
855
- snapshot = create_one_snapshot(attrs)
856
- snapshots.append(snapshot)
857
-
858
- return snapshots
859
-
860
-
861
- def get_snapshots(snapshots=None, count=2):
862
- """Get an iterable MagicMock object with a list of faked snapshots.
863
-
864
- If snapshots list is provided, then initialize the Mock object with the
865
- list. Otherwise create one.
866
-
867
- :param List snapshots:
868
- A list of FakeResource objects faking snapshots
869
- :param Integer count:
870
- The number of snapshots to be faked
871
- :return
872
- An iterable Mock object with side_effect set to a list of faked
873
- snapshots
874
- """
875
- if snapshots is None:
876
- snapshots = create_snapshots(count)
877
-
878
- return mock.Mock(side_effect=snapshots)
879
-
880
-
881
762
  def create_one_volume_type(attrs=None, methods=None):
882
763
  """Create a fake volume type.
883
764
 
@@ -220,11 +220,7 @@ class TestBackupList(volume_fakes.TestVolume):
220
220
  'Incremental',
221
221
  'Created At',
222
222
  )
223
- columns_long = columns + (
224
- 'Availability Zone',
225
- 'Volume',
226
- 'Container',
227
- )
223
+ columns_long = (*columns, 'Availability Zone', 'Volume', 'Container')
228
224
 
229
225
  def setUp(self):
230
226
  super().setUp()
@@ -297,6 +293,7 @@ class TestBackupList(volume_fakes.TestVolume):
297
293
  all_tenants=False,
298
294
  marker=None,
299
295
  limit=None,
296
+ max_items=None,
300
297
  )
301
298
  self.assertEqual(self.columns, columns)
302
299
  self.assertCountEqual(self.data, list(data))
@@ -342,6 +339,7 @@ class TestBackupList(volume_fakes.TestVolume):
342
339
  all_tenants=True,
343
340
  marker=self.backups[0].id,
344
341
  limit=3,
342
+ max_items=None,
345
343
  )
346
344
  self.assertEqual(self.columns_long, columns)
347
345
  self.assertCountEqual(self.data_long, list(data))
@@ -390,9 +388,7 @@ class TestBackupRestore(volume_fakes.TestVolume):
390
388
 
391
389
  columns, data = self.cmd.take_action(parsed_args)
392
390
  self.volume_sdk_client.restore_backup.assert_called_with(
393
- self.backup.id,
394
- volume_id=None,
395
- name=None,
391
+ self.backup.id, volume=None, name=None
396
392
  )
397
393
 
398
394
  self.assertEqual(self.columns, columns)
@@ -414,9 +410,7 @@ class TestBackupRestore(volume_fakes.TestVolume):
414
410
 
415
411
  columns, data = self.cmd.take_action(parsed_args)
416
412
  self.volume_sdk_client.restore_backup.assert_called_with(
417
- self.backup.id,
418
- volume_id=None,
419
- name=self.backup.volume_id,
413
+ self.backup.id, volume=None, name=self.backup.volume_id
420
414
  )
421
415
 
422
416
  self.assertEqual(self.columns, columns)
@@ -437,9 +431,7 @@ class TestBackupRestore(volume_fakes.TestVolume):
437
431
 
438
432
  columns, data = self.cmd.take_action(parsed_args)
439
433
  self.volume_sdk_client.restore_backup.assert_called_with(
440
- self.backup.id,
441
- volume_id=self.volume.id,
442
- name=None,
434
+ self.backup.id, volume=self.volume.id, name=None
443
435
  )
444
436
 
445
437
  self.assertEqual(self.columns, columns)