python-openstackclient 7.4.0__py3-none-any.whl → 8.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 (264) hide show
  1. openstackclient/common/availability_zone.py +3 -6
  2. openstackclient/common/clientmanager.py +2 -1
  3. openstackclient/common/envvars.py +57 -0
  4. openstackclient/common/extension.py +3 -11
  5. openstackclient/common/limits.py +1 -1
  6. openstackclient/common/project_cleanup.py +3 -2
  7. openstackclient/common/quota.py +54 -28
  8. openstackclient/compute/client.py +7 -5
  9. openstackclient/compute/v2/agent.py +5 -5
  10. openstackclient/compute/v2/aggregate.py +17 -15
  11. openstackclient/compute/v2/console.py +10 -4
  12. openstackclient/compute/v2/console_connection.py +48 -0
  13. openstackclient/compute/v2/flavor.py +14 -18
  14. openstackclient/compute/v2/host.py +3 -3
  15. openstackclient/compute/v2/hypervisor.py +10 -4
  16. openstackclient/compute/v2/hypervisor_stats.py +1 -1
  17. openstackclient/compute/v2/keypair.py +18 -13
  18. openstackclient/compute/v2/server.py +144 -121
  19. openstackclient/compute/v2/server_backup.py +1 -1
  20. openstackclient/compute/v2/server_event.py +8 -17
  21. openstackclient/compute/v2/server_group.py +6 -6
  22. openstackclient/compute/v2/server_image.py +1 -1
  23. openstackclient/compute/v2/server_migration.py +6 -6
  24. openstackclient/compute/v2/server_volume.py +4 -4
  25. openstackclient/compute/v2/service.py +9 -13
  26. openstackclient/compute/v2/usage.py +4 -6
  27. openstackclient/identity/client.py +2 -4
  28. openstackclient/identity/common.py +95 -17
  29. openstackclient/identity/v2_0/ec2creds.py +4 -3
  30. openstackclient/identity/v2_0/endpoint.py +12 -10
  31. openstackclient/identity/v2_0/project.py +6 -6
  32. openstackclient/identity/v2_0/role.py +1 -1
  33. openstackclient/identity/v2_0/service.py +7 -7
  34. openstackclient/identity/v2_0/user.py +6 -21
  35. openstackclient/identity/v3/access_rule.py +2 -5
  36. openstackclient/identity/v3/application_credential.py +2 -2
  37. openstackclient/identity/v3/consumer.py +4 -3
  38. openstackclient/identity/v3/credential.py +6 -7
  39. openstackclient/identity/v3/domain.py +63 -44
  40. openstackclient/identity/v3/ec2creds.py +4 -3
  41. openstackclient/identity/v3/endpoint.py +104 -88
  42. openstackclient/identity/v3/endpoint_group.py +1 -1
  43. openstackclient/identity/v3/group.py +116 -72
  44. openstackclient/identity/v3/identity_provider.py +1 -2
  45. openstackclient/identity/v3/limit.py +4 -9
  46. openstackclient/identity/v3/mapping.py +4 -3
  47. openstackclient/identity/v3/policy.py +5 -8
  48. openstackclient/identity/v3/project.py +23 -6
  49. openstackclient/identity/v3/region.py +2 -5
  50. openstackclient/identity/v3/registered_limit.py +4 -8
  51. openstackclient/identity/v3/role.py +15 -16
  52. openstackclient/identity/v3/service.py +8 -8
  53. openstackclient/identity/v3/service_provider.py +3 -6
  54. openstackclient/identity/v3/tag.py +2 -2
  55. openstackclient/identity/v3/token.py +1 -2
  56. openstackclient/identity/v3/trust.py +74 -25
  57. openstackclient/identity/v3/user.py +47 -11
  58. openstackclient/image/client.py +7 -5
  59. openstackclient/image/v1/image.py +11 -15
  60. openstackclient/image/v2/cache.py +2 -4
  61. openstackclient/image/v2/image.py +41 -48
  62. openstackclient/image/v2/metadef_namespaces.py +4 -3
  63. openstackclient/image/v2/metadef_resource_type_association.py +1 -2
  64. openstackclient/image/v2/metadef_resource_types.py +1 -2
  65. openstackclient/locale/tr_TR/LC_MESSAGES/openstackclient.po +9 -1370
  66. openstackclient/network/client.py +4 -16
  67. openstackclient/network/common.py +16 -12
  68. openstackclient/network/utils.py +3 -3
  69. openstackclient/network/v2/address_group.py +5 -9
  70. openstackclient/network/v2/address_scope.py +2 -3
  71. openstackclient/network/v2/default_security_group_rule.py +1 -2
  72. openstackclient/network/v2/floating_ip.py +69 -47
  73. openstackclient/network/v2/floating_ip_port_forwarding.py +7 -7
  74. openstackclient/network/v2/ip_availability.py +1 -2
  75. openstackclient/network/v2/l3_conntrack_helper.py +8 -12
  76. openstackclient/network/v2/local_ip.py +24 -26
  77. openstackclient/network/v2/local_ip_association.py +4 -5
  78. openstackclient/network/v2/ndp_proxy.py +9 -10
  79. openstackclient/network/v2/network.py +12 -16
  80. openstackclient/network/v2/network_agent.py +29 -37
  81. openstackclient/network/v2/network_auto_allocated_topology.py +4 -5
  82. openstackclient/network/v2/network_flavor.py +1 -1
  83. openstackclient/network/v2/network_flavor_profile.py +5 -5
  84. openstackclient/network/v2/network_meter.py +3 -3
  85. openstackclient/network/v2/network_meter_rule.py +5 -8
  86. openstackclient/network/v2/network_qos_policy.py +4 -4
  87. openstackclient/network/v2/network_qos_rule.py +7 -16
  88. openstackclient/network/v2/network_rbac.py +4 -4
  89. openstackclient/network/v2/network_segment.py +6 -7
  90. openstackclient/network/v2/network_segment_range.py +16 -20
  91. openstackclient/network/v2/network_trunk.py +24 -16
  92. openstackclient/network/v2/port.py +28 -29
  93. openstackclient/network/v2/router.py +53 -42
  94. openstackclient/network/v2/security_group.py +13 -19
  95. openstackclient/network/v2/security_group_rule.py +10 -11
  96. openstackclient/network/v2/subnet.py +31 -30
  97. openstackclient/network/v2/subnet_pool.py +4 -4
  98. openstackclient/object/client.py +2 -3
  99. openstackclient/object/v1/container.py +2 -3
  100. openstackclient/object/v1/object.py +2 -9
  101. openstackclient/shell.py +22 -5
  102. openstackclient/tests/functional/base.py +7 -3
  103. openstackclient/tests/functional/common/test_quota.py +3 -1
  104. openstackclient/tests/functional/compute/v2/common.py +12 -6
  105. openstackclient/tests/functional/compute/v2/test_keypair.py +41 -5
  106. openstackclient/tests/functional/compute/v2/test_server.py +2 -3
  107. openstackclient/tests/functional/compute/v2/test_server_event.py +1 -1
  108. openstackclient/tests/functional/identity/v2/test_user.py +1 -1
  109. openstackclient/tests/functional/identity/v3/common.py +3 -8
  110. openstackclient/tests/functional/identity/v3/test_application_credential.py +10 -10
  111. openstackclient/tests/functional/identity/v3/test_endpoint.py +3 -3
  112. openstackclient/tests/functional/identity/v3/test_group.py +3 -3
  113. openstackclient/tests/functional/identity/v3/test_idp.py +3 -7
  114. openstackclient/tests/functional/identity/v3/test_limit.py +4 -4
  115. openstackclient/tests/functional/identity/v3/test_project.py +5 -14
  116. openstackclient/tests/functional/identity/v3/test_region.py +1 -3
  117. openstackclient/tests/functional/identity/v3/test_registered_limit.py +3 -3
  118. openstackclient/tests/functional/identity/v3/test_role.py +1 -1
  119. openstackclient/tests/functional/identity/v3/test_role_assignment.py +13 -31
  120. openstackclient/tests/functional/identity/v3/test_service_provider.py +3 -7
  121. openstackclient/tests/functional/identity/v3/test_user.py +8 -8
  122. openstackclient/tests/functional/network/v2/common.py +7 -3
  123. openstackclient/tests/functional/network/v2/test_address_group.py +4 -0
  124. openstackclient/tests/functional/network/v2/test_l3_conntrack_helper.py +15 -11
  125. openstackclient/tests/functional/network/v2/test_local_ip.py +4 -0
  126. openstackclient/tests/functional/network/v2/test_network_meter_rule.py +2 -2
  127. openstackclient/tests/functional/network/v2/test_network_ndp_proxy.py +2 -3
  128. openstackclient/tests/functional/network/v2/test_network_rbac.py +2 -2
  129. openstackclient/tests/functional/network/v2/test_network_trunk.py +1 -1
  130. openstackclient/tests/functional/network/v2/test_port.py +17 -7
  131. openstackclient/tests/functional/network/v2/test_router.py +42 -0
  132. openstackclient/tests/functional/network/v2/test_subnet_pool.py +4 -0
  133. openstackclient/tests/unit/api/test_compute_v2.py +67 -87
  134. openstackclient/tests/unit/common/test_availability_zone.py +6 -14
  135. openstackclient/tests/unit/common/test_command.py +1 -1
  136. openstackclient/tests/unit/common/test_extension.py +5 -7
  137. openstackclient/tests/unit/common/test_limits.py +1 -1
  138. openstackclient/tests/unit/common/test_project_cleanup.py +5 -6
  139. openstackclient/tests/unit/common/test_quota.py +51 -28
  140. openstackclient/tests/unit/compute/v2/fakes.py +85 -315
  141. openstackclient/tests/unit/compute/v2/test_agent.py +16 -16
  142. openstackclient/tests/unit/compute/v2/test_aggregate.py +56 -60
  143. openstackclient/tests/unit/compute/v2/test_console.py +34 -17
  144. openstackclient/tests/unit/compute/v2/test_console_connection.py +72 -0
  145. openstackclient/tests/unit/compute/v2/test_flavor.py +72 -72
  146. openstackclient/tests/unit/compute/v2/test_host.py +8 -8
  147. openstackclient/tests/unit/compute/v2/test_hypervisor.py +22 -30
  148. openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +2 -2
  149. openstackclient/tests/unit/compute/v2/test_keypair.py +36 -29
  150. openstackclient/tests/unit/compute/v2/test_server.py +693 -606
  151. openstackclient/tests/unit/compute/v2/test_server_backup.py +36 -77
  152. openstackclient/tests/unit/compute/v2/test_server_event.py +18 -20
  153. openstackclient/tests/unit/compute/v2/test_server_group.py +25 -31
  154. openstackclient/tests/unit/compute/v2/test_server_image.py +37 -78
  155. openstackclient/tests/unit/compute/v2/test_server_migration.py +41 -41
  156. openstackclient/tests/unit/compute/v2/test_server_volume.py +12 -12
  157. openstackclient/tests/unit/compute/v2/test_service.py +39 -45
  158. openstackclient/tests/unit/compute/v2/test_usage.py +5 -5
  159. openstackclient/tests/unit/identity/v2_0/fakes.py +1 -1
  160. openstackclient/tests/unit/identity/v3/test_access_rule.py +1 -3
  161. openstackclient/tests/unit/identity/v3/test_application_credential.py +48 -26
  162. openstackclient/tests/unit/identity/v3/test_domain.py +115 -105
  163. openstackclient/tests/unit/identity/v3/test_endpoint.py +167 -172
  164. openstackclient/tests/unit/identity/v3/test_group.py +353 -202
  165. openstackclient/tests/unit/identity/v3/test_mappings.py +2 -2
  166. openstackclient/tests/unit/identity/v3/test_project.py +16 -0
  167. openstackclient/tests/unit/identity/v3/test_trust.py +5 -2
  168. openstackclient/tests/unit/identity/v3/test_user.py +102 -6
  169. openstackclient/tests/unit/image/v1/fakes.py +2 -2
  170. openstackclient/tests/unit/image/v1/test_image.py +8 -9
  171. openstackclient/tests/unit/image/v2/test_image.py +84 -46
  172. openstackclient/tests/unit/integ/cli/test_shell.py +1 -2
  173. openstackclient/tests/unit/network/test_common.py +2 -2
  174. openstackclient/tests/unit/network/v2/fakes.py +405 -485
  175. openstackclient/tests/unit/network/v2/test_floating_ip_compute.py +8 -14
  176. openstackclient/tests/unit/network/v2/test_floating_ip_network.py +62 -54
  177. openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py +1 -1
  178. openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +2 -2
  179. openstackclient/tests/unit/network/v2/test_ndp_proxy.py +1 -3
  180. openstackclient/tests/unit/network/v2/test_network.py +4 -4
  181. openstackclient/tests/unit/network/v2/test_network_agent.py +15 -29
  182. openstackclient/tests/unit/network/v2/test_network_compute.py +11 -11
  183. openstackclient/tests/unit/network/v2/test_network_qos_policy.py +16 -19
  184. openstackclient/tests/unit/network/v2/test_network_qos_rule.py +79 -152
  185. openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +4 -6
  186. openstackclient/tests/unit/network/v2/test_network_rbac.py +2 -2
  187. openstackclient/tests/unit/network/v2/test_network_trunk.py +2 -2
  188. openstackclient/tests/unit/network/v2/test_port.py +21 -22
  189. openstackclient/tests/unit/network/v2/test_router.py +130 -51
  190. openstackclient/tests/unit/network/v2/test_security_group_compute.py +11 -19
  191. openstackclient/tests/unit/network/v2/test_security_group_network.py +25 -27
  192. openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +15 -17
  193. openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +33 -39
  194. openstackclient/tests/unit/object/v1/test_object_all.py +4 -3
  195. openstackclient/tests/unit/test_shell.py +16 -13
  196. openstackclient/tests/unit/volume/v2/fakes.py +1 -2
  197. openstackclient/tests/unit/volume/v2/test_service.py +57 -91
  198. openstackclient/tests/unit/volume/v2/test_volume.py +109 -106
  199. openstackclient/tests/unit/volume/v2/test_volume_backup.py +141 -148
  200. openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +293 -283
  201. openstackclient/tests/unit/volume/v2/test_volume_transfer_request.py +1 -1
  202. openstackclient/tests/unit/volume/v3/fakes.py +2 -8
  203. openstackclient/tests/unit/volume/v3/test_block_storage_log_level.py +61 -71
  204. openstackclient/tests/unit/volume/v3/test_service.py +221 -141
  205. openstackclient/tests/unit/volume/v3/test_volume.py +131 -120
  206. openstackclient/tests/unit/volume/v3/test_volume_attachment.py +4 -4
  207. openstackclient/tests/unit/volume/v3/test_volume_backup.py +198 -203
  208. openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +683 -49
  209. openstackclient/tests/unit/volume/v3/test_volume_transfer_request.py +1 -1
  210. openstackclient/volume/client.py +1 -3
  211. openstackclient/volume/v2/consistency_group.py +4 -8
  212. openstackclient/volume/v2/consistency_group_snapshot.py +1 -2
  213. openstackclient/volume/v2/qos_specs.py +1 -2
  214. openstackclient/volume/v2/service.py +41 -38
  215. openstackclient/volume/v2/volume.py +71 -53
  216. openstackclient/volume/v2/volume_backup.py +15 -10
  217. openstackclient/volume/v2/volume_snapshot.py +129 -93
  218. openstackclient/volume/v2/volume_transfer_request.py +0 -3
  219. openstackclient/volume/v2/volume_type.py +10 -21
  220. openstackclient/volume/v3/block_storage_cluster.py +3 -3
  221. openstackclient/volume/v3/block_storage_log_level.py +22 -28
  222. openstackclient/volume/v3/block_storage_manage.py +1 -3
  223. openstackclient/volume/v3/service.py +105 -14
  224. openstackclient/volume/v3/volume.py +218 -58
  225. openstackclient/volume/v3/volume_attachment.py +3 -2
  226. openstackclient/volume/v3/volume_backup.py +31 -27
  227. openstackclient/volume/v3/volume_group.py +2 -1
  228. openstackclient/volume/v3/volume_group_snapshot.py +2 -1
  229. openstackclient/volume/v3/volume_snapshot.py +489 -13
  230. openstackclient/volume/v3/volume_type.py +10 -21
  231. {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/AUTHORS +11 -0
  232. python_openstackclient-8.1.0.dist-info/METADATA +264 -0
  233. {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/RECORD +238 -259
  234. {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/WHEEL +1 -1
  235. {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/entry_points.txt +7 -47
  236. python_openstackclient-8.1.0.dist-info/pbr.json +1 -0
  237. openstackclient/tests/functional/volume/v1/__init__.py +0 -0
  238. openstackclient/tests/functional/volume/v1/common.py +0 -35
  239. openstackclient/tests/functional/volume/v1/test_qos.py +0 -100
  240. openstackclient/tests/functional/volume/v1/test_service.py +0 -76
  241. openstackclient/tests/functional/volume/v1/test_snapshot.py +0 -232
  242. openstackclient/tests/functional/volume/v1/test_transfer_request.py +0 -111
  243. openstackclient/tests/functional/volume/v1/test_volume.py +0 -228
  244. openstackclient/tests/functional/volume/v1/test_volume_type.py +0 -213
  245. openstackclient/tests/unit/volume/v1/__init__.py +0 -0
  246. openstackclient/tests/unit/volume/v1/fakes.py +0 -615
  247. openstackclient/tests/unit/volume/v1/test_qos_specs.py +0 -471
  248. openstackclient/tests/unit/volume/v1/test_service.py +0 -295
  249. openstackclient/tests/unit/volume/v1/test_transfer_request.py +0 -380
  250. openstackclient/tests/unit/volume/v1/test_type.py +0 -633
  251. openstackclient/tests/unit/volume/v1/test_volume.py +0 -1447
  252. openstackclient/tests/unit/volume/v1/test_volume_backup.py +0 -435
  253. openstackclient/volume/v1/__init__.py +0 -0
  254. openstackclient/volume/v1/qos_specs.py +0 -377
  255. openstackclient/volume/v1/service.py +0 -136
  256. openstackclient/volume/v1/volume.py +0 -734
  257. openstackclient/volume/v1/volume_backup.py +0 -302
  258. openstackclient/volume/v1/volume_snapshot.py +0 -433
  259. openstackclient/volume/v1/volume_transfer_request.py +0 -200
  260. openstackclient/volume/v1/volume_type.py +0 -520
  261. python_openstackclient-7.4.0.dist-info/METADATA +0 -172
  262. python_openstackclient-7.4.0.dist-info/pbr.json +0 -1
  263. {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/LICENSE +0 -0
  264. {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/top_level.txt +0 -0
@@ -32,9 +32,7 @@ class TestHypervisorList(compute_fakes.TestComputev2):
32
32
  self.hypervisors = list(
33
33
  sdk_fakes.generate_fake_resources(_hypervisor.Hypervisor, count=2)
34
34
  )
35
- self.compute_sdk_client.hypervisors.return_value = iter(
36
- self.hypervisors
37
- )
35
+ self.compute_client.hypervisors.return_value = iter(self.hypervisors)
38
36
 
39
37
  self.columns = (
40
38
  "ID",
@@ -108,7 +106,7 @@ class TestHypervisorList(compute_fakes.TestComputev2):
108
106
  # containing the data to be listed.
109
107
  columns, data = self.cmd.take_action(parsed_args)
110
108
 
111
- self.compute_sdk_client.hypervisors.assert_called_with(details=True)
109
+ self.compute_client.hypervisors.assert_called_with(details=True)
112
110
  self.assertEqual(self.columns, columns)
113
111
  self.assertEqual(self.data, tuple(data))
114
112
 
@@ -123,9 +121,7 @@ class TestHypervisorList(compute_fakes.TestComputev2):
123
121
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
124
122
 
125
123
  # Fake the return value of search()
126
- self.compute_sdk_client.hypervisors.return_value = [
127
- self.hypervisors[0]
128
- ]
124
+ self.compute_client.hypervisors.return_value = [self.hypervisors[0]]
129
125
 
130
126
  self.data = (
131
127
  (
@@ -142,7 +138,7 @@ class TestHypervisorList(compute_fakes.TestComputev2):
142
138
  # containing the data to be listed.
143
139
  columns, data = self.cmd.take_action(parsed_args)
144
140
 
145
- self.compute_sdk_client.hypervisors.assert_called_with(
141
+ self.compute_client.hypervisors.assert_called_with(
146
142
  hypervisor_hostname_pattern=self.hypervisors[0].name, details=True
147
143
  )
148
144
  self.assertEqual(self.columns, columns)
@@ -159,9 +155,7 @@ class TestHypervisorList(compute_fakes.TestComputev2):
159
155
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
160
156
 
161
157
  # Fake exception raised from search()
162
- self.compute_sdk_client.hypervisors.side_effect = exceptions.NotFound(
163
- None
164
- )
158
+ self.compute_client.hypervisors.side_effect = exceptions.NotFound(None)
165
159
 
166
160
  self.assertRaises(
167
161
  exceptions.NotFound, self.cmd.take_action, parsed_args
@@ -205,7 +199,7 @@ class TestHypervisorList(compute_fakes.TestComputev2):
205
199
  # containing the data to be listed.
206
200
  columns, data = self.cmd.take_action(parsed_args)
207
201
 
208
- self.compute_sdk_client.hypervisors.assert_called_with(details=True)
202
+ self.compute_client.hypervisors.assert_called_with(details=True)
209
203
  self.assertEqual(self.columns_long, columns)
210
204
  self.assertEqual(self.data_long, tuple(data))
211
205
 
@@ -223,7 +217,7 @@ class TestHypervisorList(compute_fakes.TestComputev2):
223
217
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
224
218
  self.cmd.take_action(parsed_args)
225
219
 
226
- self.compute_sdk_client.hypervisors.assert_called_with(
220
+ self.compute_client.hypervisors.assert_called_with(
227
221
  limit=1, details=True
228
222
  )
229
223
 
@@ -261,7 +255,7 @@ class TestHypervisorList(compute_fakes.TestComputev2):
261
255
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
262
256
  self.cmd.take_action(parsed_args)
263
257
 
264
- self.compute_sdk_client.hypervisors.assert_called_with(
258
+ self.compute_client.hypervisors.assert_called_with(
265
259
  marker='test_hyp', details=True
266
260
  )
267
261
 
@@ -303,10 +297,10 @@ class TestHypervisorShow(compute_fakes.TestComputev2):
303
297
  cpu_info={"aaa": "aaa"},
304
298
  )
305
299
 
306
- self.compute_sdk_client.find_hypervisor.return_value = self.hypervisor
307
- self.compute_sdk_client.get_hypervisor.return_value = self.hypervisor
300
+ self.compute_client.find_hypervisor.return_value = self.hypervisor
301
+ self.compute_client.get_hypervisor.return_value = self.hypervisor
308
302
 
309
- self.compute_sdk_client.aggregates.return_value = []
303
+ self.compute_client.aggregates.return_value = []
310
304
 
311
305
  uptime_info = {
312
306
  'status': self.hypervisor.status,
@@ -315,9 +309,7 @@ class TestHypervisorShow(compute_fakes.TestComputev2):
315
309
  'hypervisor_hostname': self.hypervisor.name,
316
310
  'uptime': uptime_string,
317
311
  }
318
- self.compute_sdk_client.get_hypervisor_uptime.return_value = (
319
- uptime_info
320
- )
312
+ self.compute_client.get_hypervisor_uptime.return_value = uptime_info
321
313
 
322
314
  self.columns_v288 = (
323
315
  'aggregates',
@@ -434,10 +426,10 @@ class TestHypervisorShow(compute_fakes.TestComputev2):
434
426
  self.assertEqual(self.columns_v288, columns)
435
427
  self.assertCountEqual(self.data_v288, data)
436
428
 
437
- self.compute_sdk_client.find_hypervisor.assert_called_once_with(
429
+ self.compute_client.find_hypervisor.assert_called_once_with(
438
430
  self.hypervisor.name, ignore_missing=False, details=False
439
431
  )
440
- self.compute_sdk_client.get_hypervisor.assert_called_once_with(
432
+ self.compute_client.get_hypervisor.assert_called_once_with(
441
433
  self.hypervisor.id
442
434
  )
443
435
 
@@ -460,10 +452,10 @@ class TestHypervisorShow(compute_fakes.TestComputev2):
460
452
  self.assertEqual(self.columns, columns)
461
453
  self.assertCountEqual(self.data, data)
462
454
 
463
- self.compute_sdk_client.find_hypervisor.assert_called_once_with(
455
+ self.compute_client.find_hypervisor.assert_called_once_with(
464
456
  self.hypervisor.name, ignore_missing=False, details=False
465
457
  )
466
- self.compute_sdk_client.get_hypervisor.assert_called_once_with(
458
+ self.compute_client.get_hypervisor.assert_called_once_with(
467
459
  self.hypervisor.id
468
460
  )
469
461
 
@@ -473,7 +465,7 @@ class TestHypervisorShow(compute_fakes.TestComputev2):
473
465
  # before microversion 2.28, nova returned a stringified version of this
474
466
  # field
475
467
  self.hypervisor.cpu_info = json.dumps(self.hypervisor.cpu_info)
476
- self.compute_sdk_client.find_hypervisor.return_value = self.hypervisor
468
+ self.compute_client.find_hypervisor.return_value = self.hypervisor
477
469
 
478
470
  arglist = [
479
471
  self.hypervisor.name,
@@ -491,10 +483,10 @@ class TestHypervisorShow(compute_fakes.TestComputev2):
491
483
  self.assertEqual(self.columns, columns)
492
484
  self.assertCountEqual(self.data, data)
493
485
 
494
- self.compute_sdk_client.find_hypervisor.assert_called_once_with(
486
+ self.compute_client.find_hypervisor.assert_called_once_with(
495
487
  self.hypervisor.name, ignore_missing=False, details=False
496
488
  )
497
- self.compute_sdk_client.get_hypervisor.assert_called_once_with(
489
+ self.compute_client.get_hypervisor.assert_called_once_with(
498
490
  self.hypervisor.id
499
491
  )
500
492
 
@@ -509,7 +501,7 @@ class TestHypervisorShow(compute_fakes.TestComputev2):
509
501
  ]
510
502
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
511
503
 
512
- self.compute_sdk_client.get_hypervisor_uptime.side_effect = (
504
+ self.compute_client.get_hypervisor_uptime.side_effect = (
513
505
  sdk_exceptions.HttpException(http_status=501)
514
506
  )
515
507
 
@@ -570,9 +562,9 @@ class TestHypervisorShow(compute_fakes.TestComputev2):
570
562
  self.assertEqual(expected_columns, columns)
571
563
  self.assertCountEqual(expected_data, data)
572
564
 
573
- self.compute_sdk_client.find_hypervisor.assert_called_once_with(
565
+ self.compute_client.find_hypervisor.assert_called_once_with(
574
566
  self.hypervisor.name, ignore_missing=False, details=False
575
567
  )
576
- self.compute_sdk_client.get_hypervisor.assert_called_once_with(
568
+ self.compute_client.get_hypervisor.assert_called_once_with(
577
569
  self.hypervisor.id
578
570
  )
@@ -23,7 +23,7 @@ class TestHypervisorStats(compute_fakes.TestComputev2):
23
23
  def setUp(self):
24
24
  super().setUp()
25
25
 
26
- self.compute_sdk_client.get = mock.Mock()
26
+ self.compute_client.get = mock.Mock()
27
27
 
28
28
 
29
29
  # Not in fakes.py because hypervisor stats has been deprecated
@@ -67,7 +67,7 @@ class TestHypervisorStatsShow(TestHypervisorStats):
67
67
  def setUp(self):
68
68
  super().setUp()
69
69
 
70
- self.compute_sdk_client.get.return_value = fakes.FakeResponse(
70
+ self.compute_client.get.return_value = fakes.FakeResponse(
71
71
  data={'hypervisor_statistics': self._stats}
72
72
  )
73
73
 
@@ -18,6 +18,7 @@ import uuid
18
18
 
19
19
  from openstack.compute.v2 import keypair as _keypair
20
20
  from openstack.identity.v3 import project as _project
21
+ from openstack.identity.v3 import role_assignment as _role_assignment
21
22
  from openstack.identity.v3 import user as _user
22
23
  from openstack.test import fakes as sdk_fakes
23
24
  from osc_lib import exceptions
@@ -66,7 +67,7 @@ class TestKeypairCreate(TestKeypair):
66
67
  # Get the command object to test
67
68
  self.cmd = keypair.CreateKeypair(self.app, None)
68
69
 
69
- self.compute_sdk_client.create_keypair.return_value = self.keypair
70
+ self.compute_client.create_keypair.return_value = self.keypair
70
71
 
71
72
  @mock.patch.object(
72
73
  keypair,
@@ -84,7 +85,7 @@ class TestKeypairCreate(TestKeypair):
84
85
 
85
86
  columns, data = self.cmd.take_action(parsed_args)
86
87
 
87
- self.compute_sdk_client.create_keypair.assert_called_with(
88
+ self.compute_client.create_keypair.assert_called_with(
88
89
  name=self.keypair.name,
89
90
  public_key=mock_generate.return_value.public_key,
90
91
  )
@@ -124,7 +125,7 @@ class TestKeypairCreate(TestKeypair):
124
125
 
125
126
  columns, data = self.cmd.take_action(parsed_args)
126
127
 
127
- self.compute_sdk_client.create_keypair.assert_called_with(
128
+ self.compute_client.create_keypair.assert_called_with(
128
129
  name=self.keypair.name,
129
130
  public_key=self.keypair.public_key,
130
131
  )
@@ -159,7 +160,7 @@ class TestKeypairCreate(TestKeypair):
159
160
 
160
161
  columns, data = self.cmd.take_action(parsed_args)
161
162
 
162
- self.compute_sdk_client.create_keypair.assert_called_with(
163
+ self.compute_client.create_keypair.assert_called_with(
163
164
  name=self.keypair.name,
164
165
  public_key=mock_generate.return_value.public_key,
165
166
  )
@@ -176,7 +177,7 @@ class TestKeypairCreate(TestKeypair):
176
177
  self.set_compute_api_version('2.2')
177
178
 
178
179
  for key_type in ['x509', 'ssh']:
179
- self.compute_sdk_client.create_keypair.return_value = self.keypair
180
+ self.compute_client.create_keypair.return_value = self.keypair
180
181
 
181
182
  self.data = (
182
183
  self.keypair.created_at,
@@ -209,7 +210,7 @@ class TestKeypairCreate(TestKeypair):
209
210
  m_file.read.return_value = self.keypair.public_key
210
211
  columns, data = self.cmd.take_action(parsed_args)
211
212
 
212
- self.compute_sdk_client.create_keypair.assert_called_with(
213
+ self.compute_client.create_keypair.assert_called_with(
213
214
  name=self.keypair.name,
214
215
  public_key=self.keypair.public_key,
215
216
  key_type=key_type,
@@ -272,7 +273,7 @@ class TestKeypairCreate(TestKeypair):
272
273
 
273
274
  columns, data = self.cmd.take_action(parsed_args)
274
275
 
275
- self.compute_sdk_client.create_keypair.assert_called_with(
276
+ self.compute_client.create_keypair.assert_called_with(
276
277
  name=self.keypair.name,
277
278
  user_id=self._user.id,
278
279
  public_key=mock_generate.return_value.public_key,
@@ -324,7 +325,7 @@ class TestKeypairDelete(TestKeypair):
324
325
  ret = self.cmd.take_action(parsed_args)
325
326
 
326
327
  self.assertIsNone(ret)
327
- self.compute_sdk_client.delete_keypair.assert_called_with(
328
+ self.compute_client.delete_keypair.assert_called_with(
328
329
  self.keypairs[0].name, ignore_missing=False
329
330
  )
330
331
 
@@ -342,7 +343,7 @@ class TestKeypairDelete(TestKeypair):
342
343
  calls = []
343
344
  for k in self.keypairs:
344
345
  calls.append(call(k.name, ignore_missing=False))
345
- self.compute_sdk_client.delete_keypair.assert_has_calls(calls)
346
+ self.compute_client.delete_keypair.assert_has_calls(calls)
346
347
  self.assertIsNone(result)
347
348
 
348
349
  def test_delete_multiple_keypairs_with_exception(self):
@@ -356,7 +357,7 @@ class TestKeypairDelete(TestKeypair):
356
357
 
357
358
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
358
359
 
359
- self.compute_sdk_client.delete_keypair.side_effect = [
360
+ self.compute_client.delete_keypair.side_effect = [
360
361
  None,
361
362
  exceptions.CommandError,
362
363
  ]
@@ -369,7 +370,7 @@ class TestKeypairDelete(TestKeypair):
369
370
  calls = []
370
371
  for k in arglist:
371
372
  calls.append(call(k, ignore_missing=False))
372
- self.compute_sdk_client.delete_keypair.assert_has_calls(calls)
373
+ self.compute_client.delete_keypair.assert_has_calls(calls)
373
374
 
374
375
  def test_keypair_delete_with_user(self):
375
376
  self.set_compute_api_version('2.10')
@@ -384,7 +385,7 @@ class TestKeypairDelete(TestKeypair):
384
385
  ret = self.cmd.take_action(parsed_args)
385
386
 
386
387
  self.assertIsNone(ret)
387
- self.compute_sdk_client.delete_keypair.assert_called_with(
388
+ self.compute_client.delete_keypair.assert_called_with(
388
389
  self.keypairs[0].name,
389
390
  user_id=self._user.id,
390
391
  ignore_missing=False,
@@ -415,7 +416,7 @@ class TestKeypairList(TestKeypair):
415
416
  self.keypairs = list(
416
417
  sdk_fakes.generate_fake_resources(_keypair.Keypair, count=1)
417
418
  )
418
- self.compute_sdk_client.keypairs.return_value = iter(self.keypairs)
419
+ self.compute_client.keypairs.return_value = iter(self.keypairs)
419
420
 
420
421
  # Get the command object to test
421
422
  self.cmd = keypair.ListKeypair(self.app, None)
@@ -435,7 +436,7 @@ class TestKeypairList(TestKeypair):
435
436
 
436
437
  # Set expected values
437
438
 
438
- self.compute_sdk_client.keypairs.assert_called_with()
439
+ self.compute_client.keypairs.assert_called_with()
439
440
 
440
441
  self.assertEqual(('Name', 'Fingerprint'), columns)
441
442
  self.assertEqual(
@@ -458,7 +459,7 @@ class TestKeypairList(TestKeypair):
458
459
 
459
460
  # Set expected values
460
461
 
461
- self.compute_sdk_client.keypairs.assert_called_with()
462
+ self.compute_client.keypairs.assert_called_with()
462
463
 
463
464
  self.assertEqual(('Name', 'Fingerprint', 'Type'), columns)
464
465
  self.assertEqual(
@@ -491,7 +492,7 @@ class TestKeypairList(TestKeypair):
491
492
  columns, data = self.cmd.take_action(parsed_args)
492
493
 
493
494
  users_mock.get.assert_called_with(self._user.name)
494
- self.compute_sdk_client.keypairs.assert_called_with(
495
+ self.compute_client.keypairs.assert_called_with(
495
496
  user_id=self._user.id,
496
497
  )
497
498
 
@@ -529,13 +530,17 @@ class TestKeypairList(TestKeypair):
529
530
  def test_keypair_list_with_project(self):
530
531
  self.set_compute_api_version('2.35')
531
532
 
532
- projects_mock = self.identity_client.tenants
533
+ projects_mock = self.identity_client.projects
533
534
  projects_mock.reset_mock()
534
535
  projects_mock.get.return_value = self._project
535
536
 
536
- users_mock = self.identity_client.users
537
- users_mock.reset_mock()
538
- users_mock.list.return_value = [self._user]
537
+ role_assignments_mock = self.identity_sdk_client.role_assignments
538
+ role_assignments_mock.reset_mock()
539
+ assignment = sdk_fakes.generate_fake_resource(
540
+ _role_assignment.RoleAssignment
541
+ )
542
+ assignment.user = self._user
543
+ role_assignments_mock.return_value = [assignment]
539
544
 
540
545
  arglist = ['--project', self._project.name]
541
546
  verifylist = [('project', self._project.name)]
@@ -544,8 +549,10 @@ class TestKeypairList(TestKeypair):
544
549
  columns, data = self.cmd.take_action(parsed_args)
545
550
 
546
551
  projects_mock.get.assert_called_with(self._project.name)
547
- users_mock.list.assert_called_with(tenant_id=self._project.id)
548
- self.compute_sdk_client.keypairs.assert_called_with(
552
+ role_assignments_mock.assert_called_with(
553
+ scope_project_id=self._project.id
554
+ )
555
+ self.compute_client.keypairs.assert_called_with(
549
556
  user_id=self._user.id,
550
557
  )
551
558
 
@@ -605,7 +612,7 @@ class TestKeypairList(TestKeypair):
605
612
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
606
613
  self.cmd.take_action(parsed_args)
607
614
 
608
- self.compute_sdk_client.keypairs.assert_called_with(limit=1)
615
+ self.compute_client.keypairs.assert_called_with(limit=1)
609
616
 
610
617
  def test_keypair_list_with_limit_pre_v235(self):
611
618
  self.set_compute_api_version('2.34')
@@ -641,7 +648,7 @@ class TestKeypairList(TestKeypair):
641
648
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
642
649
  self.cmd.take_action(parsed_args)
643
650
 
644
- self.compute_sdk_client.keypairs.assert_called_with(marker='test_kp')
651
+ self.compute_client.keypairs.assert_called_with(marker='test_kp')
645
652
 
646
653
  def test_keypair_list_with_marker_pre_v235(self):
647
654
  self.set_compute_api_version('2.34')
@@ -696,7 +703,7 @@ class TestKeypairShow(TestKeypair):
696
703
 
697
704
  def test_keypair_show(self):
698
705
  self.keypair = sdk_fakes.generate_fake_resource(_keypair.Keypair)
699
- self.compute_sdk_client.find_keypair.return_value = self.keypair
706
+ self.compute_client.find_keypair.return_value = self.keypair
700
707
 
701
708
  self.data = (
702
709
  self.keypair.created_at,
@@ -715,7 +722,7 @@ class TestKeypairShow(TestKeypair):
715
722
 
716
723
  columns, data = self.cmd.take_action(parsed_args)
717
724
 
718
- self.compute_sdk_client.find_keypair.assert_called_with(
725
+ self.compute_client.find_keypair.assert_called_with(
719
726
  self.keypair.name, ignore_missing=False
720
727
  )
721
728
 
@@ -724,7 +731,7 @@ class TestKeypairShow(TestKeypair):
724
731
 
725
732
  def test_keypair_show_public(self):
726
733
  self.keypair = sdk_fakes.generate_fake_resource(_keypair.Keypair)
727
- self.compute_sdk_client.find_keypair.return_value = self.keypair
734
+ self.compute_client.find_keypair.return_value = self.keypair
728
735
 
729
736
  arglist = ['--public-key', self.keypair.name]
730
737
  verifylist = [('public_key', True), ('name', self.keypair.name)]
@@ -740,7 +747,7 @@ class TestKeypairShow(TestKeypair):
740
747
  self.set_compute_api_version('2.10')
741
748
 
742
749
  self.keypair = sdk_fakes.generate_fake_resource(_keypair.Keypair)
743
- self.compute_sdk_client.find_keypair.return_value = self.keypair
750
+ self.compute_client.find_keypair.return_value = self.keypair
744
751
 
745
752
  self.data = (
746
753
  self.keypair.created_at,
@@ -767,7 +774,7 @@ class TestKeypairShow(TestKeypair):
767
774
  columns, data = self.cmd.take_action(parsed_args)
768
775
 
769
776
  self.users_mock.get.assert_called_with(self._user.name)
770
- self.compute_sdk_client.find_keypair.assert_called_with(
777
+ self.compute_client.find_keypair.assert_called_with(
771
778
  self.keypair.name,
772
779
  ignore_missing=False,
773
780
  user_id=self._user.id,