python-openstackclient 6.6.1__py3-none-any.whl → 7.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. openstackclient/api/api.py +4 -4
  2. openstackclient/api/compute_v2.py +352 -638
  3. openstackclient/api/image_v1.py +1 -1
  4. openstackclient/api/object_store_v1.py +3 -4
  5. openstackclient/common/availability_zone.py +1 -1
  6. openstackclient/common/clientmanager.py +24 -20
  7. openstackclient/common/configuration.py +1 -1
  8. openstackclient/common/extension.py +1 -1
  9. openstackclient/common/limits.py +67 -34
  10. openstackclient/common/module.py +3 -3
  11. openstackclient/common/progressbar.py +2 -2
  12. openstackclient/common/project_cleanup.py +5 -2
  13. openstackclient/common/quota.py +299 -423
  14. openstackclient/common/versions.py +1 -1
  15. openstackclient/compute/client.py +7 -116
  16. openstackclient/compute/v2/agent.py +75 -49
  17. openstackclient/compute/v2/aggregate.py +38 -32
  18. openstackclient/compute/v2/console.py +2 -2
  19. openstackclient/compute/v2/flavor.py +6 -6
  20. openstackclient/compute/v2/host.py +38 -33
  21. openstackclient/compute/v2/hypervisor.py +9 -6
  22. openstackclient/compute/v2/keypair.py +7 -8
  23. openstackclient/compute/v2/server.py +479 -396
  24. openstackclient/compute/v2/server_backup.py +1 -1
  25. openstackclient/compute/v2/server_group.py +4 -4
  26. openstackclient/compute/v2/server_image.py +1 -1
  27. openstackclient/compute/v2/server_migration.py +3 -4
  28. openstackclient/compute/v2/service.py +4 -4
  29. openstackclient/compute/v2/usage.py +3 -3
  30. openstackclient/identity/common.py +34 -0
  31. openstackclient/identity/v2_0/catalog.py +2 -2
  32. openstackclient/identity/v2_0/ec2creds.py +4 -4
  33. openstackclient/identity/v2_0/endpoint.py +4 -4
  34. openstackclient/identity/v2_0/project.py +6 -6
  35. openstackclient/identity/v2_0/role.py +5 -5
  36. openstackclient/identity/v2_0/role_assignment.py +1 -1
  37. openstackclient/identity/v2_0/service.py +4 -4
  38. openstackclient/identity/v2_0/token.py +2 -2
  39. openstackclient/identity/v2_0/user.py +7 -7
  40. openstackclient/identity/v3/access_rule.py +3 -3
  41. openstackclient/identity/v3/application_credential.py +125 -43
  42. openstackclient/identity/v3/catalog.py +2 -2
  43. openstackclient/identity/v3/consumer.py +4 -4
  44. openstackclient/identity/v3/credential.py +5 -5
  45. openstackclient/identity/v3/domain.py +5 -5
  46. openstackclient/identity/v3/ec2creds.py +4 -4
  47. openstackclient/identity/v3/endpoint.py +7 -7
  48. openstackclient/identity/v3/endpoint_group.py +8 -10
  49. openstackclient/identity/v3/federation_protocol.py +5 -5
  50. openstackclient/identity/v3/group.py +8 -8
  51. openstackclient/identity/v3/identity_provider.py +5 -5
  52. openstackclient/identity/v3/implied_role.py +3 -3
  53. openstackclient/identity/v3/limit.py +5 -5
  54. openstackclient/identity/v3/mapping.py +5 -5
  55. openstackclient/identity/v3/policy.py +5 -5
  56. openstackclient/identity/v3/project.py +5 -5
  57. openstackclient/identity/v3/region.py +5 -5
  58. openstackclient/identity/v3/registered_limit.py +5 -5
  59. openstackclient/identity/v3/role.py +7 -7
  60. openstackclient/identity/v3/role_assignment.py +92 -140
  61. openstackclient/identity/v3/service.py +64 -34
  62. openstackclient/identity/v3/service_provider.py +4 -4
  63. openstackclient/identity/v3/tag.py +2 -2
  64. openstackclient/identity/v3/token.py +5 -5
  65. openstackclient/identity/v3/trust.py +3 -3
  66. openstackclient/identity/v3/user.py +144 -80
  67. openstackclient/image/client.py +4 -4
  68. openstackclient/image/v1/image.py +8 -9
  69. openstackclient/image/v2/cache.py +12 -10
  70. openstackclient/image/v2/metadef_objects.py +44 -0
  71. openstackclient/image/v2/metadef_resource_type_association.py +189 -0
  72. openstackclient/image/v2/task.py +1 -1
  73. openstackclient/network/common.py +6 -5
  74. openstackclient/network/utils.py +2 -2
  75. openstackclient/network/v2/address_group.py +6 -6
  76. openstackclient/network/v2/address_scope.py +5 -5
  77. openstackclient/network/v2/default_security_group_rule.py +1 -1
  78. openstackclient/network/v2/floating_ip.py +8 -10
  79. openstackclient/network/v2/floating_ip_pool.py +6 -15
  80. openstackclient/network/v2/floating_ip_port_forwarding.py +5 -13
  81. openstackclient/network/v2/ip_availability.py +2 -2
  82. openstackclient/network/v2/l3_conntrack_helper.py +5 -5
  83. openstackclient/network/v2/network.py +8 -8
  84. openstackclient/network/v2/network_agent.py +8 -8
  85. openstackclient/network/v2/network_auto_allocated_topology.py +2 -2
  86. openstackclient/network/v2/network_flavor.py +6 -8
  87. openstackclient/network/v2/network_flavor_profile.py +4 -4
  88. openstackclient/network/v2/network_meter.py +3 -3
  89. openstackclient/network/v2/network_meter_rule.py +3 -3
  90. openstackclient/network/v2/network_qos_policy.py +5 -5
  91. openstackclient/network/v2/network_qos_rule.py +9 -9
  92. openstackclient/network/v2/network_qos_rule_type.py +1 -1
  93. openstackclient/network/v2/network_rbac.py +5 -5
  94. openstackclient/network/v2/network_segment.py +5 -5
  95. openstackclient/network/v2/network_segment_range.py +7 -7
  96. openstackclient/network/v2/network_trunk.py +7 -7
  97. openstackclient/network/v2/port.py +26 -12
  98. openstackclient/network/v2/router.py +403 -54
  99. openstackclient/network/v2/security_group.py +18 -14
  100. openstackclient/network/v2/security_group_rule.py +18 -15
  101. openstackclient/network/v2/subnet.py +15 -8
  102. openstackclient/network/v2/subnet_pool.py +6 -6
  103. openstackclient/object/v1/account.py +2 -2
  104. openstackclient/object/v1/container.py +7 -7
  105. openstackclient/object/v1/object.py +7 -7
  106. openstackclient/releasenotes/notes/volume-backup-created-at-list-b49ec893ae1f6b0d.yaml +4 -0
  107. openstackclient/shell.py +4 -6
  108. openstackclient/tests/functional/base.py +1 -1
  109. openstackclient/tests/functional/common/test_extension.py +1 -1
  110. openstackclient/tests/functional/common/test_help.py +2 -2
  111. openstackclient/tests/functional/common/test_module.py +1 -1
  112. openstackclient/tests/functional/common/test_quota.py +43 -61
  113. openstackclient/tests/functional/compute/v2/common.py +2 -2
  114. openstackclient/tests/functional/compute/v2/test_flavor.py +2 -2
  115. openstackclient/tests/functional/compute/v2/test_keypair.py +1 -1
  116. openstackclient/tests/functional/compute/v2/test_server.py +5 -5
  117. openstackclient/tests/functional/compute/v2/test_server_event.py +1 -1
  118. openstackclient/tests/functional/identity/v2/common.py +3 -3
  119. openstackclient/tests/functional/identity/v3/common.py +12 -4
  120. openstackclient/tests/functional/identity/v3/test_application_credential.py +6 -12
  121. openstackclient/tests/functional/identity/v3/test_domain.py +1 -3
  122. openstackclient/tests/functional/identity/v3/test_endpoint.py +1 -1
  123. openstackclient/tests/functional/identity/v3/test_idp.py +1 -1
  124. openstackclient/tests/functional/identity/v3/test_region.py +1 -3
  125. openstackclient/tests/functional/identity/v3/test_role.py +2 -2
  126. openstackclient/tests/functional/identity/v3/test_role_assignment.py +210 -0
  127. openstackclient/tests/functional/identity/v3/test_service.py +1 -3
  128. openstackclient/tests/functional/identity/v3/test_service_provider.py +1 -3
  129. openstackclient/tests/functional/image/base.py +1 -1
  130. openstackclient/tests/functional/image/v2/test_image.py +1 -1
  131. openstackclient/tests/functional/image/v2/test_info.py +1 -1
  132. openstackclient/tests/functional/network/v2/common.py +4 -6
  133. openstackclient/tests/functional/network/v2/test_network.py +5 -3
  134. openstackclient/tests/functional/network/v2/test_network_agent.py +7 -5
  135. openstackclient/tests/functional/network/v2/test_network_qos_rule.py +4 -4
  136. openstackclient/tests/functional/network/v2/test_port.py +11 -7
  137. openstackclient/tests/functional/network/v2/test_router.py +2 -2
  138. openstackclient/tests/functional/object/v1/common.py +1 -1
  139. openstackclient/tests/functional/object/v1/test_container.py +3 -3
  140. openstackclient/tests/functional/object/v1/test_object.py +9 -13
  141. openstackclient/tests/functional/volume/base.py +1 -1
  142. openstackclient/tests/functional/volume/v1/test_service.py +1 -1
  143. openstackclient/tests/functional/volume/v1/test_snapshot.py +2 -2
  144. openstackclient/tests/functional/volume/v1/test_transfer_request.py +2 -2
  145. openstackclient/tests/functional/volume/v1/test_volume_type.py +1 -1
  146. openstackclient/tests/functional/volume/v2/test_service.py +2 -2
  147. openstackclient/tests/functional/volume/v2/test_volume_backup.py +2 -2
  148. openstackclient/tests/functional/volume/v2/test_volume_snapshot.py +2 -2
  149. openstackclient/tests/functional/volume/v2/test_volume_type.py +1 -1
  150. openstackclient/tests/functional/volume/v3/test_volume_snapshot.py +2 -2
  151. openstackclient/tests/functional/volume/v3/test_volume_type.py +1 -1
  152. openstackclient/tests/unit/api/fakes.py +1 -1
  153. openstackclient/tests/unit/api/test_api.py +2 -2
  154. openstackclient/tests/unit/api/test_compute_v2.py +522 -707
  155. openstackclient/tests/unit/api/test_image_v1.py +1 -1
  156. openstackclient/tests/unit/api/test_image_v2.py +1 -1
  157. openstackclient/tests/unit/api/test_object_store_v1.py +4 -4
  158. openstackclient/tests/unit/common/test_limits.py +73 -35
  159. openstackclient/tests/unit/common/test_logs.py +2 -2
  160. openstackclient/tests/unit/common/test_module.py +4 -2
  161. openstackclient/tests/unit/common/test_project_cleanup.py +31 -6
  162. openstackclient/tests/unit/common/test_quota.py +490 -630
  163. openstackclient/tests/unit/compute/v2/fakes.py +37 -286
  164. openstackclient/tests/unit/compute/v2/test_agent.py +189 -147
  165. openstackclient/tests/unit/compute/v2/test_aggregate.py +87 -57
  166. openstackclient/tests/unit/compute/v2/test_console.py +4 -5
  167. openstackclient/tests/unit/compute/v2/test_flavor.py +59 -68
  168. openstackclient/tests/unit/compute/v2/test_host.py +83 -54
  169. openstackclient/tests/unit/compute/v2/test_hypervisor.py +57 -34
  170. openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +2 -2
  171. openstackclient/tests/unit/compute/v2/test_keypair.py +65 -50
  172. openstackclient/tests/unit/compute/v2/test_server.py +2850 -2453
  173. openstackclient/tests/unit/compute/v2/test_server_backup.py +1 -1
  174. openstackclient/tests/unit/compute/v2/test_server_event.py +14 -39
  175. openstackclient/tests/unit/compute/v2/test_server_group.py +28 -29
  176. openstackclient/tests/unit/compute/v2/test_server_migration.py +43 -68
  177. openstackclient/tests/unit/compute/v2/test_server_volume.py +17 -34
  178. openstackclient/tests/unit/compute/v2/test_service.py +34 -52
  179. openstackclient/tests/unit/compute/v2/test_usage.py +4 -4
  180. openstackclient/tests/unit/fakes.py +12 -12
  181. openstackclient/tests/unit/identity/v2_0/fakes.py +27 -10
  182. openstackclient/tests/unit/identity/v2_0/test_catalog.py +3 -3
  183. openstackclient/tests/unit/identity/v2_0/test_endpoint.py +7 -7
  184. openstackclient/tests/unit/identity/v2_0/test_project.py +8 -8
  185. openstackclient/tests/unit/identity/v2_0/test_role.py +10 -10
  186. openstackclient/tests/unit/identity/v2_0/test_role_assignment.py +4 -4
  187. openstackclient/tests/unit/identity/v2_0/test_service.py +6 -6
  188. openstackclient/tests/unit/identity/v2_0/test_token.py +4 -4
  189. openstackclient/tests/unit/identity/v2_0/test_user.py +8 -8
  190. openstackclient/tests/unit/identity/v3/fakes.py +59 -20
  191. openstackclient/tests/unit/identity/v3/test_access_rule.py +5 -5
  192. openstackclient/tests/unit/identity/v3/test_application_credential.py +207 -230
  193. openstackclient/tests/unit/identity/v3/test_catalog.py +3 -3
  194. openstackclient/tests/unit/identity/v3/test_consumer.py +7 -8
  195. openstackclient/tests/unit/identity/v3/test_credential.py +9 -9
  196. openstackclient/tests/unit/identity/v3/test_domain.py +8 -8
  197. openstackclient/tests/unit/identity/v3/test_endpoint.py +13 -13
  198. openstackclient/tests/unit/identity/v3/test_endpoint_group.py +12 -14
  199. openstackclient/tests/unit/identity/v3/test_group.py +12 -12
  200. openstackclient/tests/unit/identity/v3/test_identity_provider.py +8 -8
  201. openstackclient/tests/unit/identity/v3/test_implied_role.py +5 -5
  202. openstackclient/tests/unit/identity/v3/test_limit.py +7 -7
  203. openstackclient/tests/unit/identity/v3/test_mappings.py +7 -7
  204. openstackclient/tests/unit/identity/v3/test_oauth.py +5 -5
  205. openstackclient/tests/unit/identity/v3/test_project.py +16 -16
  206. openstackclient/tests/unit/identity/v3/test_protocol.py +7 -7
  207. openstackclient/tests/unit/identity/v3/test_region.py +7 -7
  208. openstackclient/tests/unit/identity/v3/test_registered_limit.py +12 -13
  209. openstackclient/tests/unit/identity/v3/test_role.py +13 -13
  210. openstackclient/tests/unit/identity/v3/test_role_assignment.py +410 -331
  211. openstackclient/tests/unit/identity/v3/test_service.py +90 -94
  212. openstackclient/tests/unit/identity/v3/test_service_provider.py +7 -7
  213. openstackclient/tests/unit/identity/v3/test_token.py +4 -4
  214. openstackclient/tests/unit/identity/v3/test_trust.py +9 -9
  215. openstackclient/tests/unit/identity/v3/test_unscoped_saml.py +4 -4
  216. openstackclient/tests/unit/identity/v3/test_user.py +299 -327
  217. openstackclient/tests/unit/image/v1/test_image.py +6 -6
  218. openstackclient/tests/unit/image/v2/fakes.py +46 -9
  219. openstackclient/tests/unit/image/v2/test_cache.py +2 -2
  220. openstackclient/tests/unit/image/v2/test_image.py +3 -3
  221. openstackclient/tests/unit/image/v2/test_metadef_objects.py +62 -0
  222. openstackclient/tests/unit/image/v2/test_metadef_resource_type_association.py +131 -0
  223. openstackclient/tests/unit/integ/base.py +1 -1
  224. openstackclient/tests/unit/integ/cli/test_project.py +4 -4
  225. openstackclient/tests/unit/integ/cli/test_shell.py +7 -7
  226. openstackclient/tests/unit/network/test_common.py +12 -21
  227. openstackclient/tests/unit/network/v2/fakes.py +64 -130
  228. openstackclient/tests/unit/network/v2/test_address_group.py +15 -15
  229. openstackclient/tests/unit/network/v2/test_address_scope.py +13 -13
  230. openstackclient/tests/unit/network/v2/test_default_security_group_rule.py +49 -27
  231. openstackclient/tests/unit/network/v2/test_floating_ip_compute.py +40 -38
  232. openstackclient/tests/unit/network/v2/test_floating_ip_network.py +15 -15
  233. openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py +4 -7
  234. openstackclient/tests/unit/network/v2/test_floating_ip_pool_network.py +3 -5
  235. openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +11 -11
  236. openstackclient/tests/unit/network/v2/test_ip_availability.py +6 -6
  237. openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +11 -21
  238. openstackclient/tests/unit/network/v2/test_local_ip.py +7 -7
  239. openstackclient/tests/unit/network/v2/test_local_ip_association.py +3 -5
  240. openstackclient/tests/unit/network/v2/test_ndp_proxy.py +13 -13
  241. openstackclient/tests/unit/network/v2/test_network.py +23 -28
  242. openstackclient/tests/unit/network/v2/test_network_agent.py +17 -21
  243. openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py +8 -8
  244. openstackclient/tests/unit/network/v2/test_network_compute.py +66 -65
  245. openstackclient/tests/unit/network/v2/test_network_flavor.py +17 -19
  246. openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +13 -13
  247. openstackclient/tests/unit/network/v2/test_network_meter.py +11 -11
  248. openstackclient/tests/unit/network/v2/test_network_meter_rule.py +11 -11
  249. openstackclient/tests/unit/network/v2/test_network_qos_policy.py +11 -21
  250. openstackclient/tests/unit/network/v2/test_network_qos_rule.py +51 -77
  251. openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +5 -9
  252. openstackclient/tests/unit/network/v2/test_network_rbac.py +12 -12
  253. openstackclient/tests/unit/network/v2/test_network_segment.py +11 -15
  254. openstackclient/tests/unit/network/v2/test_network_segment_range.py +11 -13
  255. openstackclient/tests/unit/network/v2/test_network_service_provider.py +3 -5
  256. openstackclient/tests/unit/network/v2/test_network_trunk.py +11 -11
  257. openstackclient/tests/unit/network/v2/test_port.py +22 -25
  258. openstackclient/tests/unit/network/v2/test_router.py +721 -51
  259. openstackclient/tests/unit/network/v2/test_security_group_compute.py +65 -49
  260. openstackclient/tests/unit/network/v2/test_security_group_network.py +15 -15
  261. openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +57 -45
  262. openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +11 -19
  263. openstackclient/tests/unit/network/v2/test_subnet.py +29 -25
  264. openstackclient/tests/unit/network/v2/test_subnet_pool.py +15 -15
  265. openstackclient/tests/unit/object/v1/fakes.py +1 -1
  266. openstackclient/tests/unit/object/v1/test_container.py +5 -5
  267. openstackclient/tests/unit/object/v1/test_container_all.py +6 -6
  268. openstackclient/tests/unit/object/v1/test_object.py +3 -3
  269. openstackclient/tests/unit/object/v1/test_object_all.py +5 -5
  270. openstackclient/tests/unit/test_shell.py +5 -5
  271. openstackclient/tests/unit/utils.py +4 -1
  272. openstackclient/tests/unit/volume/test_find_resource.py +2 -2
  273. openstackclient/tests/unit/volume/v1/fakes.py +5 -6
  274. openstackclient/tests/unit/volume/v1/test_volume.py +5 -4
  275. openstackclient/tests/unit/volume/v2/fakes.py +39 -259
  276. openstackclient/tests/unit/volume/v2/test_consistency_group_snapshot.py +5 -5
  277. openstackclient/tests/unit/volume/v2/test_qos_specs.py +9 -9
  278. openstackclient/tests/unit/volume/v2/test_volume.py +21 -87
  279. openstackclient/tests/unit/volume/v2/test_volume_backup.py +10 -368
  280. openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +1 -1
  281. openstackclient/tests/unit/volume/v2/test_volume_transfer_request.py +0 -44
  282. openstackclient/tests/unit/volume/v2/test_volume_type.py +6 -87
  283. openstackclient/tests/unit/volume/v3/fakes.py +505 -22
  284. openstackclient/tests/unit/volume/v3/test_block_storage_cleanup.py +2 -3
  285. openstackclient/tests/unit/volume/v3/test_block_storage_cluster.py +10 -11
  286. openstackclient/tests/unit/volume/v3/test_block_storage_log_level.py +10 -6
  287. openstackclient/tests/unit/volume/v3/test_block_storage_manage.py +25 -17
  288. openstackclient/tests/unit/volume/v3/test_block_storage_resource_filter.py +6 -32
  289. openstackclient/tests/unit/volume/v3/test_service.py +271 -0
  290. openstackclient/tests/unit/volume/v3/test_volume.py +2177 -33
  291. openstackclient/tests/unit/volume/v3/test_volume_attachment.py +48 -52
  292. openstackclient/tests/unit/volume/v3/test_volume_backup.py +892 -0
  293. openstackclient/tests/unit/volume/v3/test_volume_group.py +19 -20
  294. openstackclient/tests/unit/volume/v3/test_volume_group_snapshot.py +14 -34
  295. openstackclient/tests/unit/volume/v3/test_volume_group_type.py +13 -16
  296. openstackclient/tests/unit/volume/v3/test_volume_message.py +10 -11
  297. openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +161 -0
  298. openstackclient/tests/unit/volume/v3/test_volume_transfer_request.py +425 -0
  299. openstackclient/tests/unit/volume/v3/test_volume_type.py +1109 -0
  300. openstackclient/volume/v1/qos_specs.py +7 -7
  301. openstackclient/volume/v1/service.py +2 -2
  302. openstackclient/volume/v1/volume.py +12 -12
  303. openstackclient/volume/v1/volume_backup.py +7 -7
  304. openstackclient/volume/v1/volume_snapshot.py +8 -8
  305. openstackclient/volume/v1/volume_transfer_request.py +5 -5
  306. openstackclient/volume/v1/volume_type.py +7 -7
  307. openstackclient/volume/v2/backup_record.py +2 -2
  308. openstackclient/volume/v2/consistency_group.py +7 -9
  309. openstackclient/volume/v2/consistency_group_snapshot.py +4 -12
  310. openstackclient/volume/v2/qos_specs.py +7 -7
  311. openstackclient/volume/v2/service.py +2 -2
  312. openstackclient/volume/v2/volume.py +80 -80
  313. openstackclient/volume/v2/volume_backend.py +2 -2
  314. openstackclient/volume/v2/volume_backup.py +9 -217
  315. openstackclient/volume/v2/volume_host.py +2 -2
  316. openstackclient/volume/v2/volume_snapshot.py +8 -8
  317. openstackclient/volume/v2/volume_transfer_request.py +5 -37
  318. openstackclient/volume/v2/volume_type.py +7 -89
  319. openstackclient/volume/v3/service.py +56 -0
  320. openstackclient/volume/v3/volume.py +971 -0
  321. openstackclient/volume/v3/volume_attachment.py +31 -29
  322. openstackclient/volume/v3/volume_backup.py +670 -0
  323. openstackclient/volume/v3/volume_message.py +1 -1
  324. openstackclient/volume/v3/volume_snapshot.py +97 -0
  325. openstackclient/volume/v3/volume_transfer_request.py +233 -0
  326. openstackclient/volume/v3/volume_type.py +967 -0
  327. {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.1.0.dist-info}/AUTHORS +6 -0
  328. {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.1.0.dist-info}/METADATA +4 -4
  329. python_openstackclient-7.1.0.dist-info/RECORD +503 -0
  330. {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.1.0.dist-info}/entry_points.txt +33 -27
  331. python_openstackclient-7.1.0.dist-info/pbr.json +1 -0
  332. python_openstackclient-6.6.1.dist-info/RECORD +0 -489
  333. python_openstackclient-6.6.1.dist-info/pbr.json +0 -1
  334. {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.1.0.dist-info}/LICENSE +0 -0
  335. {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.1.0.dist-info}/WHEEL +0 -0
  336. {python_openstackclient-6.6.1.dist-info → python_openstackclient-7.1.0.dist-info}/top_level.txt +0 -0
@@ -13,37 +13,58 @@
13
13
  # under the License.
14
14
  #
15
15
 
16
- import copy
17
- import json
16
+ import datetime
18
17
  from unittest import mock
18
+ from unittest.mock import call
19
19
 
20
20
  from osc_lib import exceptions
21
- from osc_lib import utils
22
21
 
22
+ from openstack import exceptions as sdk_exceptions
23
+ from openstack.identity.v3 import (
24
+ application_credential as _application_credential,
25
+ )
26
+ from openstack.identity.v3 import role as _role
27
+ from openstack.test import fakes as sdk_fakes
23
28
  from openstackclient.identity.v3 import application_credential
24
- from openstackclient.tests.unit import fakes
25
29
  from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
26
30
 
27
31
 
28
- class TestApplicationCredential(identity_fakes.TestIdentityv3):
29
- def setUp(self):
30
- super(TestApplicationCredential, self).setUp()
32
+ class TestApplicationCredentialCreate(identity_fakes.TestIdentityv3):
33
+ columns = (
34
+ 'id',
35
+ 'name',
36
+ 'description',
37
+ 'project_id',
38
+ 'roles',
39
+ 'unrestricted',
40
+ 'access_rules',
41
+ 'expires_at',
42
+ 'secret',
43
+ )
31
44
 
32
- identity_manager = self.app.client_manager.identity
33
- self.app_creds_mock = identity_manager.application_credentials
34
- self.app_creds_mock.reset_mock()
35
- self.roles_mock = identity_manager.roles
36
- self.roles_mock.reset_mock()
45
+ def setUp(self):
46
+ super().setUp()
37
47
 
48
+ self.roles = sdk_fakes.generate_fake_resource(_role.Role)
49
+ self.application_credential = sdk_fakes.generate_fake_resource(
50
+ resource_type=_application_credential.ApplicationCredential,
51
+ roles=[],
52
+ )
38
53
 
39
- class TestApplicationCredentialCreate(TestApplicationCredential):
40
- def setUp(self):
41
- super(TestApplicationCredentialCreate, self).setUp()
54
+ self.datalist = (
55
+ self.application_credential.id,
56
+ self.application_credential.name,
57
+ self.application_credential.description,
58
+ self.application_credential.project_id,
59
+ self.application_credential.roles,
60
+ self.application_credential.unrestricted,
61
+ self.application_credential.access_rules,
62
+ self.application_credential.expires_at,
63
+ self.application_credential.secret,
64
+ )
42
65
 
43
- self.roles_mock.get.return_value = fakes.FakeResource(
44
- None,
45
- copy.deepcopy(identity_fakes.ROLE),
46
- loaded=True,
66
+ self.identity_sdk_client.create_application_credential.return_value = (
67
+ self.application_credential
47
68
  )
48
69
 
49
70
  # Get the command object to test
@@ -52,17 +73,14 @@ class TestApplicationCredentialCreate(TestApplicationCredential):
52
73
  )
53
74
 
54
75
  def test_application_credential_create_basic(self):
55
- self.app_creds_mock.create.return_value = fakes.FakeResource(
56
- None,
57
- copy.deepcopy(identity_fakes.APP_CRED_BASIC),
58
- loaded=True,
59
- )
60
-
61
- name = identity_fakes.app_cred_name
76
+ name = self.application_credential.name
62
77
  arglist = [name]
63
- verifylist = [('name', identity_fakes.app_cred_name)]
78
+ verifylist = [('name', self.application_credential.name)]
64
79
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
65
80
 
81
+ conn = self.app.client_manager.sdk_connection
82
+ user_id = conn.config.get_auth().get_user_id(conn.identity)
83
+
66
84
  # In base command class ShowOne in cliff, abstract method take_action()
67
85
  # returns a two-part tuple with a tuple of column names and a tuple of
68
86
  # data to be shown.
@@ -70,68 +88,45 @@ class TestApplicationCredentialCreate(TestApplicationCredential):
70
88
 
71
89
  # Set expected values
72
90
  kwargs = {
73
- 'secret': None,
74
91
  'roles': [],
75
92
  'expires_at': None,
76
93
  'description': None,
94
+ 'secret': None,
77
95
  'unrestricted': False,
78
- 'access_rules': None,
96
+ 'access_rules': [],
79
97
  }
80
- self.app_creds_mock.create.assert_called_with(name, **kwargs)
81
-
82
- collist = (
83
- 'access_rules',
84
- 'description',
85
- 'expires_at',
86
- 'id',
87
- 'name',
88
- 'project_id',
89
- 'roles',
90
- 'secret',
91
- 'unrestricted',
92
- )
93
- self.assertEqual(collist, columns)
94
- datalist = (
95
- None,
96
- None,
97
- None,
98
- identity_fakes.app_cred_id,
99
- identity_fakes.app_cred_name,
100
- identity_fakes.project_id,
101
- identity_fakes.role_name,
102
- identity_fakes.app_cred_secret,
103
- False,
98
+ self.identity_sdk_client.create_application_credential.assert_called_with(
99
+ user_id, name, **kwargs
104
100
  )
105
- self.assertEqual(datalist, data)
106
101
 
107
- def test_application_credential_create_with_options(self):
108
- name = identity_fakes.app_cred_name
109
- self.app_creds_mock.create.return_value = fakes.FakeResource(
110
- None,
111
- copy.deepcopy(identity_fakes.APP_CRED_OPTIONS),
112
- loaded=True,
113
- )
102
+ self.assertEqual(self.columns, columns)
103
+ self.assertEqual(self.datalist, data)
114
104
 
105
+ def test_application_credential_create_with_options(self):
106
+ name = self.application_credential.name
115
107
  arglist = [
116
108
  name,
117
109
  '--secret',
118
110
  'moresecuresecret',
119
111
  '--role',
120
- identity_fakes.role_id,
112
+ self.roles.id,
121
113
  '--expiration',
122
- identity_fakes.app_cred_expires_str,
114
+ '2024-01-01T00:00:00',
123
115
  '--description',
124
116
  'credential for testing',
125
117
  ]
126
118
  verifylist = [
127
- ('name', identity_fakes.app_cred_name),
119
+ ('name', self.application_credential.name),
128
120
  ('secret', 'moresecuresecret'),
129
- ('role', [identity_fakes.role_id]),
130
- ('expiration', identity_fakes.app_cred_expires_str),
121
+ ('role', [self.roles.id]),
122
+ ('expiration', '2024-01-01T00:00:00'),
131
123
  ('description', 'credential for testing'),
132
124
  ]
133
125
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
134
126
 
127
+ conn = self.app.client_manager.sdk_connection
128
+ user_id = conn.config.get_auth().get_user_id(conn.identity)
129
+
135
130
  # In base command class ShowOne in cliff, abstract method take_action()
136
131
  # returns a two-part tuple with a tuple of column names and a tuple of
137
132
  # data to be shown.
@@ -139,172 +134,119 @@ class TestApplicationCredentialCreate(TestApplicationCredential):
139
134
 
140
135
  # Set expected values
141
136
  kwargs = {
142
- 'secret': 'moresecuresecret',
143
- 'roles': [identity_fakes.role_id],
144
- 'expires_at': identity_fakes.app_cred_expires,
137
+ 'roles': [{'id': self.roles.id}],
138
+ 'expires_at': datetime.datetime(2024, 1, 1, 0, 0),
145
139
  'description': 'credential for testing',
140
+ 'secret': 'moresecuresecret',
146
141
  'unrestricted': False,
147
- 'access_rules': None,
142
+ 'access_rules': [],
148
143
  }
149
- self.app_creds_mock.create.assert_called_with(name, **kwargs)
150
-
151
- collist = (
152
- 'access_rules',
153
- 'description',
154
- 'expires_at',
155
- 'id',
156
- 'name',
157
- 'project_id',
158
- 'roles',
159
- 'secret',
160
- 'unrestricted',
144
+ self.identity_sdk_client.create_application_credential.assert_called_with(
145
+ user_id, name, **kwargs
161
146
  )
162
- self.assertEqual(collist, columns)
163
- datalist = (
164
- None,
165
- identity_fakes.app_cred_description,
166
- identity_fakes.app_cred_expires_str,
167
- identity_fakes.app_cred_id,
168
- identity_fakes.app_cred_name,
169
- identity_fakes.project_id,
170
- identity_fakes.role_name,
171
- identity_fakes.app_cred_secret,
172
- False,
173
- )
174
- self.assertEqual(datalist, data)
147
+
148
+ self.assertEqual(self.columns, columns)
149
+ self.assertEqual(self.datalist, data)
175
150
 
176
151
  def test_application_credential_create_with_access_rules_string(self):
177
- name = identity_fakes.app_cred_name
178
- self.app_creds_mock.create.return_value = fakes.FakeResource(
179
- None,
180
- copy.deepcopy(identity_fakes.APP_CRED_ACCESS_RULES),
181
- loaded=True,
182
- )
152
+ name = self.application_credential.name
183
153
 
184
154
  arglist = [
185
155
  name,
186
156
  '--access-rules',
187
- identity_fakes.app_cred_access_rules,
157
+ '[{"path": "/v2.1/servers", "method": "GET", "service": "compute"}]',
188
158
  ]
189
159
  verifylist = [
190
- ('name', identity_fakes.app_cred_name),
191
- ('access_rules', identity_fakes.app_cred_access_rules),
160
+ ('name', self.application_credential.name),
161
+ (
162
+ 'access_rules',
163
+ '[{"path": "/v2.1/servers", "method": "GET", "service": "compute"}]',
164
+ ),
192
165
  ]
193
166
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
194
167
 
168
+ conn = self.app.client_manager.sdk_connection
169
+ user_id = conn.config.get_auth().get_user_id(conn.identity)
170
+
195
171
  columns, data = self.cmd.take_action(parsed_args)
196
172
 
197
173
  # Set expected values
198
174
  kwargs = {
199
- 'secret': None,
200
175
  'roles': [],
201
176
  'expires_at': None,
202
177
  'description': None,
178
+ 'secret': None,
203
179
  'unrestricted': False,
204
- 'access_rules': json.loads(identity_fakes.app_cred_access_rules),
180
+ 'access_rules': [
181
+ {
182
+ "path": "/v2.1/servers",
183
+ "method": "GET",
184
+ "service": "compute",
185
+ }
186
+ ],
205
187
  }
206
- self.app_creds_mock.create.assert_called_with(name, **kwargs)
207
-
208
- collist = (
209
- 'access_rules',
210
- 'description',
211
- 'expires_at',
212
- 'id',
213
- 'name',
214
- 'project_id',
215
- 'roles',
216
- 'secret',
217
- 'unrestricted',
218
- )
219
- self.assertEqual(collist, columns)
220
- datalist = (
221
- identity_fakes.app_cred_access_rules,
222
- None,
223
- None,
224
- identity_fakes.app_cred_id,
225
- identity_fakes.app_cred_name,
226
- identity_fakes.project_id,
227
- identity_fakes.role_name,
228
- identity_fakes.app_cred_secret,
229
- False,
188
+ self.identity_sdk_client.create_application_credential.assert_called_with(
189
+ user_id, name, **kwargs
230
190
  )
231
- self.assertEqual(datalist, data)
191
+
192
+ self.assertEqual(self.columns, columns)
193
+ self.assertEqual(self.datalist, data)
232
194
 
233
195
  @mock.patch('openstackclient.identity.v3.application_credential.json.load')
234
196
  @mock.patch('openstackclient.identity.v3.application_credential.open')
235
197
  def test_application_credential_create_with_access_rules_file(
236
198
  self, _, mock_json_load
237
199
  ):
238
- mock_json_load.return_value = identity_fakes.app_cred_access_rules
239
-
240
- name = identity_fakes.app_cred_name
241
- self.app_creds_mock.create.return_value = fakes.FakeResource(
242
- None,
243
- copy.deepcopy(identity_fakes.APP_CRED_ACCESS_RULES),
244
- loaded=True,
245
- )
200
+ mock_json_load.return_value = '/tmp/access_rules.json'
201
+ name = self.application_credential.name
246
202
 
247
203
  arglist = [
248
204
  name,
249
205
  '--access-rules',
250
- identity_fakes.app_cred_access_rules_path,
206
+ '/tmp/access_rules.json',
251
207
  ]
252
208
  verifylist = [
253
- ('name', identity_fakes.app_cred_name),
254
- ('access_rules', identity_fakes.app_cred_access_rules_path),
209
+ ('name', self.application_credential.name),
210
+ ('access_rules', '/tmp/access_rules.json'),
255
211
  ]
256
212
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
257
213
 
214
+ conn = self.app.client_manager.sdk_connection
215
+ user_id = conn.config.get_auth().get_user_id(conn.identity)
216
+
258
217
  columns, data = self.cmd.take_action(parsed_args)
259
218
 
260
219
  # Set expected values
261
220
  kwargs = {
262
- 'secret': None,
263
221
  'roles': [],
264
222
  'expires_at': None,
265
223
  'description': None,
224
+ 'secret': None,
266
225
  'unrestricted': False,
267
- 'access_rules': identity_fakes.app_cred_access_rules,
226
+ 'access_rules': '/tmp/access_rules.json',
268
227
  }
269
- self.app_creds_mock.create.assert_called_with(name, **kwargs)
270
-
271
- collist = (
272
- 'access_rules',
273
- 'description',
274
- 'expires_at',
275
- 'id',
276
- 'name',
277
- 'project_id',
278
- 'roles',
279
- 'secret',
280
- 'unrestricted',
281
- )
282
- self.assertEqual(collist, columns)
283
- datalist = (
284
- identity_fakes.app_cred_access_rules,
285
- None,
286
- None,
287
- identity_fakes.app_cred_id,
288
- identity_fakes.app_cred_name,
289
- identity_fakes.project_id,
290
- identity_fakes.role_name,
291
- identity_fakes.app_cred_secret,
292
- False,
228
+ self.identity_sdk_client.create_application_credential.assert_called_with(
229
+ user_id, name, **kwargs
293
230
  )
294
- self.assertEqual(datalist, data)
231
+
232
+ self.assertEqual(self.columns, columns)
233
+ self.assertEqual(self.datalist, data)
295
234
 
296
235
 
297
- class TestApplicationCredentialDelete(TestApplicationCredential):
236
+ class TestApplicationCredentialDelete(identity_fakes.TestIdentityv3):
298
237
  def setUp(self):
299
- super(TestApplicationCredentialDelete, self).setUp()
238
+ super().setUp()
300
239
 
301
- # This is the return value for utils.find_resource()
302
- self.app_creds_mock.get.return_value = fakes.FakeResource(
303
- None,
304
- copy.deepcopy(identity_fakes.APP_CRED_BASIC),
305
- loaded=True,
240
+ self.application_credential = sdk_fakes.generate_fake_resource(
241
+ resource_type=_application_credential.ApplicationCredential,
242
+ roles=[],
243
+ )
244
+ self.identity_sdk_client.find_application_credential.return_value = (
245
+ self.application_credential
246
+ )
247
+ self.identity_sdk_client.delete_application_credential.return_value = (
248
+ None
306
249
  )
307
- self.app_creds_mock.delete.return_value = None
308
250
 
309
251
  # Get the command object to test
310
252
  self.cmd = application_credential.DeleteApplicationCredential(
@@ -313,26 +255,31 @@ class TestApplicationCredentialDelete(TestApplicationCredential):
313
255
 
314
256
  def test_application_credential_delete(self):
315
257
  arglist = [
316
- identity_fakes.app_cred_id,
258
+ self.application_credential.id,
259
+ ]
260
+ verifylist = [
261
+ ('application_credential', [self.application_credential.id])
317
262
  ]
318
- verifylist = [('application_credential', [identity_fakes.app_cred_id])]
319
263
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
320
264
 
265
+ conn = self.app.client_manager.sdk_connection
266
+ user_id = conn.config.get_auth().get_user_id(conn.identity)
267
+
321
268
  result = self.cmd.take_action(parsed_args)
322
269
 
323
- self.app_creds_mock.delete.assert_called_with(
324
- identity_fakes.app_cred_id,
270
+ self.identity_sdk_client.delete_application_credential.assert_called_with(
271
+ user_id,
272
+ self.application_credential.id,
325
273
  )
326
274
  self.assertIsNone(result)
327
275
 
328
- @mock.patch.object(utils, 'find_resource')
329
- def test_delete_multi_app_creds_with_exception(self, find_mock):
330
- find_mock.side_effect = [
331
- self.app_creds_mock.get.return_value,
332
- exceptions.CommandError,
276
+ def test_delete_multi_app_creds_with_exception(self):
277
+ self.identity_sdk_client.find_application_credential.side_effect = [
278
+ self.application_credential,
279
+ sdk_exceptions.NotFoundException,
333
280
  ]
334
281
  arglist = [
335
- identity_fakes.app_cred_id,
282
+ self.application_credential.id,
336
283
  'nonexistent_app_cred',
337
284
  ]
338
285
  verifylist = [
@@ -340,6 +287,9 @@ class TestApplicationCredentialDelete(TestApplicationCredential):
340
287
  ]
341
288
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
342
289
 
290
+ conn = self.app.client_manager.sdk_connection
291
+ user_id = conn.config.get_auth().get_user_id(conn.identity)
292
+
343
293
  try:
344
294
  self.cmd.take_action(parsed_args)
345
295
  self.fail('CommandError should be raised.')
@@ -348,27 +298,32 @@ class TestApplicationCredentialDelete(TestApplicationCredential):
348
298
  '1 of 2 application credentials failed to' ' delete.', str(e)
349
299
  )
350
300
 
351
- find_mock.assert_any_call(
352
- self.app_creds_mock, identity_fakes.app_cred_id
301
+ calls = []
302
+ for a in arglist:
303
+ calls.append(call(user_id, a))
304
+
305
+ self.identity_sdk_client.find_application_credential.assert_has_calls(
306
+ calls
353
307
  )
354
- find_mock.assert_any_call(self.app_creds_mock, 'nonexistent_app_cred')
355
308
 
356
- self.assertEqual(2, find_mock.call_count)
357
- self.app_creds_mock.delete.assert_called_once_with(
358
- identity_fakes.app_cred_id
309
+ self.assertEqual(
310
+ 2, self.identity_sdk_client.find_application_credential.call_count
311
+ )
312
+ self.identity_sdk_client.delete_application_credential.assert_called_once_with(
313
+ user_id, self.application_credential.id
359
314
  )
360
315
 
361
316
 
362
- class TestApplicationCredentialList(TestApplicationCredential):
317
+ class TestApplicationCredentialList(identity_fakes.TestIdentityv3):
363
318
  def setUp(self):
364
- super(TestApplicationCredentialList, self).setUp()
319
+ super().setUp()
365
320
 
366
- self.app_creds_mock.list.return_value = [
367
- fakes.FakeResource(
368
- None,
369
- copy.deepcopy(identity_fakes.APP_CRED_BASIC),
370
- loaded=True,
371
- ),
321
+ self.application_credential = sdk_fakes.generate_fake_resource(
322
+ resource_type=_application_credential.ApplicationCredential,
323
+ roles=[],
324
+ )
325
+ self.identity_sdk_client.application_credentials.return_value = [
326
+ self.application_credential
372
327
  ]
373
328
 
374
329
  # Get the command object to test
@@ -381,35 +336,54 @@ class TestApplicationCredentialList(TestApplicationCredential):
381
336
  verifylist = []
382
337
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
383
338
 
339
+ conn = self.app.client_manager.sdk_connection
340
+ user_id = conn.config.get_auth().get_user_id(conn.identity)
341
+
384
342
  # In base command class Lister in cliff, abstract method take_action()
385
343
  # returns a tuple containing the column names and an iterable
386
344
  # containing the data to be listed.
387
345
  columns, data = self.cmd.take_action(parsed_args)
388
346
 
389
- self.app_creds_mock.list.assert_called_with(user=None)
347
+ self.identity_sdk_client.application_credentials.assert_called_with(
348
+ user=user_id
349
+ )
390
350
 
391
- collist = ('ID', 'Name', 'Project ID', 'Description', 'Expires At')
351
+ collist = (
352
+ 'ID',
353
+ 'Name',
354
+ 'Description',
355
+ 'Project ID',
356
+ 'Roles',
357
+ 'Unrestricted',
358
+ 'Access Rules',
359
+ 'Expires At',
360
+ )
392
361
  self.assertEqual(collist, columns)
393
362
  datalist = (
394
363
  (
395
- identity_fakes.app_cred_id,
396
- identity_fakes.app_cred_name,
397
- identity_fakes.project_id,
398
- None,
399
- None,
364
+ self.application_credential.id,
365
+ self.application_credential.name,
366
+ self.application_credential.description,
367
+ self.application_credential.project_id,
368
+ self.application_credential.roles,
369
+ self.application_credential.unrestricted,
370
+ self.application_credential.access_rules,
371
+ self.application_credential.expires_at,
400
372
  ),
401
373
  )
402
374
  self.assertEqual(datalist, tuple(data))
403
375
 
404
376
 
405
- class TestApplicationCredentialShow(TestApplicationCredential):
377
+ class TestApplicationCredentialShow(identity_fakes.TestIdentityv3):
406
378
  def setUp(self):
407
- super(TestApplicationCredentialShow, self).setUp()
379
+ super().setUp()
408
380
 
409
- self.app_creds_mock.get.return_value = fakes.FakeResource(
410
- None,
411
- copy.deepcopy(identity_fakes.APP_CRED_BASIC),
412
- loaded=True,
381
+ self.application_credential = sdk_fakes.generate_fake_resource(
382
+ resource_type=_application_credential.ApplicationCredential,
383
+ roles=[],
384
+ )
385
+ self.identity_sdk_client.find_application_credential.return_value = (
386
+ self.application_credential
413
387
  )
414
388
 
415
389
  # Get the command object to test
@@ -419,41 +393,44 @@ class TestApplicationCredentialShow(TestApplicationCredential):
419
393
 
420
394
  def test_application_credential_show(self):
421
395
  arglist = [
422
- identity_fakes.app_cred_id,
396
+ self.application_credential.id,
423
397
  ]
424
398
  verifylist = [
425
- ('application_credential', identity_fakes.app_cred_id),
399
+ ('application_credential', self.application_credential.id),
426
400
  ]
427
401
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
428
402
 
403
+ conn = self.app.client_manager.sdk_connection
404
+ user_id = conn.config.get_auth().get_user_id(conn.identity)
405
+
429
406
  # In base command class ShowOne in cliff, abstract method take_action()
430
407
  # returns a two-part tuple with a tuple of column names and a tuple of
431
408
  # data to be shown.
432
409
  columns, data = self.cmd.take_action(parsed_args)
433
410
 
434
- self.app_creds_mock.get.assert_called_with(identity_fakes.app_cred_id)
411
+ self.identity_sdk_client.find_application_credential.assert_called_with(
412
+ user_id, self.application_credential.id
413
+ )
435
414
 
436
415
  collist = (
437
- 'access_rules',
438
- 'description',
439
- 'expires_at',
440
416
  'id',
441
417
  'name',
418
+ 'description',
442
419
  'project_id',
443
420
  'roles',
444
- 'secret',
445
421
  'unrestricted',
422
+ 'access_rules',
423
+ 'expires_at',
446
424
  )
447
425
  self.assertEqual(collist, columns)
448
426
  datalist = (
449
- None,
450
- None,
451
- None,
452
- identity_fakes.app_cred_id,
453
- identity_fakes.app_cred_name,
454
- identity_fakes.project_id,
455
- identity_fakes.role_name,
456
- identity_fakes.app_cred_secret,
457
- False,
427
+ self.application_credential.id,
428
+ self.application_credential.name,
429
+ self.application_credential.description,
430
+ self.application_credential.project_id,
431
+ self.application_credential.roles,
432
+ self.application_credential.unrestricted,
433
+ self.application_credential.access_rules,
434
+ self.application_credential.expires_at,
458
435
  )
459
436
  self.assertEqual(datalist, data)
@@ -47,7 +47,7 @@ class TestCatalog(utils.TestCommand):
47
47
  }
48
48
 
49
49
  def setUp(self):
50
- super(TestCatalog, self).setUp()
50
+ super().setUp()
51
51
 
52
52
  self.sc_mock = mock.Mock()
53
53
  self.sc_mock.service_catalog.catalog.return_value = [
@@ -62,7 +62,7 @@ class TestCatalog(utils.TestCommand):
62
62
 
63
63
  class TestCatalogList(TestCatalog):
64
64
  def setUp(self):
65
- super(TestCatalogList, self).setUp()
65
+ super().setUp()
66
66
 
67
67
  # Get the command object to test
68
68
  self.cmd = catalog.ListCatalog(self.app, None)
@@ -100,7 +100,7 @@ class TestCatalogList(TestCatalog):
100
100
 
101
101
  class TestCatalogShow(TestCatalog):
102
102
  def setUp(self):
103
- super(TestCatalogShow, self).setUp()
103
+ super().setUp()
104
104
 
105
105
  # Get the command object to test
106
106
  self.cmd = catalog.ShowCatalog(self.app, None)