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,132 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/identity/v2/admin/delete_tenant' do
6
+
7
+ def create_request(session_data = get_session_data)
8
+ klass.new(session_data) do |p|
9
+ p[:id] = 'it does not matter for this usage'
10
+ end
11
+ end
12
+
13
+
14
+ def get_session_data
15
+ session.send :auth_info
16
+ end
17
+
18
+
19
+ def helper
20
+ Aviator::Test::RequestHelper
21
+ end
22
+
23
+
24
+ def klass
25
+ @klass ||= helper.load_request('openstack', 'identity', 'v2', 'admin', 'delete_tenant.rb')
26
+ end
27
+
28
+
29
+ def session
30
+ unless @session
31
+ @session = Aviator::Session.new(
32
+ config_file: Environment.path,
33
+ environment: 'openstack_admin'
34
+ )
35
+ @session.authenticate
36
+ end
37
+
38
+ @session
39
+ end
40
+
41
+
42
+ validate_attr :anonymous? do
43
+ klass.anonymous?.must_equal false
44
+ end
45
+
46
+
47
+ validate_attr :api_version do
48
+ klass.api_version.must_equal :v2
49
+ end
50
+
51
+
52
+ validate_attr :body do
53
+ klass.body?.must_equal false
54
+ create_request.body?.must_equal false
55
+ end
56
+
57
+
58
+ validate_attr :endpoint_type do
59
+ klass.endpoint_type.must_equal :admin
60
+ end
61
+
62
+
63
+ validate_attr :headers do
64
+ session_data = get_session_data
65
+
66
+ headers = { 'X-Auth-Token' => session_data[:access][:token][:id] }
67
+
68
+ request = create_request(session_data)
69
+
70
+ request.headers.must_equal headers
71
+ end
72
+
73
+
74
+ validate_attr :http_method do
75
+ create_request.http_method.must_equal :delete
76
+ end
77
+
78
+
79
+ validate_attr :optional_params do
80
+ klass.optional_params.must_equal []
81
+ end
82
+
83
+
84
+ validate_attr :required_params do
85
+ klass.required_params.must_equal [:id]
86
+ end
87
+
88
+
89
+ validate_attr :url do
90
+ session_data = get_session_data
91
+ service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == 'identity' }
92
+ tenant_id = 'it does not matter for this test'
93
+ url = "#{ service_spec[:endpoints][0][:adminURL] }/tenants/#{ tenant_id }"
94
+
95
+ request = klass.new(session_data) do |p|
96
+ p[:id] = tenant_id
97
+ end
98
+
99
+ request.url.must_equal url
100
+ end
101
+
102
+
103
+ validate_response 'valid params are provided' do
104
+ # must be hardcoded so as not to inadvertently delete random tenants
105
+ # in case the corresponding cassette is deleted
106
+ tenant_id = '8edb28f9cb8840c0830073c5831d5c32'
107
+
108
+ response = session.identity_service.request :delete_tenant do |params|
109
+ params[:id] = tenant_id
110
+ end
111
+
112
+ response.status.must_equal 204
113
+ response.body.must_be_empty
114
+ response.headers.wont_be_nil
115
+ end
116
+
117
+
118
+ validate_response 'invalid params are provided' do
119
+ tenant_id = 'bogustenantid'
120
+
121
+ response = session.identity_service.request :delete_tenant do |params|
122
+ params[:id] = tenant_id
123
+ end
124
+
125
+ response.status.must_equal 404
126
+ response.body.wont_be_nil
127
+ response.headers.wont_be_nil
128
+ end
129
+
130
+ end
131
+
132
+ end
@@ -0,0 +1,127 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/identity/v2/admin/delete_user' do
6
+
7
+ def create_request(session_data = get_session_data)
8
+ klass.new(session_data) do |p|
9
+ p[:id] = 'it does not matter for this usage'
10
+ end
11
+ end
12
+
13
+
14
+ def get_session_data
15
+ session.send :auth_info
16
+ end
17
+
18
+
19
+ def helper
20
+ Aviator::Test::RequestHelper
21
+ end
22
+
23
+
24
+ def klass
25
+ @klass ||= helper.load_request('openstack', 'identity', 'v2', 'admin', 'delete_user.rb')
26
+ end
27
+
28
+
29
+ def session
30
+ unless @session
31
+ @session = Aviator::Session.new(
32
+ config_file: Environment.path,
33
+ environment: 'openstack_admin'
34
+ )
35
+ @session.authenticate
36
+ end
37
+
38
+ @session
39
+ end
40
+
41
+
42
+ validate_attr :anonymous? do
43
+ klass.anonymous?.must_equal false
44
+ end
45
+
46
+
47
+ validate_attr :api_version do
48
+ klass.api_version.must_equal :v2
49
+ end
50
+
51
+
52
+ validate_attr :body do
53
+ klass.body?.must_equal false
54
+ create_request.body?.must_equal false
55
+ end
56
+
57
+
58
+ validate_attr :endpoint_type do
59
+ klass.endpoint_type.must_equal :admin
60
+ end
61
+
62
+
63
+ validate_attr :headers do
64
+ session_data = get_session_data
65
+
66
+ headers = { 'X-Auth-Token' => session_data[:access][:token][:id] }
67
+
68
+ request = create_request(session_data)
69
+
70
+ request.headers.must_equal headers
71
+ end
72
+
73
+
74
+ validate_attr :http_method do
75
+ create_request.http_method.must_equal :delete
76
+ end
77
+
78
+
79
+ validate_attr :required_params do
80
+ klass.required_params.must_equal [:id]
81
+ end
82
+
83
+
84
+ validate_attr :url do
85
+ session_data = get_session_data
86
+ service_spec = session_data[:access][:serviceCatalog].find { |s| s[:type] == 'identity' }
87
+ user_id = 'it does not matter for this test'
88
+ url = "#{ service_spec[:endpoints][0][:adminURL] }/users/#{ user_id }"
89
+
90
+ request = klass.new(session_data) do |p|
91
+ p[:id] = user_id
92
+ end
93
+
94
+ request.url.must_equal url
95
+ end
96
+
97
+
98
+ validate_response 'valid params are provided' do
99
+ # must be hardcoded so as not to inadvertently delete random user
100
+ # in case the corresponding cassette is deleted
101
+ user_id = 'cf086a74f0854398a2a8f6bbee2029e8'
102
+
103
+ response = session.identity_service.request :delete_user do |params|
104
+ params[:id] = user_id
105
+ end
106
+
107
+ response.status.must_equal 204
108
+ response.body.must_be_empty
109
+ response.headers.wont_be_nil
110
+ end
111
+
112
+
113
+ validate_response 'invalid params are provided' do
114
+ user_id = 'bogususerid'
115
+
116
+ response = session.identity_service.request :delete_user do |params|
117
+ params[:id] = user_id
118
+ end
119
+
120
+ response.status.must_equal 404
121
+ response.body.wont_be_nil
122
+ response.headers.wont_be_nil
123
+ end
124
+
125
+ end
126
+
127
+ end
@@ -0,0 +1,101 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/identity/v2/admin/list_users' do
6
+
7
+ def create_request(session_data = get_session_data, &block)
8
+ klass.new(session_data, &block)
9
+ end
10
+
11
+
12
+ def get_session_data
13
+ session.send :auth_info
14
+ end
15
+
16
+
17
+ def helper
18
+ Aviator::Test::RequestHelper
19
+ end
20
+
21
+
22
+ def klass
23
+ @klass ||= helper.load_request('openstack', 'identity', 'v2', 'admin', 'list_users.rb')
24
+ end
25
+
26
+
27
+ def session
28
+ unless @session
29
+ @session = Aviator::Session.new(
30
+ config_file: Environment.path,
31
+ environment: 'openstack_admin'
32
+ )
33
+ @session.authenticate
34
+ end
35
+
36
+ @session
37
+ end
38
+
39
+
40
+ validate_attr :anonymous? do
41
+ klass.anonymous?.must_equal false
42
+ end
43
+
44
+
45
+ validate_attr :api_version do
46
+ klass.api_version.must_equal :v2
47
+ end
48
+
49
+
50
+ validate_attr :body do
51
+ klass.body?.must_equal false
52
+ create_request.body?.must_equal false
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
+ session_data = get_session_data
63
+
64
+ headers = { 'X-Auth-Token' => session_data[:access][:token][:id] }
65
+
66
+ request = create_request(session_data)
67
+
68
+ request.headers.must_equal headers
69
+ end
70
+
71
+
72
+ validate_attr :http_method do
73
+ create_request.http_method.must_equal :get
74
+ end
75
+
76
+
77
+ validate_attr :url do
78
+ session_data = get_session_data
79
+ service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == 'identity' }
80
+ url = "#{ service_spec[:endpoints][0][:adminURL] }/users"
81
+ request = klass.new(session_data)
82
+
83
+ request.url.must_equal url
84
+ end
85
+
86
+
87
+ validate_response 'no parameters are provided' do
88
+ service = session.identity_service
89
+
90
+ response = service.request :list_users
91
+
92
+ response.status.must_equal 200
93
+ response.body.wont_be_nil
94
+ response.body[:users].length.wont_equal 0
95
+ response.headers.wont_be_nil
96
+ end
97
+
98
+
99
+ end
100
+
101
+ end
@@ -0,0 +1,142 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/identity/v2/admin/update_tenant' do
6
+
7
+ def create_request(session_data = get_session_data, &block)
8
+ klass.new(session_data, &block)
9
+ end
10
+
11
+
12
+ def get_session_data
13
+ session.send :auth_info
14
+ end
15
+
16
+
17
+ def helper
18
+ Aviator::Test::RequestHelper
19
+ end
20
+
21
+
22
+ def klass
23
+ @klass ||= helper.load_request('openstack', 'identity', 'v2', 'admin', 'update_tenant.rb')
24
+ end
25
+
26
+
27
+ def session
28
+ unless @session
29
+ @session = Aviator::Session.new(
30
+ config_file: Environment.path,
31
+ environment: 'openstack_admin'
32
+ )
33
+ @session.authenticate
34
+ end
35
+
36
+ @session
37
+ end
38
+
39
+
40
+ validate_attr :anonymous? do
41
+ klass.anonymous?.must_equal false
42
+ end
43
+
44
+
45
+ validate_attr :api_version do
46
+ klass.api_version.must_equal :v2
47
+ end
48
+
49
+
50
+ validate_attr :body do
51
+ request = create_request { |p| p[:id] = 0 }
52
+
53
+ klass.body?.must_equal true
54
+ request.body?.must_equal true
55
+ request.body.wont_be_nil
56
+ end
57
+
58
+
59
+ validate_attr :endpoint_type do
60
+ klass.endpoint_type.must_equal :admin
61
+ end
62
+
63
+
64
+ validate_attr :headers do
65
+ headers = { 'X-Auth-Token' => get_session_data[:access][:token][:id] }
66
+
67
+ request = create_request { |p| p[:id] = 0 }
68
+
69
+ request.headers.must_equal headers
70
+ end
71
+
72
+
73
+ validate_attr :http_method do
74
+ create_request { |p| p[:id] = 0 }.http_method.must_equal :put
75
+ end
76
+
77
+
78
+ validate_attr :optional_params do
79
+ klass.optional_params.must_equal [
80
+ :name,
81
+ :enabled,
82
+ :description
83
+ ]
84
+ end
85
+
86
+
87
+ validate_attr :required_params do
88
+ klass.required_params.must_equal [:id]
89
+ end
90
+
91
+
92
+ validate_attr :url do
93
+ # must be hardcoded so as not to inadvertently alter random resources
94
+ # in case the corresponding cassette is deleted
95
+ tenant_id = '105b09f0b6500d36168480ad84'
96
+
97
+ service_spec = get_session_data[:access][:serviceCatalog].find{|s| s[:type] == 'identity' }
98
+ url = "#{ service_spec[:endpoints][0][:adminURL] }/tenants/#{ tenant_id }"
99
+
100
+ request = create_request do |params|
101
+ params[:id] = tenant_id
102
+ end
103
+
104
+ request.url.must_equal url
105
+ end
106
+
107
+
108
+ validate_response 'valid tenant id is provided' do
109
+ tenant = session.identity_service.request(:list_tenants).body[:tenants].first
110
+ tenant_id = tenant[:id]
111
+ new_name = 'Updated tenant'
112
+
113
+ response = session.identity_service.request :update_tenant do |params|
114
+ params[:id] = tenant_id
115
+ params[:name] = new_name
116
+ end
117
+
118
+ response.status.must_equal 200
119
+ response.body.wont_be_nil
120
+ response.body[:tenant].wont_be_nil
121
+ response.body[:tenant][:name].must_equal new_name
122
+ response.headers.wont_be_nil
123
+ end
124
+
125
+
126
+ validate_response 'invalid tenant id is provided' do
127
+ tenant_id = 'abogustenantidthatdoesnotexist'
128
+
129
+ response = session.identity_service.request :update_tenant do |params|
130
+ params[:id] = tenant_id
131
+ params[:name] = 'it does not matter'
132
+ end
133
+
134
+ response.status.must_equal 404
135
+ response.body.wont_be_nil
136
+ response.headers.wont_be_nil
137
+ end
138
+
139
+
140
+ end
141
+
142
+ end