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,138 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/compute/v2/admin/list_hosts' 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', 'compute', 'v2', 'admin', 'list_hosts.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 :optional_params do
78
+ klass.optional_params.must_equal [:service, :zone]
79
+ end
80
+
81
+
82
+ validate_attr :url do
83
+ session_data = get_session_data
84
+ service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
85
+ url = "#{ service_spec[:endpoints][0][:adminURL] }/os-hosts"
86
+ request = klass.new(session_data)
87
+
88
+ request.url.must_equal url
89
+ end
90
+
91
+
92
+ validate_response 'no parameters are provided' do
93
+ service = session.compute_service
94
+
95
+ response = service.request :list_hosts
96
+
97
+ response.status.must_equal 200
98
+ response.body.wont_be_nil
99
+ response.body[:hosts].length.wont_equal 0
100
+ response.headers.wont_be_nil
101
+ end
102
+
103
+
104
+ validate_response 'valid zone parameter is provided' do
105
+ service = session.compute_service
106
+
107
+ response = service.request :list_hosts do |params|
108
+ params[:zone] = 'nova'
109
+ end
110
+
111
+ response.status.must_equal 200
112
+ response.headers.wont_be_nil
113
+ response.body.wont_be_nil
114
+ response.body[:hosts].length.wont_equal 0
115
+
116
+ response.body[:hosts].each do |host|
117
+ host[:zone].must_equal 'nova'
118
+ end
119
+ end
120
+
121
+
122
+ validate_response 'invalid zone parameter is provided' do
123
+ service = session.compute_service
124
+
125
+ response = service.request :list_hosts do |params|
126
+ params[:zone] = 'nonexistentfalsezone'
127
+ end
128
+
129
+ response.status.must_equal 200
130
+ response.body.wont_be_nil
131
+ response.body[:hosts].length.must_equal 0
132
+ response.headers.wont_be_nil
133
+ end
134
+
135
+ end
136
+
137
+ end
138
+
@@ -0,0 +1,177 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/compute/v2/admin/resize_server' do
6
+
7
+ def create_request(session_data = get_session_data)
8
+ klass.new(session_data) do |params|
9
+ params[:id] = server[:id]
10
+ params[:name] = 'Aviator Server'
11
+ params[:flavorRef] = flavor_id
12
+ end
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', 'admin', 'resize_server.rb')
28
+ end
29
+
30
+
31
+ def session
32
+ unless @session
33
+ @session = Aviator::Session.new(
34
+ config_file: Environment.path,
35
+ environment: 'openstack_admin'
36
+ )
37
+
38
+ @session.authenticate
39
+ end
40
+
41
+ @session
42
+ end
43
+
44
+
45
+ def server
46
+ unless @server
47
+ response = session.compute_service.request(:list_servers) do |params|
48
+ params[:details] = true
49
+ params[:all_tenants] = true
50
+ end
51
+
52
+ current_tenant = get_session_data[:access][:token][:tenant]
53
+ active_servers = response.body[:servers].select do |server|
54
+ server[:status] == 'ACTIVE' && server[:tenant_id] == current_tenant[:id]
55
+ end
56
+
57
+ raise "\n\nProject '#{ current_tenant[:name] }' should have at least 1 server with "\
58
+ "a status of ACTIVE\n\n" if active_servers.empty?
59
+
60
+ @server = active_servers.first
61
+ end
62
+
63
+ @server
64
+ end
65
+
66
+
67
+ def flavor_id
68
+ ids = session.compute_service.request(:list_flavors).body[:flavors].map{ |f| f['id'] }
69
+ ids.delete(server[:flavor][:id])
70
+
71
+ @flavor_id ||= ids.first
72
+ end
73
+
74
+
75
+ validate_attr :anonymous? do
76
+ klass.anonymous?.must_equal false
77
+ end
78
+
79
+
80
+ validate_attr :api_version do
81
+ klass.api_version.must_equal :v2
82
+ end
83
+
84
+
85
+ validate_attr :body do
86
+ request = create_request
87
+
88
+ klass.body?.must_equal true
89
+ request.body?.must_equal true
90
+ request.body.wont_be_nil
91
+ end
92
+
93
+
94
+ validate_attr :endpoint_type do
95
+ klass.endpoint_type.must_equal :admin
96
+ end
97
+
98
+
99
+ validate_attr :headers do
100
+ headers = { 'X-Auth-Token' => get_session_data[:access][:token][:id] }
101
+
102
+ request = create_request
103
+
104
+ request.headers.must_equal headers
105
+ end
106
+
107
+
108
+ validate_attr :http_method do
109
+ create_request.http_method.must_equal :post
110
+ end
111
+
112
+
113
+ validate_attr :required_params do
114
+ klass.required_params.must_equal [
115
+ :id,
116
+ :name,
117
+ :flavorRef
118
+ ]
119
+ end
120
+
121
+
122
+ validate_attr :url do
123
+ service_spec = get_session_data[:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
124
+ url = "#{ service_spec[:endpoints][0][:publicURL] }/servers/#{ server[:id] }/action"
125
+
126
+ request = create_request do |params|
127
+ params[:id] = server[:id]
128
+ params[:flavorRef] = flavor_id
129
+ params[:name] = 'Aviator Server'
130
+ end
131
+
132
+ request.url.must_equal url
133
+ end
134
+
135
+
136
+ validate_response 'parameters are provided' do
137
+ response = session.compute_service.request :resize_server do |params|
138
+ params[:id] = server[:id]
139
+ params[:flavorRef] = flavor_id
140
+ params[:name] = 'Aviator Server'
141
+ end
142
+
143
+ response.status.must_equal 202
144
+ response.headers.wont_be_nil
145
+ end
146
+
147
+
148
+ validate_response 'the id parameter is invalid' do
149
+ flavor_id = session.compute_service.request(:list_flavors).body[:flavors].first[:id]
150
+
151
+ response = session.compute_service.request :resize_server do |params|
152
+ params[:id] = 'invalidvalue'
153
+ params[:flavorRef] = flavor_id
154
+ params[:name] = 'Aviator Server'
155
+ end
156
+
157
+ response.status.must_equal 404
158
+ response.body.wont_be_nil
159
+ response.headers.wont_be_nil
160
+ end
161
+
162
+
163
+ validate_response 'the flavorRef parameter is invalid' do
164
+ response = session.compute_service.request :resize_server do |params|
165
+ params[:id] = server[:id]
166
+ params[:flavorRef] = 'invalidvalue'
167
+ params[:name] = 'Aviator Server'
168
+ end
169
+
170
+ response.status.must_equal 400
171
+ response.body.wont_be_nil
172
+ response.headers.wont_be_nil
173
+ end
174
+
175
+ end
176
+
177
+ end
@@ -0,0 +1,145 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/compute/v2/admin/revert_server_resize' do
6
+
7
+ def create_request(session_data = get_session_data)
8
+ klass.new(session_data) do |params|
9
+ params[:id] = server[:id]
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', 'compute', 'v2', 'admin', 'revert_server_resize.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
+
36
+ @session.authenticate
37
+ end
38
+
39
+ @session
40
+ end
41
+
42
+
43
+
44
+ def server
45
+ unless @server
46
+ response = session.compute_service.request(:list_servers) do |params|
47
+ params[:details] = true
48
+ params[:all_tenants] = true
49
+ end
50
+
51
+ current_tenant = get_session_data[:access][:token][:tenant]
52
+
53
+ resized_servers = response.body[:servers].select do |server|
54
+ server[:status] == 'VERIFY_RESIZE' && server[:tenant_id] == current_tenant[:id]
55
+ end
56
+
57
+ raise "\n\nProject '#{ current_tenant[:name] }' should have at least 1 server with "\
58
+ "a status of VERIFY_RESIZE\n\n" if resized_servers.empty?
59
+
60
+ @server = resized_servers.first
61
+ end
62
+
63
+ @server
64
+ end
65
+
66
+
67
+ validate_attr :anonymous? do
68
+ klass.anonymous?.must_equal false
69
+ end
70
+
71
+
72
+ validate_attr :api_version do
73
+ klass.api_version.must_equal :v2
74
+ end
75
+
76
+
77
+ validate_attr :body do
78
+ request = create_request
79
+
80
+ klass.body?.must_equal true
81
+ request.body?.must_equal true
82
+ request.body.wont_be_nil
83
+ end
84
+
85
+
86
+ validate_attr :endpoint_type do
87
+ klass.endpoint_type.must_equal :admin
88
+ end
89
+
90
+
91
+ validate_attr :headers do
92
+ headers = { 'X-Auth-Token' => get_session_data[:access][:token][:id] }
93
+
94
+ request = create_request
95
+
96
+ request.headers.must_equal headers
97
+ end
98
+
99
+
100
+ validate_attr :http_method do
101
+ create_request.http_method.must_equal :post
102
+ end
103
+
104
+
105
+ validate_attr :required_params do
106
+ klass.required_params.must_equal [:id]
107
+ end
108
+
109
+
110
+ validate_attr :url do
111
+ service_spec = get_session_data[:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
112
+ url = "#{ service_spec[:endpoints][0][:adminURL] }/servers/#{ server[:id] }/action"
113
+
114
+ request = create_request do |params|
115
+ params[:id] = server[:id]
116
+ end
117
+
118
+ request.url.must_equal url
119
+ end
120
+
121
+
122
+ validate_response 'parameters are provided' do
123
+ response = session.compute_service.request :revert_server_resize do |params|
124
+ params[:id] = server[:id]
125
+ end
126
+
127
+ response.status.must_equal 202
128
+ response.headers.wont_be_nil
129
+ end
130
+
131
+
132
+ validate_response 'the id parameter is invalid' do
133
+ response = session.compute_service.request :revert_server_resize do |params|
134
+ params[:id] = 'invalidvalue'
135
+ end
136
+
137
+ response.status.must_equal 404
138
+ response.body.wont_be_nil
139
+ response.headers.wont_be_nil
140
+ end
141
+
142
+ end
143
+
144
+ end
145
+