aviator 0.0.4 → 0.0.5

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 (166) hide show
  1. checksums.yaml +8 -8
  2. data/README.md +4 -3
  3. data/lib/aviator/core.rb +1 -0
  4. data/lib/aviator/core/request.rb +0 -35
  5. data/lib/aviator/core/request_builder.rb +37 -0
  6. data/lib/aviator/core/response.rb +11 -3
  7. data/lib/aviator/core/service.rb +3 -2
  8. data/lib/aviator/openstack/compute/v2/admin/confirm_server_resize.rb +46 -0
  9. data/lib/aviator/openstack/compute/v2/admin/get_host_details.rb +40 -0
  10. data/lib/aviator/openstack/compute/v2/admin/list_hosts.rb +55 -0
  11. data/lib/aviator/openstack/compute/v2/admin/resize_server.rb +51 -0
  12. data/lib/aviator/openstack/compute/v2/admin/revert_server_resize.rb +46 -0
  13. data/lib/aviator/openstack/compute/v2/public/delete_image.rb +40 -0
  14. data/lib/aviator/openstack/compute/v2/public/get_image_details.rb +40 -0
  15. data/lib/aviator/openstack/compute/v2/public/list_servers.rb +12 -1
  16. data/lib/aviator/openstack/identity/v2/admin/add_role_to_user_on_tenant.rb +46 -0
  17. data/lib/aviator/openstack/identity/v2/admin/create_user.rb +66 -0
  18. data/lib/aviator/openstack/identity/v2/admin/delete_role_from_user_on_tenant.rb +46 -0
  19. data/lib/aviator/openstack/identity/v2/admin/delete_tenant.rb +40 -0
  20. data/lib/aviator/openstack/identity/v2/admin/delete_user.rb +39 -0
  21. data/lib/aviator/openstack/identity/v2/admin/list_users.rb +37 -0
  22. data/lib/aviator/openstack/identity/v2/admin/update_tenant.rb +57 -0
  23. data/lib/aviator/openstack/identity/v2/admin/update_user.rb +61 -0
  24. data/lib/aviator/openstack/identity/v2/public/root.rb +34 -0
  25. data/lib/aviator/openstack/image/v1/public/root.rb +34 -0
  26. data/lib/aviator/openstack/metering/v1/admin/list_projects.rb +34 -0
  27. data/lib/aviator/openstack/volume/v1/public/root.rb +34 -0
  28. data/lib/aviator/version.rb +1 -1
  29. data/test/aviator/core/request_builder_test.rb +61 -0
  30. data/test/aviator/openstack/compute/v2/admin/confirm_server_resize_test.rb +145 -0
  31. data/test/aviator/openstack/compute/v2/admin/get_host_details_test.rb +133 -0
  32. data/test/aviator/openstack/compute/v2/admin/list_hosts_test.rb +138 -0
  33. data/test/aviator/openstack/compute/v2/admin/resize_server_test.rb +177 -0
  34. data/test/aviator/openstack/compute/v2/admin/revert_server_resize_test.rb +145 -0
  35. data/test/aviator/openstack/compute/v2/public/delete_image_test.rb +134 -0
  36. data/test/aviator/openstack/compute/v2/public/get_image_details_test.rb +134 -0
  37. data/test/aviator/openstack/compute/v2/public/list_servers_test.rb +63 -33
  38. data/test/aviator/openstack/identity/v2/admin/add_role_to_user_on_tenant_test.rb +192 -0
  39. data/test/aviator/openstack/identity/v2/admin/create_user_test.rb +161 -0
  40. data/test/aviator/openstack/identity/v2/admin/delete_role_from_user_on_tenant_test.rb +190 -0
  41. data/test/aviator/openstack/identity/v2/admin/delete_tenant_test.rb +132 -0
  42. data/test/aviator/openstack/identity/v2/admin/delete_user_test.rb +127 -0
  43. data/test/aviator/openstack/identity/v2/admin/list_users_test.rb +101 -0
  44. data/test/aviator/openstack/identity/v2/admin/update_tenant_test.rb +142 -0
  45. data/test/aviator/openstack/identity/v2/admin/update_user_test.rb +143 -0
  46. data/test/aviator/openstack/identity/v2/public/root_test.rb +106 -0
  47. data/test/aviator/openstack/image/v1/public/root_test.rb +106 -0
  48. data/test/aviator/openstack/metering/v1/admin/list_projects_test.rb +106 -0
  49. data/test/aviator/openstack/volume/v1/public/root_test.rb +106 -0
  50. data/test/cassettes/openstack/compute/v2/admin/confirm_server_resize/leads_to_a_valid_response_when_parameters_are_provided.yml +907 -0
  51. data/test/cassettes/openstack/compute/v2/admin/confirm_server_resize/leads_to_a_valid_response_when_the_id_parameter_is_invalid.yml +96 -0
  52. data/test/cassettes/openstack/compute/v2/admin/confirm_server_resize/returns_the_correct_value_for_body_.yml +876 -0
  53. data/test/cassettes/openstack/compute/v2/admin/confirm_server_resize/returns_the_correct_value_for_headers_.yml +876 -0
  54. data/test/cassettes/openstack/compute/v2/admin/confirm_server_resize/returns_the_correct_value_for_http_method_.yml +876 -0
  55. data/test/cassettes/openstack/compute/v2/admin/confirm_server_resize/returns_the_correct_value_for_url_.yml +876 -0
  56. data/test/cassettes/openstack/compute/v2/admin/get_host_details/leads_to_a_valid_response_when_invalid_params_are_provided.yml +96 -0
  57. data/test/cassettes/openstack/compute/v2/admin/get_host_details/leads_to_a_valid_response_when_valid_params_are_provided.yml +160 -0
  58. data/test/cassettes/openstack/compute/v2/admin/get_host_details/returns_the_correct_value_for_body_.yml +62 -0
  59. data/test/cassettes/openstack/compute/v2/admin/get_host_details/returns_the_correct_value_for_headers_.yml +62 -0
  60. data/test/cassettes/openstack/compute/v2/admin/get_host_details/returns_the_correct_value_for_http_method_.yml +62 -0
  61. data/test/cassettes/openstack/compute/v2/admin/get_host_details/returns_the_correct_value_for_url_.yml +101 -0
  62. data/test/cassettes/openstack/compute/v2/admin/list_hosts/leads_to_a_valid_response_when_invalid_zone_parameter_is_provided.yml +95 -0
  63. data/test/cassettes/openstack/compute/v2/admin/list_hosts/leads_to_a_valid_response_when_no_parameters_are_provided.yml +101 -0
  64. data/test/cassettes/openstack/compute/v2/admin/list_hosts/leads_to_a_valid_response_when_valid_zone_parameter_is_provided.yml +96 -0
  65. data/test/cassettes/openstack/compute/v2/admin/list_hosts/returns_the_correct_value_for_body_.yml +62 -0
  66. data/test/cassettes/openstack/compute/v2/admin/list_hosts/returns_the_correct_value_for_headers_.yml +62 -0
  67. data/test/cassettes/openstack/compute/v2/admin/list_hosts/returns_the_correct_value_for_http_method_.yml +62 -0
  68. data/test/cassettes/openstack/compute/v2/admin/list_hosts/returns_the_correct_value_for_url_.yml +62 -0
  69. data/test/cassettes/openstack/compute/v2/admin/resize_server/leads_to_a_valid_response_when_parameters_are_provided.yml +949 -0
  70. data/test/cassettes/openstack/compute/v2/admin/resize_server/leads_to_a_valid_response_when_the_flavorRef_parameter_is_invalid.yml +910 -0
  71. data/test/cassettes/openstack/compute/v2/admin/resize_server/leads_to_a_valid_response_when_the_id_parameter_is_invalid.yml +138 -0
  72. data/test/cassettes/openstack/compute/v2/admin/resize_server/returns_the_correct_value_for_body_.yml +902 -0
  73. data/test/cassettes/openstack/compute/v2/admin/resize_server/returns_the_correct_value_for_headers_.yml +902 -0
  74. data/test/cassettes/openstack/compute/v2/admin/resize_server/returns_the_correct_value_for_http_method_.yml +918 -0
  75. data/test/cassettes/openstack/compute/v2/admin/resize_server/returns_the_correct_value_for_url_.yml +902 -0
  76. data/test/cassettes/openstack/compute/v2/admin/revert_server_resize/leads_to_a_valid_response_when_parameters_are_provided.yml +326 -0
  77. data/test/cassettes/openstack/compute/v2/admin/revert_server_resize/leads_to_a_valid_response_when_the_id_parameter_is_invalid.yml +96 -0
  78. data/test/cassettes/openstack/compute/v2/admin/revert_server_resize/returns_the_correct_value_for_body_.yml +295 -0
  79. data/test/cassettes/openstack/compute/v2/admin/revert_server_resize/returns_the_correct_value_for_headers_.yml +295 -0
  80. data/test/cassettes/openstack/compute/v2/admin/revert_server_resize/returns_the_correct_value_for_http_method_.yml +295 -0
  81. data/test/cassettes/openstack/compute/v2/admin/revert_server_resize/returns_the_correct_value_for_url_.yml +295 -0
  82. data/test/cassettes/openstack/compute/v2/public/delete_image/leads_to_a_valid_response_when_invalid_params_are_provided.yml +96 -0
  83. data/test/cassettes/openstack/compute/v2/public/delete_image/leads_to_a_valid_response_when_valid_params_are_provided.yml +168 -0
  84. data/test/cassettes/openstack/compute/v2/public/delete_image/returns_the_correct_value_for_body_.yml +63 -0
  85. data/test/cassettes/openstack/compute/v2/public/delete_image/returns_the_correct_value_for_headers_.yml +63 -0
  86. data/test/cassettes/openstack/compute/v2/public/delete_image/returns_the_correct_value_for_http_method_.yml +63 -0
  87. data/test/cassettes/openstack/compute/v2/public/delete_image/returns_the_correct_value_for_url_.yml +63 -0
  88. data/test/cassettes/openstack/compute/v2/public/get_image_details/leads_to_a_valid_response_when_invalid_params_are_provided.yml +96 -0
  89. data/test/cassettes/openstack/compute/v2/public/get_image_details/leads_to_a_valid_response_when_valid_params_are_provided.yml +187 -0
  90. data/test/cassettes/openstack/compute/v2/public/get_image_details/returns_the_correct_value_for_body_.yml +63 -0
  91. data/test/cassettes/openstack/compute/v2/public/get_image_details/returns_the_correct_value_for_headers_.yml +63 -0
  92. data/test/cassettes/openstack/compute/v2/public/get_image_details/returns_the_correct_value_for_http_method_.yml +63 -0
  93. data/test/cassettes/openstack/compute/v2/public/get_image_details/returns_the_correct_value_for_url_.yml +63 -0
  94. data/test/cassettes/openstack/compute/v2/public/list_servers/leads_to_a_valid_response_when_the_all_tenants_parameter_is_provided.yml +274 -0
  95. data/test/cassettes/openstack/identity/v2/admin/add_role_to_user_on_tenant/leads_to_a_valid_response_when_invalid_role_id_is_provided.yml +98 -0
  96. data/test/cassettes/openstack/identity/v2/admin/add_role_to_user_on_tenant/leads_to_a_valid_response_when_invalid_tenant_id_is_provided.yml +98 -0
  97. data/test/cassettes/openstack/identity/v2/admin/add_role_to_user_on_tenant/leads_to_a_valid_response_when_invalid_user_id_is_provided.yml +98 -0
  98. data/test/cassettes/openstack/identity/v2/admin/add_role_to_user_on_tenant/leads_to_a_valid_response_when_valid_ids_are_provided.yml +97 -0
  99. data/test/cassettes/openstack/identity/v2/admin/add_role_to_user_on_tenant/returns_the_correct_value_for_body_.yml +64 -0
  100. data/test/cassettes/openstack/identity/v2/admin/add_role_to_user_on_tenant/returns_the_correct_value_for_headers_.yml +64 -0
  101. data/test/cassettes/openstack/identity/v2/admin/add_role_to_user_on_tenant/returns_the_correct_value_for_http_method_.yml +64 -0
  102. data/test/cassettes/openstack/identity/v2/admin/add_role_to_user_on_tenant/returns_the_correct_value_for_url_.yml +64 -0
  103. data/test/cassettes/openstack/identity/v2/admin/create_user/leads_to_a_valid_response_when_invalid_param_is_provided.yml +98 -0
  104. data/test/cassettes/openstack/identity/v2/admin/create_user/leads_to_a_valid_response_when_params_are_valid.yml +136 -0
  105. data/test/cassettes/openstack/identity/v2/admin/create_user/returns_the_correct_value_for_body_.yml +64 -0
  106. data/test/cassettes/openstack/identity/v2/admin/create_user/returns_the_correct_value_for_headers_.yml +64 -0
  107. data/test/cassettes/openstack/identity/v2/admin/create_user/returns_the_correct_value_for_http_method_.yml +64 -0
  108. data/test/cassettes/openstack/identity/v2/admin/create_user/returns_the_correct_value_for_url_.yml +64 -0
  109. data/test/cassettes/openstack/identity/v2/admin/delete_role_from_user_on_tenant/leads_to_a_valid_response_when_invalid_role_id_is_provided.yml +98 -0
  110. data/test/cassettes/openstack/identity/v2/admin/delete_role_from_user_on_tenant/leads_to_a_valid_response_when_invalid_tenant_id_is_provided.yml +98 -0
  111. data/test/cassettes/openstack/identity/v2/admin/delete_role_from_user_on_tenant/leads_to_a_valid_response_when_invalid_user_id_is_provided.yml +98 -0
  112. data/test/cassettes/openstack/identity/v2/admin/delete_role_from_user_on_tenant/leads_to_a_valid_response_when_valid_ids_are_provided.yml +95 -0
  113. data/test/cassettes/openstack/identity/v2/admin/delete_role_from_user_on_tenant/returns_the_correct_value_for_headers_.yml +64 -0
  114. data/test/cassettes/openstack/identity/v2/admin/delete_role_from_user_on_tenant/returns_the_correct_value_for_http_method_.yml +64 -0
  115. data/test/cassettes/openstack/identity/v2/admin/delete_role_from_user_on_tenant/returns_the_correct_value_for_url_.yml +64 -0
  116. data/test/cassettes/openstack/identity/v2/admin/delete_tenant/leads_to_a_valid_response_when_invalid_params_are_provided.yml +98 -0
  117. data/test/cassettes/openstack/identity/v2/admin/delete_tenant/leads_to_a_valid_response_when_valid_params_are_provided.yml +95 -0
  118. data/test/cassettes/openstack/identity/v2/admin/delete_tenant/returns_the_correct_value_for_body_.yml +64 -0
  119. data/test/cassettes/openstack/identity/v2/admin/delete_tenant/returns_the_correct_value_for_headers_.yml +64 -0
  120. data/test/cassettes/openstack/identity/v2/admin/delete_tenant/returns_the_correct_value_for_http_method_.yml +64 -0
  121. data/test/cassettes/openstack/identity/v2/admin/delete_tenant/returns_the_correct_value_for_url_.yml +64 -0
  122. data/test/cassettes/openstack/identity/v2/admin/delete_user/leads_to_a_valid_response_when_invalid_params_are_provided.yml +98 -0
  123. data/test/cassettes/openstack/identity/v2/admin/delete_user/leads_to_a_valid_response_when_valid_params_are_provided.yml +95 -0
  124. data/test/cassettes/openstack/identity/v2/admin/delete_user/returns_the_correct_value_for_body_.yml +64 -0
  125. data/test/cassettes/openstack/identity/v2/admin/delete_user/returns_the_correct_value_for_headers_.yml +64 -0
  126. data/test/cassettes/openstack/identity/v2/admin/delete_user/returns_the_correct_value_for_http_method_.yml +64 -0
  127. data/test/cassettes/openstack/identity/v2/admin/delete_user/returns_the_correct_value_for_url_.yml +64 -0
  128. data/test/cassettes/openstack/identity/v2/admin/list_users/leads_to_a_valid_response_when_no_parameters_are_provided.yml +114 -0
  129. data/test/cassettes/openstack/identity/v2/admin/list_users/returns_the_correct_value_for_body_.yml +64 -0
  130. data/test/cassettes/openstack/identity/v2/admin/list_users/returns_the_correct_value_for_headers_.yml +64 -0
  131. data/test/cassettes/openstack/identity/v2/admin/list_users/returns_the_correct_value_for_http_method_.yml +64 -0
  132. data/test/cassettes/openstack/identity/v2/admin/list_users/returns_the_correct_value_for_url_.yml +64 -0
  133. data/test/cassettes/openstack/identity/v2/admin/update_tenant/leads_to_a_valid_response_when_invalid_tenant_id_is_provided.yml +98 -0
  134. data/test/cassettes/openstack/identity/v2/admin/update_tenant/leads_to_a_valid_response_when_valid_tenant_id_is_provided.yml +140 -0
  135. data/test/cassettes/openstack/identity/v2/admin/update_tenant/returns_the_correct_value_for_body_.yml +64 -0
  136. data/test/cassettes/openstack/identity/v2/admin/update_tenant/returns_the_correct_value_for_headers_.yml +64 -0
  137. data/test/cassettes/openstack/identity/v2/admin/update_tenant/returns_the_correct_value_for_http_method_.yml +64 -0
  138. data/test/cassettes/openstack/identity/v2/admin/update_tenant/returns_the_correct_value_for_url_.yml +64 -0
  139. data/test/cassettes/openstack/identity/v2/admin/update_user/leads_to_a_valid_response_when_invalid_user_id_is_provided.yml +98 -0
  140. data/test/cassettes/openstack/identity/v2/admin/update_user/leads_to_a_valid_response_when_valid_user_id_is_provided.yml +100 -0
  141. data/test/cassettes/openstack/identity/v2/admin/update_user/returns_the_correct_value_for_body_.yml +64 -0
  142. data/test/cassettes/openstack/identity/v2/admin/update_user/returns_the_correct_value_for_headers_.yml +64 -0
  143. data/test/cassettes/openstack/identity/v2/admin/update_user/returns_the_correct_value_for_http_method_.yml +64 -0
  144. data/test/cassettes/openstack/identity/v2/admin/update_user/returns_the_correct_value_for_url_.yml +64 -0
  145. data/test/cassettes/openstack/identity/v2/public/root/leads_to_a_valid_response_when_no_parameters_are_provided.yml +104 -0
  146. data/test/cassettes/openstack/identity/v2/public/root/returns_the_correct_value_for_body_.yml +65 -0
  147. data/test/cassettes/openstack/identity/v2/public/root/returns_the_correct_value_for_headers_.yml +65 -0
  148. data/test/cassettes/openstack/identity/v2/public/root/returns_the_correct_value_for_http_method_.yml +65 -0
  149. data/test/cassettes/openstack/identity/v2/public/root/returns_the_correct_value_for_url_.yml +65 -0
  150. data/test/cassettes/openstack/image/v1/public/root/leads_to_a_valid_response_when_no_parameters_are_provided.yml +105 -0
  151. data/test/cassettes/openstack/image/v1/public/root/returns_the_correct_value_for_body_.yml +65 -0
  152. data/test/cassettes/openstack/image/v1/public/root/returns_the_correct_value_for_headers_.yml +65 -0
  153. data/test/cassettes/openstack/image/v1/public/root/returns_the_correct_value_for_http_method_.yml +65 -0
  154. data/test/cassettes/openstack/image/v1/public/root/returns_the_correct_value_for_url_.yml +65 -0
  155. data/test/cassettes/openstack/metering/v1/admin/projects/leads_to_a_valid_response_when_no_parameters_are_provided.yml +97 -0
  156. data/test/cassettes/openstack/metering/v1/admin/projects/returns_the_correct_value_for_body_.yml +65 -0
  157. data/test/cassettes/openstack/metering/v1/admin/projects/returns_the_correct_value_for_headers_.yml +65 -0
  158. data/test/cassettes/openstack/metering/v1/admin/projects/returns_the_correct_value_for_http_method_.yml +65 -0
  159. data/test/cassettes/openstack/metering/v1/admin/projects/returns_the_correct_value_for_url_.yml +65 -0
  160. data/test/cassettes/openstack/volume/v1/public/root/leads_to_a_valid_response_when_no_parameters_are_provided.yml +104 -0
  161. data/test/cassettes/openstack/volume/v1/public/root/returns_the_correct_value_for_body_.yml +65 -0
  162. data/test/cassettes/openstack/volume/v1/public/root/returns_the_correct_value_for_headers_.yml +65 -0
  163. data/test/cassettes/openstack/volume/v1/public/root/returns_the_correct_value_for_http_method_.yml +65 -0
  164. data/test/cassettes/openstack/volume/v1/public/root/returns_the_correct_value_for_url_.yml +65 -0
  165. data/test/support/vcr_setup.rb +10 -5
  166. metadata +292 -2
@@ -0,0 +1,40 @@
1
+ module Aviator
2
+
3
+ define_request :get_image_details do
4
+
5
+ meta :provider, :openstack
6
+ meta :service, :compute
7
+ meta :api_version, :v2
8
+ meta :endpoint_type, :public
9
+
10
+ link 'documentation',
11
+ 'http://docs.openstack.org/api/openstack-compute/2/content/Get_Image_Details-d1e4848.html'
12
+
13
+ param :id, required: true
14
+
15
+
16
+ def headers
17
+ h = {}
18
+
19
+ unless self.anonymous?
20
+ h['X-Auth-Token'] = session_data[:access][:token][:id]
21
+ end
22
+
23
+ h
24
+ end
25
+
26
+
27
+ def http_method
28
+ :get
29
+ end
30
+
31
+
32
+ def url
33
+ service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == service.to_s }
34
+
35
+ "#{ service_spec[:endpoints][0][:publicURL] }/images/#{ params[:id]}"
36
+ end
37
+
38
+ end
39
+
40
+ end
@@ -10,6 +10,16 @@ module Aviator
10
10
  link 'documentation',
11
11
  'http://docs.openstack.org/api/openstack-compute/2/content/List_Servers-d1e2078.html'
12
12
 
13
+ link 'documentation',
14
+ 'http://docs.openstack.org/api/openstack-compute/2/content/GET_listServers_v2__tenant_id__servers_compute_servers.html'
15
+
16
+ link 'github issue: getting all servers',
17
+ 'https://github.com/aviator/aviator/issues/35'
18
+
19
+ link 'related mailing list discussion',
20
+ 'https://lists.launchpad.net/openstack/msg24695.html'
21
+
22
+ param :all_tenants, required: false
13
23
  param :details, required: false
14
24
  param :flavor, required: false
15
25
  param :image, required: false
@@ -45,7 +55,8 @@ module Aviator
45
55
  filters = []
46
56
 
47
57
  (optional_params + required_params - [:details]).each do |param_name|
48
- filters << "#{ param_name }=#{ params[param_name] }" if params[param_name]
58
+ value = param_name == :all_tenants && params[param_name] ? 1 : params[param_name]
59
+ filters << "#{ param_name }=#{ value }" if value
49
60
  end
50
61
 
51
62
  str += "?#{ filters.join('&') }" unless filters.empty?
@@ -0,0 +1,46 @@
1
+ module Aviator
2
+
3
+ define_request :add_role_to_user_on_tenant do
4
+
5
+ meta :provider, :openstack
6
+ meta :service, :identity
7
+ meta :api_version, :v2
8
+ meta :endpoint_type, :admin
9
+
10
+
11
+ link 'documentation',
12
+ 'http://docs.openstack.org/api/openstack-identity-service/2.0/content/PUT_addRolesToUserOnTenant_v2.0_tenants__tenantId__users__userId__roles_OS-KSADM__roleId__.html'
13
+
14
+
15
+ param :tenant_id, required: true
16
+ param :user_id, required: true
17
+ param :role_id, required: true
18
+
19
+
20
+ def headers
21
+ h = {}
22
+
23
+ unless self.anonymous?
24
+ h['X-Auth-Token'] = session_data[:access][:token][:id]
25
+ end
26
+
27
+ h
28
+ end
29
+
30
+
31
+ def http_method
32
+ :put
33
+ end
34
+
35
+
36
+ def url
37
+ service_spec = session_data[:access][:serviceCatalog].find { |s| s[:type] == service.to_s }
38
+ "#{ service_spec[:endpoints][0][:adminURL] }" \
39
+ "/tenants/#{ params[:tenant_id] }" \
40
+ "/users/#{ params[:user_id] }" \
41
+ "/roles/OS-KSADM/#{ params[:role_id] }"
42
+ end
43
+
44
+ end
45
+
46
+ end
@@ -0,0 +1,66 @@
1
+ module Aviator
2
+
3
+ define_request :create_user do
4
+
5
+ meta :provider, :openstack
6
+ meta :service, :identity
7
+ meta :api_version, :v2
8
+ meta :endpoint_type, :admin
9
+
10
+
11
+ link 'documentation',
12
+ 'http://docs.openstack.org/api/openstack-identity-service/2.0/content/POST_addUser_v2.0_users_.html'
13
+
14
+ link 'documentation bug',
15
+ 'https://bugs.launchpad.net/keystone/+bug/1110435'
16
+
17
+ link 'documentation bug',
18
+ 'https://bugs.launchpad.net/keystone/+bug/1226466'
19
+
20
+
21
+ param :name, required: true
22
+ param :password, required: true
23
+
24
+ param :email, required: false
25
+ param :enabled, required: false
26
+ param :tenantId, required: false
27
+
28
+
29
+ def body
30
+ p = {
31
+ user: {}
32
+ }
33
+
34
+ (required_params + optional_params).each do |key|
35
+ p[:user][key] = params[key] if params[key]
36
+ end
37
+
38
+ p
39
+ end
40
+
41
+
42
+ def headers
43
+ h = {}
44
+
45
+ unless self.anonymous?
46
+ h['X-Auth-Token'] = session_data[:access][:token][:id]
47
+ end
48
+
49
+ h
50
+ end
51
+
52
+
53
+ def http_method
54
+ :post
55
+ end
56
+
57
+
58
+ def url
59
+ service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == 'identity' }
60
+ "#{ service_spec[:endpoints][0][:adminURL] }/users"
61
+ end
62
+
63
+ end
64
+
65
+ end
66
+
@@ -0,0 +1,46 @@
1
+ module Aviator
2
+
3
+ define_request :delete_role_from_user_on_tenant do
4
+
5
+ meta :provider, :openstack
6
+ meta :service, :identity
7
+ meta :api_version, :v2
8
+ meta :endpoint_type, :admin
9
+
10
+
11
+ link 'documentation',
12
+ 'http://docs.openstack.org/api/openstack-identity-service/2.0/content/DELETE_deleteRoleFromUserOnTenant_v2.0_tenants__tenantId__users__userId__roles_OS-KSADM__roleId__.html'
13
+
14
+
15
+ param :tenant_id, required: true
16
+ param :user_id, required: true
17
+ param :role_id, required: true
18
+
19
+
20
+ def headers
21
+ h = {}
22
+
23
+ unless self.anonymous?
24
+ h['X-Auth-Token'] = session_data[:access][:token][:id]
25
+ end
26
+
27
+ h
28
+ end
29
+
30
+
31
+ def http_method
32
+ :delete
33
+ end
34
+
35
+
36
+ def url
37
+ service_spec = session_data[:access][:serviceCatalog].find { |s| s[:type] == service.to_s }
38
+ s = "#{ service_spec[:endpoints][0][:adminURL] }/tenants/#{ params[:tenant_id] }"
39
+ s += "/users/#{ params[:user_id] }"
40
+ s += "/roles/OS-KSADM/#{ params[:role_id] }"
41
+ s
42
+ end
43
+
44
+ end
45
+
46
+ end
@@ -0,0 +1,40 @@
1
+ module Aviator
2
+
3
+ define_request :delete_tenant do
4
+
5
+ meta :provider, :openstack
6
+ meta :service, :identity
7
+ meta :api_version, :v2
8
+ meta :endpoint_type, :admin
9
+
10
+ link 'documentation',
11
+ 'http://docs.openstack.org/api/openstack-identity-service/2.0/content/DELETE_deleteTenant_v2.0_tenants__tenantId__.html'
12
+
13
+ param :id, required: true
14
+
15
+
16
+ def headers
17
+ h = {}
18
+
19
+ unless self.anonymous?
20
+ h['X-Auth-Token'] = session_data[:access][:token][:id]
21
+ end
22
+
23
+ h
24
+ end
25
+
26
+
27
+ def http_method
28
+ :delete
29
+ end
30
+
31
+
32
+ def url
33
+ service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == service.to_s }
34
+
35
+ "#{ service_spec[:endpoints][0][:adminURL] }/tenants/#{ params[:id]}"
36
+ end
37
+
38
+ end
39
+
40
+ end
@@ -0,0 +1,39 @@
1
+ module Aviator
2
+
3
+ define_request :delete_user do
4
+
5
+ meta :provider, :openstack
6
+ meta :service, :identity
7
+ meta :api_version, :v2
8
+ meta :endpoint_type, :admin
9
+
10
+ link 'documentation',
11
+ 'http://docs.openstack.org/api/openstack-identity-service/2.0/content/DELETE_deleteUser_v2.0_users__userId__.html'
12
+
13
+ param :id, required: true
14
+
15
+
16
+ def headers
17
+ h = {}
18
+
19
+ unless self.anonymous?
20
+ h['X-Auth-Token'] = session_data[:access][:token][:id]
21
+ end
22
+
23
+ h
24
+ end
25
+
26
+
27
+ def http_method
28
+ :delete
29
+ end
30
+
31
+
32
+ def url
33
+ service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == service.to_s }
34
+ "#{ service_spec[:endpoints][0][:adminURL] }/users/#{ params[:id]}"
35
+ end
36
+
37
+ end
38
+
39
+ end
@@ -0,0 +1,37 @@
1
+ module Aviator
2
+
3
+ define_request :list_users do
4
+
5
+ meta :provider, :openstack
6
+ meta :service, :identity
7
+ meta :api_version, :v2
8
+ meta :endpoint_type, :admin
9
+
10
+ link 'documentation',
11
+ 'http://docs.openstack.org/api/openstack-identity-service/2.0/content/GET_listUsers_v2.0_users_.html'
12
+
13
+
14
+ def headers
15
+ h = {}
16
+
17
+ unless self.anonymous?
18
+ h['X-Auth-Token'] = session_data[:access][:token][:id]
19
+ end
20
+
21
+ h
22
+ end
23
+
24
+
25
+ def http_method
26
+ :get
27
+ end
28
+
29
+
30
+ def url
31
+ service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == 'identity' }
32
+ "#{ service_spec[:endpoints][0][:adminURL] }/users"
33
+ end
34
+
35
+ end
36
+
37
+ end
@@ -0,0 +1,57 @@
1
+ module Aviator
2
+
3
+ define_request :update_tenant do
4
+
5
+ meta :provider, :openstack
6
+ meta :service, :identity
7
+ meta :api_version, :v2
8
+ meta :endpoint_type, :admin
9
+
10
+
11
+ link 'documentation',
12
+ 'http://docs.openstack.org/api/openstack-identity-service/2.0/content/POST_updateTenant_v2.0_tenants__tenantId__.html'
13
+
14
+
15
+ param :id, required: true
16
+ param :name, required: false
17
+ param :enabled, required: false
18
+ param :description, required: false
19
+
20
+
21
+ def body
22
+ p = {
23
+ tenant: {}
24
+ }
25
+
26
+ [:name, :enabled, :description].each do |key|
27
+ p[:tenant][key] = params[key] if params[key]
28
+ end
29
+
30
+ p
31
+ end
32
+
33
+
34
+ def headers
35
+ h = {}
36
+
37
+ unless self.anonymous?
38
+ h['X-Auth-Token'] = session_data[:access][:token][:id]
39
+ end
40
+
41
+ h
42
+ end
43
+
44
+
45
+ def http_method
46
+ :put
47
+ end
48
+
49
+
50
+ def url
51
+ service_spec = session_data[:access][:serviceCatalog].find { |s| s[:type] == service.to_s }
52
+ "#{ service_spec[:endpoints][0][:adminURL] }/tenants/#{ params[:id] }"
53
+ end
54
+
55
+ end
56
+
57
+ end
@@ -0,0 +1,61 @@
1
+ module Aviator
2
+
3
+ define_request :update_user do
4
+
5
+ meta :provider, :openstack
6
+ meta :service, :identity
7
+ meta :api_version, :v2
8
+ meta :endpoint_type, :admin
9
+
10
+
11
+ link 'documentation',
12
+ 'http://docs.openstack.org/api/openstack-identity-service/2.0/content/POST_updateUser_v2.0_users__userId__.html'
13
+
14
+ link 'bug',
15
+ 'https://bugs.launchpad.net/keystone/+bug/1226475'
16
+
17
+ param :id, required: true
18
+ param :name, required: false
19
+ param :password, required: false
20
+ param :email, required: false
21
+ param :enabled, required: false
22
+ param :tenantId, required: false
23
+
24
+
25
+ def body
26
+ p = {
27
+ user: {}
28
+ }
29
+
30
+ optional_params.each do |key|
31
+ p[:user][key] = params[key] if params[key]
32
+ end
33
+
34
+ p
35
+ end
36
+
37
+
38
+ def headers
39
+ h = {}
40
+
41
+ unless self.anonymous?
42
+ h['X-Auth-Token'] = session_data[:access][:token][:id]
43
+ end
44
+
45
+ h
46
+ end
47
+
48
+
49
+ def http_method
50
+ :put
51
+ end
52
+
53
+
54
+ def url
55
+ service_spec = session_data[:access][:serviceCatalog].find { |s| s[:type] == service.to_s }
56
+ "#{ service_spec[:endpoints][0][:adminURL] }/users/#{ params[:id] }"
57
+ end
58
+
59
+ end
60
+
61
+ end