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
@@ -127,7 +127,7 @@ class TestIdentityProviderCreate(TestIdentityProvider):
127
127
  ]
128
128
  verifylist = [
129
129
  ('identity_provider_id', identity_fakes.idp_id),
130
- ('remote_id', identity_fakes.idp_remote_ids[:1]),
130
+ ('remote_ids', identity_fakes.idp_remote_ids[:1]),
131
131
  ]
132
132
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
133
133
  columns, data = self.cmd.take_action(parsed_args)
@@ -157,7 +157,7 @@ class TestIdentityProviderCreate(TestIdentityProvider):
157
157
  ]
158
158
  verifylist = [
159
159
  ('identity_provider_id', identity_fakes.idp_id),
160
- ('remote_id', identity_fakes.idp_remote_ids),
160
+ ('remote_ids', identity_fakes.idp_remote_ids),
161
161
  ]
162
162
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
163
163
  columns, data = self.cmd.take_action(parsed_args)
@@ -561,7 +561,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
561
561
  ('description', new_description),
562
562
  ('enable', False),
563
563
  ('disable', False),
564
- ('remote_id', None),
564
+ ('remote_ids', None),
565
565
  ]
566
566
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
567
567
  self.cmd.take_action(parsed_args)
@@ -597,7 +597,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
597
597
  ('description', None),
598
598
  ('enable', False),
599
599
  ('disable', True),
600
- ('remote_id', identity_fakes.idp_remote_ids),
600
+ ('remote_ids', identity_fakes.idp_remote_ids),
601
601
  ]
602
602
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
603
603
 
@@ -637,7 +637,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
637
637
  ('description', None),
638
638
  ('enable', True),
639
639
  ('disable', False),
640
- ('remote_id', identity_fakes.idp_remote_ids),
640
+ ('remote_ids', identity_fakes.idp_remote_ids),
641
641
  ]
642
642
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
643
643
 
@@ -675,7 +675,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
675
675
  ('description', None),
676
676
  ('enable', True),
677
677
  ('disable', False),
678
- ('remote_id', [self.new_remote_id]),
678
+ ('remote_ids', [self.new_remote_id]),
679
679
  ]
680
680
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
681
681
 
@@ -756,7 +756,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
756
756
  ('identity_provider', identity_fakes.idp_id),
757
757
  ('enable', False),
758
758
  ('disable', False),
759
- ('remote_id', None),
759
+ ('remote_ids', None),
760
760
  ]
761
761
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
762
762
 
@@ -776,7 +776,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
776
776
  ('identity_provider', identity_fakes.idp_id),
777
777
  ('enable', False),
778
778
  ('disable', False),
779
- ('remote_id', None),
779
+ ('remote_ids', None),
780
780
  ('authorization_ttl', 60),
781
781
  ]
782
782
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -800,7 +800,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
800
800
  ('identity_provider', identity_fakes.idp_id),
801
801
  ('enable', False),
802
802
  ('disable', False),
803
- ('remote_id', None),
803
+ ('remote_ids', None),
804
804
  ('authorization_ttl', 0),
805
805
  ]
806
806
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -816,7 +816,7 @@ class TestIdentityProviderSet(TestIdentityProvider):
816
816
  ('identity_provider', identity_fakes.idp_id),
817
817
  ('enable', False),
818
818
  ('disable', False),
819
- ('remote_id', None),
819
+ ('remote_ids', None),
820
820
  ('authorization_ttl', -1),
821
821
  ]
822
822
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -109,7 +109,7 @@ class TestRequestTokenAuthorize(TestOAuth1):
109
109
  ]
110
110
  verifylist = [
111
111
  ('request_key', identity_fakes.request_token_id),
112
- ('role', [identity_fakes.role_name]),
112
+ ('roles', [identity_fakes.role_name]),
113
113
  ]
114
114
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
115
115
  columns, data = self.cmd.take_action(parsed_args)
@@ -77,8 +77,7 @@ class TestProjectCreate(TestProject):
77
77
  ]
78
78
  verifylist = [
79
79
  ('parent', None),
80
- ('enable', False),
81
- ('disable', False),
80
+ ('enabled', True),
82
81
  ('name', self.project.name),
83
82
  ('tags', []),
84
83
  ]
@@ -134,8 +133,7 @@ class TestProjectCreate(TestProject):
134
133
  ]
135
134
  verifylist = [
136
135
  ('description', 'new desc'),
137
- ('enable', False),
138
- ('disable', False),
136
+ ('enabled', True),
139
137
  ('name', self.project.name),
140
138
  ('parent', None),
141
139
  ('tags', []),
@@ -172,8 +170,7 @@ class TestProjectCreate(TestProject):
172
170
  ]
173
171
  verifylist = [
174
172
  ('domain', self.project.domain_id),
175
- ('enable', False),
176
- ('disable', False),
173
+ ('enabled', True),
177
174
  ('name', self.project.name),
178
175
  ('parent', None),
179
176
  ('tags', []),
@@ -210,8 +207,7 @@ class TestProjectCreate(TestProject):
210
207
  ]
211
208
  verifylist = [
212
209
  ('domain', self.project.domain_id),
213
- ('enable', False),
214
- ('disable', False),
210
+ ('enabled', True),
215
211
  ('name', self.project.name),
216
212
  ('parent', None),
217
213
  ('tags', []),
@@ -243,8 +239,7 @@ class TestProjectCreate(TestProject):
243
239
  self.project.name,
244
240
  ]
245
241
  verifylist = [
246
- ('enable', True),
247
- ('disable', False),
242
+ ('enabled', True),
248
243
  ('name', self.project.name),
249
244
  ('parent', None),
250
245
  ('tags', []),
@@ -279,8 +274,7 @@ class TestProjectCreate(TestProject):
279
274
  self.project.name,
280
275
  ]
281
276
  verifylist = [
282
- ('enable', False),
283
- ('disable', True),
277
+ ('enabled', False),
284
278
  ('name', self.project.name),
285
279
  ('parent', None),
286
280
  ]
@@ -317,7 +311,7 @@ class TestProjectCreate(TestProject):
317
311
  self.project.name,
318
312
  ]
319
313
  verifylist = [
320
- ('property', {'fee': 'fi', 'fo': 'fum'}),
314
+ ('properties', {'fee': 'fi', 'fo': 'fum'}),
321
315
  ('name', self.project.name),
322
316
  ]
323
317
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -354,11 +348,10 @@ class TestProjectCreate(TestProject):
354
348
  ]
355
349
  verifylist = [
356
350
  ('parent', None),
357
- ('enable', False),
358
- ('disable', False),
351
+ ('enabled', True),
359
352
  ('name', self.project.name),
360
353
  ('tags', []),
361
- ('property', {'is_domain': 'false'}),
354
+ ('properties', {'is_domain': 'false'}),
362
355
  ('name', self.project.name),
363
356
  ]
364
357
 
@@ -393,11 +386,10 @@ class TestProjectCreate(TestProject):
393
386
  ]
394
387
  verifylist = [
395
388
  ('parent', None),
396
- ('enable', False),
397
- ('disable', False),
389
+ ('enabled', True),
398
390
  ('name', self.project.name),
399
391
  ('tags', []),
400
- ('property', {'is_domain': 'true'}),
392
+ ('properties', {'is_domain': 'true'}),
401
393
  ('name', self.project.name),
402
394
  ]
403
395
 
@@ -432,11 +424,10 @@ class TestProjectCreate(TestProject):
432
424
  ]
433
425
  verifylist = [
434
426
  ('parent', None),
435
- ('enable', False),
436
- ('disable', False),
427
+ ('enabled', True),
437
428
  ('name', self.project.name),
438
429
  ('tags', []),
439
- ('property', {'is_domain': 'none'}),
430
+ ('properties', {'is_domain': 'none'}),
440
431
  ('name', self.project.name),
441
432
  ]
442
433
 
@@ -481,8 +472,7 @@ class TestProjectCreate(TestProject):
481
472
  verifylist = [
482
473
  ('domain', self.project.domain_id),
483
474
  ('parent', self.parent.name),
484
- ('enable', False),
485
- ('disable', False),
475
+ ('enabled', True),
486
476
  ('name', self.project.name),
487
477
  ('tags', []),
488
478
  ]
@@ -544,8 +534,7 @@ class TestProjectCreate(TestProject):
544
534
  verifylist = [
545
535
  ('domain', self.project.domain_id),
546
536
  ('parent', 'invalid'),
547
- ('enable', False),
548
- ('disable', False),
537
+ ('enabled', True),
549
538
  ('name', self.project.name),
550
539
  ]
551
540
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -566,8 +555,7 @@ class TestProjectCreate(TestProject):
566
555
  ]
567
556
  verifylist = [
568
557
  ('domain', self.project.domain_id),
569
- ('enable', False),
570
- ('disable', False),
558
+ ('enabled', True),
571
559
  ('name', self.project.name),
572
560
  ('parent', None),
573
561
  ('tags', ['foo']),
@@ -602,8 +590,7 @@ class TestProjectCreate(TestProject):
602
590
  verifylist = [
603
591
  ('immutable', True),
604
592
  ('description', None),
605
- ('enable', False),
606
- ('disable', False),
593
+ ('enabled', True),
607
594
  ('name', self.project.name),
608
595
  ('parent', None),
609
596
  ('tags', []),
@@ -638,10 +625,9 @@ class TestProjectCreate(TestProject):
638
625
  self.project.name,
639
626
  ]
640
627
  verifylist = [
641
- ('no_immutable', True),
628
+ ('immutable', False),
642
629
  ('description', None),
643
- ('enable', False),
644
- ('disable', False),
630
+ ('enabled', True),
645
631
  ('name', self.project.name),
646
632
  ('parent', None),
647
633
  ('tags', []),
@@ -981,8 +967,7 @@ class TestProjectSet(TestProject):
981
967
  ]
982
968
  verifylist = [
983
969
  ('project', self.project.name),
984
- ('enable', False),
985
- ('disable', False),
970
+ ('enabled', None),
986
971
  ]
987
972
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
988
973
 
@@ -1001,8 +986,7 @@ class TestProjectSet(TestProject):
1001
986
  verifylist = [
1002
987
  ('name', 'qwerty'),
1003
988
  ('domain', self.project.domain_id),
1004
- ('enable', False),
1005
- ('disable', False),
989
+ ('enabled', None),
1006
990
  ('project', self.project.name),
1007
991
  ]
1008
992
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -1029,8 +1013,7 @@ class TestProjectSet(TestProject):
1029
1013
  verifylist = [
1030
1014
  ('domain', self.project.domain_id),
1031
1015
  ('description', 'new desc'),
1032
- ('enable', False),
1033
- ('disable', False),
1016
+ ('enabled', None),
1034
1017
  ('project', self.project.name),
1035
1018
  ]
1036
1019
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -1053,8 +1036,7 @@ class TestProjectSet(TestProject):
1053
1036
  ]
1054
1037
  verifylist = [
1055
1038
  ('domain', self.project.domain_id),
1056
- ('enable', True),
1057
- ('disable', False),
1039
+ ('enabled', True),
1058
1040
  ('project', self.project.name),
1059
1041
  ]
1060
1042
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -1077,8 +1059,7 @@ class TestProjectSet(TestProject):
1077
1059
  ]
1078
1060
  verifylist = [
1079
1061
  ('domain', self.project.domain_id),
1080
- ('enable', False),
1081
- ('disable', True),
1062
+ ('enabled', False),
1082
1063
  ('project', self.project.name),
1083
1064
  ]
1084
1065
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -1104,7 +1085,7 @@ class TestProjectSet(TestProject):
1104
1085
  ]
1105
1086
  verifylist = [
1106
1087
  ('domain', self.project.domain_id),
1107
- ('property', {'fee': 'fi', 'fo': 'fum'}),
1088
+ ('properties', {'fee': 'fi', 'fo': 'fum'}),
1108
1089
  ('project', self.project.name),
1109
1090
  ]
1110
1091
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -1132,8 +1113,7 @@ class TestProjectSet(TestProject):
1132
1113
  verifylist = [
1133
1114
  ('name', 'qwerty'),
1134
1115
  ('domain', self.project.domain_id),
1135
- ('enable', False),
1136
- ('disable', False),
1116
+ ('enabled', None),
1137
1117
  ('project', self.project.name),
1138
1118
  ('tags', ['foo']),
1139
1119
  ]
@@ -1160,10 +1140,9 @@ class TestProjectSet(TestProject):
1160
1140
  self.project.name,
1161
1141
  ]
1162
1142
  verifylist = [
1163
- ('enable', False),
1164
- ('disable', False),
1143
+ ('enabled', None),
1165
1144
  ('project', self.project.name),
1166
- ('remove_tag', ['tag1', 'tag2']),
1145
+ ('remove_tags', ['tag1', 'tag2']),
1167
1146
  ]
1168
1147
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
1169
1148
 
@@ -1183,8 +1162,7 @@ class TestProjectSet(TestProject):
1183
1162
  verifylist = [
1184
1163
  ('domain', self.project.domain_id),
1185
1164
  ('immutable', True),
1186
- ('enable', False),
1187
- ('disable', False),
1165
+ ('enabled', None),
1188
1166
  ('project', self.project.name),
1189
1167
  ]
1190
1168
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -1207,9 +1185,8 @@ class TestProjectSet(TestProject):
1207
1185
  ]
1208
1186
  verifylist = [
1209
1187
  ('domain', self.project.domain_id),
1210
- ('no_immutable', True),
1211
- ('enable', False),
1212
- ('disable', False),
1188
+ ('immutable', False),
1189
+ ('enabled', None),
1213
1190
  ('project', self.project.name),
1214
1191
  ]
1215
1192
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -168,7 +168,7 @@ class TestRegisteredLimitDelete(TestRegisteredLimit):
168
168
 
169
169
  arglist = [identity_fakes.registered_limit_id]
170
170
  verifylist = [
171
- ('registered_limit_id', [identity_fakes.registered_limit_id])
171
+ ('registered_limits', [identity_fakes.registered_limit_id])
172
172
  ]
173
173
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
174
174
 
@@ -184,7 +184,7 @@ class TestRegisteredLimitDelete(TestRegisteredLimit):
184
184
  self.registered_limit_mock.delete.side_effect = return_value
185
185
 
186
186
  arglist = ['fake-registered-limit-id']
187
- verifylist = [('registered_limit_id', ['fake-registered-limit-id'])]
187
+ verifylist = [('registered_limits', ['fake-registered-limit-id'])]
188
188
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
189
189
 
190
190
  try:
@@ -15,8 +15,6 @@
15
15
 
16
16
  from unittest import mock
17
17
 
18
- from osc_lib import exceptions
19
-
20
18
  from openstack import exceptions as sdk_exc
21
19
  from openstack.identity.v3 import domain as _domain
22
20
  from openstack.identity.v3 import group as _group
@@ -25,10 +23,10 @@ from openstack.identity.v3 import role as _role
25
23
  from openstack.identity.v3 import system as _system
26
24
  from openstack.identity.v3 import user as _user
27
25
  from openstack.test import fakes as sdk_fakes
26
+ from osc_lib import exceptions
28
27
 
29
28
  from openstackclient.identity.v3 import role
30
29
  from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
31
- from openstackclient.tests.unit import utils as test_utils
32
30
 
33
31
 
34
32
  class TestRoleInherited(identity_fakes.TestIdentityv3):
@@ -36,85 +34,6 @@ class TestRoleInherited(identity_fakes.TestIdentityv3):
36
34
  return True
37
35
 
38
36
 
39
- class TestFindSDKId(test_utils.TestCase):
40
- def setUp(self):
41
- super().setUp()
42
- self.user = sdk_fakes.generate_fake_resource(_user.User)
43
- self.identity_sdk_client = mock.Mock()
44
- self.identity_sdk_client.find_user = mock.Mock()
45
-
46
- def test_find_sdk_id_validate(self):
47
- self.identity_sdk_client.find_user.side_effect = [self.user]
48
-
49
- result = role._find_sdk_id(
50
- self.identity_sdk_client.find_user,
51
- name_or_id=self.user.id,
52
- validate_actor_existence=True,
53
- )
54
- self.assertEqual(self.user.id, result)
55
-
56
- def test_find_sdk_id_no_validate(self):
57
- self.identity_sdk_client.find_user.side_effect = [self.user]
58
-
59
- result = role._find_sdk_id(
60
- self.identity_sdk_client.find_user,
61
- name_or_id=self.user.id,
62
- validate_actor_existence=False,
63
- )
64
- self.assertEqual(self.user.id, result)
65
-
66
- def test_find_sdk_id_not_found_validate(self):
67
- self.identity_sdk_client.find_user.side_effect = [
68
- sdk_exc.ResourceNotFound,
69
- ]
70
-
71
- self.assertRaises(
72
- exceptions.CommandError,
73
- role._find_sdk_id,
74
- self.identity_sdk_client.find_user,
75
- name_or_id=self.user.id,
76
- validate_actor_existence=True,
77
- )
78
-
79
- def test_find_sdk_id_not_found_no_validate(self):
80
- self.identity_sdk_client.find_user.side_effect = [
81
- sdk_exc.ResourceNotFound,
82
- ]
83
-
84
- result = role._find_sdk_id(
85
- self.identity_sdk_client.find_user,
86
- name_or_id=self.user.id,
87
- validate_actor_existence=False,
88
- )
89
- self.assertEqual(self.user.id, result)
90
-
91
- def test_find_sdk_id_forbidden_validate(self):
92
- self.identity_sdk_client.find_user.side_effect = [
93
- sdk_exc.ForbiddenException,
94
- ]
95
-
96
- result = role._find_sdk_id(
97
- self.identity_sdk_client.find_user,
98
- name_or_id=self.user.id,
99
- validate_actor_existence=True,
100
- )
101
-
102
- self.assertEqual(self.user.id, result)
103
-
104
- def test_find_sdk_id_forbidden_no_validate(self):
105
- self.identity_sdk_client.find_user.side_effect = [
106
- sdk_exc.ForbiddenException,
107
- ]
108
-
109
- result = role._find_sdk_id(
110
- self.identity_sdk_client.find_user,
111
- name_or_id=self.user.id,
112
- validate_actor_existence=False,
113
- )
114
-
115
- self.assertEqual(self.user.id, result)
116
-
117
-
118
37
  class TestRoleAdd(identity_fakes.TestIdentityv3):
119
38
  def _is_inheritance_testcase(self):
120
39
  return False
@@ -494,7 +413,6 @@ class TestRoleCreate(identity_fakes.TestIdentityv3):
494
413
  # Set expected values
495
414
  kwargs = {
496
415
  'name': self.role.name,
497
- 'options': {},
498
416
  }
499
417
 
500
418
  self.identity_sdk_client.create_role.assert_called_with(**kwargs)
@@ -533,7 +451,6 @@ class TestRoleCreate(identity_fakes.TestIdentityv3):
533
451
  kwargs = {
534
452
  'domain_id': self.domain.id,
535
453
  'name': self.role_with_domain.name,
536
- 'options': {},
537
454
  }
538
455
 
539
456
  self.identity_sdk_client.create_role.assert_called_with(**kwargs)
@@ -572,7 +489,6 @@ class TestRoleCreate(identity_fakes.TestIdentityv3):
572
489
  kwargs = {
573
490
  'name': self.role_with_description.name,
574
491
  'description': self.role_with_description.description,
575
- 'options': {},
576
492
  }
577
493
 
578
494
  self.identity_sdk_client.create_role.assert_called_with(**kwargs)
@@ -629,7 +545,7 @@ class TestRoleCreate(identity_fakes.TestIdentityv3):
629
545
  self.role.name,
630
546
  ]
631
547
  verifylist = [
632
- ('no_immutable', True),
548
+ ('immutable', False),
633
549
  ('name', self.role.name),
634
550
  ]
635
551
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -1437,7 +1353,6 @@ class TestRoleSet(identity_fakes.TestIdentityv3):
1437
1353
  kwargs = {
1438
1354
  'name': 'over',
1439
1355
  'role': self.role.id,
1440
- 'options': {},
1441
1356
  }
1442
1357
  self.identity_sdk_client.update_role.assert_called_with(**kwargs)
1443
1358
  self.assertIsNone(result)
@@ -1472,7 +1387,6 @@ class TestRoleSet(identity_fakes.TestIdentityv3):
1472
1387
  'name': 'over',
1473
1388
  'role': self.role_with_domain.id,
1474
1389
  'domain_id': self.domain2.id,
1475
- 'options': {},
1476
1390
  }
1477
1391
  self.identity_sdk_client.update_role.assert_called_with(**kwargs)
1478
1392
  self.assertIsNone(result)
@@ -1501,7 +1415,6 @@ class TestRoleSet(identity_fakes.TestIdentityv3):
1501
1415
  'name': 'over',
1502
1416
  'description': 'role description',
1503
1417
  'role': self.role_with_domain.id,
1504
- 'options': {},
1505
1418
  }
1506
1419
  self.identity_sdk_client.update_role.assert_called_with(**kwargs)
1507
1420
  self.assertIsNone(result)
@@ -1544,7 +1457,7 @@ class TestRoleSet(identity_fakes.TestIdentityv3):
1544
1457
  ]
1545
1458
  verifylist = [
1546
1459
  ('name', 'over'),
1547
- ('no_immutable', True),
1460
+ ('immutable', False),
1548
1461
  ('role', self.role_with_domain.name),
1549
1462
  ]
1550
1463
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)