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
@@ -12,108 +12,98 @@
12
12
  # License for the specific language governing permissions and limitations
13
13
  # under the License.
14
14
 
15
- import copy
16
15
  from unittest import mock
17
16
 
17
+ from osc_lib.cli import format_columns
18
18
  from osc_lib import exceptions
19
19
 
20
+ from openstack.identity.v3 import domain as _domain
21
+ from openstack.identity.v3 import identity_provider as _identity_provider
22
+ from openstack.test import fakes as sdk_fakes
20
23
  from openstackclient.identity.v3 import identity_provider
21
- from openstackclient.tests.unit import fakes
22
24
  from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
23
25
  from openstackclient.tests.unit import utils as test_utils
24
26
 
25
27
 
26
- class TestIdentityProvider(identity_fakes.TestFederatedIdentity):
27
- def setUp(self):
28
- super().setUp()
29
-
30
- # Identity Provider mocks
31
- federation_lib = self.identity_client.federation
32
- self.identity_providers_mock = federation_lib.identity_providers
33
- self.identity_providers_mock.reset_mock()
34
-
35
- # Domain mocks
36
- self.domains_mock = self.identity_client.domains
37
- self.domains_mock.reset_mock()
38
- self.domain = identity_fakes.FakeDomain.create_one_domain(
39
- identity_fakes.DOMAIN
40
- )
41
- self.domains_mock.list.return_value = [self.domain]
42
- self.domains_mock.get.return_value = self.domain
43
-
44
-
45
- class TestIdentityProviderCreate(TestIdentityProvider):
28
+ class TestIdentityProviderCreate(identity_fakes.TestFederatedIdentity):
46
29
  columns = (
30
+ 'authorization_ttl',
47
31
  'description',
48
32
  'domain_id',
49
33
  'enabled',
50
34
  'id',
51
35
  'remote_ids',
52
36
  )
53
- datalist = (
54
- identity_fakes.idp_description,
55
- identity_fakes.domain_id,
56
- True,
57
- identity_fakes.idp_id,
58
- identity_fakes.formatted_idp_remote_ids,
59
- )
60
37
 
61
38
  def setUp(self):
62
39
  super().setUp()
63
40
 
64
- copied_idp = copy.deepcopy(identity_fakes.IDENTITY_PROVIDER)
65
- resource = fakes.FakeResource(None, copied_idp, loaded=True)
66
- self.identity_providers_mock.create.return_value = resource
41
+ self.domain = sdk_fakes.generate_fake_resource(_domain.Domain)
42
+ self.idp = sdk_fakes.generate_fake_resource(
43
+ _identity_provider.IdentityProvider,
44
+ domain_id=self.domain.id,
45
+ remote_ids=['entity1', 'entity2'],
46
+ )
47
+
48
+ self.identity_sdk_client.create_identity_provider.return_value = (
49
+ self.idp
50
+ )
51
+ self.identity_sdk_client.find_domain.return_value = self.domain
52
+
53
+ self.datalist = (
54
+ self.idp.authorization_ttl,
55
+ self.idp.description,
56
+ self.domain.id,
57
+ self.idp.is_enabled,
58
+ self.idp.id,
59
+ format_columns.ListColumn(self.idp.remote_ids),
60
+ )
67
61
  self.cmd = identity_provider.CreateIdentityProvider(self.app, None)
68
62
 
69
63
  def test_create_identity_provider_no_options(self):
70
64
  arglist = [
71
- identity_fakes.idp_id,
65
+ self.idp.id,
72
66
  ]
73
67
  verifylist = [
74
- ('identity_provider_id', identity_fakes.idp_id),
68
+ ('identity_provider_id', self.idp.id),
75
69
  ]
76
70
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
77
71
  columns, data = self.cmd.take_action(parsed_args)
78
72
 
79
73
  # Set expected values
80
74
  kwargs = {
81
- 'remote_ids': None,
82
- 'enabled': True,
83
- 'description': None,
84
- 'domain_id': None,
75
+ 'is_enabled': True,
85
76
  }
86
77
 
87
- self.identity_providers_mock.create.assert_called_with(
88
- id=identity_fakes.idp_id, **kwargs
78
+ self.identity_sdk_client.create_identity_provider.assert_called_with(
79
+ id=self.idp.id, **kwargs
89
80
  )
90
81
 
91
82
  self.assertEqual(self.columns, columns)
83
+
92
84
  self.assertCountEqual(self.datalist, data)
93
85
 
94
86
  def test_create_identity_provider_description(self):
95
87
  arglist = [
96
88
  '--description',
97
- identity_fakes.idp_description,
98
- identity_fakes.idp_id,
89
+ self.idp.description,
90
+ self.idp.id,
99
91
  ]
100
92
  verifylist = [
101
- ('identity_provider_id', identity_fakes.idp_id),
102
- ('description', identity_fakes.idp_description),
93
+ ('identity_provider_id', self.idp.id),
94
+ ('description', self.idp.description),
103
95
  ]
104
96
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
105
97
  columns, data = self.cmd.take_action(parsed_args)
106
98
 
107
99
  # Set expected values
108
100
  kwargs = {
109
- 'remote_ids': None,
110
- 'description': identity_fakes.idp_description,
111
- 'domain_id': None,
112
- 'enabled': True,
101
+ 'description': self.idp.description,
102
+ 'is_enabled': True,
113
103
  }
114
104
 
115
- self.identity_providers_mock.create.assert_called_with(
116
- id=identity_fakes.idp_id, **kwargs
105
+ self.identity_sdk_client.create_identity_provider.assert_called_with(
106
+ id=self.idp.id, **kwargs
117
107
  )
118
108
 
119
109
  self.assertEqual(self.columns, columns)
@@ -121,27 +111,25 @@ class TestIdentityProviderCreate(TestIdentityProvider):
121
111
 
122
112
  def test_create_identity_provider_remote_id(self):
123
113
  arglist = [
124
- identity_fakes.idp_id,
114
+ self.idp.id,
125
115
  '--remote-id',
126
- identity_fakes.idp_remote_ids[0],
116
+ self.idp.remote_ids[0],
127
117
  ]
128
118
  verifylist = [
129
- ('identity_provider_id', identity_fakes.idp_id),
130
- ('remote_ids', identity_fakes.idp_remote_ids[:1]),
119
+ ('identity_provider_id', self.idp.id),
120
+ ('remote_ids', self.idp.remote_ids[:1]),
131
121
  ]
132
122
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
133
123
  columns, data = self.cmd.take_action(parsed_args)
134
124
 
135
125
  # Set expected values
136
126
  kwargs = {
137
- 'remote_ids': identity_fakes.idp_remote_ids[:1],
138
- 'description': None,
139
- 'domain_id': None,
140
- 'enabled': True,
127
+ 'remote_ids': self.idp.remote_ids[:1],
128
+ 'is_enabled': True,
141
129
  }
142
130
 
143
- self.identity_providers_mock.create.assert_called_with(
144
- id=identity_fakes.idp_id, **kwargs
131
+ self.identity_sdk_client.create_identity_provider.assert_called_with(
132
+ id=self.idp.id, **kwargs
145
133
  )
146
134
 
147
135
  self.assertEqual(self.columns, columns)
@@ -150,28 +138,26 @@ class TestIdentityProviderCreate(TestIdentityProvider):
150
138
  def test_create_identity_provider_remote_ids_multiple(self):
151
139
  arglist = [
152
140
  '--remote-id',
153
- identity_fakes.idp_remote_ids[0],
141
+ self.idp.remote_ids[0],
154
142
  '--remote-id',
155
- identity_fakes.idp_remote_ids[1],
156
- identity_fakes.idp_id,
143
+ self.idp.remote_ids[1],
144
+ self.idp.id,
157
145
  ]
158
146
  verifylist = [
159
- ('identity_provider_id', identity_fakes.idp_id),
160
- ('remote_ids', identity_fakes.idp_remote_ids),
147
+ ('identity_provider_id', self.idp.id),
148
+ ('remote_ids', self.idp.remote_ids),
161
149
  ]
162
150
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
163
151
  columns, data = self.cmd.take_action(parsed_args)
164
152
 
165
153
  # Set expected values
166
154
  kwargs = {
167
- 'remote_ids': identity_fakes.idp_remote_ids,
168
- 'description': None,
169
- 'domain_id': None,
170
- 'enabled': True,
155
+ 'remote_ids': self.idp.remote_ids,
156
+ 'is_enabled': True,
171
157
  }
172
158
 
173
- self.identity_providers_mock.create.assert_called_with(
174
- id=identity_fakes.idp_id, **kwargs
159
+ self.identity_sdk_client.create_identity_provider.assert_called_with(
160
+ id=self.idp.id, **kwargs
175
161
  )
176
162
 
177
163
  self.assertEqual(self.columns, columns)
@@ -181,16 +167,16 @@ class TestIdentityProviderCreate(TestIdentityProvider):
181
167
  arglist = [
182
168
  '--remote-id-file',
183
169
  '/tmp/file_name',
184
- identity_fakes.idp_id,
170
+ self.idp.id,
185
171
  ]
186
172
  verifylist = [
187
- ('identity_provider_id', identity_fakes.idp_id),
173
+ ('identity_provider_id', self.idp.id),
188
174
  ('remote_id_file', '/tmp/file_name'),
189
175
  ]
190
176
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
191
177
 
192
178
  mocker = mock.Mock()
193
- mocker.return_value = "\n".join(identity_fakes.idp_remote_ids)
179
+ mocker.return_value = "\n".join(self.idp.remote_ids)
194
180
  with mock.patch(
195
181
  "openstackclient.identity.v3.identity_provider."
196
182
  "utils.read_blob_file_contents",
@@ -200,83 +186,80 @@ class TestIdentityProviderCreate(TestIdentityProvider):
200
186
 
201
187
  # Set expected values
202
188
  kwargs = {
203
- 'remote_ids': identity_fakes.idp_remote_ids,
204
- 'description': None,
205
- 'domain_id': None,
206
- 'enabled': True,
189
+ 'remote_ids': self.idp.remote_ids,
190
+ 'is_enabled': True,
207
191
  }
208
192
 
209
- self.identity_providers_mock.create.assert_called_with(
210
- id=identity_fakes.idp_id, **kwargs
193
+ self.identity_sdk_client.create_identity_provider.assert_called_with(
194
+ id=self.idp.id, **kwargs
211
195
  )
212
196
 
213
197
  self.assertEqual(self.columns, columns)
214
198
  self.assertCountEqual(self.datalist, data)
215
199
 
216
200
  def test_create_identity_provider_disabled(self):
217
- # Prepare FakeResource object
218
- IDENTITY_PROVIDER = copy.deepcopy(identity_fakes.IDENTITY_PROVIDER)
219
- IDENTITY_PROVIDER['enabled'] = False
220
- IDENTITY_PROVIDER['description'] = None
221
-
222
- resource = fakes.FakeResource(None, IDENTITY_PROVIDER, loaded=True)
223
- self.identity_providers_mock.create.return_value = resource
201
+ idp_disabled = sdk_fakes.generate_fake_resource(
202
+ _identity_provider.IdentityProvider,
203
+ domain_id=self.domain.id,
204
+ remote_ids=['entity1', 'entity2'],
205
+ is_enabled=False,
206
+ )
207
+ self.identity_sdk_client.create_identity_provider.return_value = (
208
+ idp_disabled
209
+ )
210
+ self.cmd = identity_provider.CreateIdentityProvider(self.app, None)
224
211
 
225
212
  arglist = [
226
213
  '--disable',
227
- identity_fakes.idp_id,
214
+ idp_disabled.id,
228
215
  ]
229
216
  verifylist = [
230
- ('identity_provider_id', identity_fakes.idp_id),
217
+ ('identity_provider_id', idp_disabled.id),
231
218
  ]
232
219
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
233
220
  columns, data = self.cmd.take_action(parsed_args)
234
221
 
235
222
  # Set expected values
236
223
  kwargs = {
237
- 'remote_ids': None,
238
- 'enabled': False,
239
- 'description': None,
240
- 'domain_id': None,
224
+ 'is_enabled': False,
241
225
  }
242
226
 
243
- self.identity_providers_mock.create.assert_called_with(
244
- id=identity_fakes.idp_id, **kwargs
227
+ self.identity_sdk_client.create_identity_provider.assert_called_with(
228
+ id=idp_disabled.id, **kwargs
245
229
  )
246
230
 
247
231
  self.assertEqual(self.columns, columns)
248
232
  datalist = (
249
- None,
250
- identity_fakes.domain_id,
233
+ idp_disabled.authorization_ttl,
234
+ idp_disabled.description,
235
+ self.domain.id,
251
236
  False,
252
- identity_fakes.idp_id,
253
- identity_fakes.formatted_idp_remote_ids,
237
+ idp_disabled.id,
238
+ format_columns.ListColumn(self.idp.remote_ids),
254
239
  )
255
240
  self.assertCountEqual(datalist, data)
256
241
 
257
242
  def test_create_identity_provider_domain_name(self):
258
243
  arglist = [
259
244
  '--domain',
260
- identity_fakes.domain_name,
261
- identity_fakes.idp_id,
245
+ self.domain.name,
246
+ self.idp.id,
262
247
  ]
263
248
  verifylist = [
264
- ('identity_provider_id', identity_fakes.idp_id),
265
- ('domain', identity_fakes.domain_name),
249
+ ('identity_provider_id', self.idp.id),
250
+ ('domain', self.domain.name),
266
251
  ]
267
252
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
268
253
  columns, data = self.cmd.take_action(parsed_args)
269
254
 
270
255
  # Set expected values
271
256
  kwargs = {
272
- 'remote_ids': None,
273
- 'description': None,
274
- 'domain_id': identity_fakes.domain_id,
275
- 'enabled': True,
257
+ 'domain_id': self.domain.id,
258
+ 'is_enabled': True,
276
259
  }
277
260
 
278
- self.identity_providers_mock.create.assert_called_with(
279
- id=identity_fakes.idp_id, **kwargs
261
+ self.identity_sdk_client.create_identity_provider.assert_called_with(
262
+ id=self.idp.id, **kwargs
280
263
  )
281
264
 
282
265
  self.assertEqual(self.columns, columns)
@@ -285,26 +268,24 @@ class TestIdentityProviderCreate(TestIdentityProvider):
285
268
  def test_create_identity_provider_domain_id(self):
286
269
  arglist = [
287
270
  '--domain',
288
- identity_fakes.domain_id,
289
- identity_fakes.idp_id,
271
+ self.domain.id,
272
+ self.idp.id,
290
273
  ]
291
274
  verifylist = [
292
- ('identity_provider_id', identity_fakes.idp_id),
293
- ('domain', identity_fakes.domain_id),
275
+ ('identity_provider_id', self.idp.id),
276
+ ('domain', self.domain.id),
294
277
  ]
295
278
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
296
279
  columns, data = self.cmd.take_action(parsed_args)
297
280
 
298
281
  # Set expected values
299
282
  kwargs = {
300
- 'remote_ids': None,
301
- 'description': None,
302
- 'domain_id': identity_fakes.domain_id,
303
- 'enabled': True,
283
+ 'domain_id': self.domain.id,
284
+ 'is_enabled': True,
304
285
  }
305
286
 
306
- self.identity_providers_mock.create.assert_called_with(
307
- id=identity_fakes.idp_id, **kwargs
287
+ self.identity_sdk_client.create_identity_provider.assert_called_with(
288
+ id=self.idp.id, **kwargs
308
289
  )
309
290
 
310
291
  self.assertEqual(self.columns, columns)
@@ -314,10 +295,10 @@ class TestIdentityProviderCreate(TestIdentityProvider):
314
295
  arglist = [
315
296
  '--authorization-ttl',
316
297
  '60',
317
- identity_fakes.idp_id,
298
+ self.idp.id,
318
299
  ]
319
300
  verifylist = [
320
- ('identity_provider_id', identity_fakes.idp_id),
301
+ ('identity_provider_id', self.idp.id),
321
302
  ('authorization_ttl', 60),
322
303
  ]
323
304
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -325,15 +306,12 @@ class TestIdentityProviderCreate(TestIdentityProvider):
325
306
 
326
307
  # Set expected values
327
308
  kwargs = {
328
- 'remote_ids': None,
329
- 'description': None,
330
- 'domain_id': None,
331
- 'enabled': True,
309
+ 'is_enabled': True,
332
310
  'authorization_ttl': 60,
333
311
  }
334
312
 
335
- self.identity_providers_mock.create.assert_called_with(
336
- id=identity_fakes.idp_id, **kwargs
313
+ self.identity_sdk_client.create_identity_provider.assert_called_with(
314
+ id=self.idp.id, **kwargs
337
315
  )
338
316
 
339
317
  self.assertEqual(self.columns, columns)
@@ -343,10 +321,10 @@ class TestIdentityProviderCreate(TestIdentityProvider):
343
321
  arglist = [
344
322
  '--authorization-ttl',
345
323
  '0',
346
- identity_fakes.idp_id,
324
+ self.idp.id,
347
325
  ]
348
326
  verifylist = [
349
- ('identity_provider_id', identity_fakes.idp_id),
327
+ ('identity_provider_id', self.idp.id),
350
328
  ('authorization_ttl', 0),
351
329
  ]
352
330
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -354,15 +332,12 @@ class TestIdentityProviderCreate(TestIdentityProvider):
354
332
 
355
333
  # Set expected values
356
334
  kwargs = {
357
- 'remote_ids': None,
358
- 'description': None,
359
- 'domain_id': None,
360
- 'enabled': True,
335
+ 'is_enabled': True,
361
336
  'authorization_ttl': 0,
362
337
  }
363
338
 
364
- self.identity_providers_mock.create.assert_called_with(
365
- id=identity_fakes.idp_id, **kwargs
339
+ self.identity_sdk_client.create_identity_provider.assert_called_with(
340
+ id=self.idp.id, **kwargs
366
341
  )
367
342
 
368
343
  self.assertEqual(self.columns, columns)
@@ -372,10 +347,10 @@ class TestIdentityProviderCreate(TestIdentityProvider):
372
347
  arglist = [
373
348
  '--authorization-ttl',
374
349
  '-60',
375
- identity_fakes.idp_id,
350
+ self.idp.id,
376
351
  ]
377
352
  verifylist = [
378
- ('identity_provider_id', identity_fakes.idp_id),
353
+ ('identity_provider_id', self.idp.id),
379
354
  ('authorization_ttl', -60),
380
355
  ]
381
356
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -387,7 +362,7 @@ class TestIdentityProviderCreate(TestIdentityProvider):
387
362
  arglist = [
388
363
  '--authorization-ttl',
389
364
  'spam',
390
- identity_fakes.idp_id,
365
+ self.idp.id,
391
366
  ]
392
367
  verifylist = []
393
368
  self.assertRaises(
@@ -399,53 +374,46 @@ class TestIdentityProviderCreate(TestIdentityProvider):
399
374
  )
400
375
 
401
376
 
402
- class TestIdentityProviderDelete(TestIdentityProvider):
377
+ class TestIdentityProviderDelete(identity_fakes.TestFederatedIdentity):
403
378
  def setUp(self):
404
379
  super().setUp()
405
380
 
406
- # This is the return value for utils.find_resource()
407
- self.identity_providers_mock.get.return_value = fakes.FakeResource(
408
- None,
409
- copy.deepcopy(identity_fakes.IDENTITY_PROVIDER),
410
- loaded=True,
381
+ self.idp = sdk_fakes.generate_fake_resource(
382
+ _identity_provider.IdentityProvider
411
383
  )
412
384
 
413
- self.identity_providers_mock.delete.return_value = None
385
+ self.identity_sdk_client.delete_identity_provider.return_value = None
414
386
  self.cmd = identity_provider.DeleteIdentityProvider(self.app, None)
415
387
 
416
388
  def test_delete_identity_provider(self):
417
389
  arglist = [
418
- identity_fakes.idp_id,
390
+ self.idp.id,
419
391
  ]
420
392
  verifylist = [
421
- ('identity_provider', [identity_fakes.idp_id]),
393
+ ('identity_provider', [self.idp.id]),
422
394
  ]
423
395
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
424
396
 
425
397
  result = self.cmd.take_action(parsed_args)
426
398
 
427
- self.identity_providers_mock.delete.assert_called_with(
428
- identity_fakes.idp_id,
399
+ self.identity_sdk_client.delete_identity_provider.assert_called_with(
400
+ self.idp.id,
429
401
  )
430
402
  self.assertIsNone(result)
431
403
 
432
404
 
433
- class TestIdentityProviderList(TestIdentityProvider):
405
+ class TestIdentityProviderList(identity_fakes.TestFederatedIdentity):
434
406
  def setUp(self):
435
407
  super().setUp()
436
408
 
437
- self.identity_providers_mock.get.return_value = fakes.FakeResource(
438
- None,
439
- copy.deepcopy(identity_fakes.IDENTITY_PROVIDER),
440
- loaded=True,
409
+ self.domain = sdk_fakes.generate_fake_resource(_domain.Domain)
410
+ self.idp = sdk_fakes.generate_fake_resource(
411
+ _identity_provider.IdentityProvider,
412
+ domain_id=self.domain.id,
413
+ remote_ids=['entity1', 'entity2'],
441
414
  )
442
- self.identity_providers_mock.list.return_value = [
443
- fakes.FakeResource(
444
- None,
445
- copy.deepcopy(identity_fakes.IDENTITY_PROVIDER),
446
- loaded=True,
447
- ),
448
- ]
415
+
416
+ self.identity_sdk_client.identity_providers.return_value = [self.idp]
449
417
 
450
418
  # Get the command object to test
451
419
  self.cmd = identity_provider.ListIdentityProvider(self.app, None)
@@ -460,23 +428,23 @@ class TestIdentityProviderList(TestIdentityProvider):
460
428
  # containing the data to be listed.
461
429
  columns, data = self.cmd.take_action(parsed_args)
462
430
 
463
- self.identity_providers_mock.list.assert_called_with()
431
+ self.identity_sdk_client.identity_providers.assert_called_with()
464
432
 
465
433
  collist = ('ID', 'Enabled', 'Domain ID', 'Description')
466
434
  self.assertEqual(collist, columns)
467
435
  datalist = (
468
436
  (
469
- identity_fakes.idp_id,
437
+ self.idp.id,
470
438
  True,
471
- identity_fakes.domain_id,
472
- identity_fakes.idp_description,
439
+ self.domain.id,
440
+ self.idp.description,
473
441
  ),
474
442
  )
475
443
  self.assertCountEqual(datalist, tuple(data))
476
444
 
477
445
  def test_identity_provider_list_ID_option(self):
478
- arglist = ['--id', identity_fakes.idp_id]
479
- verifylist = [('id', identity_fakes.idp_id)]
446
+ arglist = ['--id', self.idp.id]
447
+ verifylist = [('id', self.idp.id)]
480
448
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
481
449
 
482
450
  # In base command class Lister in cliff, abstract method take_action()
@@ -484,17 +452,19 @@ class TestIdentityProviderList(TestIdentityProvider):
484
452
  # containing the data to be listed.
485
453
  columns, data = self.cmd.take_action(parsed_args)
486
454
 
487
- kwargs = {'id': identity_fakes.idp_id}
488
- self.identity_providers_mock.list.assert_called_with(**kwargs)
455
+ kwargs = {'id': self.idp.id}
456
+ self.identity_sdk_client.identity_providers.assert_called_with(
457
+ **kwargs
458
+ )
489
459
 
490
460
  collist = ('ID', 'Enabled', 'Domain ID', 'Description')
491
461
  self.assertEqual(collist, columns)
492
462
  datalist = (
493
463
  (
494
- identity_fakes.idp_id,
464
+ self.idp.id,
495
465
  True,
496
- identity_fakes.domain_id,
497
- identity_fakes.idp_description,
466
+ self.domain.id,
467
+ self.idp.description,
498
468
  ),
499
469
  )
500
470
  self.assertCountEqual(datalist, tuple(data))
@@ -509,38 +479,35 @@ class TestIdentityProviderList(TestIdentityProvider):
509
479
  # containing the data to be listed.
510
480
  columns, data = self.cmd.take_action(parsed_args)
511
481
 
512
- kwargs = {'enabled': True}
513
- self.identity_providers_mock.list.assert_called_with(**kwargs)
482
+ kwargs = {'is_enabled': True}
483
+ self.identity_sdk_client.identity_providers.assert_called_with(
484
+ **kwargs
485
+ )
514
486
 
515
487
  collist = ('ID', 'Enabled', 'Domain ID', 'Description')
516
488
  self.assertEqual(collist, columns)
517
489
  datalist = (
518
490
  (
519
- identity_fakes.idp_id,
491
+ self.idp.id,
520
492
  True,
521
- identity_fakes.domain_id,
522
- identity_fakes.idp_description,
493
+ self.domain.id,
494
+ self.idp.description,
523
495
  ),
524
496
  )
525
497
  self.assertCountEqual(datalist, tuple(data))
526
498
 
527
499
 
528
- class TestIdentityProviderSet(TestIdentityProvider):
529
- columns = (
530
- 'description',
531
- 'enabled',
532
- 'id',
533
- 'remote_ids',
534
- )
535
- datalist = (
536
- identity_fakes.idp_description,
537
- True,
538
- identity_fakes.idp_id,
539
- identity_fakes.idp_remote_ids,
540
- )
541
-
500
+ class TestIdentityProviderSet(identity_fakes.TestFederatedIdentity):
542
501
  def setUp(self):
543
502
  super().setUp()
503
+
504
+ self.domain = sdk_fakes.generate_fake_resource(_domain.Domain)
505
+ self.idp = sdk_fakes.generate_fake_resource(
506
+ _identity_provider.IdentityProvider,
507
+ domain_id=self.domain.id,
508
+ remote_ids=['entity1', 'entity2'],
509
+ )
510
+
544
511
  self.cmd = identity_provider.SetIdentityProvider(self.app, None)
545
512
 
546
513
  def test_identity_provider_set_description(self):
@@ -548,26 +515,33 @@ class TestIdentityProviderSet(TestIdentityProvider):
548
515
 
549
516
  def prepare(self):
550
517
  """Prepare fake return objects before the test is executed"""
551
- updated_idp = copy.deepcopy(identity_fakes.IDENTITY_PROVIDER)
552
- updated_idp['enabled'] = False
553
- resources = fakes.FakeResource(None, updated_idp, loaded=True)
554
- self.identity_providers_mock.update.return_value = resources
518
+ new_description = 'new desc'
519
+
520
+ self.updated_idp = sdk_fakes.generate_fake_resource(
521
+ _identity_provider.IdentityProvider,
522
+ id=self.idp.id,
523
+ description=new_description,
524
+ domain_id=self.domain.id,
525
+ remote_ids=self.idp.remote_ids,
526
+ )
527
+ self.identity_sdk_client.update_identity_provider.return_value = (
528
+ self.updated_idp
529
+ )
555
530
 
556
531
  prepare(self)
557
- new_description = 'new desc'
558
- arglist = ['--description', new_description, identity_fakes.idp_id]
532
+ arglist = ['--description', self.updated_idp.description, self.idp.id]
559
533
  verifylist = [
560
- ('identity_provider', identity_fakes.idp_id),
561
- ('description', new_description),
534
+ ('identity_provider', self.idp.id),
535
+ ('description', self.updated_idp.description),
562
536
  ('enable', False),
563
537
  ('disable', False),
564
538
  ('remote_ids', None),
565
539
  ]
566
540
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
567
541
  self.cmd.take_action(parsed_args)
568
- self.identity_providers_mock.update.assert_called_with(
569
- identity_fakes.idp_id,
570
- description=new_description,
542
+ self.identity_sdk_client.update_identity_provider.assert_called_with(
543
+ self.idp.id,
544
+ description=self.updated_idp.description,
571
545
  )
572
546
 
573
547
  def test_identity_provider_disable(self):
@@ -578,34 +552,40 @@ class TestIdentityProviderSet(TestIdentityProvider):
578
552
 
579
553
  def prepare(self):
580
554
  """Prepare fake return objects before the test is executed"""
581
- updated_idp = copy.deepcopy(identity_fakes.IDENTITY_PROVIDER)
582
- updated_idp['enabled'] = False
583
- resources = fakes.FakeResource(None, updated_idp, loaded=True)
584
- self.identity_providers_mock.update.return_value = resources
555
+ self.updated_idp = sdk_fakes.generate_fake_resource(
556
+ _identity_provider.IdentityProvider,
557
+ id=self.idp.id,
558
+ enabled=False,
559
+ domain_id=self.domain.id,
560
+ remote_ids=self.idp.remote_ids,
561
+ )
562
+ self.identity_sdk_client.update_identity_provider.return_value = (
563
+ self.updated_idp
564
+ )
585
565
 
586
566
  prepare(self)
587
567
  arglist = [
588
568
  '--disable',
589
- identity_fakes.idp_id,
569
+ self.idp.id,
590
570
  '--remote-id',
591
- identity_fakes.idp_remote_ids[0],
571
+ self.idp.remote_ids[0],
592
572
  '--remote-id',
593
- identity_fakes.idp_remote_ids[1],
573
+ self.idp.remote_ids[1],
594
574
  ]
595
575
  verifylist = [
596
- ('identity_provider', identity_fakes.idp_id),
576
+ ('identity_provider', self.idp.id),
597
577
  ('description', None),
598
578
  ('enable', False),
599
579
  ('disable', True),
600
- ('remote_ids', identity_fakes.idp_remote_ids),
580
+ ('remote_ids', self.idp.remote_ids),
601
581
  ]
602
582
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
603
583
 
604
584
  self.cmd.take_action(parsed_args)
605
- self.identity_providers_mock.update.assert_called_with(
606
- identity_fakes.idp_id,
607
- enabled=False,
608
- remote_ids=identity_fakes.idp_remote_ids,
585
+ self.identity_sdk_client.update_identity_provider.assert_called_with(
586
+ self.idp.id,
587
+ is_enabled=False,
588
+ remote_ids=self.idp.remote_ids,
609
589
  )
610
590
 
611
591
  def test_identity_provider_enable(self):
@@ -616,36 +596,40 @@ class TestIdentityProviderSet(TestIdentityProvider):
616
596
 
617
597
  def prepare(self):
618
598
  """Prepare fake return objects before the test is executed"""
619
- resources = fakes.FakeResource(
620
- None,
621
- copy.deepcopy(identity_fakes.IDENTITY_PROVIDER),
622
- loaded=True,
599
+ self.updated_idp = sdk_fakes.generate_fake_resource(
600
+ _identity_provider.IdentityProvider,
601
+ id=self.idp.id,
602
+ is_enabled=True,
603
+ domain_id=self.domain.id,
604
+ remote_ids=self.idp.remote_ids,
605
+ )
606
+ self.identity_sdk_client.update_identity_provider.return_value = (
607
+ self.updated_idp
623
608
  )
624
- self.identity_providers_mock.update.return_value = resources
625
609
 
626
610
  prepare(self)
627
611
  arglist = [
628
612
  '--enable',
629
- identity_fakes.idp_id,
613
+ self.idp.id,
630
614
  '--remote-id',
631
- identity_fakes.idp_remote_ids[0],
615
+ self.idp.remote_ids[0],
632
616
  '--remote-id',
633
- identity_fakes.idp_remote_ids[1],
617
+ self.idp.remote_ids[1],
634
618
  ]
635
619
  verifylist = [
636
- ('identity_provider', identity_fakes.idp_id),
620
+ ('identity_provider', self.idp.id),
637
621
  ('description', None),
638
622
  ('enable', True),
639
623
  ('disable', False),
640
- ('remote_ids', identity_fakes.idp_remote_ids),
624
+ ('remote_ids', self.idp.remote_ids),
641
625
  ]
642
626
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
643
627
 
644
628
  self.cmd.take_action(parsed_args)
645
- self.identity_providers_mock.update.assert_called_with(
646
- identity_fakes.idp_id,
647
- enabled=True,
648
- remote_ids=identity_fakes.idp_remote_ids,
629
+ self.identity_sdk_client.update_identity_provider.assert_called_with(
630
+ self.idp.id,
631
+ is_enabled=True,
632
+ remote_ids=self.idp.remote_ids,
649
633
  )
650
634
 
651
635
  def test_identity_provider_replace_remote_ids(self):
@@ -658,20 +642,25 @@ class TestIdentityProviderSet(TestIdentityProvider):
658
642
  """Prepare fake return objects before the test is executed"""
659
643
  self.new_remote_id = 'new_entity'
660
644
 
661
- updated_idp = copy.deepcopy(identity_fakes.IDENTITY_PROVIDER)
662
- updated_idp['remote_ids'] = [self.new_remote_id]
663
- resources = fakes.FakeResource(None, updated_idp, loaded=True)
664
- self.identity_providers_mock.update.return_value = resources
645
+ self.updated_idp = sdk_fakes.generate_fake_resource(
646
+ _identity_provider.IdentityProvider,
647
+ id=self.idp.id,
648
+ domain_id=self.domain.id,
649
+ remote_ids=[self.new_remote_id],
650
+ )
651
+ self.identity_sdk_client.update_identity_provider.return_value = (
652
+ self.updated_idp
653
+ )
665
654
 
666
655
  prepare(self)
667
656
  arglist = [
668
657
  '--enable',
669
- identity_fakes.idp_id,
658
+ self.idp.id,
670
659
  '--remote-id',
671
660
  self.new_remote_id,
672
661
  ]
673
662
  verifylist = [
674
- ('identity_provider', identity_fakes.idp_id),
663
+ ('identity_provider', self.idp.id),
675
664
  ('description', None),
676
665
  ('enable', True),
677
666
  ('disable', False),
@@ -680,9 +669,9 @@ class TestIdentityProviderSet(TestIdentityProvider):
680
669
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
681
670
 
682
671
  self.cmd.take_action(parsed_args)
683
- self.identity_providers_mock.update.assert_called_with(
684
- identity_fakes.idp_id,
685
- enabled=True,
672
+ self.identity_sdk_client.update_identity_provider.assert_called_with(
673
+ self.idp.id,
674
+ is_enabled=True,
686
675
  remote_ids=[self.new_remote_id],
687
676
  )
688
677
 
@@ -696,20 +685,25 @@ class TestIdentityProviderSet(TestIdentityProvider):
696
685
  """Prepare fake return objects before the test is executed"""
697
686
  self.new_remote_id = 'new_entity'
698
687
 
699
- updated_idp = copy.deepcopy(identity_fakes.IDENTITY_PROVIDER)
700
- updated_idp['remote_ids'] = [self.new_remote_id]
701
- resources = fakes.FakeResource(None, updated_idp, loaded=True)
702
- self.identity_providers_mock.update.return_value = resources
688
+ self.updated_idp = sdk_fakes.generate_fake_resource(
689
+ _identity_provider.IdentityProvider,
690
+ id=self.idp.id,
691
+ domain_id=self.domain.id,
692
+ remote_ids=[self.new_remote_id],
693
+ )
694
+ self.identity_sdk_client.update_identity_provider.return_value = (
695
+ self.updated_idp
696
+ )
703
697
 
704
698
  prepare(self)
705
699
  arglist = [
706
700
  '--enable',
707
- identity_fakes.idp_id,
701
+ self.idp.id,
708
702
  '--remote-id-file',
709
703
  self.new_remote_id,
710
704
  ]
711
705
  verifylist = [
712
- ('identity_provider', identity_fakes.idp_id),
706
+ ('identity_provider', self.idp.id),
713
707
  ('description', None),
714
708
  ('enable', True),
715
709
  ('disable', False),
@@ -725,35 +719,31 @@ class TestIdentityProviderSet(TestIdentityProvider):
725
719
  mocker,
726
720
  ):
727
721
  self.cmd.take_action(parsed_args)
728
- self.identity_providers_mock.update.assert_called_with(
729
- identity_fakes.idp_id,
730
- enabled=True,
722
+ self.identity_sdk_client.update_identity_provider.assert_called_with(
723
+ self.idp.id,
724
+ is_enabled=True,
731
725
  remote_ids=[self.new_remote_id],
732
726
  )
733
727
 
734
728
  def test_identity_provider_no_options(self):
735
729
  def prepare(self):
736
730
  """Prepare fake return objects before the test is executed"""
737
- resources = fakes.FakeResource(
738
- None,
739
- copy.deepcopy(identity_fakes.IDENTITY_PROVIDER),
740
- loaded=True,
731
+ self.updated_idp = sdk_fakes.generate_fake_resource(
732
+ _identity_provider.IdentityProvider,
733
+ id=self.idp.id,
734
+ domain_id=self.domain.id,
735
+ remote_ids=self.idp.remote_ids,
741
736
  )
742
- self.identity_providers_mock.get.return_value = resources
743
-
744
- resources = fakes.FakeResource(
745
- None,
746
- copy.deepcopy(identity_fakes.IDENTITY_PROVIDER),
747
- loaded=True,
737
+ self.identity_sdk_client.update_identity_provider.return_value = (
738
+ self.updated_idp
748
739
  )
749
- self.identity_providers_mock.update.return_value = resources
750
740
 
751
741
  prepare(self)
752
742
  arglist = [
753
- identity_fakes.idp_id,
743
+ self.idp.id,
754
744
  ]
755
745
  verifylist = [
756
- ('identity_provider', identity_fakes.idp_id),
746
+ ('identity_provider', self.idp.id),
757
747
  ('enable', False),
758
748
  ('disable', False),
759
749
  ('remote_ids', None),
@@ -765,15 +755,21 @@ class TestIdentityProviderSet(TestIdentityProvider):
765
755
  def test_identity_provider_set_authttl_positive(self):
766
756
  def prepare(self):
767
757
  """Prepare fake return objects before the test is executed"""
768
- updated_idp = copy.deepcopy(identity_fakes.IDENTITY_PROVIDER)
769
- updated_idp['authorization_ttl'] = 60
770
- resources = fakes.FakeResource(None, updated_idp, loaded=True)
771
- self.identity_providers_mock.update.return_value = resources
758
+ self.updated_idp = sdk_fakes.generate_fake_resource(
759
+ _identity_provider.IdentityProvider,
760
+ id=self.idp.id,
761
+ authorization_ttl=60,
762
+ domain_id=self.domain.id,
763
+ remote_ids=self.idp.remote_ids,
764
+ )
765
+ self.identity_sdk_client.update_identity_provider.return_value = (
766
+ self.updated_idp
767
+ )
772
768
 
773
769
  prepare(self)
774
- arglist = ['--authorization-ttl', '60', identity_fakes.idp_id]
770
+ arglist = ['--authorization-ttl', '60', self.idp.id]
775
771
  verifylist = [
776
- ('identity_provider', identity_fakes.idp_id),
772
+ ('identity_provider', self.idp.id),
777
773
  ('enable', False),
778
774
  ('disable', False),
779
775
  ('remote_ids', None),
@@ -781,23 +777,29 @@ class TestIdentityProviderSet(TestIdentityProvider):
781
777
  ]
782
778
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
783
779
  self.cmd.take_action(parsed_args)
784
- self.identity_providers_mock.update.assert_called_with(
785
- identity_fakes.idp_id,
780
+ self.identity_sdk_client.update_identity_provider.assert_called_with(
781
+ self.idp.id,
786
782
  authorization_ttl=60,
787
783
  )
788
784
 
789
785
  def test_identity_provider_set_authttl_zero(self):
790
786
  def prepare(self):
791
787
  """Prepare fake return objects before the test is executed"""
792
- updated_idp = copy.deepcopy(identity_fakes.IDENTITY_PROVIDER)
793
- updated_idp['authorization_ttl'] = 0
794
- resources = fakes.FakeResource(None, updated_idp, loaded=True)
795
- self.identity_providers_mock.update.return_value = resources
788
+ self.updated_idp = sdk_fakes.generate_fake_resource(
789
+ _identity_provider.IdentityProvider,
790
+ id=self.idp.id,
791
+ authorization_ttl=0,
792
+ domain_id=self.domain.id,
793
+ remote_ids=self.idp.remote_ids,
794
+ )
795
+ self.identity_sdk_client.update_identity_provider.return_value = (
796
+ self.updated_idp
797
+ )
796
798
 
797
799
  prepare(self)
798
- arglist = ['--authorization-ttl', '0', identity_fakes.idp_id]
800
+ arglist = ['--authorization-ttl', '0', self.idp.id]
799
801
  verifylist = [
800
- ('identity_provider', identity_fakes.idp_id),
802
+ ('identity_provider', self.idp.id),
801
803
  ('enable', False),
802
804
  ('disable', False),
803
805
  ('remote_ids', None),
@@ -805,15 +807,15 @@ class TestIdentityProviderSet(TestIdentityProvider):
805
807
  ]
806
808
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
807
809
  self.cmd.take_action(parsed_args)
808
- self.identity_providers_mock.update.assert_called_with(
809
- identity_fakes.idp_id,
810
+ self.identity_sdk_client.update_identity_provider.assert_called_with(
811
+ self.idp.id,
810
812
  authorization_ttl=0,
811
813
  )
812
814
 
813
815
  def test_identity_provider_set_authttl_negative(self):
814
- arglist = ['--authorization-ttl', '-1', identity_fakes.idp_id]
816
+ arglist = ['--authorization-ttl', '-1', self.idp.id]
815
817
  verifylist = [
816
- ('identity_provider', identity_fakes.idp_id),
818
+ ('identity_provider', self.idp.id),
817
819
  ('enable', False),
818
820
  ('disable', False),
819
821
  ('remote_ids', None),
@@ -825,7 +827,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
825
827
  )
826
828
 
827
829
  def test_identity_provider_set_authttl_not_int(self):
828
- arglist = ['--authorization-ttl', 'spam', identity_fakes.idp_id]
830
+ arglist = ['--authorization-ttl', 'spam', self.idp.id]
829
831
  verifylist = []
830
832
  self.assertRaises(
831
833
  test_utils.ParserException,
@@ -836,47 +838,49 @@ class TestIdentityProviderSet(TestIdentityProvider):
836
838
  )
837
839
 
838
840
 
839
- class TestIdentityProviderShow(TestIdentityProvider):
841
+ class TestIdentityProviderShow(identity_fakes.TestFederatedIdentity):
840
842
  def setUp(self):
841
843
  super().setUp()
842
844
 
843
- ret = fakes.FakeResource(
844
- None,
845
- copy.deepcopy(identity_fakes.IDENTITY_PROVIDER),
846
- loaded=True,
845
+ self.idp = sdk_fakes.generate_fake_resource(
846
+ _identity_provider.IdentityProvider,
847
+ remote_ids=['entity1', 'entity2'],
847
848
  )
848
849
 
849
- self.identity_providers_mock.get.side_effect = [
850
- Exception("Not found"),
851
- ret,
852
- ]
853
- self.identity_providers_mock.get.return_value = ret
850
+ self.identity_sdk_client.get_identity_provider.return_value = self.idp
854
851
 
855
- # Get the command object to test
856
852
  self.cmd = identity_provider.ShowIdentityProvider(self.app, None)
857
853
 
858
854
  def test_identity_provider_show(self):
859
855
  arglist = [
860
- identity_fakes.idp_id,
856
+ self.idp.id,
861
857
  ]
862
858
  verifylist = [
863
- ('identity_provider', identity_fakes.idp_id),
859
+ ('identity_provider', self.idp.id),
864
860
  ]
865
861
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
866
862
 
867
863
  columns, data = self.cmd.take_action(parsed_args)
868
864
 
869
- self.identity_providers_mock.get.assert_called_with(
870
- identity_fakes.idp_id, id='test_idp'
865
+ self.identity_sdk_client.get_identity_provider.assert_called_with(
866
+ self.idp.id,
871
867
  )
872
868
 
873
- collist = ('description', 'domain_id', 'enabled', 'id', 'remote_ids')
869
+ collist = (
870
+ 'authorization_ttl',
871
+ 'description',
872
+ 'domain_id',
873
+ 'enabled',
874
+ 'id',
875
+ 'remote_ids',
876
+ )
874
877
  self.assertEqual(collist, columns)
875
878
  datalist = (
876
- identity_fakes.idp_description,
877
- identity_fakes.domain_id,
879
+ self.idp.authorization_ttl,
880
+ self.idp.description,
881
+ self.idp.domain_id,
878
882
  True,
879
- identity_fakes.idp_id,
880
- identity_fakes.formatted_idp_remote_ids,
883
+ self.idp.id,
884
+ format_columns.ListColumn(self.idp.remote_ids),
881
885
  )
882
886
  self.assertCountEqual(datalist, data)