python-openstackclient 10.0.0__py3-none-any.whl → 10.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. openstackclient/common/availability_zone.py +1 -1
  2. openstackclient/common/module.py +21 -27
  3. openstackclient/common/pagination.py +42 -4
  4. openstackclient/common/project_cleanup.py +1 -2
  5. openstackclient/common/quota.py +9 -5
  6. openstackclient/compute/v2/flavor.py +3 -1
  7. openstackclient/compute/v2/hypervisor.py +2 -0
  8. openstackclient/compute/v2/keypair.py +6 -2
  9. openstackclient/compute/v2/server.py +21 -12
  10. openstackclient/compute/v2/server_event.py +8 -1
  11. openstackclient/compute/v2/server_group.py +2 -0
  12. openstackclient/compute/v2/server_migration.py +3 -0
  13. openstackclient/compute/v2/server_volume.py +3 -1
  14. openstackclient/compute/v2/service.py +3 -1
  15. openstackclient/compute/v2/usage.py +2 -2
  16. openstackclient/identity/common.py +5 -1
  17. openstackclient/identity/v3/access_rule.py +6 -0
  18. openstackclient/identity/v3/application_credential.py +10 -3
  19. openstackclient/identity/v3/credential.py +4 -2
  20. openstackclient/identity/v3/domain.py +4 -2
  21. openstackclient/identity/v3/endpoint.py +57 -45
  22. openstackclient/identity/v3/federation_protocol.py +7 -5
  23. openstackclient/identity/v3/group.py +11 -10
  24. openstackclient/identity/v3/identity_provider.py +4 -1
  25. openstackclient/identity/v3/limit.py +5 -2
  26. openstackclient/identity/v3/mapping.py +36 -19
  27. openstackclient/identity/v3/project.py +18 -5
  28. openstackclient/identity/v3/region.py +4 -2
  29. openstackclient/identity/v3/registered_limit.py +3 -2
  30. openstackclient/identity/v3/role.py +2 -1
  31. openstackclient/identity/v3/role_assignment.py +3 -2
  32. openstackclient/identity/v3/service.py +4 -2
  33. openstackclient/identity/v3/service_provider.py +4 -2
  34. openstackclient/identity/v3/trust.py +8 -5
  35. openstackclient/identity/v3/user.py +38 -11
  36. openstackclient/image/v2/cache.py +2 -2
  37. openstackclient/image/v2/image.py +15 -9
  38. openstackclient/image/v2/metadef_namespaces.py +11 -10
  39. openstackclient/image/v2/metadef_objects.py +5 -5
  40. openstackclient/image/v2/metadef_properties.py +7 -4
  41. openstackclient/image/v2/task.py +11 -22
  42. openstackclient/network/utils.py +0 -41
  43. openstackclient/network/v2/address_group.py +13 -1
  44. openstackclient/network/v2/address_scope.py +13 -8
  45. openstackclient/network/v2/bgpvpn/bgpvpn.py +33 -19
  46. openstackclient/network/v2/bgpvpn/network_association.py +25 -13
  47. openstackclient/network/v2/bgpvpn/port_association.py +35 -21
  48. openstackclient/network/v2/bgpvpn/router_association.py +27 -14
  49. openstackclient/network/v2/default_security_group_rule.py +14 -6
  50. openstackclient/network/v2/floating_ip.py +12 -4
  51. openstackclient/network/v2/floating_ip_port_forwarding.py +12 -2
  52. openstackclient/network/v2/fwaas/group.py +34 -1
  53. openstackclient/network/v2/fwaas/rule.py +39 -3
  54. openstackclient/network/v2/ip_availability.py +13 -4
  55. openstackclient/network/v2/l3_conntrack_helper.py +14 -1
  56. openstackclient/network/v2/local_ip.py +4 -1
  57. openstackclient/network/v2/local_ip_association.py +4 -1
  58. openstackclient/network/v2/ndp_proxy.py +4 -1
  59. openstackclient/network/v2/network.py +87 -20
  60. openstackclient/network/v2/network_agent.py +32 -10
  61. openstackclient/network/v2/network_auto_allocated_topology.py +6 -5
  62. openstackclient/network/v2/network_flavor.py +19 -6
  63. openstackclient/network/v2/network_flavor_profile.py +20 -6
  64. openstackclient/network/v2/network_meter.py +19 -6
  65. openstackclient/network/v2/network_meter_rule.py +20 -2
  66. openstackclient/network/v2/network_qos_policy.py +15 -7
  67. openstackclient/network/v2/network_qos_rule.py +16 -1
  68. openstackclient/network/v2/network_qos_rule_type.py +16 -5
  69. openstackclient/network/v2/network_rbac.py +12 -5
  70. openstackclient/network/v2/network_segment.py +13 -1
  71. openstackclient/network/v2/network_segment_range.py +15 -3
  72. openstackclient/network/v2/network_trunk.py +4 -1
  73. openstackclient/network/v2/port.py +88 -12
  74. openstackclient/network/v2/router.py +27 -16
  75. openstackclient/network/v2/security_group.py +18 -49
  76. openstackclient/network/v2/security_group_rule.py +18 -5
  77. openstackclient/network/v2/subnet.py +15 -7
  78. openstackclient/network/v2/subnet_pool.py +13 -8
  79. openstackclient/network/v2/taas/tap_flow.py +13 -3
  80. openstackclient/network/v2/taas/tap_mirror.py +7 -4
  81. openstackclient/network/v2/taas/tap_service.py +4 -1
  82. openstackclient/object/v1/container.py +3 -1
  83. openstackclient/object/v1/object.py +3 -1
  84. openstackclient/tests/functional/identity/v3/common.py +34 -0
  85. openstackclient/tests/functional/identity/v3/test_application_credential.py +1 -1
  86. openstackclient/tests/functional/identity/v3/test_mapping.py +81 -0
  87. openstackclient/tests/functional/volume/v3/test_volume_group.py +163 -0
  88. openstackclient/tests/unit/common/test_limits.py +1 -1
  89. openstackclient/tests/unit/common/test_module.py +77 -44
  90. openstackclient/tests/unit/common/test_quota.py +9 -0
  91. openstackclient/tests/unit/compute/v2/fakes.py +1 -57
  92. openstackclient/tests/unit/compute/v2/test_agent.py +4 -4
  93. openstackclient/tests/unit/compute/v2/test_aggregate.py +1 -1
  94. openstackclient/tests/unit/compute/v2/test_console.py +2 -2
  95. openstackclient/tests/unit/compute/v2/test_console_connection.py +1 -1
  96. openstackclient/tests/unit/compute/v2/test_flavor.py +1 -1
  97. openstackclient/tests/unit/compute/v2/test_host.py +3 -3
  98. openstackclient/tests/unit/compute/v2/test_hypervisor.py +2 -2
  99. openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +1 -1
  100. openstackclient/tests/unit/compute/v2/test_keypair.py +1 -1
  101. openstackclient/tests/unit/compute/v2/test_server.py +15 -15
  102. openstackclient/tests/unit/compute/v2/test_server_backup.py +1 -1
  103. openstackclient/tests/unit/compute/v2/test_server_event.py +2 -2
  104. openstackclient/tests/unit/compute/v2/test_server_group.py +1 -1
  105. openstackclient/tests/unit/compute/v2/test_server_image.py +1 -1
  106. openstackclient/tests/unit/compute/v2/test_server_migration.py +4 -4
  107. openstackclient/tests/unit/compute/v2/test_server_share.py +4 -4
  108. openstackclient/tests/unit/compute/v2/test_server_volume.py +2 -2
  109. openstackclient/tests/unit/compute/v2/test_service.py +3 -3
  110. openstackclient/tests/unit/compute/v2/test_usage.py +1 -1
  111. openstackclient/tests/unit/identity/v2_0/fakes.py +3 -7
  112. openstackclient/tests/unit/identity/v2_0/test_endpoint.py +1 -1
  113. openstackclient/tests/unit/identity/v2_0/test_project.py +1 -1
  114. openstackclient/tests/unit/identity/v2_0/test_role.py +1 -1
  115. openstackclient/tests/unit/identity/v2_0/test_role_assignment.py +1 -1
  116. openstackclient/tests/unit/identity/v2_0/test_service.py +1 -1
  117. openstackclient/tests/unit/identity/v2_0/test_token.py +2 -2
  118. openstackclient/tests/unit/identity/v2_0/test_user.py +1 -1
  119. openstackclient/tests/unit/identity/v3/fakes.py +5 -38
  120. openstackclient/tests/unit/identity/v3/test_access_rule.py +3 -3
  121. openstackclient/tests/unit/identity/v3/test_application_credential.py +4 -4
  122. openstackclient/tests/unit/identity/v3/test_credential.py +5 -5
  123. openstackclient/tests/unit/identity/v3/test_domain.py +5 -5
  124. openstackclient/tests/unit/identity/v3/test_endpoint.py +6 -6
  125. openstackclient/tests/unit/identity/v3/test_endpoint_group.py +1 -1
  126. openstackclient/tests/unit/identity/v3/test_group.py +8 -8
  127. openstackclient/tests/unit/identity/v3/test_implied_role.py +1 -1
  128. openstackclient/tests/unit/identity/v3/test_limit.py +5 -5
  129. openstackclient/tests/unit/identity/v3/test_mappings.py +163 -79
  130. openstackclient/tests/unit/identity/v3/test_project.py +28 -5
  131. openstackclient/tests/unit/identity/v3/test_protocol.py +3 -3
  132. openstackclient/tests/unit/identity/v3/test_region.py +5 -5
  133. openstackclient/tests/unit/identity/v3/test_registered_limit.py +5 -5
  134. openstackclient/tests/unit/identity/v3/test_role.py +8 -8
  135. openstackclient/tests/unit/identity/v3/test_role_assignment.py +1 -1
  136. openstackclient/tests/unit/identity/v3/test_service.py +5 -5
  137. openstackclient/tests/unit/identity/v3/test_token.py +2 -2
  138. openstackclient/tests/unit/identity/v3/test_trust.py +4 -4
  139. openstackclient/tests/unit/identity/v3/test_user.py +73 -6
  140. openstackclient/tests/unit/network/v2/fakes.py +5 -77
  141. openstackclient/tests/unit/network/v2/fwaas/test_group.py +28 -2
  142. openstackclient/tests/unit/network/v2/fwaas/test_rule.py +28 -3
  143. openstackclient/tests/unit/network/v2/test_address_group.py +24 -0
  144. openstackclient/tests/unit/network/v2/test_address_scope.py +24 -0
  145. openstackclient/tests/unit/network/v2/test_floating_ip.py +24 -0
  146. openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +24 -0
  147. openstackclient/tests/unit/network/v2/test_ip_availability.py +25 -0
  148. openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +29 -3
  149. openstackclient/tests/unit/network/v2/test_network.py +74 -12
  150. openstackclient/tests/unit/network/v2/test_network_agent.py +50 -1
  151. openstackclient/tests/unit/network/v2/test_network_flavor.py +24 -0
  152. openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +24 -0
  153. openstackclient/tests/unit/network/v2/test_network_meter.py +24 -0
  154. openstackclient/tests/unit/network/v2/test_network_qos_policy.py +24 -0
  155. openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +24 -0
  156. openstackclient/tests/unit/network/v2/test_network_rbac.py +24 -0
  157. openstackclient/tests/unit/network/v2/test_network_segment.py +24 -0
  158. openstackclient/tests/unit/network/v2/test_network_segment_range.py +24 -0
  159. openstackclient/tests/unit/network/v2/test_port.py +166 -0
  160. openstackclient/tests/unit/network/v2/test_router.py +28 -7
  161. openstackclient/tests/unit/network/v2/test_security_group.py +22 -0
  162. openstackclient/tests/unit/network/v2/test_security_group_rule.py +25 -0
  163. openstackclient/tests/unit/network/v2/test_subnet.py +28 -4
  164. openstackclient/tests/unit/network/v2/test_subnet_pool.py +24 -0
  165. openstackclient/tests/unit/volume/v2/fakes.py +20 -140
  166. openstackclient/tests/unit/volume/v2/test_volume_backup.py +5 -9
  167. openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +6 -0
  168. openstackclient/tests/unit/volume/v3/fakes.py +204 -100
  169. openstackclient/tests/unit/volume/v3/test_backup_record.py +114 -0
  170. openstackclient/tests/unit/volume/v3/test_consistency_group.py +720 -0
  171. openstackclient/tests/unit/volume/v3/test_consistency_group_snapshot.py +354 -0
  172. openstackclient/tests/unit/volume/v3/test_qos_specs.py +455 -0
  173. openstackclient/tests/unit/volume/v3/test_volume_attachment.py +2 -0
  174. openstackclient/tests/unit/volume/v3/test_volume_backend.py +158 -0
  175. openstackclient/tests/unit/volume/v3/test_volume_backup.py +5 -9
  176. openstackclient/tests/unit/volume/v3/test_volume_group_type.py +65 -0
  177. openstackclient/tests/unit/volume/v3/test_volume_host.py +115 -0
  178. openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +6 -0
  179. openstackclient/volume/v2/volume.py +4 -2
  180. openstackclient/volume/v2/volume_backup.py +2 -3
  181. openstackclient/volume/v2/volume_snapshot.py +3 -4
  182. openstackclient/volume/v3/backup_record.py +94 -0
  183. openstackclient/volume/v3/consistency_group.py +400 -0
  184. openstackclient/volume/v3/consistency_group_snapshot.py +225 -0
  185. openstackclient/volume/v3/qos_specs.py +389 -0
  186. openstackclient/volume/v3/volume.py +4 -2
  187. openstackclient/volume/v3/volume_attachment.py +5 -1
  188. openstackclient/volume/v3/volume_backend.py +130 -0
  189. openstackclient/volume/v3/volume_backup.py +2 -3
  190. openstackclient/volume/v3/volume_group_snapshot.py +4 -6
  191. openstackclient/volume/v3/volume_group_type.py +1 -1
  192. openstackclient/volume/v3/volume_host.py +74 -0
  193. openstackclient/volume/v3/volume_message.py +3 -1
  194. openstackclient/volume/v3/volume_snapshot.py +2 -1
  195. {python_openstackclient-10.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/METADATA +3 -4
  196. {python_openstackclient-10.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/RECORD +202 -188
  197. {python_openstackclient-10.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/entry_points.txt +24 -24
  198. {python_openstackclient-10.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/licenses/AUTHORS +5 -0
  199. python_openstackclient-10.1.0.dist-info/pbr.json +1 -0
  200. python_openstackclient-10.0.0.dist-info/pbr.json +0 -1
  201. {python_openstackclient-10.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/WHEEL +0 -0
  202. {python_openstackclient-10.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/licenses/LICENSE +0 -0
  203. {python_openstackclient-10.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/top_level.txt +0 -0
@@ -22,42 +22,61 @@ from openstackclient.tests.unit import utils
22
22
 
23
23
 
24
24
  class FakeModule:
25
- def __init__(self, name, version):
25
+ def __init__(self, name):
26
26
  self.name = name
27
- self.__version__ = version
28
- # Workaround for openstacksdk case
29
- self.version = mock.Mock()
30
- self.version.__version__ = version
31
27
 
32
28
 
33
29
  # NOTE(dtroyer): module_1 must match the version list filter (not --all)
34
30
  # currently == '*client*'
35
31
  module_name_1 = 'fakeclient'
36
- module_version_1 = '0.1.2'
32
+ package_name_1 = 'python-fakeclient'
33
+ package_version_1 = '0.1.2'
37
34
 
38
- module_name_2 = 'zlib'
39
- module_version_2 = '1.1'
35
+ # module_2 match openstacksdk
36
+ module_name_2 = 'openstack'
37
+ package_name_2 = 'openstacksdk'
38
+ package_version_2 = '0.9.13'
40
39
 
41
- # module_3 match openstacksdk
42
- module_name_3 = 'openstack'
43
- module_version_3 = '0.9.13'
40
+ # module_3 match sub module of fakeclient
41
+ module_name_3 = 'fakeclient.submodule'
42
+ package_name_3 = 'python-fakeclient'
43
+ package_version_3 = '0.2.2'
44
44
 
45
- # module_4 match sub module of fakeclient
46
- module_name_4 = 'fakeclient.submodule'
47
- module_version_4 = '0.2.2'
45
+ # module_4 match non-client package
46
+ module_name_4 = 'requests'
47
+ package_name_4 = 'requests'
48
+ package_version_4 = '2.34.2'
48
49
 
49
50
  # module_5 match private module
50
51
  module_name_5 = '_private_module.lib'
51
- module_version_5 = '0.0.1'
52
52
 
53
53
  MODULES = {
54
54
  'sys': sys,
55
- module_name_1: FakeModule(module_name_1, module_version_1),
56
- module_name_2: FakeModule(module_name_2, module_version_2),
57
- module_name_3: FakeModule(module_name_3, module_version_3),
58
- module_name_4: FakeModule(module_name_4, module_version_4),
59
- module_name_5: FakeModule(module_name_5, module_version_5),
55
+ module_name_1: FakeModule(module_name_1),
56
+ module_name_2: FakeModule(module_name_2),
57
+ module_name_3: FakeModule(module_name_3),
58
+ module_name_4: FakeModule(module_name_4),
59
+ module_name_5: FakeModule(module_name_5),
60
60
  }
61
+ PACKAGES = {
62
+ module_name_1: [package_name_1],
63
+ module_name_2: [package_name_2],
64
+ module_name_3: [package_name_3],
65
+ module_name_4: [package_name_4],
66
+ }
67
+
68
+
69
+ def fake_metadata_version(package):
70
+ if package == package_name_1:
71
+ return package_version_1
72
+ if package == package_name_2:
73
+ return package_version_2
74
+ if package == package_name_3:
75
+ return package_version_3
76
+ if package == package_name_4:
77
+ return package_version_4
78
+
79
+ raise Exception('unrecognised package')
61
80
 
62
81
 
63
82
  class TestCommandList(utils.TestCommand):
@@ -145,25 +164,31 @@ class TestModuleList(utils.TestCommand):
145
164
  # In base command class Lister in cliff, abstract method take_action()
146
165
  # returns a tuple containing the column names and an iterable
147
166
  # containing the data to be listed.
148
- with mock.patch.dict(
149
- 'openstackclient.common.module.sys.modules',
150
- values=MODULES,
151
- clear=True,
167
+ with (
168
+ mock.patch(
169
+ 'openstackclient.common.module.importlib.metadata.packages_distributions',
170
+ return_value=PACKAGES,
171
+ ),
172
+ mock.patch(
173
+ 'openstackclient.common.module.importlib.metadata.version',
174
+ side_effect=fake_metadata_version,
175
+ ),
176
+ mock.patch.dict(
177
+ 'openstackclient.common.module.sys.modules',
178
+ values=MODULES,
179
+ clear=True,
180
+ ),
152
181
  ):
153
182
  columns, data = self.cmd.take_action(parsed_args)
154
183
 
155
184
  # Output xxxclient and openstacksdk, but not regular module, like: zlib
156
185
  self.assertIn(module_name_1, columns)
157
- self.assertIn(module_version_1, data)
158
- self.assertNotIn(module_name_2, columns)
159
- self.assertNotIn(module_version_2, data)
160
- self.assertIn(module_name_3, columns)
161
- self.assertIn(module_version_3, data)
186
+ self.assertIn(package_version_1, data)
187
+ self.assertIn(module_name_2, columns)
188
+ self.assertIn(package_version_2, data)
162
189
  # Filter sub and private modules
163
- self.assertNotIn(module_name_4, columns)
164
- self.assertNotIn(module_version_4, data)
190
+ self.assertNotIn(module_name_3, columns)
165
191
  self.assertNotIn(module_name_5, columns)
166
- self.assertNotIn(module_version_5, data)
167
192
 
168
193
  def test_module_list_all(self):
169
194
  arglist = [
@@ -177,22 +202,30 @@ class TestModuleList(utils.TestCommand):
177
202
  # In base command class Lister in cliff, abstract method take_action()
178
203
  # returns a tuple containing the column names and an iterable
179
204
  # containing the data to be listed.
180
- with mock.patch.dict(
181
- 'openstackclient.common.module.sys.modules',
182
- values=MODULES,
183
- clear=True,
205
+ with (
206
+ mock.patch(
207
+ 'openstackclient.common.module.importlib.metadata.packages_distributions',
208
+ return_value=PACKAGES,
209
+ ),
210
+ mock.patch(
211
+ 'openstackclient.common.module.importlib.metadata.version',
212
+ side_effect=fake_metadata_version,
213
+ ),
214
+ mock.patch.dict(
215
+ 'openstackclient.common.module.sys.modules',
216
+ values=MODULES,
217
+ clear=True,
218
+ ),
184
219
  ):
185
220
  columns, data = self.cmd.take_action(parsed_args)
186
221
 
187
- # Output xxxclient, openstacksdk and regular module, like: zlib
222
+ # Output xxxclient, openstacksdk and regular modules like requests
188
223
  self.assertIn(module_name_1, columns)
189
- self.assertIn(module_version_1, data)
224
+ self.assertIn(package_version_1, data)
190
225
  self.assertIn(module_name_2, columns)
191
- self.assertIn(module_version_2, data)
192
- self.assertIn(module_name_3, columns)
193
- self.assertIn(module_version_3, data)
226
+ self.assertIn(package_version_2, data)
227
+ self.assertIn(module_name_4, columns)
228
+ self.assertIn(package_version_4, data)
194
229
  # Filter sub and private modules
195
- self.assertNotIn(module_name_4, columns)
196
- self.assertNotIn(module_version_4, data)
230
+ self.assertNotIn(module_name_3, columns)
197
231
  self.assertNotIn(module_name_5, columns)
198
- self.assertNotIn(module_version_5, data)
@@ -68,6 +68,7 @@ class TestQuotaList(TestQuota):
68
68
  'Networks',
69
69
  'Ports',
70
70
  'RBAC Policies',
71
+ 'Router Routes',
71
72
  'Routers',
72
73
  'Security Groups',
73
74
  'Security Group Rules',
@@ -80,6 +81,7 @@ class TestQuotaList(TestQuota):
80
81
  'Backups',
81
82
  'Backup Gigabytes',
82
83
  'Gigabytes',
84
+ 'Groups',
83
85
  'Per Volume Gigabytes',
84
86
  'Snapshots',
85
87
  'Volumes',
@@ -133,6 +135,10 @@ class TestQuotaList(TestQuota):
133
135
  self.network_quotas[0].networks,
134
136
  self.network_quotas[0].ports,
135
137
  self.network_quotas[0].rbac_policies,
138
+ # TODO(ralonsoh): restore once [1] is merged and released.
139
+ # [1]https://review.opendev.org/c/openstack/openstacksdk/+/991063
140
+ # self.network_quotas[0].router_routes,
141
+ getattr(self.network_quotas[0], 'router_routes', ''),
136
142
  self.network_quotas[0].routers,
137
143
  self.network_quotas[0].security_groups,
138
144
  self.network_quotas[0].security_group_rules,
@@ -156,6 +162,7 @@ class TestQuotaList(TestQuota):
156
162
  self.volume_quotas[0].backups,
157
163
  self.volume_quotas[0].backup_gigabytes,
158
164
  self.volume_quotas[0].gigabytes,
165
+ self.volume_quotas[0].groups,
159
166
  self.volume_quotas[0].per_volume_gigabytes,
160
167
  self.volume_quotas[0].snapshots,
161
168
  self.volume_quotas[0].volumes,
@@ -946,6 +953,7 @@ class TestQuotaShow(TestQuota):
946
953
  'pools': {'limit': 0, 'reserved': 0, 'used': 0},
947
954
  'ports': {'limit': 0, 'reserved': 0, 'used': 0},
948
955
  'rbac_policies': {'limit': 0, 'reserved': 0, 'used': 0},
956
+ 'router_routes': {'limit': 0, 'reserved': 0, 'used': 0},
949
957
  'routers': {'limit': 0, 'reserved': 0, 'used': 0},
950
958
  'security_group_rules': {'limit': 0, 'reserved': 0, 'used': 0},
951
959
  'security_groups': {'limit': 0, 'reserved': 0, 'used': 0},
@@ -1144,6 +1152,7 @@ class TestQuotaShow(TestQuota):
1144
1152
  ('pools', 0, 0, 0),
1145
1153
  ('ports', 0, 0, 0),
1146
1154
  ('rbac_policies', 0, 0, 0),
1155
+ ('router_routes', 0, 0, 0),
1147
1156
  ('routers', 0, 0, 0),
1148
1157
  ('security_group_rules', 9, 5, 7),
1149
1158
  ('security_groups', 0, 0, 0),
@@ -66,7 +66,7 @@ class FakeClientMixin:
66
66
  )
67
67
 
68
68
 
69
- class TestComputev2(
69
+ class TestCompute(
70
70
  identity_fakes.FakeClientMixin,
71
71
  network_fakes.FakeClientMixin,
72
72
  image_fakes.FakeClientMixin,
@@ -104,20 +104,6 @@ def create_one_agent(attrs=None):
104
104
  return agent_attrs
105
105
 
106
106
 
107
- def create_agents(attrs=None, count=2):
108
- """Create multiple fake agents.
109
-
110
- :param dict attrs: A dictionary with all attributes
111
- :param int count: The number of agents to fake
112
- :return: A list of dictionaries faking the agents
113
- """
114
- agents = []
115
- for i in range(0, count):
116
- agents.append(create_one_agent(attrs))
117
-
118
- return agents
119
-
120
-
121
107
  def create_one_extension(attrs=None):
122
108
  """Create a fake extension.
123
109
 
@@ -352,20 +338,6 @@ def create_one_flavor(attrs=None):
352
338
  return flavor
353
339
 
354
340
 
355
- def create_flavors(attrs=None, count=2):
356
- """Create multiple fake flavors.
357
-
358
- :param dict attrs: A dictionary with all attributes
359
- :param int count: The number of flavors to fake
360
- :return: A list of fake :class:`openstack.compute.v2.flavor.Flavor` objects
361
- """
362
- flavors = []
363
- for i in range(0, count):
364
- flavors.append(create_one_flavor(attrs))
365
-
366
- return flavors
367
-
368
-
369
341
  def create_one_flavor_access(attrs=None):
370
342
  """Create a fake flavor access.
371
343
 
@@ -499,19 +471,6 @@ def create_one_floating_ip_pool(attrs=None):
499
471
  return floating_ip_pool_attrs
500
472
 
501
473
 
502
- def create_floating_ip_pools(attrs=None, count=2):
503
- """Create multiple fake floating IP pools.
504
-
505
- :param dict attrs: A dictionary with all attributes
506
- :param int count: The number of floating IP pools to fake
507
- :return: A list of dictionaries faking the floating IP pools
508
- """
509
- floating_ip_pools = []
510
- for i in range(0, count):
511
- floating_ip_pools.append(create_one_floating_ip_pool(attrs))
512
- return floating_ip_pools
513
-
514
-
515
474
  def create_one_network(attrs=None):
516
475
  """Create a fake network.
517
476
 
@@ -730,21 +689,6 @@ def create_one_server_migration(attrs=None):
730
689
  return migration
731
690
 
732
691
 
733
- def create_server_migrations(attrs=None, methods=None, count=2):
734
- """Create multiple server migrations.
735
-
736
- :param dict attrs: A dictionary with all attributes
737
- :param int count: The number of server migrations to fake
738
- :return A list of fake
739
- openstack.compute.v2.server_migration.ServerMigration objects
740
- """
741
- migrations = []
742
- for i in range(0, count):
743
- migrations.append(create_one_server_migration(attrs, methods))
744
-
745
- return migrations
746
-
747
-
748
692
  def create_one_volume_attachment(attrs=None):
749
693
  """Create a fake volume attachment.
750
694
 
@@ -37,7 +37,7 @@ def _generate_fake_agent():
37
37
  }
38
38
 
39
39
 
40
- class TestAgentCreate(compute_fakes.TestComputev2):
40
+ class TestAgentCreate(compute_fakes.TestCompute):
41
41
  def setUp(self):
42
42
  super().setUp()
43
43
 
@@ -106,7 +106,7 @@ class TestAgentCreate(compute_fakes.TestComputev2):
106
106
  self.assertEqual(self.data, data)
107
107
 
108
108
 
109
- class TestAgentDelete(compute_fakes.TestComputev2):
109
+ class TestAgentDelete(compute_fakes.TestCompute):
110
110
  def setUp(self):
111
111
  super().setUp()
112
112
 
@@ -180,7 +180,7 @@ class TestAgentDelete(compute_fakes.TestComputev2):
180
180
  )
181
181
 
182
182
 
183
- class TestAgentList(compute_fakes.TestComputev2):
183
+ class TestAgentList(compute_fakes.TestCompute):
184
184
  def setUp(self):
185
185
  super().setUp()
186
186
 
@@ -247,7 +247,7 @@ class TestAgentList(compute_fakes.TestComputev2):
247
247
  )
248
248
 
249
249
 
250
- class TestAgentSet(compute_fakes.TestComputev2):
250
+ class TestAgentSet(compute_fakes.TestCompute):
251
251
  def setUp(self):
252
252
  super().setUp()
253
253
 
@@ -27,7 +27,7 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
27
27
  from openstackclient.tests.unit.image.v2 import fakes as image_fakes
28
28
 
29
29
 
30
- class TestAggregate(compute_fakes.TestComputev2):
30
+ class TestAggregate(compute_fakes.TestCompute):
31
31
  columns = (
32
32
  'availability_zone',
33
33
  'created_at',
@@ -22,7 +22,7 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
22
22
  from openstackclient.tests.unit import utils
23
23
 
24
24
 
25
- class TestConsoleLog(compute_fakes.TestComputev2):
25
+ class TestConsoleLog(compute_fakes.TestCompute):
26
26
  def setUp(self):
27
27
  super().setUp()
28
28
 
@@ -77,7 +77,7 @@ class TestConsoleLog(compute_fakes.TestComputev2):
77
77
  )
78
78
 
79
79
 
80
- class TestConsoleUrlShow(compute_fakes.TestComputev2):
80
+ class TestConsoleUrlShow(compute_fakes.TestCompute):
81
81
  def setUp(self):
82
82
  super().setUp()
83
83
 
@@ -19,7 +19,7 @@ from openstackclient.compute.v2 import console_connection
19
19
  from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
20
20
 
21
21
 
22
- class TestConsoleTokens(compute_fakes.TestComputev2):
22
+ class TestConsoleTokens(compute_fakes.TestCompute):
23
23
  def setUp(self):
24
24
  super().setUp()
25
25
 
@@ -26,7 +26,7 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
26
26
  from openstackclient.tests.unit import utils as tests_utils
27
27
 
28
28
 
29
- class TestFlavor(compute_fakes.TestComputev2):
29
+ class TestFlavor(compute_fakes.TestCompute):
30
30
  def setUp(self):
31
31
  super().setUp()
32
32
 
@@ -58,7 +58,7 @@ def _generate_fake_host():
58
58
  }
59
59
 
60
60
 
61
- class TestHostList(compute_fakes.TestComputev2):
61
+ class TestHostList(compute_fakes.TestCompute):
62
62
  def setUp(self):
63
63
  super().setUp()
64
64
 
@@ -111,7 +111,7 @@ class TestHostList(compute_fakes.TestComputev2):
111
111
  self.assertEqual(self.data, list(data))
112
112
 
113
113
 
114
- class TestHostSet(compute_fakes.TestComputev2):
114
+ class TestHostSet(compute_fakes.TestCompute):
115
115
  def setUp(self):
116
116
  super().setUp()
117
117
 
@@ -160,7 +160,7 @@ class TestHostSet(compute_fakes.TestComputev2):
160
160
  )
161
161
 
162
162
 
163
- class TestHostShow(compute_fakes.TestComputev2):
163
+ class TestHostShow(compute_fakes.TestCompute):
164
164
  def setUp(self):
165
165
  super().setUp()
166
166
 
@@ -24,7 +24,7 @@ from openstackclient.compute.v2 import hypervisor
24
24
  from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
25
25
 
26
26
 
27
- class TestHypervisorList(compute_fakes.TestComputev2):
27
+ class TestHypervisorList(compute_fakes.TestCompute):
28
28
  def setUp(self):
29
29
  super().setUp()
30
30
 
@@ -280,7 +280,7 @@ class TestHypervisorList(compute_fakes.TestComputev2):
280
280
  )
281
281
 
282
282
 
283
- class TestHypervisorShow(compute_fakes.TestComputev2):
283
+ class TestHypervisorShow(compute_fakes.TestCompute):
284
284
  def setUp(self):
285
285
  super().setUp()
286
286
 
@@ -53,7 +53,7 @@ def create_one_hypervisor_stats(attrs=None):
53
53
  return stats_info
54
54
 
55
55
 
56
- class TestHypervisorStatsShow(compute_fakes.TestComputev2):
56
+ class TestHypervisorStatsShow(compute_fakes.TestCompute):
57
57
  _stats = create_one_hypervisor_stats()
58
58
 
59
59
  def setUp(self):
@@ -28,7 +28,7 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
28
28
  from openstackclient.tests.unit import utils as tests_utils
29
29
 
30
30
 
31
- class TestKeypair(compute_fakes.TestComputev2):
31
+ class TestKeypair(compute_fakes.TestCompute):
32
32
  def setUp(self):
33
33
  super().setUp()
34
34
 
@@ -64,7 +64,7 @@ class TestPowerStateColumn(test_utils.TestCase):
64
64
  self.assertEqual('N/A', server.PowerStateColumn(0x08).human_readable())
65
65
 
66
66
 
67
- class TestServer(compute_fakes.TestComputev2):
67
+ class TestServer(compute_fakes.TestCompute):
68
68
  def setUp(self):
69
69
  super().setUp()
70
70
 
@@ -967,8 +967,8 @@ class TestServerRemoveVolume(TestServerVolume):
967
967
 
968
968
  self.assertIsNone(result)
969
969
  self.compute_client.delete_volume_attachment.assert_called_once_with(
970
- self.volume,
971
970
  self.server,
971
+ self.volume,
972
972
  ignore_missing=False,
973
973
  )
974
974
 
@@ -1064,7 +1064,7 @@ class TestServerAddNetwork(TestServer):
1064
1064
  )
1065
1065
 
1066
1066
 
1067
- class TestServerAddSecurityGroup(compute_fakes.TestComputev2):
1067
+ class TestServerAddSecurityGroup(compute_fakes.TestCompute):
1068
1068
  def setUp(self):
1069
1069
  super().setUp()
1070
1070
 
@@ -4318,7 +4318,7 @@ class TestServerCreate(TestServer):
4318
4318
  self.compute_client.create_server.assert_not_called()
4319
4319
 
4320
4320
 
4321
- class TestServerDelete(compute_fakes.TestComputev2):
4321
+ class TestServerDelete(compute_fakes.TestCompute):
4322
4322
  def setUp(self):
4323
4323
  super().setUp()
4324
4324
 
@@ -5825,7 +5825,7 @@ class TestServerListV2100(_TestServerList):
5825
5825
  self.assertCountEqual(columns, set(columns))
5826
5826
 
5827
5827
 
5828
- class TestServerAction(compute_fakes.TestComputev2):
5828
+ class TestServerAction(compute_fakes.TestCompute):
5829
5829
  def run_method_with_sdk_servers(self, method_name, server_count):
5830
5830
  servers = compute_fakes.create_servers(count=server_count)
5831
5831
  self.compute_client.find_server.side_effect = servers
@@ -7486,7 +7486,7 @@ class TestServerEvacuate(TestServer):
7486
7486
  )
7487
7487
 
7488
7488
 
7489
- class TestServerRemoveFixedIP(compute_fakes.TestComputev2):
7489
+ class TestServerRemoveFixedIP(compute_fakes.TestCompute):
7490
7490
  def setUp(self):
7491
7491
  super().setUp()
7492
7492
 
@@ -7515,7 +7515,7 @@ class TestServerRemoveFixedIP(compute_fakes.TestComputev2):
7515
7515
  self.assertIsNone(result)
7516
7516
 
7517
7517
 
7518
- class TestServerRescue(compute_fakes.TestComputev2):
7518
+ class TestServerRescue(compute_fakes.TestCompute):
7519
7519
  def setUp(self):
7520
7520
  super().setUp()
7521
7521
 
@@ -7786,7 +7786,7 @@ class TestServerRemoveSecurityGroup(TestServer):
7786
7786
  self.assertIsNone(result)
7787
7787
 
7788
7788
 
7789
- class TestServerResize(compute_fakes.TestComputev2):
7789
+ class TestServerResize(compute_fakes.TestCompute):
7790
7790
  def setUp(self):
7791
7791
  super().setUp()
7792
7792
 
@@ -7992,7 +7992,7 @@ class TestServerResize(compute_fakes.TestComputev2):
7992
7992
  )
7993
7993
 
7994
7994
 
7995
- class TestServerResizeConfirm(compute_fakes.TestComputev2):
7995
+ class TestServerResizeConfirm(compute_fakes.TestCompute):
7996
7996
  def setUp(self):
7997
7997
  super().setUp()
7998
7998
 
@@ -8024,7 +8024,7 @@ class TestServerResizeConfirm(compute_fakes.TestComputev2):
8024
8024
 
8025
8025
 
8026
8026
  # TODO(stephenfin): Remove in OSC 7.0
8027
- class TestServerMigrateConfirm(compute_fakes.TestComputev2):
8027
+ class TestServerMigrateConfirm(compute_fakes.TestCompute):
8028
8028
  def setUp(self):
8029
8029
  super().setUp()
8030
8030
 
@@ -8062,7 +8062,7 @@ class TestServerMigrateConfirm(compute_fakes.TestComputev2):
8062
8062
  )
8063
8063
 
8064
8064
 
8065
- class TestServerConfirmMigration(compute_fakes.TestComputev2):
8065
+ class TestServerConfirmMigration(compute_fakes.TestCompute):
8066
8066
  def setUp(self):
8067
8067
  super().setUp()
8068
8068
 
@@ -8093,7 +8093,7 @@ class TestServerConfirmMigration(compute_fakes.TestComputev2):
8093
8093
  self.assertIsNone(result)
8094
8094
 
8095
8095
 
8096
- class TestServerResizeRevert(compute_fakes.TestComputev2):
8096
+ class TestServerResizeRevert(compute_fakes.TestCompute):
8097
8097
  def setUp(self):
8098
8098
  super().setUp()
8099
8099
 
@@ -8125,7 +8125,7 @@ class TestServerResizeRevert(compute_fakes.TestComputev2):
8125
8125
 
8126
8126
 
8127
8127
  # TODO(stephenfin): Remove in OSC 7.0
8128
- class TestServerMigrateRevert(compute_fakes.TestComputev2):
8128
+ class TestServerMigrateRevert(compute_fakes.TestCompute):
8129
8129
  def setUp(self):
8130
8130
  super().setUp()
8131
8131
 
@@ -8163,7 +8163,7 @@ class TestServerMigrateRevert(compute_fakes.TestComputev2):
8163
8163
  )
8164
8164
 
8165
8165
 
8166
- class TestServerRevertMigration(compute_fakes.TestComputev2):
8166
+ class TestServerRevertMigration(compute_fakes.TestCompute):
8167
8167
  def setUp(self):
8168
8168
  super().setUp()
8169
8169
 
@@ -9228,7 +9228,7 @@ class TestServerUnpause(TestServerAction):
9228
9228
  self.run_method_with_sdk_servers('unpause_server', 3)
9229
9229
 
9230
9230
 
9231
- class TestServerUnrescue(compute_fakes.TestComputev2):
9231
+ class TestServerUnrescue(compute_fakes.TestCompute):
9232
9232
  def setUp(self):
9233
9233
  super().setUp()
9234
9234
 
@@ -22,7 +22,7 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
22
22
  from openstackclient.tests.unit.image.v2 import fakes as image_fakes
23
23
 
24
24
 
25
- class TestServerBackupCreate(compute_fakes.TestComputev2):
25
+ class TestServerBackupCreate(compute_fakes.TestCompute):
26
26
  def image_columns(self, image):
27
27
  columnlist = (
28
28
  'id',
@@ -21,7 +21,7 @@ from openstackclient.compute.v2 import server_event
21
21
  from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
22
22
 
23
23
 
24
- class TestListServerEvent(compute_fakes.TestComputev2):
24
+ class TestListServerEvent(compute_fakes.TestCompute):
25
25
  fake_server = compute_fakes.create_one_server()
26
26
  fake_event = compute_fakes.create_one_server_action()
27
27
 
@@ -365,7 +365,7 @@ class TestListServerEvent(compute_fakes.TestComputev2):
365
365
  )
366
366
 
367
367
 
368
- class TestShowServerEvent(compute_fakes.TestComputev2):
368
+ class TestShowServerEvent(compute_fakes.TestCompute):
369
369
  fake_server = compute_fakes.create_one_server()
370
370
  fake_event = compute_fakes.create_one_server_action()
371
371
  columns = (
@@ -23,7 +23,7 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
23
23
  from openstackclient.tests.unit import utils as tests_utils
24
24
 
25
25
 
26
- class TestServerGroup(compute_fakes.TestComputev2):
26
+ class TestServerGroup(compute_fakes.TestCompute):
27
27
  def setUp(self):
28
28
  super().setUp()
29
29
 
@@ -21,7 +21,7 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
21
21
  from openstackclient.tests.unit.image.v2 import fakes as image_fakes
22
22
 
23
23
 
24
- class TestServerImageCreate(compute_fakes.TestComputev2):
24
+ class TestServerImageCreate(compute_fakes.TestCompute):
25
25
  def image_columns(self, image):
26
26
  columnlist = (
27
27
  'id',
@@ -18,7 +18,7 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
18
18
  from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
19
19
 
20
20
 
21
- class TestListMigration(compute_fakes.TestComputev2):
21
+ class TestListMigration(compute_fakes.TestCompute):
22
22
  """Test fetch all migrations."""
23
23
 
24
24
  MIGRATION_COLUMNS = [
@@ -690,7 +690,7 @@ class TestListMigrationV280(TestListMigration):
690
690
  )
691
691
 
692
692
 
693
- class TestServerMigrationShow(compute_fakes.TestComputev2):
693
+ class TestServerMigrationShow(compute_fakes.TestCompute):
694
694
  def setUp(self):
695
695
  super().setUp()
696
696
 
@@ -893,7 +893,7 @@ class TestServerMigrationShow(compute_fakes.TestComputev2):
893
893
  )
894
894
 
895
895
 
896
- class TestServerMigrationAbort(compute_fakes.TestComputev2):
896
+ class TestServerMigrationAbort(compute_fakes.TestCompute):
897
897
  def setUp(self):
898
898
  super().setUp()
899
899
 
@@ -1008,7 +1008,7 @@ class TestServerMigrationAbort(compute_fakes.TestComputev2):
1008
1008
  )
1009
1009
 
1010
1010
 
1011
- class TestServerMigrationForceComplete(compute_fakes.TestComputev2):
1011
+ class TestServerMigrationForceComplete(compute_fakes.TestCompute):
1012
1012
  def setUp(self):
1013
1013
  super().setUp()
1014
1014