python-openstackclient 8.1.0__py3-none-any.whl → 8.3.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 (241) hide show
  1. openstackclient/api/compute_v2.py +2 -2
  2. openstackclient/api/object_store_v1.py +4 -1
  3. openstackclient/api/volume_v2.py +60 -0
  4. openstackclient/api/volume_v3.py +60 -0
  5. openstackclient/command.py +27 -0
  6. openstackclient/common/availability_zone.py +1 -1
  7. openstackclient/common/clientmanager.py +59 -21
  8. openstackclient/common/configuration.py +1 -1
  9. openstackclient/common/extension.py +1 -1
  10. openstackclient/common/limits.py +1 -1
  11. openstackclient/common/module.py +4 -2
  12. openstackclient/common/project_cleanup.py +10 -8
  13. openstackclient/common/quota.py +23 -6
  14. openstackclient/common/versions.py +1 -2
  15. openstackclient/compute/v2/agent.py +1 -1
  16. openstackclient/compute/v2/aggregate.py +6 -5
  17. openstackclient/compute/v2/console.py +5 -3
  18. openstackclient/compute/v2/console_connection.py +1 -1
  19. openstackclient/compute/v2/flavor.py +15 -2
  20. openstackclient/compute/v2/host.py +1 -1
  21. openstackclient/compute/v2/hypervisor.py +1 -1
  22. openstackclient/compute/v2/hypervisor_stats.py +1 -1
  23. openstackclient/compute/v2/keypair.py +1 -1
  24. openstackclient/compute/v2/server.py +77 -30
  25. openstackclient/compute/v2/server_backup.py +1 -1
  26. openstackclient/compute/v2/server_event.py +1 -1
  27. openstackclient/compute/v2/server_group.py +4 -2
  28. openstackclient/compute/v2/server_image.py +1 -1
  29. openstackclient/compute/v2/server_migration.py +1 -1
  30. openstackclient/compute/v2/server_volume.py +1 -1
  31. openstackclient/compute/v2/service.py +1 -1
  32. openstackclient/compute/v2/usage.py +6 -4
  33. openstackclient/identity/common.py +10 -14
  34. openstackclient/identity/v2_0/catalog.py +3 -2
  35. openstackclient/identity/v2_0/ec2creds.py +1 -1
  36. openstackclient/identity/v2_0/endpoint.py +1 -1
  37. openstackclient/identity/v2_0/project.py +17 -7
  38. openstackclient/identity/v2_0/role.py +1 -1
  39. openstackclient/identity/v2_0/role_assignment.py +3 -3
  40. openstackclient/identity/v2_0/service.py +1 -1
  41. openstackclient/identity/v2_0/token.py +1 -1
  42. openstackclient/identity/v2_0/user.py +2 -2
  43. openstackclient/identity/v3/access_rule.py +16 -4
  44. openstackclient/identity/v3/application_credential.py +116 -95
  45. openstackclient/identity/v3/catalog.py +3 -3
  46. openstackclient/identity/v3/consumer.py +1 -1
  47. openstackclient/identity/v3/credential.py +1 -1
  48. openstackclient/identity/v3/domain.py +15 -10
  49. openstackclient/identity/v3/ec2creds.py +1 -1
  50. openstackclient/identity/v3/endpoint.py +33 -12
  51. openstackclient/identity/v3/endpoint_group.py +1 -1
  52. openstackclient/identity/v3/federation_protocol.py +1 -1
  53. openstackclient/identity/v3/group.py +11 -5
  54. openstackclient/identity/v3/identity_provider.py +12 -10
  55. openstackclient/identity/v3/implied_role.py +1 -1
  56. openstackclient/identity/v3/limit.py +1 -1
  57. openstackclient/identity/v3/mapping.py +1 -1
  58. openstackclient/identity/v3/policy.py +1 -1
  59. openstackclient/identity/v3/project.py +34 -22
  60. openstackclient/identity/v3/region.py +1 -1
  61. openstackclient/identity/v3/registered_limit.py +16 -11
  62. openstackclient/identity/v3/role.py +27 -41
  63. openstackclient/identity/v3/role_assignment.py +12 -23
  64. openstackclient/identity/v3/service.py +1 -1
  65. openstackclient/identity/v3/service_provider.py +1 -1
  66. openstackclient/identity/v3/tag.py +3 -2
  67. openstackclient/identity/v3/token.py +3 -2
  68. openstackclient/identity/v3/trust.py +4 -2
  69. openstackclient/identity/v3/unscoped_saml.py +1 -1
  70. openstackclient/identity/v3/user.py +22 -13
  71. openstackclient/image/v1/image.py +35 -17
  72. openstackclient/image/v2/cache.py +11 -7
  73. openstackclient/image/v2/image.py +62 -12
  74. openstackclient/image/v2/info.py +1 -1
  75. openstackclient/image/v2/metadef_namespaces.py +1 -1
  76. openstackclient/image/v2/metadef_objects.py +9 -3
  77. openstackclient/image/v2/metadef_properties.py +11 -3
  78. openstackclient/image/v2/metadef_resource_type_association.py +1 -1
  79. openstackclient/image/v2/metadef_resource_types.py +1 -1
  80. openstackclient/image/v2/task.py +1 -1
  81. openstackclient/network/common.py +10 -9
  82. openstackclient/network/v2/address_group.py +4 -3
  83. openstackclient/network/v2/address_scope.py +8 -6
  84. openstackclient/network/v2/default_security_group_rule.py +9 -8
  85. openstackclient/network/v2/floating_ip.py +16 -9
  86. openstackclient/network/v2/floating_ip_port_forwarding.py +9 -6
  87. openstackclient/network/v2/ip_availability.py +7 -4
  88. openstackclient/network/v2/l3_conntrack_helper.py +11 -4
  89. openstackclient/network/v2/local_ip.py +13 -7
  90. openstackclient/network/v2/local_ip_association.py +7 -4
  91. openstackclient/network/v2/ndp_proxy.py +13 -6
  92. openstackclient/network/v2/network.py +33 -16
  93. openstackclient/network/v2/network_agent.py +5 -5
  94. openstackclient/network/v2/network_auto_allocated_topology.py +1 -1
  95. openstackclient/network/v2/network_flavor.py +1 -1
  96. openstackclient/network/v2/network_flavor_profile.py +1 -1
  97. openstackclient/network/v2/network_meter.py +1 -1
  98. openstackclient/network/v2/network_meter_rule.py +1 -1
  99. openstackclient/network/v2/network_qos_policy.py +7 -5
  100. openstackclient/network/v2/network_qos_rule.py +1 -1
  101. openstackclient/network/v2/network_qos_rule_type.py +1 -1
  102. openstackclient/network/v2/network_rbac.py +8 -5
  103. openstackclient/network/v2/network_segment.py +2 -2
  104. openstackclient/network/v2/network_segment_range.py +13 -6
  105. openstackclient/network/v2/network_service_provider.py +1 -1
  106. openstackclient/network/v2/network_trunk.py +65 -42
  107. openstackclient/network/v2/port.py +38 -20
  108. openstackclient/network/v2/router.py +19 -8
  109. openstackclient/network/v2/security_group.py +52 -7
  110. openstackclient/network/v2/security_group_rule.py +27 -4
  111. openstackclient/network/v2/subnet.py +17 -18
  112. openstackclient/network/v2/subnet_pool.py +11 -9
  113. openstackclient/network/v2/taas/__init__.py +0 -0
  114. openstackclient/network/v2/taas/tap_flow.py +245 -0
  115. openstackclient/network/v2/taas/tap_mirror.py +237 -0
  116. openstackclient/network/v2/taas/tap_service.py +211 -0
  117. openstackclient/object/v1/account.py +1 -1
  118. openstackclient/object/v1/container.py +1 -1
  119. openstackclient/object/v1/object.py +1 -1
  120. openstackclient/shell.py +18 -8
  121. openstackclient/tests/functional/identity/v3/test_access_rule.py +1 -1
  122. openstackclient/tests/functional/identity/v3/test_application_credential.py +7 -7
  123. openstackclient/tests/functional/identity/v3/test_catalog.py +42 -23
  124. openstackclient/tests/functional/identity/v3/test_role_assignment.py +174 -0
  125. openstackclient/tests/functional/image/v2/test_cache.py +54 -0
  126. openstackclient/tests/functional/image/v2/test_image.py +36 -14
  127. openstackclient/tests/functional/image/v2/test_metadef_resource_type.py +55 -0
  128. openstackclient/tests/functional/volume/v2/test_volume.py +1 -1
  129. openstackclient/tests/functional/volume/v3/test_volume.py +2 -2
  130. openstackclient/tests/unit/api/test_volume_v2.py +124 -0
  131. openstackclient/tests/unit/api/test_volume_v3.py +124 -0
  132. openstackclient/tests/unit/common/test_command.py +1 -1
  133. openstackclient/tests/unit/common/test_extension.py +2 -3
  134. openstackclient/tests/unit/common/test_module.py +14 -7
  135. openstackclient/tests/unit/common/test_quota.py +20 -0
  136. openstackclient/tests/unit/compute/v2/test_aggregate.py +5 -3
  137. openstackclient/tests/unit/compute/v2/test_console.py +1 -4
  138. openstackclient/tests/unit/compute/v2/test_flavor.py +160 -177
  139. openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +1 -9
  140. openstackclient/tests/unit/compute/v2/test_server.py +406 -81
  141. openstackclient/tests/unit/compute/v2/test_server_backup.py +1 -3
  142. openstackclient/tests/unit/compute/v2/test_service.py +1 -3
  143. openstackclient/tests/unit/fakes.py +35 -134
  144. openstackclient/tests/unit/identity/test_common.py +100 -0
  145. openstackclient/tests/unit/identity/v2_0/test_project.py +4 -4
  146. openstackclient/tests/unit/identity/v3/fakes.py +10 -2
  147. openstackclient/tests/unit/identity/v3/test_application_credential.py +50 -44
  148. openstackclient/tests/unit/identity/v3/test_domain.py +3 -3
  149. openstackclient/tests/unit/identity/v3/test_endpoint.py +1 -1
  150. openstackclient/tests/unit/identity/v3/test_group.py +4 -2
  151. openstackclient/tests/unit/identity/v3/test_identity_provider.py +10 -10
  152. openstackclient/tests/unit/identity/v3/test_oauth.py +1 -1
  153. openstackclient/tests/unit/identity/v3/test_project.py +31 -54
  154. openstackclient/tests/unit/identity/v3/test_registered_limit.py +2 -2
  155. openstackclient/tests/unit/identity/v3/test_role.py +3 -90
  156. openstackclient/tests/unit/identity/v3/test_user.py +7 -51
  157. openstackclient/tests/unit/image/v1/test_image.py +47 -0
  158. openstackclient/tests/unit/image/v2/test_image.py +190 -9
  159. openstackclient/tests/unit/image/v2/test_metadef_objects.py +22 -0
  160. openstackclient/tests/unit/image/v2/test_metadef_properties.py +24 -10
  161. openstackclient/tests/unit/network/test_common.py +9 -13
  162. openstackclient/tests/unit/network/v2/fakes.py +1 -0
  163. openstackclient/tests/unit/network/v2/taas/__init__.py +0 -0
  164. openstackclient/tests/unit/network/v2/taas/test_osc_tap_flow.py +276 -0
  165. openstackclient/tests/unit/network/v2/taas/test_osc_tap_mirror.py +288 -0
  166. openstackclient/tests/unit/network/v2/taas/test_osc_tap_service.py +271 -0
  167. openstackclient/tests/unit/network/v2/test_address_group.py +19 -22
  168. openstackclient/tests/unit/network/v2/test_address_scope.py +10 -15
  169. openstackclient/tests/unit/network/v2/test_default_security_group_rule.py +38 -49
  170. openstackclient/tests/unit/network/v2/test_floating_ip_network.py +21 -27
  171. openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +21 -18
  172. openstackclient/tests/unit/network/v2/test_ip_availability.py +6 -8
  173. openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +6 -15
  174. openstackclient/tests/unit/network/v2/test_local_ip.py +12 -23
  175. openstackclient/tests/unit/network/v2/test_local_ip_association.py +13 -18
  176. openstackclient/tests/unit/network/v2/test_ndp_proxy.py +13 -23
  177. openstackclient/tests/unit/network/v2/test_network.py +41 -37
  178. openstackclient/tests/unit/network/v2/test_network_agent.py +13 -20
  179. openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py +5 -8
  180. openstackclient/tests/unit/network/v2/test_network_flavor.py +14 -26
  181. openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +14 -17
  182. openstackclient/tests/unit/network/v2/test_network_meter.py +7 -17
  183. openstackclient/tests/unit/network/v2/test_network_meter_rule.py +10 -20
  184. openstackclient/tests/unit/network/v2/test_network_qos_policy.py +7 -13
  185. openstackclient/tests/unit/network/v2/test_network_qos_rule.py +44 -54
  186. openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +2 -7
  187. openstackclient/tests/unit/network/v2/test_network_rbac.py +21 -36
  188. openstackclient/tests/unit/network/v2/test_network_segment.py +13 -29
  189. openstackclient/tests/unit/network/v2/test_network_segment_range.py +20 -19
  190. openstackclient/tests/unit/network/v2/test_network_service_provider.py +1 -4
  191. openstackclient/tests/unit/network/v2/test_network_trunk.py +52 -47
  192. openstackclient/tests/unit/network/v2/test_port.py +113 -84
  193. openstackclient/tests/unit/network/v2/test_router.py +104 -126
  194. openstackclient/tests/unit/network/v2/test_security_group_network.py +25 -26
  195. openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +66 -18
  196. openstackclient/tests/unit/network/v2/test_subnet.py +35 -46
  197. openstackclient/tests/unit/network/v2/test_subnet_pool.py +21 -33
  198. openstackclient/tests/unit/volume/test_find_resource.py +4 -13
  199. openstackclient/tests/unit/volume/v2/test_volume.py +358 -305
  200. openstackclient/tests/unit/volume/v2/test_volume_backup.py +3 -1
  201. openstackclient/tests/unit/volume/v3/test_volume.py +443 -415
  202. openstackclient/tests/unit/volume/v3/test_volume_backup.py +9 -0
  203. openstackclient/volume/client.py +7 -17
  204. openstackclient/volume/v2/backup_record.py +1 -1
  205. openstackclient/volume/v2/consistency_group.py +1 -1
  206. openstackclient/volume/v2/consistency_group_snapshot.py +1 -1
  207. openstackclient/volume/v2/qos_specs.py +1 -1
  208. openstackclient/volume/v2/service.py +2 -2
  209. openstackclient/volume/v2/volume.py +80 -54
  210. openstackclient/volume/v2/volume_backend.py +1 -1
  211. openstackclient/volume/v2/volume_backup.py +5 -3
  212. openstackclient/volume/v2/volume_host.py +1 -2
  213. openstackclient/volume/v2/volume_snapshot.py +2 -2
  214. openstackclient/volume/v2/volume_transfer_request.py +1 -1
  215. openstackclient/volume/v2/volume_type.py +11 -6
  216. openstackclient/volume/v3/block_storage_cleanup.py +1 -1
  217. openstackclient/volume/v3/block_storage_cluster.py +1 -1
  218. openstackclient/volume/v3/block_storage_log_level.py +1 -1
  219. openstackclient/volume/v3/block_storage_manage.py +1 -1
  220. openstackclient/volume/v3/block_storage_resource_filter.py +1 -1
  221. openstackclient/volume/v3/service.py +2 -2
  222. openstackclient/volume/v3/volume.py +104 -77
  223. openstackclient/volume/v3/volume_attachment.py +6 -5
  224. openstackclient/volume/v3/volume_backup.py +18 -3
  225. openstackclient/volume/v3/volume_group.py +2 -2
  226. openstackclient/volume/v3/volume_group_snapshot.py +1 -1
  227. openstackclient/volume/v3/volume_group_type.py +1 -1
  228. openstackclient/volume/v3/volume_message.py +1 -1
  229. openstackclient/volume/v3/volume_snapshot.py +2 -2
  230. openstackclient/volume/v3/volume_transfer_request.py +1 -1
  231. openstackclient/volume/v3/volume_type.py +15 -9
  232. {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info}/METADATA +19 -17
  233. {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info}/RECORD +239 -224
  234. {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info}/WHEEL +1 -1
  235. {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info}/entry_points.txt +15 -0
  236. {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info/licenses}/AUTHORS +15 -0
  237. python_openstackclient-8.3.0.dist-info/pbr.json +1 -0
  238. openstackclient/tests/unit/common/test_logs.py +0 -221
  239. python_openstackclient-8.1.0.dist-info/pbr.json +0 -1
  240. {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info/licenses}/LICENSE +0 -0
  241. {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info}/top_level.txt +0 -0
@@ -39,8 +39,8 @@ class TestAddPortToRouter(TestRouter):
39
39
  def setUp(self):
40
40
  super().setUp()
41
41
 
42
- self.network_client.find_router = mock.Mock(return_value=self._router)
43
- self.network_client.find_port = mock.Mock(return_value=self._port)
42
+ self.network_client.find_router.return_value = self._router
43
+ self.network_client.find_port.return_value = self._port
44
44
 
45
45
  self.cmd = router.AddPortToRouter(self.app, None)
46
46
 
@@ -87,8 +87,8 @@ class TestAddSubnetToRouter(TestRouter):
87
87
  def setUp(self):
88
88
  super().setUp()
89
89
 
90
- self.network_client.find_router = mock.Mock(return_value=self._router)
91
- self.network_client.find_subnet = mock.Mock(return_value=self._subnet)
90
+ self.network_client.find_router.return_value = self._router
91
+ self.network_client.find_subnet.return_value = self._subnet
92
92
 
93
93
  self.cmd = router.AddSubnetToRouter(self.app, None)
94
94
 
@@ -172,12 +172,11 @@ class TestCreateRouter(TestRouter):
172
172
  def setUp(self):
173
173
  super().setUp()
174
174
 
175
- self.network_client.create_router = mock.Mock(
176
- return_value=self.new_router
177
- )
178
- self.network_client.set_tags = mock.Mock(return_value=None)
179
- self.network_client.find_extension = mock.Mock(
180
- side_effect=lambda name: self._extensions.get(name)
175
+ self.network_client.create_router.return_value = self.new_router
176
+
177
+ self.network_client.set_tags.return_value = None
178
+ self.network_client.find_extension.side_effect = (
179
+ lambda name, ignore_missing=True: self._extensions.get(name)
181
180
  )
182
181
  # Get the command object to test
183
182
  self.cmd = router.CreateRouter(self.app, None)
@@ -222,8 +221,8 @@ class TestCreateRouter(TestRouter):
222
221
  def test_create_with_gateway(self):
223
222
  _network = network_fakes.create_one_network()
224
223
  _subnet = network_fakes.FakeSubnet.create_one_subnet()
225
- self.network_client.find_network = mock.Mock(return_value=_network)
226
- self.network_client.find_subnet = mock.Mock(return_value=_subnet)
224
+ self.network_client.find_network.return_value = _network
225
+ self.network_client.find_subnet.return_value = _subnet
227
226
  arglist = [
228
227
  self.new_router.name,
229
228
  '--external-gateway',
@@ -392,7 +391,7 @@ class TestCreateRouter(TestRouter):
392
391
 
393
392
  def test_create_with_flavor_id_id(self):
394
393
  _flavor = network_fakes.create_one_network_flavor()
395
- self.network_client.find_flavor = mock.Mock(return_value=_flavor)
394
+ self.network_client.find_flavor.return_value = _flavor
396
395
  arglist = [
397
396
  self.new_router.name,
398
397
  '--flavor-id',
@@ -419,7 +418,7 @@ class TestCreateRouter(TestRouter):
419
418
 
420
419
  def test_create_with_flavor_id_name(self):
421
420
  _flavor = network_fakes.create_one_network_flavor()
422
- self.network_client.find_flavor = mock.Mock(return_value=_flavor)
421
+ self.network_client.find_flavor.return_value = _flavor
423
422
  arglist = [self.new_router.name, '--flavor-id', _flavor.name]
424
423
  verifylist = [
425
424
  ('name', self.new_router.name),
@@ -442,7 +441,7 @@ class TestCreateRouter(TestRouter):
442
441
 
443
442
  def test_create_with_flavor_id(self):
444
443
  _flavor = network_fakes.create_one_network_flavor()
445
- self.network_client.find_flavor = mock.Mock(return_value=_flavor)
444
+ self.network_client.find_flavor.return_value = _flavor
446
445
  arglist = [
447
446
  self.new_router.name,
448
447
  '--flavor',
@@ -469,7 +468,7 @@ class TestCreateRouter(TestRouter):
469
468
 
470
469
  def test_create_with_flavor_name(self):
471
470
  _flavor = network_fakes.create_one_network_flavor()
472
- self.network_client.find_flavor = mock.Mock(return_value=_flavor)
471
+ self.network_client.find_flavor.return_value = _flavor
473
472
  arglist = [self.new_router.name, '--flavor', _flavor.name]
474
473
  verifylist = [
475
474
  ('name', self.new_router.name),
@@ -491,11 +490,12 @@ class TestCreateRouter(TestRouter):
491
490
  self.assertCountEqual(self.data, data)
492
491
 
493
492
  def test_create_with_enable_default_route_bfd(self):
494
- self.network_client.find_extension = mock.Mock(
495
- return_value=network_fakes.create_one_extension(
493
+ self._extensions = {
494
+ 'external-gateway-multihoming': network_fakes.create_one_extension(
496
495
  attrs={'name': 'external-gateway-multihoming'}
497
- )
498
- )
496
+ ),
497
+ }
498
+
499
499
  arglist = [self.new_router.name, '--enable-default-route-bfd']
500
500
  verifylist = [
501
501
  ('name', self.new_router.name),
@@ -525,11 +525,12 @@ class TestCreateRouter(TestRouter):
525
525
  )
526
526
 
527
527
  def test_create_with_enable_default_route_ecmp(self):
528
- self.network_client.find_extension = mock.Mock(
529
- return_value=network_fakes.create_one_extension(
528
+ self._extensions = {
529
+ 'external-gateway-multihoming': network_fakes.create_one_extension(
530
530
  attrs={'name': 'external-gateway-multihoming'}
531
- )
532
- )
531
+ ),
532
+ }
533
+
533
534
  arglist = [self.new_router.name, '--enable-default-route-ecmp']
534
535
  verifylist = [
535
536
  ('name', self.new_router.name),
@@ -560,11 +561,10 @@ class TestCreateRouter(TestRouter):
560
561
 
561
562
  def test_create_with_qos_policy(self):
562
563
  _network = network_fakes.create_one_network()
563
- self.network_client.find_network = mock.Mock(return_value=_network)
564
+ self.network_client.find_network.return_value = _network
564
565
  _qos_policy = network_fakes.create_one_qos_policy()
565
- self.network_client.find_qos_policy = mock.Mock(
566
- return_value=_qos_policy
567
- )
566
+ self.network_client.find_qos_policy.return_value = _qos_policy
567
+
568
568
  arglist = [
569
569
  self.new_router.name,
570
570
  '--external-gateway',
@@ -595,9 +595,8 @@ class TestCreateRouter(TestRouter):
595
595
 
596
596
  def test_create_with_qos_policy_no_external_gateway(self):
597
597
  _qos_policy = network_fakes.create_one_qos_policy()
598
- self.network_client.find_qos_policy = mock.Mock(
599
- return_value=_qos_policy
600
- )
598
+ self.network_client.find_qos_policy.return_value = _qos_policy
599
+
601
600
  arglist = [
602
601
  self.new_router.name,
603
602
  '--qos-policy',
@@ -625,7 +624,7 @@ class TestDeleteRouter(TestRouter):
625
624
  def setUp(self):
626
625
  super().setUp()
627
626
 
628
- self.network_client.delete_router = mock.Mock(return_value=None)
627
+ self.network_client.delete_router.return_value = None
629
628
 
630
629
  self.network_client.find_router = network_fakes.get_routers(
631
630
  self._routers
@@ -679,9 +678,7 @@ class TestDeleteRouter(TestRouter):
679
678
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
680
679
 
681
680
  find_mock_result = [self._routers[0], exceptions.CommandError]
682
- self.network_client.find_router = mock.Mock(
683
- side_effect=find_mock_result
684
- )
681
+ self.network_client.find_router.side_effect = find_mock_result
685
682
 
686
683
  try:
687
684
  self.cmd.take_action(parsed_args)
@@ -786,21 +783,16 @@ class TestListRouter(TestRouter):
786
783
  # Get the command object to test
787
784
  self.cmd = router.ListRouter(self.app, None)
788
785
 
789
- self.network_client.agent_hosted_routers = mock.Mock(
790
- return_value=self.routers
791
- )
792
- self.network_client.routers = mock.Mock(return_value=self.routers)
793
- self.network_client.find_extension = mock.Mock(
794
- return_value=self.extensions
795
- )
796
- self.network_client.find_router = mock.Mock(
797
- return_value=self.routers[0]
798
- )
786
+ self.network_client.agent_hosted_routers.return_value = self.routers
787
+
788
+ self.network_client.routers.return_value = self.routers
789
+ self.network_client.find_extension.return_value = self.extensions
790
+
791
+ self.network_client.find_router.return_value = self.routers[0]
792
+
799
793
  self._testagent = network_fakes.create_one_network_agent()
800
- self.network_client.get_agent = mock.Mock(return_value=self._testagent)
801
- self.network_client.get_router = mock.Mock(
802
- return_value=self.routers[0]
803
- )
794
+ self.network_client.get_agent.return_value = self._testagent
795
+ self.network_client.get_router.return_value = self.routers[0]
804
796
 
805
797
  def test_router_list_no_options(self):
806
798
  arglist = []
@@ -865,7 +857,7 @@ class TestListRouter(TestRouter):
865
857
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
866
858
 
867
859
  # to mock, that no availability zone
868
- self.network_client.find_extension = mock.Mock(return_value=None)
860
+ self.network_client.find_extension.return_value = None
869
861
 
870
862
  # In base command class Lister in cliff, abstract method take_action()
871
863
  # returns a tuple containing the column names and an iterable
@@ -1044,8 +1036,8 @@ class TestRemovePortFromRouter(TestRouter):
1044
1036
  def setUp(self):
1045
1037
  super().setUp()
1046
1038
 
1047
- self.network_client.find_router = mock.Mock(return_value=self._router)
1048
- self.network_client.find_port = mock.Mock(return_value=self._port)
1039
+ self.network_client.find_router.return_value = self._router
1040
+ self.network_client.find_port.return_value = self._port
1049
1041
 
1050
1042
  self.cmd = router.RemovePortFromRouter(self.app, None)
1051
1043
 
@@ -1089,8 +1081,8 @@ class TestRemoveSubnetFromRouter(TestRouter):
1089
1081
  def setUp(self):
1090
1082
  super().setUp()
1091
1083
 
1092
- self.network_client.find_router = mock.Mock(return_value=self._router)
1093
- self.network_client.find_subnet = mock.Mock(return_value=self._subnet)
1084
+ self.network_client.find_router.return_value = self._router
1085
+ self.network_client.find_subnet.return_value = self._subnet
1094
1086
 
1095
1087
  self.cmd = router.RemoveSubnetFromRouter(self.app, None)
1096
1088
 
@@ -1129,11 +1121,12 @@ class TestAddExtraRoutesToRouter(TestRouter):
1129
1121
 
1130
1122
  def setUp(self):
1131
1123
  super().setUp()
1132
- self.network_client.add_extra_routes_to_router = mock.Mock(
1133
- return_value=self._router
1124
+ self.network_client.add_extra_routes_to_router.return_value = (
1125
+ self._router
1134
1126
  )
1127
+
1135
1128
  self.cmd = router.AddExtraRoutesToRouter(self.app, None)
1136
- self.network_client.find_router = mock.Mock(return_value=self._router)
1129
+ self.network_client.find_router.return_value = self._router
1137
1130
 
1138
1131
  def test_add_no_extra_route(self):
1139
1132
  arglist = [
@@ -1218,11 +1211,12 @@ class TestRemoveExtraRoutesFromRouter(TestRouter):
1218
1211
 
1219
1212
  def setUp(self):
1220
1213
  super().setUp()
1221
- self.network_client.remove_extra_routes_from_router = mock.Mock(
1222
- return_value=self._router
1214
+ self.network_client.remove_extra_routes_from_router.return_value = (
1215
+ self._router
1223
1216
  )
1217
+
1224
1218
  self.cmd = router.RemoveExtraRoutesFromRouter(self.app, None)
1225
- self.network_client.find_router = mock.Mock(return_value=self._router)
1219
+ self.network_client.find_router.return_value = self._router
1226
1220
 
1227
1221
  def test_remove_no_extra_route(self):
1228
1222
  arglist = [
@@ -1316,15 +1310,14 @@ class TestSetRouter(TestRouter):
1316
1310
 
1317
1311
  def setUp(self):
1318
1312
  super().setUp()
1319
- self.network_client.update_router = mock.Mock(return_value=None)
1320
- self.network_client.set_tags = mock.Mock(return_value=None)
1321
- self.network_client.find_router = mock.Mock(return_value=self._router)
1322
- self.network_client.find_network = mock.Mock(
1323
- return_value=self._network
1324
- )
1325
- self.network_client.find_subnet = mock.Mock(return_value=self._subnet)
1326
- self.network_client.find_extension = mock.Mock(
1327
- side_effect=lambda name: self._extensions.get(name)
1313
+ self.network_client.update_router.return_value = None
1314
+ self.network_client.set_tags.return_value = None
1315
+ self.network_client.find_router.return_value = self._router
1316
+ self.network_client.find_network.return_value = self._network
1317
+
1318
+ self.network_client.find_subnet.return_value = self._subnet
1319
+ self.network_client.find_extension.side_effect = (
1320
+ lambda name, ignore_missing=True: self._extensions.get(name)
1328
1321
  )
1329
1322
  # Get the command object to test
1330
1323
  self.cmd = router.SetRouter(self.app, None)
@@ -1459,7 +1452,7 @@ class TestSetRouter(TestRouter):
1459
1452
  _testrouter = network_fakes.create_one_router(
1460
1453
  {'routes': [{"destination": "10.0.0.2", "nexthop": "1.1.1.1"}]}
1461
1454
  )
1462
- self.network_client.find_router = mock.Mock(return_value=_testrouter)
1455
+ self.network_client.find_router.return_value = _testrouter
1463
1456
  arglist = [
1464
1457
  _testrouter.name,
1465
1458
  '--route',
@@ -1667,9 +1660,8 @@ class TestSetRouter(TestRouter):
1667
1660
 
1668
1661
  def test_set_gateway_ip_qos(self):
1669
1662
  qos_policy = network_fakes.create_one_qos_policy()
1670
- self.network_client.find_qos_policy = mock.Mock(
1671
- return_value=qos_policy
1672
- )
1663
+ self.network_client.find_qos_policy.return_value = qos_policy
1664
+
1673
1665
  arglist = [
1674
1666
  "--external-gateway",
1675
1667
  self._network.id,
@@ -1724,9 +1716,8 @@ class TestSetRouter(TestRouter):
1724
1716
 
1725
1717
  def test_set_unset_gateway_ip_qos(self):
1726
1718
  qos_policy = network_fakes.create_one_qos_policy()
1727
- self.network_client.find_qos_policy = mock.Mock(
1728
- return_value=qos_policy
1729
- )
1719
+ self.network_client.find_qos_policy.return_value = qos_policy
1720
+
1730
1721
  arglist = [
1731
1722
  "--external-gateway",
1732
1723
  self._network.id,
@@ -1752,11 +1743,10 @@ class TestSetRouter(TestRouter):
1752
1743
 
1753
1744
  def test_set_gateway_ip_qos_no_gateway(self):
1754
1745
  qos_policy = network_fakes.create_one_qos_policy()
1755
- self.network_client.find_qos_policy = mock.Mock(
1756
- return_value=qos_policy
1757
- )
1746
+ self.network_client.find_qos_policy.return_value = qos_policy
1747
+
1758
1748
  router = network_fakes.create_one_router()
1759
- self.network_client.find_router = mock.Mock(return_value=router)
1749
+ self.network_client.find_router.return_value = router
1760
1750
  arglist = [
1761
1751
  "--qos-policy",
1762
1752
  qos_policy.id,
@@ -1774,11 +1764,10 @@ class TestSetRouter(TestRouter):
1774
1764
 
1775
1765
  def test_unset_gateway_ip_qos_no_gateway(self):
1776
1766
  qos_policy = network_fakes.create_one_qos_policy()
1777
- self.network_client.find_qos_policy = mock.Mock(
1778
- return_value=qos_policy
1779
- )
1767
+ self.network_client.find_qos_policy.return_value = qos_policy
1768
+
1780
1769
  router = network_fakes.create_one_router()
1781
- self.network_client.find_router = mock.Mock(return_value=router)
1770
+ self.network_client.find_router.return_value = router
1782
1771
  arglist = [
1783
1772
  "--no-qos-policy",
1784
1773
  router.id,
@@ -1857,8 +1846,8 @@ class TestShowRouter(TestRouter):
1857
1846
  def setUp(self):
1858
1847
  super().setUp()
1859
1848
 
1860
- self.network_client.find_router = mock.Mock(return_value=self._router)
1861
- self.network_client.ports = mock.Mock(return_value=[self._port])
1849
+ self.network_client.find_router.return_value = self._router
1850
+ self.network_client.ports.return_value = [self._port]
1862
1851
 
1863
1852
  # Get the command object to test
1864
1853
  self.cmd = router.ShowRouter(self.app, None)
@@ -1961,18 +1950,16 @@ class TestUnsetRouter(TestRouter):
1961
1950
  }
1962
1951
  )
1963
1952
  self.fake_subnet = network_fakes.FakeSubnet.create_one_subnet()
1964
- self.network_client.find_router = mock.Mock(
1965
- return_value=self._testrouter
1966
- )
1967
- self.network_client.update_router = mock.Mock(return_value=None)
1968
- self.network_client.set_tags = mock.Mock(return_value=None)
1953
+ self.network_client.find_router.return_value = self._testrouter
1954
+
1955
+ self.network_client.update_router.return_value = None
1956
+ self.network_client.set_tags.return_value = None
1969
1957
  self._extensions = {'fake': network_fakes.create_one_extension()}
1970
- self.network_client.find_extension = mock.Mock(
1971
- side_effect=lambda name: self._extensions.get(name)
1972
- )
1973
- self.network_client.remove_external_gateways = mock.Mock(
1974
- return_value=None
1958
+ self.network_client.find_extension.side_effect = (
1959
+ lambda name, ignore_missing=True: self._extensions.get(name)
1975
1960
  )
1961
+ self.network_client.remove_external_gateways.return_value = None
1962
+
1976
1963
  # Get the command object to test
1977
1964
  self.cmd = router.UnsetRouter(self.app, None)
1978
1965
 
@@ -2109,11 +2096,10 @@ class TestUnsetRouter(TestRouter):
2109
2096
 
2110
2097
  def test_unset_gateway_ip_qos_no_network(self):
2111
2098
  qos_policy = network_fakes.create_one_qos_policy()
2112
- self.network_client.find_qos_policy = mock.Mock(
2113
- return_value=qos_policy
2114
- )
2099
+ self.network_client.find_qos_policy.return_value = qos_policy
2100
+
2115
2101
  router = network_fakes.create_one_router()
2116
- self.network_client.find_router = mock.Mock(return_value=router)
2102
+ self.network_client.find_router.return_value = router
2117
2103
  arglist = [
2118
2104
  "--qos-policy",
2119
2105
  router.id,
@@ -2129,13 +2115,12 @@ class TestUnsetRouter(TestRouter):
2129
2115
 
2130
2116
  def test_unset_gateway_ip_qos_no_qos(self):
2131
2117
  qos_policy = network_fakes.create_one_qos_policy()
2132
- self.network_client.find_qos_policy = mock.Mock(
2133
- return_value=qos_policy
2134
- )
2118
+ self.network_client.find_qos_policy.return_value = qos_policy
2119
+
2135
2120
  router = network_fakes.create_one_router(
2136
2121
  {"external_gateway_info": {"network_id": "fake-id"}}
2137
2122
  )
2138
- self.network_client.find_router = mock.Mock(return_value=router)
2123
+ self.network_client.find_router.return_value = router
2139
2124
  arglist = [
2140
2125
  "--qos-policy",
2141
2126
  router.id,
@@ -2172,10 +2157,10 @@ class TestGatewayOps(TestRouter):
2172
2157
  attrs={'name': 'external-gateway-multihoming'}
2173
2158
  )
2174
2159
  }
2175
- self.network_client.find_extension = mock.Mock(
2176
- side_effect=lambda name: self._extensions.get(name)
2160
+ self.network_client.find_extension.side_effect = (
2161
+ lambda name, ignore_missing=True: self._extensions.get(name)
2177
2162
  )
2178
- self.network_client.find_router = mock.Mock(return_value=self._router)
2163
+ self.network_client.find_router.return_value = self._router
2179
2164
 
2180
2165
  def _find_network(name_or_id, ignore_missing):
2181
2166
  for network in self._networks:
@@ -2185,15 +2170,12 @@ class TestGatewayOps(TestRouter):
2185
2170
  return None
2186
2171
  raise Exception('Test resource not found')
2187
2172
 
2188
- self.network_client.find_network = mock.Mock(side_effect=_find_network)
2173
+ self.network_client.find_network.side_effect = _find_network
2189
2174
 
2190
- self.network_client.find_subnet = mock.Mock(return_value=self._subnet)
2191
- self.network_client.add_external_gateways = mock.Mock(
2192
- return_value=None
2193
- )
2194
- self.network_client.remove_external_gateways = mock.Mock(
2195
- return_value=None
2196
- )
2175
+ self.network_client.find_subnet.return_value = self._subnet
2176
+ self.network_client.add_external_gateways.return_value = None
2177
+
2178
+ self.network_client.remove_external_gateways.return_value = None
2197
2179
 
2198
2180
 
2199
2181
  class TestCreateMultipleGateways(TestGatewayOps):
@@ -2223,13 +2205,10 @@ class TestCreateMultipleGateways(TestGatewayOps):
2223
2205
  self._second_network = network_fakes.create_one_network()
2224
2206
  self._networks.append(self._second_network)
2225
2207
 
2226
- self.network_client.create_router = mock.Mock(
2227
- return_value=self._router
2228
- )
2229
- self.network_client.update_router = mock.Mock(return_value=None)
2230
- self.network_client.update_external_gateways = mock.Mock(
2231
- return_value=None
2232
- )
2208
+ self.network_client.create_router.return_value = self._router
2209
+
2210
+ self.network_client.update_router.return_value = None
2211
+ self.network_client.update_external_gateways.return_value = None
2233
2212
 
2234
2213
  self._data = (
2235
2214
  router.AdminStateColumn(self._router.is_admin_state_up),
@@ -2353,10 +2332,9 @@ class TestUpdateMultipleGateways(TestGatewayOps):
2353
2332
  self._second_network = network_fakes.create_one_network()
2354
2333
  self._networks.append(self._second_network)
2355
2334
 
2356
- self.network_client.update_router = mock.Mock(return_value=None)
2357
- self.network_client.update_external_gateways = mock.Mock(
2358
- return_value=None
2359
- )
2335
+ self.network_client.update_router.return_value = None
2336
+ self.network_client.update_external_gateways.return_value = None
2337
+
2360
2338
  self.cmd = router.SetRouter(self.app, None)
2361
2339
 
2362
2340
  def test_update_one_gateway(self):
@@ -11,7 +11,6 @@
11
11
  # under the License.
12
12
  #
13
13
 
14
- from unittest import mock
15
14
  from unittest.mock import call
16
15
 
17
16
  from osc_lib import exceptions
@@ -42,6 +41,7 @@ class TestCreateSecurityGroupNetwork(TestSecurityGroupNetwork):
42
41
  'created_at',
43
42
  'description',
44
43
  'id',
44
+ 'is_shared',
45
45
  'name',
46
46
  'project_id',
47
47
  'revision_number',
@@ -55,6 +55,7 @@ class TestCreateSecurityGroupNetwork(TestSecurityGroupNetwork):
55
55
  _security_group.created_at,
56
56
  _security_group.description,
57
57
  _security_group.id,
58
+ _security_group.is_shared,
58
59
  _security_group.name,
59
60
  _security_group.project_id,
60
61
  _security_group.revision_number,
@@ -67,13 +68,13 @@ class TestCreateSecurityGroupNetwork(TestSecurityGroupNetwork):
67
68
  def setUp(self):
68
69
  super().setUp()
69
70
 
70
- self.network_client.create_security_group = mock.Mock(
71
- return_value=self._security_group
71
+ self.network_client.create_security_group.return_value = (
72
+ self._security_group
72
73
  )
73
74
 
74
75
  self.projects_mock.get.return_value = self.project
75
76
  self.domains_mock.get.return_value = self.domain
76
- self.network_client.set_tags = mock.Mock(return_value=None)
77
+ self.network_client.set_tags.return_value = None
77
78
 
78
79
  # Get the command object to test
79
80
  self.cmd = security_group.CreateSecurityGroup(self.app, None)
@@ -183,9 +184,7 @@ class TestDeleteSecurityGroupNetwork(TestSecurityGroupNetwork):
183
184
  def setUp(self):
184
185
  super().setUp()
185
186
 
186
- self.network_client.delete_security_group = mock.Mock(
187
- return_value=None
188
- )
187
+ self.network_client.delete_security_group.return_value = None
189
188
 
190
189
  self.network_client.find_security_group = (
191
190
  network_fakes.get_security_groups(self._security_groups)
@@ -243,9 +242,7 @@ class TestDeleteSecurityGroupNetwork(TestSecurityGroupNetwork):
243
242
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
244
243
 
245
244
  find_mock_result = [self._security_groups[0], exceptions.CommandError]
246
- self.network_client.find_security_group = mock.Mock(
247
- side_effect=find_mock_result
248
- )
245
+ self.network_client.find_security_group.side_effect = find_mock_result
249
246
 
250
247
  try:
251
248
  self.cmd.take_action(parsed_args)
@@ -274,6 +271,7 @@ class TestListSecurityGroupNetwork(TestSecurityGroupNetwork):
274
271
  'Description',
275
272
  'Project',
276
273
  'Tags',
274
+ 'Shared',
277
275
  )
278
276
 
279
277
  data = []
@@ -285,14 +283,15 @@ class TestListSecurityGroupNetwork(TestSecurityGroupNetwork):
285
283
  grp.description,
286
284
  grp.project_id,
287
285
  grp.tags,
286
+ grp.is_shared,
288
287
  )
289
288
  )
290
289
 
291
290
  def setUp(self):
292
291
  super().setUp()
293
292
 
294
- self.network_client.security_groups = mock.Mock(
295
- return_value=self._security_groups
293
+ self.network_client.security_groups.return_value = (
294
+ self._security_groups
296
295
  )
297
296
 
298
297
  # Get the command object to test
@@ -419,14 +418,13 @@ class TestSetSecurityGroupNetwork(TestSecurityGroupNetwork):
419
418
  def setUp(self):
420
419
  super().setUp()
421
420
 
422
- self.network_client.update_security_group = mock.Mock(
423
- return_value=None
424
- )
421
+ self.network_client.update_security_group.return_value = None
425
422
 
426
- self.network_client.find_security_group = mock.Mock(
427
- return_value=self._security_group
423
+ self.network_client.find_security_group.return_value = (
424
+ self._security_group
428
425
  )
429
- self.network_client.set_tags = mock.Mock(return_value=None)
426
+
427
+ self.network_client.set_tags.return_value = None
430
428
 
431
429
  # Get the command object to test
432
430
  self.cmd = security_group.SetSecurityGroup(self.app, None)
@@ -524,6 +522,7 @@ class TestShowSecurityGroupNetwork(TestSecurityGroupNetwork):
524
522
  'created_at',
525
523
  'description',
526
524
  'id',
525
+ 'is_shared',
527
526
  'name',
528
527
  'project_id',
529
528
  'revision_number',
@@ -537,6 +536,7 @@ class TestShowSecurityGroupNetwork(TestSecurityGroupNetwork):
537
536
  _security_group.created_at,
538
537
  _security_group.description,
539
538
  _security_group.id,
539
+ _security_group.is_shared,
540
540
  _security_group.name,
541
541
  _security_group.project_id,
542
542
  _security_group.revision_number,
@@ -551,8 +551,8 @@ class TestShowSecurityGroupNetwork(TestSecurityGroupNetwork):
551
551
  def setUp(self):
552
552
  super().setUp()
553
553
 
554
- self.network_client.find_security_group = mock.Mock(
555
- return_value=self._security_group
554
+ self.network_client.find_security_group.return_value = (
555
+ self._security_group
556
556
  )
557
557
 
558
558
  # Get the command object to test
@@ -590,14 +590,13 @@ class TestUnsetSecurityGroupNetwork(TestSecurityGroupNetwork):
590
590
  def setUp(self):
591
591
  super().setUp()
592
592
 
593
- self.network_client.update_security_group = mock.Mock(
594
- return_value=None
595
- )
593
+ self.network_client.update_security_group.return_value = None
596
594
 
597
- self.network_client.find_security_group = mock.Mock(
598
- return_value=self._security_group
595
+ self.network_client.find_security_group.return_value = (
596
+ self._security_group
599
597
  )
600
- self.network_client.set_tags = mock.Mock(return_value=None)
598
+
599
+ self.network_client.set_tags.return_value = None
601
600
 
602
601
  # Get the command object to test
603
602
  self.cmd = security_group.UnsetSecurityGroup(self.app, None)