aviator 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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,134 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/compute/v2/public/delete_image' do
6
+
7
+ def create_request(session_data = get_session_data, &block)
8
+ block ||= lambda do |params|
9
+ params[:id] = 0
10
+ end
11
+
12
+ klass.new(session_data, &block)
13
+ end
14
+
15
+
16
+ def get_session_data
17
+ session.send :auth_info
18
+ end
19
+
20
+
21
+ def helper
22
+ Aviator::Test::RequestHelper
23
+ end
24
+
25
+
26
+ def klass
27
+ @klass ||= helper.load_request('openstack', 'compute', 'v2', 'public', 'delete_image.rb')
28
+ end
29
+
30
+
31
+ def session
32
+ unless @session
33
+ @session = Aviator::Session.new(
34
+ config_file: Environment.path,
35
+ environment: 'openstack_member'
36
+ )
37
+ @session.authenticate
38
+ end
39
+
40
+ @session
41
+ end
42
+
43
+
44
+
45
+ validate_attr :anonymous? do
46
+ klass.anonymous?.must_equal false
47
+ end
48
+
49
+
50
+ validate_attr :api_version do
51
+ klass.api_version.must_equal :v2
52
+ end
53
+
54
+
55
+ validate_attr :body do
56
+ klass.body?.must_equal false
57
+ create_request.body?.must_equal false
58
+ end
59
+
60
+
61
+ validate_attr :endpoint_type do
62
+ klass.endpoint_type.must_equal :public
63
+ end
64
+
65
+
66
+ validate_attr :headers do
67
+ session_data = get_session_data
68
+
69
+ headers = { 'X-Auth-Token' => session_data[:access][:token][:id] }
70
+
71
+ request = create_request(session_data)
72
+
73
+ request.headers.must_equal headers
74
+ end
75
+
76
+
77
+ validate_attr :http_method do
78
+ create_request.http_method.must_equal :delete
79
+ end
80
+
81
+
82
+ validate_attr :optional_params do
83
+ klass.optional_params.must_equal []
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
+ session_data = get_session_data
94
+ service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
95
+ image_id = 'it does not matter for this test'
96
+ url = "#{ service_spec[:endpoints][0][:publicURL] }/images/#{ image_id }"
97
+
98
+ request = klass.new(session_data) do |p|
99
+ p[:id] = image_id
100
+ end
101
+
102
+ request.url.must_equal url
103
+ end
104
+
105
+
106
+ validate_response 'valid params are provided' do
107
+ image = session.compute_service.request(:list_images).body[:images].first
108
+ image_id = image[:id]
109
+
110
+ response = session.compute_service.request :delete_image do |params|
111
+ params[:id] = image_id
112
+ end
113
+
114
+ response.status.must_equal 204
115
+ response.body.must_be_empty
116
+ response.headers.wont_be_nil
117
+ end
118
+
119
+
120
+ validate_response 'invalid params are provided' do
121
+ image_id = 'bogusimageid'
122
+
123
+ response = session.compute_service.request :delete_image do |params|
124
+ params[:id] = image_id
125
+ end
126
+
127
+ response.status.must_equal 404
128
+ response.body.wont_be_nil
129
+ response.headers.wont_be_nil
130
+ end
131
+
132
+ end
133
+
134
+ end
@@ -0,0 +1,134 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/compute/v2/public/get_image_details' do
6
+
7
+ def create_request(session_data = get_session_data, &block)
8
+ block ||= lambda do |params|
9
+ params[:id] = 0
10
+ end
11
+
12
+ klass.new(session_data, &block)
13
+ end
14
+
15
+
16
+ def get_session_data
17
+ session.send :auth_info
18
+ end
19
+
20
+
21
+ def helper
22
+ Aviator::Test::RequestHelper
23
+ end
24
+
25
+
26
+ def klass
27
+ @klass ||= helper.load_request('openstack', 'compute', 'v2', 'public', 'get_image_details.rb')
28
+ end
29
+
30
+
31
+ def session
32
+ unless @session
33
+ @session = Aviator::Session.new(
34
+ config_file: Environment.path,
35
+ environment: 'openstack_member'
36
+ )
37
+ @session.authenticate
38
+ end
39
+
40
+ @session
41
+ end
42
+
43
+
44
+
45
+ validate_attr :anonymous? do
46
+ klass.anonymous?.must_equal false
47
+ end
48
+
49
+
50
+ validate_attr :api_version do
51
+ klass.api_version.must_equal :v2
52
+ end
53
+
54
+
55
+ validate_attr :body do
56
+ klass.body?.must_equal false
57
+ create_request.body?.must_equal false
58
+ end
59
+
60
+
61
+ validate_attr :endpoint_type do
62
+ klass.endpoint_type.must_equal :public
63
+ end
64
+
65
+
66
+ validate_attr :headers do
67
+ session_data = get_session_data
68
+
69
+ headers = { 'X-Auth-Token' => session_data[:access][:token][:id] }
70
+
71
+ request = create_request(session_data)
72
+
73
+ request.headers.must_equal headers
74
+ end
75
+
76
+
77
+ validate_attr :http_method do
78
+ create_request.http_method.must_equal :get
79
+ end
80
+
81
+
82
+ validate_attr :optional_params do
83
+ klass.optional_params.must_equal []
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
+ session_data = get_session_data
94
+ service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
95
+ image_id = 'it does not matter for this test'
96
+ url = "#{ service_spec[:endpoints][0][:publicURL] }/images/#{ image_id }"
97
+
98
+ request = klass.new(session_data) do |p|
99
+ p[:id] = image_id
100
+ end
101
+
102
+ request.url.must_equal url
103
+ end
104
+
105
+
106
+ validate_response 'valid params are provided' do
107
+ image = session.compute_service.request(:list_images).body[:images].first
108
+ image_id = image[:id]
109
+
110
+ response = session.compute_service.request :get_image_details do |params|
111
+ params[:id] = image_id
112
+ end
113
+
114
+ response.status.must_equal 200
115
+ response.body.wont_be_nil
116
+ response.headers.wont_be_nil
117
+ end
118
+
119
+
120
+ validate_response 'invalid params are provided' do
121
+ image_id = 'bogusimageid'
122
+
123
+ response = session.compute_service.request :get_image_details do |params|
124
+ params[:id] = image_id
125
+ end
126
+
127
+ response.status.must_equal 404
128
+ response.body.wont_be_nil
129
+ response.headers.wont_be_nil
130
+ end
131
+
132
+ end
133
+
134
+ end
@@ -4,6 +4,20 @@ class Aviator::Test
4
4
 
5
5
  describe 'aviator/openstack/compute/v2/public/list_servers' do
6
6
 
7
+
8
+ def admin_session
9
+ unless @admin_session
10
+ @admin_session = Aviator::Session.new(
11
+ config_file: Environment.path,
12
+ environment: 'openstack_admin'
13
+ )
14
+ @admin_session.authenticate
15
+ end
16
+
17
+ @admin_session
18
+ end
19
+
20
+
7
21
  def create_request(session_data = new_session_data)
8
22
  klass.new(session_data)
9
23
  end
@@ -14,14 +28,14 @@ class Aviator::Test
14
28
  provider: Environment.openstack_admin[:provider],
15
29
  service: Environment.openstack_admin[:auth_service][:name]
16
30
  )
17
-
31
+
18
32
  bootstrap = RequestHelper.admin_bootstrap_session_data
19
-
33
+
20
34
  response = service.request :create_token, session_data: bootstrap do |params|
21
35
  auth_credentials = Environment.openstack_admin[:auth_credentials]
22
36
  auth_credentials.each { |key, value| params[key] = auth_credentials[key] }
23
37
  end
24
-
38
+
25
39
  response.body
26
40
  end
27
41
 
@@ -39,35 +53,35 @@ class Aviator::Test
39
53
  validate_attr :anonymous? do
40
54
  klass.anonymous?.must_equal false
41
55
  end
42
-
43
-
56
+
57
+
44
58
  validate_attr :api_version do
45
59
  klass.api_version.must_equal :v2
46
60
  end
47
61
 
48
62
 
49
63
  validate_attr :body do
50
- klass.body?.must_equal false
64
+ klass.body?.must_equal false
51
65
  create_request.body?.must_equal false
52
66
  end
53
-
54
-
67
+
68
+
55
69
  validate_attr :endpoint_type do
56
70
  klass.endpoint_type.must_equal :public
57
71
  end
58
-
72
+
59
73
 
60
74
  validate_attr :headers do
61
75
  session_data = new_session_data
62
-
76
+
63
77
  headers = { 'X-Auth-Token' => session_data[:access][:token][:id] }
64
78
 
65
79
  request = create_request(session_data)
66
80
 
67
81
  request.headers.must_equal headers
68
82
  end
69
-
70
-
83
+
84
+
71
85
  validate_attr :http_method do
72
86
  create_request.http_method.must_equal :get
73
87
  end
@@ -75,6 +89,7 @@ class Aviator::Test
75
89
 
76
90
  validate_attr :optional_params do
77
91
  klass.optional_params.must_equal [
92
+ :all_tenants,
78
93
  :details,
79
94
  :flavor,
80
95
  :image,
@@ -96,82 +111,97 @@ class Aviator::Test
96
111
  session_data = new_session_data
97
112
  service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
98
113
  url = "#{ service_spec[:endpoints][0][:publicURL] }/servers"
99
-
114
+
100
115
  params = [
101
116
  [ :details, false ],
102
117
  [ :flavor, 'm1.small' ],
103
118
  [ :image, 'cirros-0.3.1-x86_64-uec-ramdisk' ],
104
119
  [ :status, 'ACTIVE' ]
105
120
  ]
106
-
121
+
107
122
  url += "/detail" if params.first[1]
108
-
123
+
109
124
  filters = []
110
-
125
+
111
126
  params[1, params.length-1].each { |pair| filters << "#{ pair[0] }=#{ pair[1] }" }
112
-
127
+
113
128
  url += "?#{ filters.join('&') }" unless filters.empty?
114
-
129
+
115
130
  request = klass.new(session_data) do |p|
116
131
  params.each { |pair| p[pair[0]] = pair[1] }
117
132
  end
118
-
119
-
133
+
134
+
120
135
  request.url.must_equal url
121
136
  end
122
-
123
-
137
+
138
+
124
139
  validate_response 'no parameters are provided' do
125
140
  service = Aviator::Service.new(
126
141
  provider: 'openstack',
127
142
  service: 'compute',
128
143
  default_session_data: new_session_data
129
144
  )
130
-
145
+
131
146
  response = service.request :list_servers
132
-
147
+
133
148
  response.status.must_equal 200
134
149
  response.body.wont_be_nil
135
150
  response.body[:servers].length.wont_equal 0
136
151
  response.headers.wont_be_nil
137
152
  end
138
-
139
-
153
+
154
+
140
155
  validate_response 'parameters are invalid' do
141
156
  service = Aviator::Service.new(
142
157
  provider: 'openstack',
143
158
  service: 'compute',
144
159
  default_session_data: new_session_data
145
160
  )
146
-
161
+
147
162
  response = service.request :list_servers do |params|
148
163
  params[:image] = "nonexistentimagenameherpderp"
149
164
  end
150
-
165
+
151
166
  response.status.must_equal 200
152
167
  response.body.wont_be_nil
153
168
  response.body[:servers].length.must_equal 0
154
169
  response.headers.wont_be_nil
155
170
  end
156
-
157
-
171
+
172
+
158
173
  validate_response 'parameters are valid' do
159
174
  service = Aviator::Service.new(
160
175
  provider: 'openstack',
161
176
  service: 'compute',
162
177
  default_session_data: new_session_data
163
178
  )
164
-
179
+
165
180
  response = service.request :list_servers do |params|
166
181
  params[:details] = true
167
182
  params[:image] = 'c95d4992-24b1-4c9a-93cb-5d2935503148'
168
183
  end
169
-
184
+
170
185
  response.status.must_equal 200
171
186
  response.body.wont_be_nil
172
187
  response.body[:servers].length.must_equal 1
173
188
  response.headers.wont_be_nil
174
- end
189
+ end
190
+
191
+
192
+ validate_response 'the all_tenants parameter is provided' do
193
+ current_tenant = admin_session.send(:auth_info)[:access][:token][:tenant]
194
+
195
+ response = admin_session.compute_service.request :list_servers do |params|
196
+ params[:details] = true
197
+ params[:all_tenants] = true
198
+ end
199
+
200
+ response.status.must_equal 200
201
+ response.body.wont_be_nil
202
+ response.body[:servers].find{|s| s[:tenant_id] != current_tenant[:id] }.wont_be_empty
203
+ response.headers.wont_be_nil
204
+ end
175
205
 
176
206
  end
177
207