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
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NzI1YmNkNTM4YzhkNGUyMzczZTZiNGY4MzI4NTg3YzcyOTdkZjc3Nw==
4
+ MWFjN2RhZjk0MjY3Yjc3MzI4YzM2ZTAyZGUxYTY1YTdiN2FjNmY2NA==
5
5
  data.tar.gz: !binary |-
6
- M2Q4OTRjZWQwNDAwYjI5YzI2NjM3YzQzNjQ5ZGE3ZjYxYzUxYzBjMQ==
6
+ MzE0YzgxYjE3YTU5ZTg0ZTNlM2NmYTExM2NmMWU4Nzk1MjAxNDNmNQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZTY1ZTYxNzZjOWRlMzk2NThjYmMzZjFkZjg1ZmZhYWM3MDk2YWQ3NTUxNjJl
10
- MDg4ZWM2ZTFkMTNiYzM1ZDUzODE0YTQ0YjgyMmUzOGM3NjQ0MmMwM2E5NGIx
11
- NGYyNjJkZjdjNDc1NGY3NTA5ZTgxYWY0MmZkZDgyYzFkMjA2ODg=
9
+ MmM2MWJlMGExNjU0OWNjOWUyZDY2ZmU4ZWEyMzE2Y2U0ODVkY2QxN2Y1MjU3
10
+ MjQ3NTgzYWI2MzEzYmI0N2YzZTZlN2I2NmJhZWMzMTMxNWJjMGZkZTNkMTQ1
11
+ NTkyZTU2YTZhYTc5OWIzNGFkYTQxZjE3YjA1ZGJhNDhlNjE2NmU=
12
12
  data.tar.gz: !binary |-
13
- NGUxNTE0MjY1ZjBjMzA1Mjg3ZDIyMjAwYzc4ODBmZTQ2N2ZlM2IwZmQ3ODFl
14
- ZmI2NjVhZTQzMjU4M2JlZWExZGViYTllNGI5YjQxMzY3Mjk2NjZkYjFlMmYw
15
- NWMxMGIyMjE2ZmMxMmM4NDAwYzViYTU2NjJiMjhhZTI3ZTRhNjc=
13
+ YjMxYTgwYzI1MDM2NDdkNzg5NWYxMTY5MjljMDE5OTI4Y2M2OWViYTE5M2Jk
14
+ OWJmMTNmODdiYmFmYjg4Mzc0MmZjMTI0NzA4MDQ2ZTJiMDIwZjI4NGRiMjQz
15
+ MzlmM2YxY2Q1OTk4ZDA2YjU5MzczMWIxNWUxOWQ4NWZjNDQzNmI=
data/README.md CHANGED
@@ -1,4 +1,7 @@
1
- # Aviator
1
+ ![Aviator](https://raw.github.com/aviator/www/gh-pages/images/logo-small.png)
2
+ <br/>A lightweight library for communicating with the OpenStack API.
3
+
4
+ ## Project Stats
2
5
 
3
6
  [![Build Status](https://travis-ci.org/aviator/aviator.png?branch=master)](https://travis-ci.org/aviator/aviator)
4
7
  [![Coverage Status](https://coveralls.io/repos/aviator/aviator/badge.png?branch=master)](https://coveralls.io/r/aviator/aviator?branch=master)
@@ -6,8 +9,6 @@
6
9
  [![Gem Version](https://badge.fury.io/rb/aviator.png)](http://badge.fury.io/rb/aviator)
7
10
  [![Dependency Status](https://gemnasium.com/aviator/aviator.png)](https://gemnasium.com/aviator/aviator)
8
11
 
9
- A lightweight library for communicating with the OpenStack API.
10
-
11
12
 
12
13
  ## Installation
13
14
 
@@ -5,6 +5,7 @@ require 'faraday'
5
5
 
6
6
  require "aviator/version"
7
7
  require "aviator/core/request"
8
+ require "aviator/core/request_builder"
8
9
  require "aviator/core/response"
9
10
  require "aviator/core/service"
10
11
  require "aviator/core/session"
@@ -1,40 +1,5 @@
1
1
  module Aviator
2
2
 
3
- class << self
4
-
5
- def define_request(request_name, &block)
6
- class_obj = Class.new(Request, &block)
7
-
8
- set_class_name(
9
- Aviator,
10
- class_obj,
11
-
12
- class_obj.provider,
13
- class_obj.service,
14
- class_obj.api_version,
15
- class_obj.endpoint_type,
16
- request_name
17
- )
18
- end
19
-
20
-
21
- private
22
-
23
- def set_class_name(base, obj, *hierarchy)
24
- const_name = hierarchy.shift.to_s.camelize
25
-
26
- const = if base.const_defined?(const_name)
27
- base.const_get(const_name)
28
- else
29
- base.const_set(const_name, (hierarchy.empty? ? obj : Module.new))
30
- end
31
-
32
- hierarchy.empty? ? const : set_class_name(const, obj, *hierarchy)
33
- end
34
-
35
- end # class << self
36
-
37
-
38
3
  class Request
39
4
 
40
5
  class ApiVersionNotDefinedError < StandardError
@@ -0,0 +1,37 @@
1
+ module Aviator
2
+
3
+ class << self
4
+
5
+ def define_request(request_name, &block)
6
+ class_obj = Class.new(Request, &block)
7
+
8
+ set_class_name(
9
+ Aviator,
10
+ class_obj,
11
+
12
+ class_obj.provider,
13
+ class_obj.service,
14
+ class_obj.api_version,
15
+ class_obj.endpoint_type,
16
+ request_name
17
+ )
18
+ end
19
+
20
+
21
+ private
22
+
23
+ def set_class_name(base, obj, *hierarchy)
24
+ const_name = hierarchy.shift.to_s.camelize
25
+
26
+ const = if base.const_defined?(const_name, false)
27
+ base.const_get(const_name, false)
28
+ else
29
+ base.const_set(const_name, (hierarchy.empty? ? obj : Module.new))
30
+ end
31
+
32
+ hierarchy.empty? ? const : set_class_name(const, obj, *hierarchy)
33
+ end
34
+
35
+ end # class << self
36
+
37
+ end
@@ -2,12 +2,20 @@ module Aviator
2
2
 
3
3
  class Response
4
4
 
5
+
6
+ def body
7
+ @body ||= if response.body.length > 0
8
+ JSON.parse(response.body).with_indifferent_access
9
+ else
10
+ {}
11
+ end
12
+
13
+ @body.dup
14
+ end
15
+
5
16
 
6
17
  def method_missing(name, *args)
7
18
  case name
8
- when :body
9
- @body ||= JSON.parse(response.body).with_indifferent_access
10
- @body.dup
11
19
  when :headers, :status
12
20
  response.send(name)
13
21
  when :request
@@ -149,7 +149,8 @@ module Aviator
149
149
 
150
150
  elsif session_data.has_key? :access
151
151
  service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == service }
152
- service_spec[:endpoints][0][:publicURL].match(/(v\d+)\.?\d*/)[1].to_sym
152
+ version = service_spec[:endpoints][0][:publicURL].match(/(v\d+)\.?\d*/)
153
+ version ? version[1].to_sym : :v1
153
154
  end
154
155
  end
155
156
 
@@ -185,4 +186,4 @@ module Aviator
185
186
 
186
187
  end
187
188
 
188
- end
189
+ end
@@ -0,0 +1,46 @@
1
+ module Aviator
2
+
3
+ define_request :confirm_server_resize do
4
+
5
+ meta :provider, :openstack
6
+ meta :service, :compute
7
+ meta :api_version, :v2
8
+ meta :endpoint_type, :admin
9
+
10
+ link 'documentation',
11
+ 'http://docs.openstack.org/api/openstack-compute/2/content/Confirm_Resized_Server-d1e3868.html'
12
+
13
+ param :id, required: true
14
+
15
+
16
+ def body
17
+ {
18
+ confirmResize: nil
19
+ }
20
+ end
21
+
22
+
23
+ def headers
24
+ h = {}
25
+
26
+ unless self.anonymous?
27
+ h['X-Auth-Token'] = session_data[:access][:token][:id]
28
+ end
29
+
30
+ h
31
+ end
32
+
33
+
34
+ def http_method
35
+ :post
36
+ end
37
+
38
+
39
+ def url
40
+ service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == service.to_s }
41
+ "#{ service_spec[:endpoints][0][:adminURL] }/servers/#{ params[:id] }/action"
42
+ end
43
+
44
+ end
45
+
46
+ end
@@ -0,0 +1,40 @@
1
+ module Aviator
2
+
3
+ define_request :get_host_details do
4
+
5
+ meta :provider, :openstack
6
+ meta :service, :compute
7
+ meta :api_version, :v2
8
+ meta :endpoint_type, :admin
9
+
10
+ link 'documentation',
11
+ 'http://api.openstack.org/api-ref.html#ext-os-hosts'
12
+
13
+ param :host_name, required: true
14
+
15
+
16
+ def headers
17
+ h = {}
18
+
19
+ unless self.anonymous?
20
+ h['X-Auth-Token'] = session_data[:access][:token][:id]
21
+ end
22
+
23
+ h
24
+ end
25
+
26
+
27
+ def http_method
28
+ :get
29
+ end
30
+
31
+
32
+ def url
33
+ service_spec = session_data[:access][:serviceCatalog].find { |s| s[:type] == service.to_s }
34
+
35
+ "#{ service_spec[:endpoints][0][:adminURL] }/os-hosts/#{ params[:host_name] }"
36
+ end
37
+
38
+ end
39
+
40
+ end
@@ -0,0 +1,55 @@
1
+ module Aviator
2
+
3
+ define_request :list_hosts do
4
+
5
+ meta :provider, :openstack
6
+ meta :service, :compute
7
+ meta :api_version, :v2
8
+ meta :endpoint_type, :admin
9
+
10
+ link 'documentation',
11
+ 'http://api.openstack.org/api-ref.html#ext-os-hosts'
12
+
13
+ link 'documentation bug',
14
+ 'https://bugs.launchpad.net/nova/+bug/1224763'
15
+
16
+ param :service, required: false
17
+ param :zone, required: false
18
+
19
+
20
+ def headers
21
+ h = {}
22
+
23
+ unless self.anonymous?
24
+ h['X-Auth-Token'] = session_data[:access][:token][:id]
25
+ end
26
+
27
+ h
28
+ end
29
+
30
+
31
+ def http_method
32
+ :get
33
+ end
34
+
35
+
36
+ def url
37
+ service_spec = session_data[:access][:serviceCatalog].find { |s| s[:type] == service.to_s }
38
+
39
+ url = "#{ service_spec[:endpoints][0][:adminURL] }/os-hosts"
40
+
41
+ filters = []
42
+
43
+ optional_params.each do |param_name|
44
+ filters << "#{ param_name }=#{ params[param_name] }" if params[param_name]
45
+ end
46
+
47
+ url += "?#{ filters.join('&') }" unless filters.empty?
48
+
49
+ url
50
+ end
51
+
52
+ end
53
+
54
+ end
55
+
@@ -0,0 +1,51 @@
1
+ module Aviator
2
+
3
+ define_request :resize_server do
4
+
5
+ meta :provider, :openstack
6
+ meta :service, :compute
7
+ meta :api_version, :v2
8
+ meta :endpoint_type, :admin
9
+
10
+ link 'documentation',
11
+ 'http://docs.openstack.org/api/openstack-compute/2/content/Resize_Server-d1e3707.html'
12
+
13
+ param :id, required: true
14
+ param :name, required: true
15
+ param :flavorRef, required: true
16
+
17
+
18
+ def body
19
+ {
20
+ resize: {
21
+ name: params[:name],
22
+ flavorRef: params[:flavorRef]
23
+ }
24
+ }
25
+ end
26
+
27
+
28
+ def headers
29
+ h = {}
30
+
31
+ unless self.anonymous?
32
+ h['X-Auth-Token'] = session_data[:access][:token][:id]
33
+ end
34
+
35
+ h
36
+ end
37
+
38
+
39
+ def http_method
40
+ :post
41
+ end
42
+
43
+
44
+ def url
45
+ service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == service.to_s }
46
+ "#{ service_spec[:endpoints][0][:adminURL] }/servers/#{ params[:id] }/action"
47
+ end
48
+
49
+ end
50
+
51
+ end
@@ -0,0 +1,46 @@
1
+ module Aviator
2
+
3
+ define_request :revert_server_resize do
4
+
5
+ meta :provider, :openstack
6
+ meta :service, :compute
7
+ meta :api_version, :v2
8
+ meta :endpoint_type, :admin
9
+
10
+ link 'documentation',
11
+ 'http://docs.openstack.org/api/openstack-compute/2/content/Revert_Resized_Server-d1e4024.html'
12
+
13
+ param :id, required: true
14
+
15
+
16
+ def body
17
+ {
18
+ revertResize: nil
19
+ }
20
+ end
21
+
22
+
23
+ def headers
24
+ h = {}
25
+
26
+ unless self.anonymous?
27
+ h['X-Auth-Token'] = session_data[:access][:token][:id]
28
+ end
29
+
30
+ h
31
+ end
32
+
33
+
34
+ def http_method
35
+ :post
36
+ end
37
+
38
+
39
+ def url
40
+ service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == service.to_s }
41
+ "#{ service_spec[:endpoints][0][:adminURL] }/servers/#{ params[:id] }/action"
42
+ end
43
+
44
+ end
45
+
46
+ end
@@ -0,0 +1,40 @@
1
+ module Aviator
2
+
3
+ define_request :delete_image do
4
+
5
+ meta :provider, :openstack
6
+ meta :service, :compute
7
+ meta :api_version, :v2
8
+ meta :endpoint_type, :public
9
+
10
+ link 'documentation',
11
+ 'http://docs.openstack.org/api/openstack-compute/2/content/Delete_Image-d1e4957.html'
12
+
13
+ param :id, required: true
14
+
15
+
16
+ def headers
17
+ h = {}
18
+
19
+ unless self.anonymous?
20
+ h['X-Auth-Token'] = session_data[:access][:token][:id]
21
+ end
22
+
23
+ h
24
+ end
25
+
26
+
27
+ def http_method
28
+ :delete
29
+ end
30
+
31
+
32
+ def url
33
+ service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == service.to_s }
34
+
35
+ "#{ service_spec[:endpoints][0][:publicURL] }/images/#{ params[:id]}"
36
+ end
37
+
38
+ end
39
+
40
+ end