fog 1.30.0 → 1.31.0

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 (252) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +39 -0
  3. data/CONTRIBUTORS.md +73 -1
  4. data/LICENSE.md +1 -1
  5. data/Rakefile +10 -8
  6. data/fog.gemspec +6 -3
  7. data/lib/fog/cloudstack/models/compute/server.rb +2 -0
  8. data/lib/fog/openstack.rb +1 -1
  9. data/lib/fog/openstack/baremetal.rb +5 -5
  10. data/lib/fog/openstack/compute.rb +20 -9
  11. data/lib/fog/openstack/core.rb +53 -14
  12. data/lib/fog/openstack/examples/compute/basics.rb +3 -1
  13. data/lib/fog/openstack/identity.rb +29 -254
  14. data/lib/fog/openstack/identity_v2.rb +264 -0
  15. data/lib/fog/openstack/identity_v3.rb +249 -0
  16. data/lib/fog/openstack/image.rb +1 -1
  17. data/lib/fog/openstack/metering.rb +1 -1
  18. data/lib/fog/openstack/models/baremetal/node.rb +22 -0
  19. data/lib/fog/openstack/models/compute/flavor.rb +13 -0
  20. data/lib/fog/openstack/models/compute/service.rb +48 -0
  21. data/lib/fog/openstack/models/compute/services.rb +20 -0
  22. data/lib/fog/openstack/models/identity_v2/ec2_credential.rb +45 -0
  23. data/lib/fog/openstack/models/identity_v2/ec2_credentials.rb +55 -0
  24. data/lib/fog/openstack/models/identity_v2/role.rb +52 -0
  25. data/lib/fog/openstack/models/identity_v2/roles.rb +22 -0
  26. data/lib/fog/openstack/models/identity_v2/tenant.rb +64 -0
  27. data/lib/fog/openstack/models/identity_v2/tenants.rb +31 -0
  28. data/lib/fog/openstack/models/identity_v2/user.rb +71 -0
  29. data/lib/fog/openstack/models/identity_v2/users.rb +43 -0
  30. data/lib/fog/openstack/models/identity_v3/domain.rb +47 -0
  31. data/lib/fog/openstack/models/identity_v3/domains.rb +36 -0
  32. data/lib/fog/openstack/models/identity_v3/endpoint.rb +50 -0
  33. data/lib/fog/openstack/models/identity_v3/endpoints.rb +27 -0
  34. data/lib/fog/openstack/models/identity_v3/group.rb +96 -0
  35. data/lib/fog/openstack/models/identity_v3/groups.rb +31 -0
  36. data/lib/fog/openstack/models/identity_v3/os_credential.rb +73 -0
  37. data/lib/fog/openstack/models/identity_v3/os_credentials.rb +31 -0
  38. data/lib/fog/openstack/models/identity_v3/policies.rb +31 -0
  39. data/lib/fog/openstack/models/identity_v3/policy.rb +46 -0
  40. data/lib/fog/openstack/models/identity_v3/project.rb +98 -0
  41. data/lib/fog/openstack/models/identity_v3/projects.rb +31 -0
  42. data/lib/fog/openstack/models/identity_v3/role.rb +45 -0
  43. data/lib/fog/openstack/models/identity_v3/role_assignment.rb +22 -0
  44. data/lib/fog/openstack/models/identity_v3/role_assignments.rb +22 -0
  45. data/lib/fog/openstack/models/identity_v3/roles.rb +35 -0
  46. data/lib/fog/openstack/models/identity_v3/service.rb +47 -0
  47. data/lib/fog/openstack/models/identity_v3/services.rb +31 -0
  48. data/lib/fog/openstack/models/identity_v3/token.rb +26 -0
  49. data/lib/fog/openstack/models/identity_v3/tokens.rb +40 -0
  50. data/lib/fog/openstack/models/identity_v3/user.rb +87 -0
  51. data/lib/fog/openstack/models/identity_v3/users.rb +35 -0
  52. data/lib/fog/openstack/network.rb +2 -9
  53. data/lib/fog/openstack/orchestration.rb +1 -6
  54. data/lib/fog/openstack/planning.rb +1 -1
  55. data/lib/fog/openstack/requests/baremetal/set_node_maintenance.rb +36 -0
  56. data/lib/fog/openstack/requests/baremetal/set_node_power_state.rb +35 -0
  57. data/lib/fog/openstack/requests/baremetal/set_node_provision_state.rb +38 -0
  58. data/lib/fog/openstack/requests/baremetal/unset_node_maintenance.rb +36 -0
  59. data/lib/fog/openstack/requests/compute/create_flavor_metadata.rb +38 -0
  60. data/lib/fog/openstack/requests/compute/create_security_group.rb +1 -1
  61. data/lib/fog/openstack/requests/compute/delete_service.rb +32 -0
  62. data/lib/fog/openstack/requests/compute/disable_service.rb +37 -0
  63. data/lib/fog/openstack/requests/compute/disable_service_log_reason.rb +38 -0
  64. data/lib/fog/openstack/requests/compute/enable_service.rb +38 -0
  65. data/lib/fog/openstack/requests/compute/get_flavor_metadata.rb +27 -0
  66. data/lib/fog/openstack/requests/compute/list_services.rb +72 -0
  67. data/lib/fog/openstack/requests/compute/list_tenants_with_flavor_access.rb +1 -1
  68. data/lib/fog/openstack/requests/compute/list_zones.rb +32 -0
  69. data/lib/fog/openstack/requests/identity_v2/add_user_to_tenant.rb +36 -0
  70. data/lib/fog/openstack/requests/identity_v2/check_token.rb +22 -0
  71. data/lib/fog/openstack/requests/identity_v2/create_ec2_credential.rb +59 -0
  72. data/lib/fog/openstack/requests/identity_v2/create_role.rb +38 -0
  73. data/lib/fog/openstack/requests/identity_v2/create_tenant.rb +34 -0
  74. data/lib/fog/openstack/requests/identity_v2/create_user.rb +45 -0
  75. data/lib/fog/openstack/requests/identity_v2/create_user_role.rb +26 -0
  76. data/lib/fog/openstack/requests/identity_v2/delete_ec2_credential.rb +43 -0
  77. data/lib/fog/openstack/requests/identity_v2/delete_role.rb +30 -0
  78. data/lib/fog/openstack/requests/identity_v2/delete_tenant.rb +33 -0
  79. data/lib/fog/openstack/requests/identity_v2/delete_user.rb +30 -0
  80. data/lib/fog/openstack/requests/identity_v2/delete_user_role.rb +25 -0
  81. data/lib/fog/openstack/requests/identity_v2/get_ec2_credential.rb +50 -0
  82. data/lib/fog/openstack/requests/identity_v2/get_role.rb +30 -0
  83. data/lib/fog/openstack/requests/identity_v2/get_tenant.rb +33 -0
  84. data/lib/fog/openstack/requests/identity_v2/get_tenants_by_id.rb +20 -0
  85. data/lib/fog/openstack/requests/identity_v2/get_tenants_by_name.rb +20 -0
  86. data/lib/fog/openstack/requests/identity_v2/get_user_by_id.rb +34 -0
  87. data/lib/fog/openstack/requests/identity_v2/get_user_by_name.rb +29 -0
  88. data/lib/fog/openstack/requests/identity_v2/list_ec2_credentials.rb +45 -0
  89. data/lib/fog/openstack/requests/identity_v2/list_endpoints_for_token.rb +20 -0
  90. data/lib/fog/openstack/requests/identity_v2/list_roles.rb +33 -0
  91. data/lib/fog/openstack/requests/identity_v2/list_roles_for_user_on_tenant.rb +32 -0
  92. data/lib/fog/openstack/requests/identity_v2/list_tenants.rb +47 -0
  93. data/lib/fog/openstack/requests/identity_v2/list_user_global_roles.rb +20 -0
  94. data/lib/fog/openstack/requests/identity_v2/list_users.rb +35 -0
  95. data/lib/fog/openstack/requests/identity_v2/remove_user_from_tenant.rb +22 -0
  96. data/lib/fog/openstack/requests/identity_v2/set_tenant.rb +21 -0
  97. data/lib/fog/openstack/requests/identity_v2/update_tenant.rb +30 -0
  98. data/lib/fog/openstack/requests/identity_v2/update_user.rb +34 -0
  99. data/lib/fog/openstack/requests/identity_v2/validate_token.rb +22 -0
  100. data/lib/fog/openstack/requests/identity_v3/add_user_to_group.rb +20 -0
  101. data/lib/fog/openstack/requests/identity_v3/auth_domains.rb +29 -0
  102. data/lib/fog/openstack/requests/identity_v3/auth_projects.rb +29 -0
  103. data/lib/fog/openstack/requests/identity_v3/check_domain_group_role.rb +20 -0
  104. data/lib/fog/openstack/requests/identity_v3/check_domain_user_role.rb +20 -0
  105. data/lib/fog/openstack/requests/identity_v3/check_project_group_role.rb +20 -0
  106. data/lib/fog/openstack/requests/identity_v3/check_project_user_role.rb +20 -0
  107. data/lib/fog/openstack/requests/identity_v3/create_domain.rb +21 -0
  108. data/lib/fog/openstack/requests/identity_v3/create_endpoint.rb +21 -0
  109. data/lib/fog/openstack/requests/identity_v3/create_group.rb +21 -0
  110. data/lib/fog/openstack/requests/identity_v3/create_os_credential.rb +21 -0
  111. data/lib/fog/openstack/requests/identity_v3/create_policy.rb +21 -0
  112. data/lib/fog/openstack/requests/identity_v3/create_project.rb +21 -0
  113. data/lib/fog/openstack/requests/identity_v3/create_role.rb +21 -0
  114. data/lib/fog/openstack/requests/identity_v3/create_service.rb +21 -0
  115. data/lib/fog/openstack/requests/identity_v3/create_user.rb +21 -0
  116. data/lib/fog/openstack/requests/identity_v3/delete_domain.rb +20 -0
  117. data/lib/fog/openstack/requests/identity_v3/delete_endpoint.rb +20 -0
  118. data/lib/fog/openstack/requests/identity_v3/delete_group.rb +20 -0
  119. data/lib/fog/openstack/requests/identity_v3/delete_os_credential.rb +20 -0
  120. data/lib/fog/openstack/requests/identity_v3/delete_policy.rb +20 -0
  121. data/lib/fog/openstack/requests/identity_v3/delete_project.rb +20 -0
  122. data/lib/fog/openstack/requests/identity_v3/delete_role.rb +20 -0
  123. data/lib/fog/openstack/requests/identity_v3/delete_service.rb +20 -0
  124. data/lib/fog/openstack/requests/identity_v3/delete_user.rb +20 -0
  125. data/lib/fog/openstack/requests/identity_v3/get_domain.rb +23 -0
  126. data/lib/fog/openstack/requests/identity_v3/get_endpoint.rb +23 -0
  127. data/lib/fog/openstack/requests/identity_v3/get_group.rb +23 -0
  128. data/lib/fog/openstack/requests/identity_v3/get_os_credential.rb +23 -0
  129. data/lib/fog/openstack/requests/identity_v3/get_policy.rb +23 -0
  130. data/lib/fog/openstack/requests/identity_v3/get_project.rb +23 -0
  131. data/lib/fog/openstack/requests/identity_v3/get_role.rb +23 -0
  132. data/lib/fog/openstack/requests/identity_v3/get_service.rb +23 -0
  133. data/lib/fog/openstack/requests/identity_v3/get_user.rb +23 -0
  134. data/lib/fog/openstack/requests/identity_v3/grant_domain_group_role.rb +20 -0
  135. data/lib/fog/openstack/requests/identity_v3/grant_domain_user_role.rb +20 -0
  136. data/lib/fog/openstack/requests/identity_v3/grant_project_group_role.rb +20 -0
  137. data/lib/fog/openstack/requests/identity_v3/grant_project_user_role.rb +20 -0
  138. data/lib/fog/openstack/requests/identity_v3/group_user_check.rb +20 -0
  139. data/lib/fog/openstack/requests/identity_v3/list_domain_group_roles.rb +23 -0
  140. data/lib/fog/openstack/requests/identity_v3/list_domain_user_roles.rb +23 -0
  141. data/lib/fog/openstack/requests/identity_v3/list_domains.rb +31 -0
  142. data/lib/fog/openstack/requests/identity_v3/list_endpoints.rb +31 -0
  143. data/lib/fog/openstack/requests/identity_v3/list_group_users.rb +32 -0
  144. data/lib/fog/openstack/requests/identity_v3/list_groups.rb +42 -0
  145. data/lib/fog/openstack/requests/identity_v3/list_os_credentials.rb +29 -0
  146. data/lib/fog/openstack/requests/identity_v3/list_policies.rb +28 -0
  147. data/lib/fog/openstack/requests/identity_v3/list_project_group_roles.rb +23 -0
  148. data/lib/fog/openstack/requests/identity_v3/list_project_user_roles.rb +23 -0
  149. data/lib/fog/openstack/requests/identity_v3/list_projects.rb +42 -0
  150. data/lib/fog/openstack/requests/identity_v3/list_role_assignments.rb +35 -0
  151. data/lib/fog/openstack/requests/identity_v3/list_roles.rb +42 -0
  152. data/lib/fog/openstack/requests/identity_v3/list_services.rb +30 -0
  153. data/lib/fog/openstack/requests/identity_v3/list_user_groups.rb +23 -0
  154. data/lib/fog/openstack/requests/identity_v3/list_user_projects.rb +23 -0
  155. data/lib/fog/openstack/requests/identity_v3/list_users.rb +32 -0
  156. data/lib/fog/openstack/requests/identity_v3/remove_user_from_group.rb +20 -0
  157. data/lib/fog/openstack/requests/identity_v3/revoke_domain_group_role.rb +20 -0
  158. data/lib/fog/openstack/requests/identity_v3/revoke_domain_user_role.rb +20 -0
  159. data/lib/fog/openstack/requests/identity_v3/revoke_project_group_role.rb +20 -0
  160. data/lib/fog/openstack/requests/identity_v3/revoke_project_user_role.rb +20 -0
  161. data/lib/fog/openstack/requests/identity_v3/token_authenticate.rb +21 -0
  162. data/lib/fog/openstack/requests/identity_v3/token_check.rb +21 -0
  163. data/lib/fog/openstack/requests/identity_v3/token_revoke.rb +21 -0
  164. data/lib/fog/openstack/requests/identity_v3/token_validate.rb +22 -0
  165. data/lib/fog/openstack/requests/identity_v3/update_domain.rb +21 -0
  166. data/lib/fog/openstack/requests/identity_v3/update_endpoint.rb +21 -0
  167. data/lib/fog/openstack/requests/identity_v3/update_group.rb +21 -0
  168. data/lib/fog/openstack/requests/identity_v3/update_os_credential.rb +21 -0
  169. data/lib/fog/openstack/requests/identity_v3/update_policy.rb +21 -0
  170. data/lib/fog/openstack/requests/identity_v3/update_project.rb +21 -0
  171. data/lib/fog/openstack/requests/identity_v3/update_role.rb +21 -0
  172. data/lib/fog/openstack/requests/identity_v3/update_service.rb +21 -0
  173. data/lib/fog/openstack/requests/identity_v3/update_user.rb +21 -0
  174. data/lib/fog/openstack/requests/image/list_public_images_detailed.rb +1 -1
  175. data/lib/fog/openstack/volume.rb +1 -1
  176. data/lib/fog/version.rb +1 -1
  177. data/lib/fog/vsphere/requests/compute/cloudinit_to_customspec.rb +27 -8
  178. data/lib/fog/vsphere/requests/compute/vm_clone.rb +376 -37
  179. data/lib/tasks/changelog_task.rb +1 -1
  180. data/spec/fog/openstack/identity_v3/authv3_a.yml +61 -0
  181. data/spec/fog/openstack/identity_v3/authv3_b.yml +61 -0
  182. data/spec/fog/openstack/identity_v3/authv3_c.yml +61 -0
  183. data/spec/fog/openstack/identity_v3/authv3_project.yml +61 -0
  184. data/spec/fog/openstack/identity_v3/authv3_token.yml +151 -0
  185. data/spec/fog/openstack/identity_v3/authv3_unscoped.yml +334 -0
  186. data/spec/fog/openstack/identity_v3/idv2_unscoped_token_v3.yml +467 -0
  187. data/spec/fog/openstack/identity_v3/idv3.yml +61 -0
  188. data/spec/fog/openstack/identity_v3/idv3_credential.yml +111 -0
  189. data/spec/fog/openstack/identity_v3/idv3_credential_crud.yml +528 -0
  190. data/spec/fog/openstack/identity_v3/idv3_domain.yml +195 -0
  191. data/spec/fog/openstack/identity_v3/idv3_domain_crud.yml +686 -0
  192. data/spec/fog/openstack/identity_v3/idv3_domain_group_roles_mutation.yml +906 -0
  193. data/spec/fog/openstack/identity_v3/idv3_domain_roles_mutation.yml +505 -0
  194. data/spec/fog/openstack/identity_v3/idv3_endpoint.yml +303 -0
  195. data/spec/fog/openstack/identity_v3/idv3_endpoints_crud.yml +718 -0
  196. data/spec/fog/openstack/identity_v3/idv3_group_crud_mutation.yml +975 -0
  197. data/spec/fog/openstack/identity_v3/idv3_policy.yml +147 -0
  198. data/spec/fog/openstack/identity_v3/idv3_policy_crud.yml +368 -0
  199. data/spec/fog/openstack/identity_v3/idv3_project.yml +211 -0
  200. data/spec/fog/openstack/identity_v3/idv3_project_crud.yml +663 -0
  201. data/spec/fog/openstack/identity_v3/idv3_project_group_user_roles_mutation.yml +1378 -0
  202. data/spec/fog/openstack/identity_v3/idv3_role.yml +199 -0
  203. data/spec/fog/openstack/identity_v3/idv3_role_crud.yml +616 -0
  204. data/spec/fog/openstack/identity_v3/idv3_service.yml +223 -0
  205. data/spec/fog/openstack/identity_v3/idv3_services_crud.yml +562 -0
  206. data/spec/fog/openstack/identity_v3/idv3_token.yml +240 -0
  207. data/spec/fog/openstack/identity_v3/idv3_user_crud.yml +572 -0
  208. data/spec/fog/openstack/identity_v3/idv3_users.yml +393 -0
  209. data/spec/fog/openstack/identity_v3_spec.rb +929 -0
  210. data/tests/openstack/requests/baremetal/node_tests.rb +18 -0
  211. data/tests/openstack/requests/compute/flavor_tests.rb +18 -0
  212. data/tests/openstack/requests/compute/service_tests.rb +33 -0
  213. metadata +259 -49
  214. data/lib/fog/openstack/models/identity/ec2_credential.rb +0 -44
  215. data/lib/fog/openstack/models/identity/ec2_credentials.rb +0 -53
  216. data/lib/fog/openstack/models/identity/role.rb +0 -50
  217. data/lib/fog/openstack/models/identity/roles.rb +0 -20
  218. data/lib/fog/openstack/models/identity/tenant.rb +0 -62
  219. data/lib/fog/openstack/models/identity/tenants.rb +0 -29
  220. data/lib/fog/openstack/models/identity/user.rb +0 -69
  221. data/lib/fog/openstack/models/identity/users.rb +0 -41
  222. data/lib/fog/openstack/requests/identity/add_user_to_tenant.rb +0 -34
  223. data/lib/fog/openstack/requests/identity/check_token.rb +0 -20
  224. data/lib/fog/openstack/requests/identity/create_ec2_credential.rb +0 -57
  225. data/lib/fog/openstack/requests/identity/create_role.rb +0 -36
  226. data/lib/fog/openstack/requests/identity/create_tenant.rb +0 -32
  227. data/lib/fog/openstack/requests/identity/create_user.rb +0 -43
  228. data/lib/fog/openstack/requests/identity/create_user_role.rb +0 -24
  229. data/lib/fog/openstack/requests/identity/delete_ec2_credential.rb +0 -42
  230. data/lib/fog/openstack/requests/identity/delete_role.rb +0 -28
  231. data/lib/fog/openstack/requests/identity/delete_tenant.rb +0 -31
  232. data/lib/fog/openstack/requests/identity/delete_user.rb +0 -28
  233. data/lib/fog/openstack/requests/identity/delete_user_role.rb +0 -23
  234. data/lib/fog/openstack/requests/identity/get_ec2_credential.rb +0 -48
  235. data/lib/fog/openstack/requests/identity/get_role.rb +0 -28
  236. data/lib/fog/openstack/requests/identity/get_tenant.rb +0 -31
  237. data/lib/fog/openstack/requests/identity/get_tenants_by_id.rb +0 -18
  238. data/lib/fog/openstack/requests/identity/get_tenants_by_name.rb +0 -18
  239. data/lib/fog/openstack/requests/identity/get_user_by_id.rb +0 -32
  240. data/lib/fog/openstack/requests/identity/get_user_by_name.rb +0 -27
  241. data/lib/fog/openstack/requests/identity/list_ec2_credentials.rb +0 -43
  242. data/lib/fog/openstack/requests/identity/list_endpoints_for_token.rb +0 -18
  243. data/lib/fog/openstack/requests/identity/list_roles.rb +0 -31
  244. data/lib/fog/openstack/requests/identity/list_roles_for_user_on_tenant.rb +0 -30
  245. data/lib/fog/openstack/requests/identity/list_tenants.rb +0 -45
  246. data/lib/fog/openstack/requests/identity/list_user_global_roles.rb +0 -18
  247. data/lib/fog/openstack/requests/identity/list_users.rb +0 -33
  248. data/lib/fog/openstack/requests/identity/remove_user_from_tenant.rb +0 -20
  249. data/lib/fog/openstack/requests/identity/set_tenant.rb +0 -19
  250. data/lib/fog/openstack/requests/identity/update_tenant.rb +0 -28
  251. data/lib/fog/openstack/requests/identity/update_user.rb +0 -32
  252. data/lib/fog/openstack/requests/identity/validate_token.rb +0 -20
@@ -0,0 +1,45 @@
1
+ module Fog
2
+ module Identity
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def create_user(name, password, email, tenantId=nil, enabled=true)
7
+ data = {
8
+ 'user' => {
9
+ 'name' => name,
10
+ 'password' => password,
11
+ 'tenantId' => tenantId,
12
+ 'email' => email,
13
+ 'enabled' => enabled,
14
+ }
15
+ }
16
+
17
+ request(
18
+ :body => Fog::JSON.encode(data),
19
+ :expects => [200, 202],
20
+ :method => 'POST',
21
+ :path => '/users'
22
+ )
23
+ end
24
+ end
25
+
26
+ class Mock
27
+ def create_user(name, password, email, tenantId=nil, enabled=true)
28
+ response = Excon::Response.new
29
+ response.status = 200
30
+ data = {
31
+ 'id' => Fog::Mock.random_hex(32),
32
+ 'name' => name,
33
+ 'email' => email,
34
+ 'tenantId' => tenantId,
35
+ 'enabled' => enabled
36
+ }
37
+ self.data[:users][data['id']] = data
38
+ response.body = {'user' => data}
39
+ response
40
+ end
41
+ end
42
+ end # class V2
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,26 @@
1
+ module Fog
2
+ module Identity
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def create_user_role(tenant_id, user_id, role_id)
7
+ request(
8
+ :expects => 200,
9
+ :method => 'PUT',
10
+ :path => "/tenants/#{tenant_id}/users/#{user_id}/roles/OS-KSADM/#{role_id}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def create_user_role(tenant_id, user_id, role_id)
17
+ Excon::Response.new(
18
+ :body => {'role' => self.data[:roles][role_id]},
19
+ :status => 200
20
+ )
21
+ end
22
+ end
23
+ end # class V2
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,43 @@
1
+ module Fog
2
+ module Identity
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ ##
7
+ # Destroy an EC2 credential for a user. Requires administrator
8
+ # credentials.
9
+ #
10
+ # ==== Parameters
11
+ # * user_id<~String>: The id of the user to delete the credential
12
+ # for
13
+ # * access<~String>: The access key of the credential to destroy
14
+ #
15
+ # ==== Returns
16
+ # * response<~Excon::Response>:
17
+ # * body<~String>: Empty string
18
+
19
+ def delete_ec2_credential(user_id, access)
20
+ request(
21
+ :expects => [200, 204],
22
+ :method => 'DELETE',
23
+ :path => "users/#{user_id}/credentials/OS-EC2/#{access}"
24
+ )
25
+ end
26
+ end
27
+
28
+ class Mock
29
+ def delete_ec2_credential(user_id, access)
30
+ raise Fog::Identity::OpenStack::NotFound unless self.data[:ec2_credentials][user_id][access]
31
+
32
+ self.data[:ec2_credentials][user_id].delete access
33
+
34
+ response = Excon::Response.new
35
+ response.status = 204
36
+ response
37
+ rescue
38
+ end
39
+ end
40
+ end # class V2
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,30 @@
1
+ module Fog
2
+ module Identity
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def delete_role(role_id)
7
+ request(
8
+ :expects => [200, 204],
9
+ :method => 'DELETE',
10
+ :path => "/OS-KSADM/roles/#{role_id}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def delete_role(role_id)
17
+ response = Excon::Response.new
18
+ if self.data[:roles][role_id]
19
+ self.data[:roles].delete(role_id)
20
+ response.status = 204
21
+ response
22
+ else
23
+ raise Fog::Identity::OpenStack::NotFound
24
+ end
25
+ end
26
+ end
27
+ end # class V2
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,33 @@
1
+ module Fog
2
+ module Identity
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def delete_tenant(id)
7
+ request(
8
+ :expects => [200, 204],
9
+ :method => 'DELETE',
10
+ :path => "tenants/#{id}"
11
+ )
12
+ end # def create_tenant
13
+ end # class Real
14
+
15
+ class Mock
16
+ def delete_tenant(attributes)
17
+ response = Excon::Response.new
18
+ response.status = [200, 204][rand(1)]
19
+ response.body = {
20
+ 'tenant' => {
21
+ 'id' => '1',
22
+ 'description' => 'Has access to everything',
23
+ 'enabled' => true,
24
+ 'name' => 'admin'
25
+ }
26
+ }
27
+ response
28
+ end # def create_tenant
29
+ end # class Mock
30
+ end # class V2
31
+ end # class OpenStack
32
+ end # module Identity
33
+ end # module Fog
@@ -0,0 +1,30 @@
1
+ module Fog
2
+ module Identity
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def delete_user(user_id)
7
+ request(
8
+ :expects => [200, 204],
9
+ :method => 'DELETE',
10
+ :path => "users/#{user_id}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def delete_user(user_id)
17
+ self.data[:users].delete(
18
+ list_users.body['users'].find { |x| x['id'] == user_id }['id'])
19
+
20
+ response = Excon::Response.new
21
+ response.status = 204
22
+ response
23
+ rescue
24
+ raise Fog::Identity::OpenStack::NotFound
25
+ end
26
+ end
27
+ end # class V2
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,25 @@
1
+ module Fog
2
+ module Identity
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def delete_user_role(tenant_id, user_id, role_id)
7
+ request(
8
+ :expects => 204,
9
+ :method => 'DELETE',
10
+ :path => "/tenants/#{tenant_id}/users/#{user_id}/roles/OS-KSADM/#{role_id}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def delete_user_role(tenant_id, user_id, role_id)
17
+ response = Excon::Response.new
18
+ response.status = 204
19
+ response
20
+ end
21
+ end
22
+ end # class V2
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,50 @@
1
+ module Fog
2
+ module Identity
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ ##
7
+ # Retrieves an EC2 credential for a user. Requires administrator
8
+ # credentials.
9
+ #
10
+ # ==== Parameters
11
+ # * user_id<~String>: The id of the user to retrieve the credential
12
+ # for
13
+ # * access<~String>: The access key of the credential to retrieve
14
+ #
15
+ # ==== Returns
16
+ # * response<~Excon::Response>:
17
+ # * body<~Hash>:
18
+ # * 'credential'<~Hash>: The EC2 credential
19
+ # * 'access'<~String>: The access key
20
+ # * 'secret'<~String>: The secret key
21
+ # * 'user_id'<~String>: The user id
22
+ # * 'tenant_id'<~String>: The tenant id
23
+
24
+ def get_ec2_credential(user_id, access)
25
+ request(
26
+ :expects => [200, 202],
27
+ :method => 'GET',
28
+ :path => "users/#{user_id}/credentials/OS-EC2/#{access}"
29
+ )
30
+ rescue Excon::Errors::Unauthorized
31
+ raise Fog::Identity::OpenStack::NotFound
32
+ end
33
+ end
34
+
35
+ class Mock
36
+ def get_ec2_credential(user_id, access)
37
+ ec2_credential = self.data[:ec2_credentials][user_id][access]
38
+
39
+ raise Fog::OpenStack::Identity::NotFound unless ec2_credential
40
+
41
+ response = Excon::Response.new
42
+ response.status = 200
43
+ response.body = {'credential' => ec2_credential}
44
+ response
45
+ end
46
+ end
47
+ end # class V2
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,30 @@
1
+ module Fog
2
+ module Identity
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def get_role(id)
7
+ request(
8
+ :expects => [200, 204],
9
+ :method => 'GET',
10
+ :path => "/OS-KSADM/roles/#{id}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def get_role(id)
17
+ response = Excon::Response.new
18
+ if data = self.data[:roles][id]
19
+ response.status = 200
20
+ response.body = {'role' => data}
21
+ response
22
+ else
23
+ raise Fog::Identity::OpenStack::NotFound
24
+ end
25
+ end
26
+ end # class Mock
27
+ end # class V2
28
+ end # class OpenStack
29
+ end # module Identity
30
+ end # module Fog
@@ -0,0 +1,33 @@
1
+ module Fog
2
+ module Identity
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def get_tenant(id)
7
+ request(
8
+ :expects => [200, 204],
9
+ :method => 'GET',
10
+ :path => "tenants/#{id}"
11
+ )
12
+ end
13
+ end # class Real
14
+
15
+ class Mock
16
+ def get_tenant(id)
17
+ response = Excon::Response.new
18
+ response.status = [200, 204][rand(1)]
19
+ response.body = {
20
+ 'tenant' => {
21
+ 'id' => id,
22
+ 'description' => 'Has access to everything',
23
+ 'enabled' => true,
24
+ 'name' => 'admin'
25
+ }
26
+ }
27
+ response
28
+ end # def list_tenants
29
+ end # class Mock
30
+ end # class V2
31
+ end # class OpenStack
32
+ end # module Identity
33
+ end # module Fog
@@ -0,0 +1,20 @@
1
+ module Fog
2
+ module Identity
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def get_tenants_by_id(tenant_id)
7
+ request(
8
+ :expects => [200],
9
+ :method => 'GET',
10
+ :path => "tenants/#{tenant_id}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ end
17
+ end # class V2
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ module Fog
2
+ module Identity
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def get_tenants_by_name(name)
7
+ request(
8
+ :expects => [200],
9
+ :method => 'GET',
10
+ :path => "tenants?name=#{name}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ end
17
+ end # class V2
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,34 @@
1
+ module Fog
2
+ module Identity
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def get_user_by_id(user_id)
7
+ request(
8
+ :expects => [200, 203],
9
+ :method => 'GET',
10
+ :path => "users/#{user_id}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def get_user_by_id(user_id)
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+
20
+ existing_user = self.data[:users].find do |u|
21
+ u[0] == user_id || u[1]['name'] == 'mock'
22
+ end
23
+ existing_user = existing_user[1] if existing_user
24
+
25
+ response.body = {
26
+ 'user' => existing_user || create_user('mock', 'mock', 'mock@email.com').body['user']
27
+ }
28
+ response
29
+ end
30
+ end
31
+ end # class V2
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,29 @@
1
+ module Fog
2
+ module Identity
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def get_user_by_name(name)
7
+ request(
8
+ :expects => [200, 203],
9
+ :method => 'GET',
10
+ :path => "users?name=#{name}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def get_user_by_name(name)
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+ user = self.data[:users].values.select { |user| user['name'] == name }[0]
20
+ response.body = {
21
+ 'user' => user
22
+ }
23
+ response
24
+ end
25
+ end
26
+ end # class V2
27
+ end
28
+ end
29
+ end