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,192 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/identity/v2/admin/add_role_to_user_on_tenant' do
6
+
7
+ def create_request(session_data = get_session_data, &block)
8
+ block ||= lambda do |params|
9
+ params[:tenant_id] = 0
10
+ params[:role_id] = 0
11
+ params[:user_id] = 0
12
+ end
13
+
14
+ klass.new(session_data, &block)
15
+ end
16
+
17
+
18
+ def get_session_data
19
+ session.send :auth_info
20
+ end
21
+
22
+
23
+ def helper
24
+ Aviator::Test::RequestHelper
25
+ end
26
+
27
+
28
+ def klass
29
+ @klass ||= helper.load_request('openstack', 'identity', 'v2', 'admin', 'add_role_to_user_on_tenant.rb')
30
+ end
31
+
32
+
33
+ def session
34
+ unless @session
35
+ @session = Aviator::Session.new(
36
+ config_file: Environment.path,
37
+ environment: 'openstack_admin'
38
+ )
39
+ @session.authenticate
40
+ end
41
+
42
+ @session
43
+ end
44
+
45
+
46
+ validate_attr :anonymous? do
47
+ klass.anonymous?.must_equal false
48
+ end
49
+
50
+
51
+ validate_attr :api_version do
52
+ klass.api_version.must_equal :v2
53
+ end
54
+
55
+
56
+ validate_attr :endpoint_type do
57
+ klass.endpoint_type.must_equal :admin
58
+ end
59
+
60
+
61
+ validate_attr :headers do
62
+ headers = { 'X-Auth-Token' => get_session_data[:access][:token][:id] }
63
+
64
+ request = create_request
65
+
66
+ request.headers.must_equal headers
67
+ end
68
+
69
+
70
+ validate_attr :http_method do
71
+ create_request.http_method.must_equal :put
72
+ end
73
+
74
+
75
+ validate_attr :optional_params do
76
+ klass.optional_params.must_equal []
77
+ end
78
+
79
+
80
+ validate_attr :required_params do
81
+ klass.required_params.must_equal [
82
+ :tenant_id,
83
+ :user_id,
84
+ :role_id
85
+ ]
86
+ end
87
+
88
+
89
+ validate_attr :url do
90
+ tenant_id = 'sample_tenant_id'
91
+ user_id = 'sample_user_id'
92
+ role_id = 'sample_role_id'
93
+
94
+ service_spec = get_session_data[:access][:serviceCatalog].find { |s| s[:type] == 'identity' }
95
+ url = "#{ service_spec[:endpoints][0][:adminURL] }/tenants/#{ tenant_id }"
96
+ url += "/users/#{ user_id }"
97
+ url += "/roles/OS-KSADM/#{ role_id }"
98
+
99
+ request = create_request do |p|
100
+ p[:tenant_id] = tenant_id
101
+ p[:user_id] = user_id
102
+ p[:role_id] = role_id
103
+ end
104
+
105
+ request.url.must_equal url
106
+ end
107
+
108
+
109
+ validate_response 'valid ids are provided' do
110
+ # must be hardcoded so as not to inadvertently alter random resources
111
+ # in case the corresponding cassette is deleted
112
+ tenant_id = '2f2a15ea1edc40b6a7372076acebb097'
113
+ user_id = '02abfc09286743f298dde7aa2a4f6850'
114
+ role_id = 'd4aeb8a6093243fda5bf938f2c0bccfd'
115
+
116
+ response = session.identity_service.request :add_role_to_user_on_tenant do |params|
117
+ params[:tenant_id] = tenant_id
118
+ params[:user_id] = user_id
119
+ params[:role_id] = role_id
120
+ end
121
+
122
+ response.status.must_equal 200
123
+ response.body.wont_be_nil
124
+ response.body[:role].wont_be_nil
125
+ response.body[:role][:id].must_equal role_id
126
+ response.headers.wont_be_nil
127
+ end
128
+
129
+
130
+ validate_response 'invalid tenant id is provided' do
131
+ # must be hardcoded so as not to inadvertently alter random resources
132
+ # in case the corresponding cassette is deleted
133
+ user_id = '02abfc09286743f298dde7aa2a4f6850'
134
+ role_id = 'd4aeb8a6093243fda5bf938f2c0bccfd'
135
+
136
+ tenant_id = 'abogustenantidthatdoesnotexist'
137
+
138
+ response = session.identity_service.request :add_role_to_user_on_tenant do |params|
139
+ params[:tenant_id] = tenant_id
140
+ params[:user_id] = user_id
141
+ params[:role_id] = role_id
142
+ end
143
+
144
+ response.status.must_equal 404
145
+ response.body.wont_be_nil
146
+ response.headers.wont_be_nil
147
+ end
148
+
149
+
150
+ validate_response 'invalid user id is provided' do
151
+ # must be hardcoded so as not to inadvertently alter random resources
152
+ # in case the corresponding cassette is deleted
153
+ tenant_id = '2f2a15ea1edc40b6a7372076acebb097'
154
+ role_id = 'd4aeb8a6093243fda5bf938f2c0bccfd'
155
+
156
+ user_id = 'abogususeridthatdoesnotexist'
157
+
158
+ response = session.identity_service.request :add_role_to_user_on_tenant do |params|
159
+ params[:tenant_id] = tenant_id
160
+ params[:user_id] = user_id
161
+ params[:role_id] = role_id
162
+ end
163
+
164
+ response.status.must_equal 404
165
+ response.body.wont_be_nil
166
+ response.headers.wont_be_nil
167
+ end
168
+
169
+
170
+ validate_response 'invalid role id is provided' do
171
+ # must be hardcoded so as not to inadvertently alter random resources
172
+ # in case the corresponding cassette is deleted
173
+ tenant_id = '2f2a15ea1edc40b6a7372076acebb097'
174
+ user_id = '02abfc09286743f298dde7aa2a4f6850'
175
+
176
+ role_id = 'abogusroleidthatdoesnotexist'
177
+
178
+ response = session.identity_service.request :add_role_to_user_on_tenant do |params|
179
+ params[:tenant_id] = tenant_id
180
+ params[:user_id] = user_id
181
+ params[:role_id] = role_id
182
+ end
183
+
184
+ response.status.must_equal 404
185
+ response.body.wont_be_nil
186
+ response.headers.wont_be_nil
187
+ end
188
+
189
+
190
+ end
191
+
192
+ end
@@ -0,0 +1,161 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/identity/v2/admin/create_user' do
6
+
7
+ def create_request(session_data = get_session_data, &block)
8
+ block ||= lambda do |params|
9
+ params[:name] = 'this_doesnt_matter_with_this_test'
10
+ params[:password] = 'sample_passw0rd'
11
+ end
12
+
13
+ klass.new(session_data, &block)
14
+ end
15
+
16
+
17
+ def get_session_data
18
+ session.send :auth_info
19
+ end
20
+
21
+
22
+ def helper
23
+ Aviator::Test::RequestHelper
24
+ end
25
+
26
+
27
+ def klass
28
+ @klass ||= helper.load_request('openstack', 'identity', 'v2', 'admin', 'create_user.rb')
29
+ end
30
+
31
+
32
+ def session
33
+ unless @session
34
+ @session = Aviator::Session.new(
35
+ config_file: Environment.path,
36
+ environment: 'openstack_admin'
37
+ )
38
+ @session.authenticate
39
+ end
40
+
41
+ @session
42
+ end
43
+
44
+
45
+ validate_attr :api_version do
46
+ klass.api_version.must_equal :v2
47
+ end
48
+
49
+
50
+ validate_attr :anonymous? do
51
+ klass.anonymous?.must_equal false
52
+ end
53
+
54
+
55
+ validate_attr :body do
56
+ params = {
57
+ name: 'username_example',
58
+ password: 'user_password123',
59
+ email: 'sample@email.com',
60
+ tenantId: 'sample_tenant_id',
61
+ enabled: true
62
+ }
63
+
64
+ body = {
65
+ user: params
66
+ }
67
+
68
+ request = klass.new(get_session_data) do |p|
69
+ params.each do |k,v|
70
+ p[k] = params[k]
71
+ end
72
+ end
73
+
74
+ request.body.must_equal body
75
+ end
76
+
77
+
78
+ validate_attr :endpoint_type do
79
+ klass.endpoint_type.must_equal :admin
80
+ end
81
+
82
+
83
+ validate_attr :headers do
84
+ headers = { 'X-Auth-Token' => get_session_data[:access][:token][:id] }
85
+
86
+ request = create_request
87
+
88
+ request.headers.must_equal headers
89
+ end
90
+
91
+
92
+ validate_attr :http_method do
93
+ create_request.http_method.must_equal :post
94
+ end
95
+
96
+
97
+ validate_attr :required_params do
98
+ klass.required_params.must_equal [:name, :password]
99
+ end
100
+
101
+
102
+ validate_attr :optional_params do
103
+ klass.optional_params.must_equal [
104
+ :email,
105
+ :enabled,
106
+ :tenantId
107
+ ]
108
+ end
109
+
110
+
111
+ validate_attr :url do
112
+ session_data = get_session_data
113
+ service_spec = session_data[:access][:serviceCatalog].find { |s| s[:type] == 'identity' }
114
+ url = "#{ service_spec[:endpoints][0][:adminURL] }/users"
115
+
116
+ request = create_request
117
+
118
+ request.url.must_equal url
119
+ end
120
+
121
+
122
+ validate_response 'invalid param is provided' do
123
+ service = session.identity_service
124
+
125
+ response = service.request :create_user do |params|
126
+ params[:name] = 'username_123'
127
+ params[:password] = 'password_123'
128
+ params[:enabled] = 'invalid-type'
129
+ end
130
+
131
+ response.status.must_equal 400
132
+ response.body.wont_be_nil
133
+ response.headers.wont_be_nil
134
+ end
135
+
136
+
137
+ validate_response 'params are valid' do
138
+ service = session.identity_service
139
+
140
+ tenant = service.request(:list_tenants).body[:tenants].find do |t|
141
+ t[:name] == Environment.openstack_admin[:auth_credentials][:tenantName]
142
+ end
143
+
144
+ response = service.request :create_user do |params|
145
+ params[:name] = 'username_123'
146
+ params[:password] = 'password_123'
147
+ params[:email] = 'dump@foo.com'
148
+ params[:enabled] = true
149
+ params[:tenantId] = tenant[:id]
150
+ end
151
+
152
+ response.status.must_equal 200
153
+ response.body.wont_be_nil
154
+ response.body[:user].wont_be_nil
155
+ response.headers.wont_be_nil
156
+ end
157
+
158
+
159
+ end
160
+
161
+ end
@@ -0,0 +1,190 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/identity/v2/admin/delete_role_from_user_on_tenant' do
6
+
7
+ def create_request(session_data = get_session_data, &block)
8
+ block ||= lambda do |params|
9
+ params[:tenant_id] = 0
10
+ params[:role_id] = 0
11
+ params[:user_id] = 0
12
+ end
13
+
14
+ klass.new(session_data, &block)
15
+ end
16
+
17
+
18
+ def get_session_data
19
+ session.send :auth_info
20
+ end
21
+
22
+
23
+ def helper
24
+ Aviator::Test::RequestHelper
25
+ end
26
+
27
+
28
+ def klass
29
+ @klass ||= helper.load_request('openstack', 'identity', 'v2', 'admin', 'delete_role_from_user_on_tenant.rb')
30
+ end
31
+
32
+
33
+ def session
34
+ unless @session
35
+ @session = Aviator::Session.new(
36
+ config_file: Environment.path,
37
+ environment: 'openstack_admin'
38
+ )
39
+ @session.authenticate
40
+ end
41
+
42
+ @session
43
+ end
44
+
45
+
46
+ validate_attr :anonymous? do
47
+ klass.anonymous?.must_equal false
48
+ end
49
+
50
+
51
+ validate_attr :api_version do
52
+ klass.api_version.must_equal :v2
53
+ end
54
+
55
+
56
+ validate_attr :endpoint_type do
57
+ klass.endpoint_type.must_equal :admin
58
+ end
59
+
60
+
61
+ validate_attr :headers do
62
+ headers = { 'X-Auth-Token' => get_session_data[:access][:token][:id] }
63
+
64
+ request = create_request
65
+
66
+ request.headers.must_equal headers
67
+ end
68
+
69
+
70
+ validate_attr :http_method do
71
+ create_request.http_method.must_equal :delete
72
+ end
73
+
74
+
75
+ validate_attr :optional_params do
76
+ klass.optional_params.must_equal []
77
+ end
78
+
79
+
80
+ validate_attr :required_params do
81
+ klass.required_params.must_equal [
82
+ :tenant_id,
83
+ :user_id,
84
+ :role_id
85
+ ]
86
+ end
87
+
88
+
89
+ validate_attr :url do
90
+ tenant_id = 'sample_tenant_id'
91
+ user_id = 'sample_user_id'
92
+ role_id = 'sample_role_id'
93
+
94
+ service_spec = get_session_data[:access][:serviceCatalog].find { |s| s[:type] == 'identity' }
95
+ url = "#{ service_spec[:endpoints][0][:adminURL] }/tenants/#{ tenant_id }"
96
+ url += "/users/#{ user_id }"
97
+ url += "/roles/OS-KSADM/#{ role_id }"
98
+
99
+ request = create_request do |p|
100
+ p[:tenant_id] = tenant_id
101
+ p[:user_id] = user_id
102
+ p[:role_id] = role_id
103
+ end
104
+
105
+ request.url.must_equal url
106
+ end
107
+
108
+
109
+ validate_response 'valid ids are provided' do
110
+ # must be hardcoded so as not to inadvertently alter random resources
111
+ # in case the corresponding cassette is deleted
112
+ tenant_id = '3c7492bd83ed43bcb4953c621cfe21be'
113
+ user_id = 'd5abadb115c2415fa11d5e39bdecb2e6'
114
+ role_id = '998b01cf9f31410b97412d115eed9c3a'
115
+
116
+ response = session.identity_service.request :delete_role_from_user_on_tenant do |params|
117
+ params[:tenant_id] = tenant_id
118
+ params[:user_id] = user_id
119
+ params[:role_id] = role_id
120
+ end
121
+
122
+ response.status.must_equal 204
123
+ response.body.must_be_empty
124
+ response.headers.wont_be_nil
125
+ end
126
+
127
+
128
+ validate_response 'invalid tenant id is provided' do
129
+ # must be hardcoded so as not to inadvertently alter random resources
130
+ # in case the corresponding cassette is deleted
131
+ user_id = '02abfc09286743f298dde7aa2a4f6850'
132
+ role_id = 'd4aeb8a6093243fda5bf938f2c0bccfd'
133
+
134
+ tenant_id = 'abogustenantidthatdoesnotexist'
135
+
136
+ response = session.identity_service.request :delete_role_from_user_on_tenant do |params|
137
+ params[:tenant_id] = tenant_id
138
+ params[:user_id] = user_id
139
+ params[:role_id] = role_id
140
+ end
141
+
142
+ response.status.must_equal 404
143
+ response.body.wont_be_nil
144
+ response.headers.wont_be_nil
145
+ end
146
+
147
+
148
+ validate_response 'invalid user id is provided' do
149
+ # must be hardcoded so as not to inadvertently alter random resources
150
+ # in case the corresponding cassette is deleted
151
+ tenant_id = '2f2a15ea1edc40b6a7372076acebb097'
152
+ role_id = 'd4aeb8a6093243fda5bf938f2c0bccfd'
153
+
154
+ user_id = 'abogususeridthatdoesnotexist'
155
+
156
+ response = session.identity_service.request :delete_role_from_user_on_tenant do |params|
157
+ params[:tenant_id] = tenant_id
158
+ params[:user_id] = user_id
159
+ params[:role_id] = role_id
160
+ end
161
+
162
+ response.status.must_equal 404
163
+ response.body.wont_be_nil
164
+ response.headers.wont_be_nil
165
+ end
166
+
167
+
168
+ validate_response 'invalid role id is provided' do
169
+ # must be hardcoded so as not to inadvertently alter random resources
170
+ # in case the corresponding cassette is deleted
171
+ tenant_id = '2f2a15ea1edc40b6a7372076acebb097'
172
+ user_id = '02abfc09286743f298dde7aa2a4f6850'
173
+
174
+ role_id = 'abogusroleidthatdoesnotexist'
175
+
176
+ response = session.identity_service.request :delete_role_from_user_on_tenant do |params|
177
+ params[:tenant_id] = tenant_id
178
+ params[:user_id] = user_id
179
+ params[:role_id] = role_id
180
+ end
181
+
182
+ response.status.must_equal 404
183
+ response.body.wont_be_nil
184
+ response.headers.wont_be_nil
185
+ end
186
+
187
+
188
+ end
189
+
190
+ end