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,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