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
@@ -10,6 +10,13 @@
10
10
  # License for the specific language governing permissions and limitations
11
11
  # under the License.
12
12
 
13
+ from openstack.identity.v3 import domain as _domain
14
+ from openstack.identity.v3 import endpoint as _endpoint
15
+ from openstack.identity.v3 import project as _project
16
+ from openstack.identity.v3 import region as _region
17
+ from openstack.identity.v3 import service as _service
18
+ from openstack.test import fakes as sdk_fakes
19
+
13
20
  from openstackclient.identity.v3 import endpoint
14
21
  from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
15
22
 
@@ -37,30 +44,34 @@ class TestEndpoint(identity_fakes.TestIdentityv3):
37
44
  self.projects_mock.reset_mock()
38
45
 
39
46
 
40
- class TestEndpointCreate(TestEndpoint):
41
- service = identity_fakes.FakeService.create_one_service()
42
-
47
+ class TestEndpointCreate(identity_fakes.TestIdentityv3):
43
48
  columns = (
44
49
  'enabled',
45
50
  'id',
46
51
  'interface',
47
52
  'region',
53
+ 'region_id',
48
54
  'service_id',
55
+ 'url',
49
56
  'service_name',
50
57
  'service_type',
51
- 'url',
52
58
  )
53
59
 
54
60
  def setUp(self):
55
61
  super().setUp()
56
62
 
57
- self.endpoint = identity_fakes.FakeEndpoint.create_one_endpoint(
58
- attrs={'service_id': self.service.id}
63
+ self.service = sdk_fakes.generate_fake_resource(_service.Service)
64
+ self.region = sdk_fakes.generate_fake_resource(_region.Region)
65
+ self.endpoint = sdk_fakes.generate_fake_resource(
66
+ resource_type=_endpoint.Endpoint,
67
+ service_id=self.service.id,
68
+ interface='admin',
69
+ region_id=self.region.id,
59
70
  )
60
- self.endpoints_mock.create.return_value = self.endpoint
61
71
 
62
- # This is the return value for common.find_resource(service)
63
- self.services_mock.get.return_value = self.service
72
+ self.identity_sdk_client.create_endpoint.return_value = self.endpoint
73
+ self.identity_sdk_client.find_service.return_value = self.service
74
+ self.identity_sdk_client.get_region.return_value = self.region
64
75
 
65
76
  # Get the command object to test
66
77
  self.cmd = endpoint.CreateEndpoint(self.app, None)
@@ -79,6 +90,9 @@ class TestEndpointCreate(TestEndpoint):
79
90
  ]
80
91
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
81
92
 
93
+ # Fake endpoints come with a region ID by default, so set it to None
94
+ setattr(self.endpoint, "region_id", None)
95
+
82
96
  # In base command class ShowOne in cliff, abstract method take_action()
83
97
  # returns a two-part tuple with a tuple of column names and a tuple of
84
98
  # data to be shown.
@@ -86,25 +100,25 @@ class TestEndpointCreate(TestEndpoint):
86
100
 
87
101
  # Set expected values
88
102
  kwargs = {
89
- 'service': self.service.id,
103
+ 'service_id': self.service.id,
90
104
  'url': self.endpoint.url,
91
105
  'interface': self.endpoint.interface,
92
- 'enabled': True,
93
- 'region': None,
106
+ 'is_enabled': True,
94
107
  }
95
108
 
96
- self.endpoints_mock.create.assert_called_with(**kwargs)
109
+ self.identity_sdk_client.create_endpoint.assert_called_with(**kwargs)
97
110
 
98
111
  self.assertEqual(self.columns, columns)
99
112
  datalist = (
100
113
  True,
101
114
  self.endpoint.id,
102
115
  self.endpoint.interface,
103
- self.endpoint.region,
116
+ None,
117
+ None,
104
118
  self.service.id,
119
+ self.endpoint.url,
105
120
  self.service.name,
106
121
  self.service.type,
107
- self.endpoint.url,
108
122
  )
109
123
  self.assertEqual(datalist, data)
110
124
 
@@ -114,14 +128,14 @@ class TestEndpointCreate(TestEndpoint):
114
128
  self.endpoint.interface,
115
129
  self.endpoint.url,
116
130
  '--region',
117
- self.endpoint.region,
131
+ self.region.id,
118
132
  ]
119
133
  verifylist = [
120
134
  ('enabled', True),
121
135
  ('service', self.service.id),
122
136
  ('interface', self.endpoint.interface),
123
137
  ('url', self.endpoint.url),
124
- ('region', self.endpoint.region),
138
+ ('region', self.region.id),
125
139
  ]
126
140
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
127
141
 
@@ -132,25 +146,26 @@ class TestEndpointCreate(TestEndpoint):
132
146
 
133
147
  # Set expected values
134
148
  kwargs = {
135
- 'service': self.service.id,
149
+ 'service_id': self.service.id,
136
150
  'url': self.endpoint.url,
137
151
  'interface': self.endpoint.interface,
138
- 'enabled': True,
139
- 'region': self.endpoint.region,
152
+ 'is_enabled': True,
153
+ 'region_id': self.region.id,
140
154
  }
141
155
 
142
- self.endpoints_mock.create.assert_called_with(**kwargs)
156
+ self.identity_sdk_client.create_endpoint.assert_called_with(**kwargs)
143
157
 
144
158
  self.assertEqual(self.columns, columns)
145
159
  datalist = (
146
160
  True,
147
161
  self.endpoint.id,
148
162
  self.endpoint.interface,
149
- self.endpoint.region,
163
+ self.region.id,
164
+ self.region.id,
150
165
  self.service.id,
166
+ self.endpoint.url,
151
167
  self.service.name,
152
168
  self.service.type,
153
- self.endpoint.url,
154
169
  )
155
170
  self.assertEqual(datalist, data)
156
171
 
@@ -169,6 +184,9 @@ class TestEndpointCreate(TestEndpoint):
169
184
  ]
170
185
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
171
186
 
187
+ # Fake endpoints come with a region ID by default, so set it to None
188
+ setattr(self.endpoint, "region_id", None)
189
+
172
190
  # In base command class ShowOne in cliff, abstract method take_action()
173
191
  # returns a two-part tuple with a tuple of column names and a tuple of
174
192
  # data to be shown.
@@ -176,25 +194,25 @@ class TestEndpointCreate(TestEndpoint):
176
194
 
177
195
  # Set expected values
178
196
  kwargs = {
179
- 'service': self.service.id,
197
+ 'service_id': self.service.id,
180
198
  'url': self.endpoint.url,
181
199
  'interface': self.endpoint.interface,
182
- 'enabled': True,
183
- 'region': None,
200
+ 'is_enabled': True,
184
201
  }
185
202
 
186
- self.endpoints_mock.create.assert_called_with(**kwargs)
203
+ self.identity_sdk_client.create_endpoint.assert_called_with(**kwargs)
187
204
 
188
205
  self.assertEqual(self.columns, columns)
189
206
  datalist = (
190
207
  True,
191
208
  self.endpoint.id,
192
209
  self.endpoint.interface,
193
- self.endpoint.region,
210
+ None,
211
+ None,
194
212
  self.service.id,
213
+ self.endpoint.url,
195
214
  self.service.name,
196
215
  self.service.type,
197
- self.endpoint.url,
198
216
  )
199
217
  self.assertEqual(datalist, data)
200
218
 
@@ -213,6 +231,10 @@ class TestEndpointCreate(TestEndpoint):
213
231
  ]
214
232
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
215
233
 
234
+ # Fake endpoints come with a region ID by default, so set it to None
235
+ setattr(self.endpoint, "region_id", None)
236
+ setattr(self.endpoint, "is_enabled", False)
237
+
216
238
  # In base command class ShowOne in cliff, abstract method take_action()
217
239
  # returns a two-part tuple with a tuple of column names and a tuple of
218
240
  # data to be shown.
@@ -220,38 +242,37 @@ class TestEndpointCreate(TestEndpoint):
220
242
 
221
243
  # Set expected values
222
244
  kwargs = {
223
- 'service': self.service.id,
245
+ 'service_id': self.service.id,
224
246
  'url': self.endpoint.url,
225
247
  'interface': self.endpoint.interface,
226
- 'enabled': False,
227
- 'region': None,
248
+ 'is_enabled': False,
228
249
  }
229
250
 
230
- self.endpoints_mock.create.assert_called_with(**kwargs)
251
+ self.identity_sdk_client.create_endpoint.assert_called_with(**kwargs)
231
252
 
232
253
  self.assertEqual(self.columns, columns)
233
254
  datalist = (
234
- True,
255
+ False,
235
256
  self.endpoint.id,
236
257
  self.endpoint.interface,
237
- self.endpoint.region,
258
+ None,
259
+ None,
238
260
  self.service.id,
261
+ self.endpoint.url,
239
262
  self.service.name,
240
263
  self.service.type,
241
- self.endpoint.url,
242
264
  )
243
265
  self.assertEqual(datalist, data)
244
266
 
245
267
 
246
- class TestEndpointDelete(TestEndpoint):
247
- endpoint = identity_fakes.FakeEndpoint.create_one_endpoint()
248
-
268
+ class TestEndpointDelete(identity_fakes.TestIdentityv3):
249
269
  def setUp(self):
250
270
  super().setUp()
251
271
 
252
- # This is the return value for utils.find_resource(endpoint)
253
- self.endpoints_mock.get.return_value = self.endpoint
254
- self.endpoints_mock.delete.return_value = None
272
+ self.endpoint = sdk_fakes.generate_fake_resource(_endpoint.Endpoint)
273
+
274
+ self.identity_sdk_client.find_endpoint.return_value = self.endpoint
275
+ self.identity_sdk_client.delete_endpoint.return_value = None
255
276
 
256
277
  # Get the command object to test
257
278
  self.cmd = endpoint.DeleteEndpoint(self.app, None)
@@ -267,18 +288,13 @@ class TestEndpointDelete(TestEndpoint):
267
288
 
268
289
  result = self.cmd.take_action(parsed_args)
269
290
 
270
- self.endpoints_mock.delete.assert_called_with(
291
+ self.identity_sdk_client.delete_endpoint.assert_called_with(
271
292
  self.endpoint.id,
272
293
  )
273
294
  self.assertIsNone(result)
274
295
 
275
296
 
276
- class TestEndpointList(TestEndpoint):
277
- service = identity_fakes.FakeService.create_one_service()
278
- endpoint = identity_fakes.FakeEndpoint.create_one_endpoint(
279
- attrs={'service_id': service.id}
280
- )
281
-
297
+ class TestEndpointList(identity_fakes.TestIdentityv3):
282
298
  columns = (
283
299
  'ID',
284
300
  'Region',
@@ -292,11 +308,19 @@ class TestEndpointList(TestEndpoint):
292
308
  def setUp(self):
293
309
  super().setUp()
294
310
 
295
- self.endpoints_mock.list.return_value = [self.endpoint]
311
+ self.service = sdk_fakes.generate_fake_resource(_service.Service)
312
+ self.region = sdk_fakes.generate_fake_resource(_region.Region)
313
+ self.endpoint = sdk_fakes.generate_fake_resource(
314
+ resource_type=_endpoint.Endpoint,
315
+ service_id=self.service.id,
316
+ interface='admin',
317
+ region_id=self.region.id,
318
+ )
296
319
 
297
- # This is the return value for common.find_resource(service)
298
- self.services_mock.get.return_value = self.service
299
- self.services_mock.list.return_value = [self.service]
320
+ self.identity_sdk_client.endpoints.return_value = [self.endpoint]
321
+ self.identity_sdk_client.find_service.return_value = self.service
322
+ self.identity_sdk_client.services.return_value = [self.service]
323
+ self.identity_sdk_client.get_region.return_value = self.region
300
324
 
301
325
  # Get the command object to test
302
326
  self.cmd = endpoint.ListEndpoint(self.app, None)
@@ -310,13 +334,13 @@ class TestEndpointList(TestEndpoint):
310
334
  # returns a tuple containing the column names and an iterable
311
335
  # containing the data to be listed.
312
336
  columns, data = self.cmd.take_action(parsed_args)
313
- self.endpoints_mock.list.assert_called_with()
337
+ self.identity_sdk_client.endpoints.assert_called_with()
314
338
 
315
339
  self.assertEqual(self.columns, columns)
316
340
  datalist = (
317
341
  (
318
342
  self.endpoint.id,
319
- self.endpoint.region,
343
+ self.region.id,
320
344
  self.service.name,
321
345
  self.service.type,
322
346
  True,
@@ -343,15 +367,15 @@ class TestEndpointList(TestEndpoint):
343
367
 
344
368
  # Set expected values
345
369
  kwargs = {
346
- 'service': self.service.id,
370
+ 'service_id': self.service.id,
347
371
  }
348
- self.endpoints_mock.list.assert_called_with(**kwargs)
372
+ self.identity_sdk_client.endpoints.assert_called_with(**kwargs)
349
373
 
350
374
  self.assertEqual(self.columns, columns)
351
375
  datalist = (
352
376
  (
353
377
  self.endpoint.id,
354
- self.endpoint.region,
378
+ self.region.id,
355
379
  self.service.name,
356
380
  self.service.type,
357
381
  True,
@@ -380,13 +404,13 @@ class TestEndpointList(TestEndpoint):
380
404
  kwargs = {
381
405
  'interface': self.endpoint.interface,
382
406
  }
383
- self.endpoints_mock.list.assert_called_with(**kwargs)
407
+ self.identity_sdk_client.endpoints.assert_called_with(**kwargs)
384
408
 
385
409
  self.assertEqual(self.columns, columns)
386
410
  datalist = (
387
411
  (
388
412
  self.endpoint.id,
389
- self.endpoint.region,
413
+ self.region.id,
390
414
  self.service.name,
391
415
  self.service.type,
392
416
  True,
@@ -399,10 +423,10 @@ class TestEndpointList(TestEndpoint):
399
423
  def test_endpoint_list_region(self):
400
424
  arglist = [
401
425
  '--region',
402
- self.endpoint.region,
426
+ self.region.id,
403
427
  ]
404
428
  verifylist = [
405
- ('region', self.endpoint.region),
429
+ ('region', self.region.id),
406
430
  ]
407
431
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
408
432
 
@@ -413,15 +437,15 @@ class TestEndpointList(TestEndpoint):
413
437
 
414
438
  # Set expected values
415
439
  kwargs = {
416
- 'region': self.endpoint.region,
440
+ 'region_id': self.region.id,
417
441
  }
418
- self.endpoints_mock.list.assert_called_with(**kwargs)
442
+ self.identity_sdk_client.endpoints.assert_called_with(**kwargs)
419
443
 
420
444
  self.assertEqual(self.columns, columns)
421
445
  datalist = (
422
446
  (
423
447
  self.endpoint.id,
424
- self.endpoint.region,
448
+ self.region.id,
425
449
  self.service.name,
426
450
  self.service.type,
427
451
  True,
@@ -432,13 +456,13 @@ class TestEndpointList(TestEndpoint):
432
456
  self.assertEqual(datalist, tuple(data))
433
457
 
434
458
  def test_endpoint_list_project_with_project_domain(self):
435
- project = identity_fakes.FakeProject.create_one_project()
436
- domain = identity_fakes.FakeDomain.create_one_domain()
459
+ project = sdk_fakes.generate_fake_resource(_project.Project)
460
+ domain = sdk_fakes.generate_fake_resource(_domain.Domain)
437
461
 
438
- self.ep_filter_mock.list_endpoints_for_project.return_value = [
462
+ self.identity_sdk_client.project_endpoints.return_value = [
439
463
  self.endpoint
440
464
  ]
441
- self.projects_mock.get.return_value = project
465
+ self.identity_sdk_client.find_project.return_value = project
442
466
 
443
467
  arglist = ['--project', project.name, '--project-domain', domain.name]
444
468
  verifylist = [
@@ -451,7 +475,7 @@ class TestEndpointList(TestEndpoint):
451
475
  # returns a tuple containing the column names and an iterable
452
476
  # containing the data to be listed.
453
477
  columns, data = self.cmd.take_action(parsed_args)
454
- self.ep_filter_mock.list_endpoints_for_project.assert_called_with(
478
+ self.identity_sdk_client.project_endpoints.assert_called_with(
455
479
  project=project.id
456
480
  )
457
481
 
@@ -459,7 +483,7 @@ class TestEndpointList(TestEndpoint):
459
483
  datalist = (
460
484
  (
461
485
  self.endpoint.id,
462
- self.endpoint.region,
486
+ self.region.id,
463
487
  self.service.name,
464
488
  self.service.type,
465
489
  True,
@@ -470,22 +494,20 @@ class TestEndpointList(TestEndpoint):
470
494
  self.assertEqual(datalist, tuple(data))
471
495
 
472
496
 
473
- class TestEndpointSet(TestEndpoint):
474
- service = identity_fakes.FakeService.create_one_service()
475
- endpoint = identity_fakes.FakeEndpoint.create_one_endpoint(
476
- attrs={'service_id': service.id}
477
- )
478
-
497
+ class TestEndpointSet(identity_fakes.TestIdentityv3):
479
498
  def setUp(self):
480
499
  super().setUp()
481
500
 
482
- # This is the return value for utils.find_resource(endpoint)
483
- self.endpoints_mock.get.return_value = self.endpoint
484
-
485
- self.endpoints_mock.update.return_value = self.endpoint
501
+ self.service = sdk_fakes.generate_fake_resource(_service.Service)
502
+ self.endpoint = sdk_fakes.generate_fake_resource(
503
+ resource_type=_endpoint.Endpoint,
504
+ service_id=self.service.id,
505
+ interface='admin',
506
+ )
486
507
 
487
- # This is the return value for common.find_resource(service)
488
- self.services_mock.get.return_value = self.service
508
+ self.identity_sdk_client.find_endpoint.return_value = self.endpoint
509
+ self.identity_sdk_client.update_endpoint.return_value = self.endpoint
510
+ self.identity_sdk_client.find_service.return_value = self.service
489
511
 
490
512
  # Get the command object to test
491
513
  self.cmd = endpoint.SetEndpoint(self.app, None)
@@ -501,15 +523,8 @@ class TestEndpointSet(TestEndpoint):
501
523
 
502
524
  result = self.cmd.take_action(parsed_args)
503
525
 
504
- kwargs = {
505
- 'enabled': None,
506
- 'interface': None,
507
- 'region': None,
508
- 'service': None,
509
- 'url': None,
510
- }
511
- self.endpoints_mock.update.assert_called_with(
512
- self.endpoint.id, **kwargs
526
+ self.identity_sdk_client.update_endpoint.assert_called_with(
527
+ self.endpoint.id
513
528
  )
514
529
  self.assertIsNone(result)
515
530
 
@@ -525,13 +540,9 @@ class TestEndpointSet(TestEndpoint):
525
540
 
526
541
  # Set expected values
527
542
  kwargs = {
528
- 'enabled': None,
529
543
  'interface': 'public',
530
- 'url': None,
531
- 'region': None,
532
- 'service': None,
533
544
  }
534
- self.endpoints_mock.update.assert_called_with(
545
+ self.identity_sdk_client.update_endpoint.assert_called_with(
535
546
  self.endpoint.id, **kwargs
536
547
  )
537
548
  self.assertIsNone(result)
@@ -548,13 +559,9 @@ class TestEndpointSet(TestEndpoint):
548
559
 
549
560
  # Set expected values
550
561
  kwargs = {
551
- 'enabled': None,
552
- 'interface': None,
553
562
  'url': 'http://localhost:5000',
554
- 'region': None,
555
- 'service': None,
556
563
  }
557
- self.endpoints_mock.update.assert_called_with(
564
+ self.identity_sdk_client.update_endpoint.assert_called_with(
558
565
  self.endpoint.id, **kwargs
559
566
  )
560
567
  self.assertIsNone(result)
@@ -571,13 +578,9 @@ class TestEndpointSet(TestEndpoint):
571
578
 
572
579
  # Set expected values
573
580
  kwargs = {
574
- 'enabled': None,
575
- 'interface': None,
576
- 'url': None,
577
- 'region': None,
578
- 'service': self.service.id,
581
+ 'service_id': self.service.id,
579
582
  }
580
- self.endpoints_mock.update.assert_called_with(
583
+ self.identity_sdk_client.update_endpoint.assert_called_with(
581
584
  self.endpoint.id, **kwargs
582
585
  )
583
586
  self.assertIsNone(result)
@@ -594,13 +597,9 @@ class TestEndpointSet(TestEndpoint):
594
597
 
595
598
  # Set expected values
596
599
  kwargs = {
597
- 'enabled': None,
598
- 'interface': None,
599
- 'url': None,
600
- 'region': 'e-rzzz',
601
- 'service': None,
600
+ 'region_id': 'e-rzzz',
602
601
  }
603
- self.endpoints_mock.update.assert_called_with(
602
+ self.identity_sdk_client.update_endpoint.assert_called_with(
604
603
  self.endpoint.id, **kwargs
605
604
  )
606
605
  self.assertIsNone(result)
@@ -617,13 +616,9 @@ class TestEndpointSet(TestEndpoint):
617
616
 
618
617
  # Set expected values
619
618
  kwargs = {
620
- 'enabled': True,
621
- 'interface': None,
622
- 'url': None,
623
- 'region': None,
624
- 'service': None,
619
+ 'is_enabled': True,
625
620
  }
626
- self.endpoints_mock.update.assert_called_with(
621
+ self.identity_sdk_client.update_endpoint.assert_called_with(
627
622
  self.endpoint.id, **kwargs
628
623
  )
629
624
  self.assertIsNone(result)
@@ -640,31 +635,31 @@ class TestEndpointSet(TestEndpoint):
640
635
 
641
636
  # Set expected values
642
637
  kwargs = {
643
- 'enabled': False,
644
- 'interface': None,
645
- 'url': None,
646
- 'region': None,
647
- 'service': None,
638
+ 'is_enabled': False,
648
639
  }
649
- self.endpoints_mock.update.assert_called_with(
640
+ self.identity_sdk_client.update_endpoint.assert_called_with(
650
641
  self.endpoint.id, **kwargs
651
642
  )
652
643
  self.assertIsNone(result)
653
644
 
654
645
 
655
- class TestEndpointShow(TestEndpoint):
656
- service = identity_fakes.FakeService.create_one_service()
657
- endpoint = identity_fakes.FakeEndpoint.create_one_endpoint(
658
- attrs={'service_id': service.id}
659
- )
660
-
646
+ class TestEndpointShow(identity_fakes.TestIdentityv3):
661
647
  def setUp(self):
662
648
  super().setUp()
663
649
 
664
- self.endpoints_mock.get.return_value = self.endpoint
650
+ self.service = sdk_fakes.generate_fake_resource(_service.Service)
651
+ self.region = sdk_fakes.generate_fake_resource(_region.Region)
652
+ self.endpoint = sdk_fakes.generate_fake_resource(
653
+ resource_type=_endpoint.Endpoint,
654
+ service_id=self.service.id,
655
+ interface='admin',
656
+ region_id=self.region.id,
657
+ )
665
658
 
666
- # This is the return value for common.find_resource(service)
667
- self.services_mock.get.return_value = self.service
659
+ self.identity_sdk_client.find_endpoint.return_value = self.endpoint
660
+
661
+ self.identity_sdk_client.find_service.return_value = self.service
662
+ self.identity_sdk_client.get_region.return_value = self.region
668
663
 
669
664
  # Get the command object to test
670
665
  self.cmd = endpoint.ShowEndpoint(self.app, None)
@@ -682,7 +677,7 @@ class TestEndpointShow(TestEndpoint):
682
677
  # returns a two-part tuple with a tuple of column names and a tuple of
683
678
  # data to be shown.
684
679
  columns, data = self.cmd.take_action(parsed_args)
685
- self.endpoints_mock.get.assert_called_with(
680
+ self.identity_sdk_client.find_endpoint.assert_called_with(
686
681
  self.endpoint.id,
687
682
  )
688
683
 
@@ -691,82 +686,82 @@ class TestEndpointShow(TestEndpoint):
691
686
  'id',
692
687
  'interface',
693
688
  'region',
689
+ 'region_id',
694
690
  'service_id',
691
+ 'url',
695
692
  'service_name',
696
693
  'service_type',
697
- 'url',
698
694
  )
699
695
  self.assertEqual(collist, columns)
700
696
  datalist = (
701
697
  True,
702
698
  self.endpoint.id,
703
699
  self.endpoint.interface,
704
- self.endpoint.region,
700
+ self.region.id,
701
+ self.region.id,
705
702
  self.service.id,
703
+ self.endpoint.url,
706
704
  self.service.name,
707
705
  self.service.type,
708
- self.endpoint.url,
709
706
  )
710
707
  self.assertEqual(datalist, data)
711
708
 
712
709
 
713
710
  class TestEndpointCreateServiceWithoutName(TestEndpointCreate):
714
- service = identity_fakes.FakeService.create_one_service(
715
- attrs={'service_name': ''}
711
+ service = sdk_fakes.generate_fake_resource(
712
+ resource_type=_service.Service,
713
+ name='',
714
+ )
715
+ region = sdk_fakes.generate_fake_resource(_region.Region)
716
+ endpoint = sdk_fakes.generate_fake_resource(
717
+ resource_type=_endpoint.Endpoint,
718
+ service_id=service.id,
719
+ interface='admin',
720
+ region_id=region.id,
716
721
  )
717
722
 
718
723
  def setUp(self):
719
- super(TestEndpointCreate, self).setUp()
720
-
721
- self.endpoint = identity_fakes.FakeEndpoint.create_one_endpoint(
722
- attrs={'service_id': self.service.id}
723
- )
724
-
725
- self.endpoints_mock.create.return_value = self.endpoint
726
-
727
- # This is the return value for common.find_resource(service)
728
- self.services_mock.get.return_value = self.service
724
+ super().setUp()
729
725
 
730
726
  # Get the command object to test
731
727
  self.cmd = endpoint.CreateEndpoint(self.app, None)
732
728
 
733
729
 
734
730
  class TestEndpointListServiceWithoutName(TestEndpointList):
735
- service = identity_fakes.FakeService.create_one_service(
736
- attrs={'service_name': ''}
731
+ service = sdk_fakes.generate_fake_resource(
732
+ resource_type=_service.Service,
733
+ name='',
737
734
  )
738
- endpoint = identity_fakes.FakeEndpoint.create_one_endpoint(
739
- attrs={'service_id': service.id}
735
+ region = sdk_fakes.generate_fake_resource(_region.Region)
736
+ endpoint = sdk_fakes.generate_fake_resource(
737
+ resource_type=_endpoint.Endpoint,
738
+ service_id=service.id,
739
+ interface='admin',
740
+ region_id=region.id,
740
741
  )
741
742
 
742
743
  def setUp(self):
743
- super(TestEndpointList, self).setUp()
744
-
745
- self.endpoints_mock.list.return_value = [self.endpoint]
746
-
747
- # This is the return value for common.find_resource(service)
748
- self.services_mock.get.return_value = self.service
749
- self.services_mock.list.return_value = [self.service]
744
+ super().setUp()
750
745
 
751
746
  # Get the command object to test
752
747
  self.cmd = endpoint.ListEndpoint(self.app, None)
753
748
 
754
749
 
755
750
  class TestEndpointShowServiceWithoutName(TestEndpointShow):
756
- service = identity_fakes.FakeService.create_one_service(
757
- attrs={'service_name': ''}
751
+ service = sdk_fakes.generate_fake_resource(
752
+ resource_type=_service.Service,
753
+ name='',
758
754
  )
759
- endpoint = identity_fakes.FakeEndpoint.create_one_endpoint(
760
- attrs={'service_id': service.id}
755
+ region = sdk_fakes.generate_fake_resource(_region.Region)
756
+ endpoint = sdk_fakes.generate_fake_resource(
757
+ resource_type=_endpoint.Endpoint,
758
+ service_id=service.id,
759
+ interface='admin',
760
+ region_id=region.id,
761
761
  )
762
762
 
763
763
  def setUp(self):
764
- super(TestEndpointShow, self).setUp()
765
-
766
- self.endpoints_mock.get.return_value = self.endpoint
767
-
768
- # This is the return value for common.find_resource(service)
769
- self.services_mock.get.return_value = self.service
764
+ super().setUp()
770
765
 
771
766
  # Get the command object to test
772
767
  self.cmd = endpoint.ShowEndpoint(self.app, None)