aviator 0.0.6 → 0.0.7

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 (245) hide show
  1. checksums.yaml +8 -8
  2. data/.gitignore +2 -1
  3. data/.travis.yml +4 -0
  4. data/Gemfile +6 -2
  5. data/aviator.gemspec +19 -6
  6. data/lib/aviator/compatibility.rb +34 -0
  7. data/lib/aviator/core/cli/describer.rb +16 -16
  8. data/lib/aviator/core/logger.rb +55 -0
  9. data/lib/aviator/core/request.rb +5 -4
  10. data/lib/aviator/core/request_builder.rb +1 -1
  11. data/lib/aviator/core/response.rb +17 -11
  12. data/lib/aviator/core/service.rb +9 -27
  13. data/lib/aviator/core/session.rb +71 -61
  14. data/lib/aviator/core.rb +3 -1
  15. data/lib/aviator/hashish.rb +111 -0
  16. data/lib/aviator/openstack/common/v2/admin/base.rb +1 -1
  17. data/lib/aviator/openstack/common/v2/public/base.rb +7 -3
  18. data/lib/aviator/openstack/compute/v2/admin/confirm_server_resize.rb +3 -3
  19. data/lib/aviator/openstack/compute/v2/admin/create_network.rb +15 -15
  20. data/lib/aviator/openstack/compute/v2/admin/get_host_details.rb +2 -2
  21. data/lib/aviator/openstack/compute/v2/admin/list_hosts.rb +3 -3
  22. data/lib/aviator/openstack/compute/v2/admin/lock_server.rb +3 -3
  23. data/lib/aviator/openstack/compute/v2/admin/migrate_server.rb +3 -3
  24. data/lib/aviator/openstack/compute/v2/admin/reset_server.rb +3 -3
  25. data/lib/aviator/openstack/compute/v2/admin/resize_server.rb +7 -7
  26. data/lib/aviator/openstack/compute/v2/admin/revert_server_resize.rb +2 -2
  27. data/lib/aviator/openstack/compute/v2/admin/unlock_server.rb +3 -3
  28. data/lib/aviator/openstack/compute/v2/public/change_admin_password.rb +5 -5
  29. data/lib/aviator/openstack/compute/v2/public/create_image.rb +6 -6
  30. data/lib/aviator/openstack/compute/v2/public/create_server.rb +14 -14
  31. data/lib/aviator/openstack/compute/v2/public/delete_image.rb +2 -2
  32. data/lib/aviator/openstack/compute/v2/public/delete_image_metadata_item.rb +31 -0
  33. data/lib/aviator/openstack/compute/v2/public/delete_server.rb +2 -2
  34. data/lib/aviator/openstack/compute/v2/public/delete_server_metadata_item.rb +31 -0
  35. data/lib/aviator/openstack/compute/v2/public/get_flavor_details.rb +2 -2
  36. data/lib/aviator/openstack/compute/v2/public/get_image_details.rb +2 -2
  37. data/lib/aviator/openstack/compute/v2/public/get_image_metadata_item.rb +31 -0
  38. data/lib/aviator/openstack/compute/v2/public/get_network_details.rb +2 -2
  39. data/lib/aviator/openstack/compute/v2/public/get_server.rb +2 -2
  40. data/lib/aviator/openstack/compute/v2/public/get_server_metadata_item.rb +31 -0
  41. data/lib/aviator/openstack/compute/v2/public/list_addresses.rb +3 -3
  42. data/lib/aviator/openstack/compute/v2/public/list_flavors.rb +6 -6
  43. data/lib/aviator/openstack/compute/v2/public/list_image_metadata.rb +30 -0
  44. data/lib/aviator/openstack/compute/v2/public/list_images.rb +9 -9
  45. data/lib/aviator/openstack/compute/v2/public/list_networks.rb +1 -1
  46. data/lib/aviator/openstack/compute/v2/public/list_server_metadata.rb +30 -0
  47. data/lib/aviator/openstack/compute/v2/public/list_servers.rb +11 -11
  48. data/lib/aviator/openstack/compute/v2/public/pause_server.rb +3 -3
  49. data/lib/aviator/openstack/compute/v2/public/reboot_server.rb +5 -5
  50. data/lib/aviator/openstack/compute/v2/public/rebuild_server.rb +13 -13
  51. data/lib/aviator/openstack/compute/v2/public/resume_server.rb +3 -3
  52. data/lib/aviator/openstack/compute/v2/public/root.rb +1 -1
  53. data/lib/aviator/openstack/compute/v2/public/set_image_metadata.rb +38 -0
  54. data/lib/aviator/openstack/compute/v2/public/set_server_metadata.rb +38 -0
  55. data/lib/aviator/openstack/compute/v2/public/suspend_server.rb +3 -3
  56. data/lib/aviator/openstack/compute/v2/public/unpause_server.rb +3 -3
  57. data/lib/aviator/openstack/compute/v2/public/update_image_metadata.rb +38 -0
  58. data/lib/aviator/openstack/compute/v2/public/update_server.rb +6 -6
  59. data/lib/aviator/openstack/compute/v2/public/update_server_metadata.rb +38 -0
  60. data/lib/aviator/openstack/identity/v2/admin/add_role_to_user_on_tenant.rb +4 -4
  61. data/lib/aviator/openstack/identity/v2/admin/create_tenant.rb +8 -8
  62. data/lib/aviator/openstack/identity/v2/admin/create_user.rb +6 -6
  63. data/lib/aviator/openstack/identity/v2/admin/delete_role_from_user_on_tenant.rb +4 -4
  64. data/lib/aviator/openstack/identity/v2/admin/delete_tenant.rb +2 -2
  65. data/lib/aviator/openstack/identity/v2/admin/delete_user.rb +1 -1
  66. data/lib/aviator/openstack/identity/v2/admin/get_tenant_by_id.rb +30 -0
  67. data/lib/aviator/openstack/identity/v2/admin/list_tenants.rb +3 -3
  68. data/lib/aviator/openstack/identity/v2/admin/update_tenant.rb +6 -6
  69. data/lib/aviator/openstack/identity/v2/admin/update_user.rb +7 -7
  70. data/lib/aviator/openstack/identity/v2/public/create_token.rb +13 -13
  71. data/lib/aviator/openstack/identity/v2/public/list_tenants.rb +3 -3
  72. data/lib/aviator/openstack/identity/v2/public/root.rb +1 -1
  73. data/lib/aviator/openstack/image/v1/public/list_public_images.rb +45 -0
  74. data/lib/aviator/openstack/image/v1/public/root.rb +1 -1
  75. data/lib/aviator/openstack/metering/v1/admin/list_projects.rb +1 -1
  76. data/lib/aviator/openstack/volume/v1/public/create_volume.rb +13 -13
  77. data/lib/aviator/openstack/volume/v1/public/delete_volume.rb +2 -2
  78. data/lib/aviator/openstack/volume/v1/public/get_volume.rb +2 -2
  79. data/lib/aviator/openstack/volume/v1/public/list_volume_types.rb +3 -3
  80. data/lib/aviator/openstack/volume/v1/public/list_volumes.rb +22 -11
  81. data/lib/aviator/openstack/volume/v1/public/root.rb +1 -1
  82. data/lib/aviator/openstack/volume/v1/public/update_volume.rb +5 -5
  83. data/lib/aviator/version.rb +1 -1
  84. data/lib/aviator.rb +5 -0
  85. data/test/aviator/core/cli/describer_test.rb +29 -29
  86. data/test/aviator/core/request_builder_test.rb +13 -13
  87. data/test/aviator/core/request_test.rb +11 -11
  88. data/test/aviator/core/service_test.rb +31 -31
  89. data/test/aviator/core/session_test.rb +122 -70
  90. data/test/aviator/openstack/common/v2/public/base_test.rb +8 -8
  91. data/test/aviator/openstack/compute/v2/admin/confirm_server_resize_test.rb +2 -2
  92. data/test/aviator/openstack/compute/v2/admin/create_network_test.rb +15 -15
  93. data/test/aviator/openstack/compute/v2/admin/get_host_details_test.rb +2 -2
  94. data/test/aviator/openstack/compute/v2/admin/list_hosts_test.rb +2 -2
  95. data/test/aviator/openstack/compute/v2/admin/lock_server_test.rb +2 -2
  96. data/test/aviator/openstack/compute/v2/admin/migrate_server_test.rb +2 -2
  97. data/test/aviator/openstack/compute/v2/admin/reset_server_test.rb +2 -2
  98. data/test/aviator/openstack/compute/v2/admin/resize_server_test.rb +3 -3
  99. data/test/aviator/openstack/compute/v2/admin/revert_server_resize_test.rb +2 -2
  100. data/test/aviator/openstack/compute/v2/admin/unlock_server_test.rb +2 -2
  101. data/test/aviator/openstack/compute/v2/public/change_admin_password_test.rb +3 -3
  102. data/test/aviator/openstack/compute/v2/public/create_image_test.rb +2 -2
  103. data/test/aviator/openstack/compute/v2/public/create_server_test.rb +7 -7
  104. data/test/aviator/openstack/compute/v2/public/delete_image_metadata_item_test.rb +159 -0
  105. data/test/aviator/openstack/compute/v2/public/delete_image_test.rb +2 -2
  106. data/test/aviator/openstack/compute/v2/public/delete_server_metadata_item_test.rb +156 -0
  107. data/test/aviator/openstack/compute/v2/public/delete_server_test.rb +2 -2
  108. data/test/aviator/openstack/compute/v2/public/get_flavor_details_test.rb +2 -2
  109. data/test/aviator/openstack/compute/v2/public/get_image_details_test.rb +2 -2
  110. data/test/aviator/openstack/compute/v2/public/get_image_metadata_item_test.rb +160 -0
  111. data/test/aviator/openstack/compute/v2/public/get_network_details_test.rb +2 -2
  112. data/test/aviator/openstack/compute/v2/public/get_server_metadata_item_test.rb +160 -0
  113. data/test/aviator/openstack/compute/v2/public/get_server_test.rb +2 -2
  114. data/test/aviator/openstack/compute/v2/public/list_addresses_test.rb +3 -3
  115. data/test/aviator/openstack/compute/v2/public/list_flavors_test.rb +4 -4
  116. data/test/aviator/openstack/compute/v2/public/list_image_metadata_test.rb +127 -0
  117. data/test/aviator/openstack/compute/v2/public/list_images_test.rb +13 -13
  118. data/test/aviator/openstack/compute/v2/public/list_networks_test.rb +2 -2
  119. data/test/aviator/openstack/compute/v2/public/list_server_metadata_test.rb +127 -0
  120. data/test/aviator/openstack/compute/v2/public/list_servers_test.rb +15 -15
  121. data/test/aviator/openstack/compute/v2/public/pause_server_test.rb +2 -2
  122. data/test/aviator/openstack/compute/v2/public/reboot_server_test.rb +2 -2
  123. data/test/aviator/openstack/compute/v2/public/rebuild_server_test.rb +6 -6
  124. data/test/aviator/openstack/compute/v2/public/resume_server_test.rb +2 -2
  125. data/test/aviator/openstack/compute/v2/public/root_test.rb +2 -2
  126. data/test/aviator/openstack/compute/v2/public/set_image_metadata_test.rb +151 -0
  127. data/test/aviator/openstack/compute/v2/public/set_server_metadata_test.rb +149 -0
  128. data/test/aviator/openstack/compute/v2/public/suspend_server_test.rb +2 -2
  129. data/test/aviator/openstack/compute/v2/public/unpause_server_test.rb +2 -2
  130. data/test/aviator/openstack/compute/v2/public/update_image_metadata_test.rb +154 -0
  131. data/test/aviator/openstack/compute/v2/public/update_server_metadata_test.rb +150 -0
  132. data/test/aviator/openstack/compute/v2/public/update_server_test.rb +4 -4
  133. data/test/aviator/openstack/identity/v2/admin/add_role_to_user_on_tenant_test.rb +2 -2
  134. data/test/aviator/openstack/identity/v2/admin/create_tenant_test.rb +13 -13
  135. data/test/aviator/openstack/identity/v2/admin/create_user_test.rb +12 -10
  136. data/test/aviator/openstack/identity/v2/admin/delete_role_from_user_on_tenant_test.rb +2 -2
  137. data/test/aviator/openstack/identity/v2/admin/delete_tenant_test.rb +2 -2
  138. data/test/aviator/openstack/identity/v2/admin/delete_user_test.rb +2 -2
  139. data/test/aviator/openstack/identity/v2/admin/get_tenant_by_id_test.rb +122 -0
  140. data/test/aviator/openstack/identity/v2/admin/list_users_test.rb +2 -2
  141. data/test/aviator/openstack/identity/v2/admin/update_tenant_test.rb +2 -2
  142. data/test/aviator/openstack/identity/v2/admin/update_user_test.rb +3 -3
  143. data/test/aviator/openstack/identity/v2/public/create_token_test.rb +19 -18
  144. data/test/aviator/openstack/identity/v2/public/list_tenants_test.rb +5 -5
  145. data/test/aviator/openstack/identity/v2/public/root_test.rb +2 -2
  146. data/test/aviator/openstack/image/v1/public/list_public_images_test.rb +145 -0
  147. data/test/aviator/openstack/image/v1/public/root_test.rb +2 -2
  148. data/test/aviator/openstack/metering/v1/admin/list_projects_test.rb +2 -2
  149. data/test/aviator/openstack/volume/v1/public/create_volume_test.rb +2 -2
  150. data/test/aviator/openstack/volume/v1/public/delete_volume_test.rb +2 -2
  151. data/test/aviator/openstack/volume/v1/public/get_volume_test.rb +2 -2
  152. data/test/aviator/openstack/volume/v1/public/list_volume_types_test.rb +2 -2
  153. data/test/aviator/openstack/volume/v1/public/list_volumes_test.rb +49 -24
  154. data/test/aviator/openstack/volume/v1/public/root_test.rb +2 -2
  155. data/test/aviator/openstack/volume/v1/public/update_volume_test.rb +2 -2
  156. data/test/cassettes/core/session/i_validate/returns_false_if_session_is_no_longer_valid.yml +20 -19
  157. data/test/cassettes/core/session/i_validate/returns_true_even_when_a_default_token_is_used.yml +72 -0
  158. data/test/cassettes/core/session/i_validate/returns_true_if_session_is_still_valid.yml +24 -24
  159. data/test/cassettes/openstack/compute/v2/public/delete_image_metadata_item/leads_to_a_valid_response_when_invalid_image_id_is_provided.yml +98 -0
  160. data/test/cassettes/openstack/compute/v2/public/delete_image_metadata_item/leads_to_a_valid_response_when_invalid_metadata_key_is_provided.yml +147 -0
  161. data/test/cassettes/openstack/compute/v2/public/delete_image_metadata_item/leads_to_a_valid_response_when_valid_image_id_and_metadata_key_are_provided.yml +180 -0
  162. data/test/cassettes/openstack/compute/v2/public/delete_image_metadata_item/returns_the_correct_value_for_body_.yml +65 -0
  163. data/test/cassettes/openstack/compute/v2/public/delete_image_metadata_item/returns_the_correct_value_for_headers_.yml +65 -0
  164. data/test/cassettes/openstack/compute/v2/public/delete_image_metadata_item/returns_the_correct_value_for_http_method_.yml +65 -0
  165. data/test/cassettes/openstack/compute/v2/public/delete_image_metadata_item/returns_the_correct_value_for_url_.yml +65 -0
  166. data/test/cassettes/openstack/compute/v2/public/delete_server_metadata_item/leads_to_a_valid_response_when_invalid_metadata_key_is_provided.yml +135 -0
  167. data/test/cassettes/openstack/compute/v2/public/delete_server_metadata_item/leads_to_a_valid_response_when_invalid_server_id_is_provided.yml +98 -0
  168. data/test/cassettes/openstack/compute/v2/public/delete_server_metadata_item/leads_to_a_valid_response_when_valid_server_id_and_metadata_key_are_provided.yml +167 -0
  169. data/test/cassettes/openstack/compute/v2/public/delete_server_metadata_item/returns_the_correct_value_for_body_.yml +65 -0
  170. data/test/cassettes/openstack/compute/v2/public/delete_server_metadata_item/returns_the_correct_value_for_headers_.yml +65 -0
  171. data/test/cassettes/openstack/compute/v2/public/delete_server_metadata_item/returns_the_correct_value_for_http_method_.yml +65 -0
  172. data/test/cassettes/openstack/compute/v2/public/delete_server_metadata_item/returns_the_correct_value_for_url_.yml +65 -0
  173. data/test/cassettes/openstack/compute/v2/public/get_image_metadata_item/leads_to_a_valid_response_when_invalid_image_id_is_provided.yml +98 -0
  174. data/test/cassettes/openstack/compute/v2/public/get_image_metadata_item/leads_to_a_valid_response_when_invalid_metadata_key_is_provided.yml +148 -0
  175. data/test/cassettes/openstack/compute/v2/public/get_image_metadata_item/leads_to_a_valid_response_when_valid_image_id_and_metadata_key_are_provided.yml +180 -0
  176. data/test/cassettes/openstack/compute/v2/public/get_image_metadata_item/returns_the_correct_value_for_body_.yml +65 -0
  177. data/test/cassettes/openstack/compute/v2/public/get_image_metadata_item/returns_the_correct_value_for_headers_.yml +65 -0
  178. data/test/cassettes/openstack/compute/v2/public/get_image_metadata_item/returns_the_correct_value_for_http_method_.yml +65 -0
  179. data/test/cassettes/openstack/compute/v2/public/get_image_metadata_item/returns_the_correct_value_for_url_.yml +65 -0
  180. data/test/cassettes/openstack/compute/v2/public/get_server_metadata_item/leads_to_a_valid_response_when_invalid_metadata_key_is_provided.yml +135 -0
  181. data/test/cassettes/openstack/compute/v2/public/get_server_metadata_item/leads_to_a_valid_response_when_invalid_server_id_and_metadata_key_are_provided.yml +98 -0
  182. data/test/cassettes/openstack/compute/v2/public/get_server_metadata_item/leads_to_a_valid_response_when_valid_server_id_and_metadata_key_are_provided.yml +167 -0
  183. data/test/cassettes/openstack/compute/v2/public/get_server_metadata_item/returns_the_correct_value_for_body_.yml +65 -0
  184. data/test/cassettes/openstack/compute/v2/public/get_server_metadata_item/returns_the_correct_value_for_headers_.yml +65 -0
  185. data/test/cassettes/openstack/compute/v2/public/get_server_metadata_item/returns_the_correct_value_for_http_method_.yml +65 -0
  186. data/test/cassettes/openstack/compute/v2/public/get_server_metadata_item/returns_the_correct_value_for_url_.yml +65 -0
  187. data/test/cassettes/openstack/compute/v2/public/list_image_metadata/leads_to_a_valid_response_when_invalid_image_id_is_provided.yml +98 -0
  188. data/test/cassettes/openstack/compute/v2/public/list_image_metadata/leads_to_a_valid_response_when_valid_image_id_is_provided.yml +147 -0
  189. data/test/cassettes/openstack/compute/v2/public/list_image_metadata/returns_the_correct_value_for_body_.yml +65 -0
  190. data/test/cassettes/openstack/compute/v2/public/list_image_metadata/returns_the_correct_value_for_headers_.yml +65 -0
  191. data/test/cassettes/openstack/compute/v2/public/list_image_metadata/returns_the_correct_value_for_http_method_.yml +65 -0
  192. data/test/cassettes/openstack/compute/v2/public/list_image_metadata/returns_the_correct_value_for_url_.yml +65 -0
  193. data/test/cassettes/openstack/compute/v2/public/list_server_metadata/leads_to_a_valid_response_when_invalid_server_id_is_provided.yml +98 -0
  194. data/test/cassettes/openstack/compute/v2/public/list_server_metadata/leads_to_a_valid_response_when_valid_server_id_is_provided.yml +134 -0
  195. data/test/cassettes/openstack/compute/v2/public/list_server_metadata/returns_the_correct_value_for_body_.yml +65 -0
  196. data/test/cassettes/openstack/compute/v2/public/list_server_metadata/returns_the_correct_value_for_headers_.yml +65 -0
  197. data/test/cassettes/openstack/compute/v2/public/list_server_metadata/returns_the_correct_value_for_http_method_.yml +65 -0
  198. data/test/cassettes/openstack/compute/v2/public/list_server_metadata/returns_the_correct_value_for_url_.yml +65 -0
  199. data/test/cassettes/openstack/compute/v2/public/set_image_metadata/leads_to_a_valid_response_when_invalid_image_id_is_provided.yml +98 -0
  200. data/test/cassettes/openstack/compute/v2/public/set_image_metadata/leads_to_a_valid_response_when_valid_image_id_is_provided.yml +98 -0
  201. data/test/cassettes/openstack/compute/v2/public/set_image_metadata/returns_the_correct_value_for_body_.yml +65 -0
  202. data/test/cassettes/openstack/compute/v2/public/set_image_metadata/returns_the_correct_value_for_headers_.yml +65 -0
  203. data/test/cassettes/openstack/compute/v2/public/set_image_metadata/returns_the_correct_value_for_http_method_.yml +65 -0
  204. data/test/cassettes/openstack/compute/v2/public/set_image_metadata/returns_the_correct_value_for_url_.yml +65 -0
  205. data/test/cassettes/openstack/compute/v2/public/set_server_metadata/leads_to_a_valid_response_when_invalid_server_id_is_provided.yml +98 -0
  206. data/test/cassettes/openstack/compute/v2/public/set_server_metadata/leads_to_a_valid_response_when_valid_server_id_is_provided.yml +134 -0
  207. data/test/cassettes/openstack/compute/v2/public/set_server_metadata/returns_the_correct_value_for_body_.yml +65 -0
  208. data/test/cassettes/openstack/compute/v2/public/set_server_metadata/returns_the_correct_value_for_headers_.yml +65 -0
  209. data/test/cassettes/openstack/compute/v2/public/set_server_metadata/returns_the_correct_value_for_http_method_.yml +65 -0
  210. data/test/cassettes/openstack/compute/v2/public/set_server_metadata/returns_the_correct_value_for_url_.yml +65 -0
  211. data/test/cassettes/openstack/compute/v2/public/update_image_metadata/leads_to_a_valid_response_when_invalid_image_id_is_provided.yml +98 -0
  212. data/test/cassettes/openstack/compute/v2/public/update_image_metadata/leads_to_a_valid_response_when_valid_image_id_is_provided.yml +98 -0
  213. data/test/cassettes/openstack/compute/v2/public/update_image_metadata/returns_the_correct_value_for_body_.yml +65 -0
  214. data/test/cassettes/openstack/compute/v2/public/update_image_metadata/returns_the_correct_value_for_headers_.yml +65 -0
  215. data/test/cassettes/openstack/compute/v2/public/update_image_metadata/returns_the_correct_value_for_http_method_.yml +65 -0
  216. data/test/cassettes/openstack/compute/v2/public/update_image_metadata/returns_the_correct_value_for_url_.yml +65 -0
  217. data/test/cassettes/openstack/compute/v2/public/update_server_metadata/leads_to_a_valid_response_when_invalid_server_id_is_provided.yml +98 -0
  218. data/test/cassettes/openstack/compute/v2/public/update_server_metadata/leads_to_a_valid_response_when_valid_server_id_is_provided.yml +134 -0
  219. data/test/cassettes/openstack/compute/v2/public/update_server_metadata/returns_the_correct_value_for_body_.yml +65 -0
  220. data/test/cassettes/openstack/compute/v2/public/update_server_metadata/returns_the_correct_value_for_headers_.yml +65 -0
  221. data/test/cassettes/openstack/compute/v2/public/update_server_metadata/returns_the_correct_value_for_http_method_.yml +65 -0
  222. data/test/cassettes/openstack/compute/v2/public/update_server_metadata/returns_the_correct_value_for_url_.yml +65 -0
  223. data/test/cassettes/openstack/identity/v2/admin/get_tenant_by_id/leads_to_a_valid_response_when_a_valid_tenant_id_is_provided.yml +133 -0
  224. data/test/cassettes/openstack/identity/v2/admin/get_tenant_by_id/returns_the_correct_value_for_body_.yml +65 -0
  225. data/test/cassettes/openstack/identity/v2/admin/get_tenant_by_id/returns_the_correct_value_for_headers_.yml +65 -0
  226. data/test/cassettes/openstack/identity/v2/admin/get_tenant_by_id/returns_the_correct_value_for_http_method_.yml +65 -0
  227. data/test/cassettes/openstack/identity/v2/admin/get_tenant_by_id/returns_the_correct_value_for_url_.yml +65 -0
  228. data/test/cassettes/openstack/image/v1/public/list_public_images/leads_to_a_valid_response_when_filtering_with_matches.yml +99 -0
  229. data/test/cassettes/openstack/image/v1/public/list_public_images/leads_to_a_valid_response_when_filtering_with_no_matches.yml +97 -0
  230. data/test/cassettes/openstack/image/v1/public/list_public_images/leads_to_a_valid_response_when_no_parameters_are_provided.yml +99 -0
  231. data/test/cassettes/openstack/image/v1/public/list_public_images/returns_the_correct_value_for_body_.yml +64 -0
  232. data/test/cassettes/openstack/image/v1/public/list_public_images/returns_the_correct_value_for_headers_.yml +64 -0
  233. data/test/cassettes/openstack/image/v1/public/list_public_images/returns_the_correct_value_for_http_method_.yml +64 -0
  234. data/test/cassettes/openstack/volume/v1/public/list_volumes/leads_to_a_valid_response_when_all_tenants_param_is_true.yml +139 -0
  235. data/test/environment.yml.example +2 -2
  236. data/test/environment.yml.travis-ci +2 -2
  237. data/test/support/request_helper.rb +13 -13
  238. data/test/support/test_base_class.rb +13 -13
  239. data/test/support/test_environment.rb +33 -15
  240. data/test/support/test_reporter.rb +38 -30
  241. data/test/support/vcr_setup.rb +29 -11
  242. data/test/test_helper.rb +16 -6
  243. metadata +205 -42
  244. data/.ruby-gemset +0 -1
  245. data/.ruby-version +0 -1
@@ -1,21 +1,22 @@
1
1
  module Aviator
2
2
 
3
- define_request :list_volumes, inherit: [:openstack, :common, :v2, :public, :base] do
3
+ define_request :list_volumes, :inherit => [:openstack, :common, :v2, :public, :base] do
4
4
 
5
5
  meta :service, :volume
6
6
  meta :api_version, :v1
7
7
 
8
8
  link 'documentation', 'http://docs.rackspace.com/cbs/api/v1.0/cbs-devguide/content/GET_getVolumesSimple_v1__tenant_id__volumes_v1__tenant_id__volumes.html'
9
9
 
10
- param :details, required: false
11
- param :status, required: false
12
- param :availability_zone, required: false
13
- param :bootable, required: false
14
- param :display_name, required: false
15
- param :display_description, required: false
16
- param :volume_type, required: false
17
- param :snapshot_id, required: false
18
- param :size, required: false
10
+ param :all_tenants, :required => false
11
+ param :details, :required => false
12
+ param :status, :required => false
13
+ param :availability_zone, :required => false
14
+ param :bootable, :required => false
15
+ param :display_name, :required => false
16
+ param :display_description, :required => false
17
+ param :volume_type, :required => false
18
+ param :snapshot_id, :required => false
19
+ param :size, :required => false
19
20
 
20
21
 
21
22
  def headers
@@ -29,7 +30,17 @@ module Aviator
29
30
  def url
30
31
  str = "#{ base_url }/volumes"
31
32
  str += "/detail" if params[:details]
32
- str += params_to_querystring(optional_params + required_params - [:details])
33
+
34
+ filters = []
35
+
36
+ (optional_params + required_params - [:details]).each do |param_name|
37
+ value = param_name == :all_tenants && params[param_name] ? 1 : params[param_name]
38
+ filters << "#{ param_name }=#{ value }" if value
39
+ end
40
+
41
+ str += "?#{ filters.join('&') }" unless filters.empty?
42
+
43
+ str
33
44
  end
34
45
 
35
46
  end
@@ -1,6 +1,6 @@
1
1
  module Aviator
2
2
 
3
- define_request :root, inherit: [:openstack, :common, :v2, :public, :base] do
3
+ define_request :root, :inherit => [:openstack, :common, :v2, :public, :base] do
4
4
 
5
5
  meta :service, :volume
6
6
  meta :api_version, :v1
@@ -1,19 +1,19 @@
1
1
  module Aviator
2
2
 
3
- define_request :update_volume, inherit: [:openstack, :common, :v2, :public, :base] do
3
+ define_request :update_volume, :inherit => [:openstack, :common, :v2, :public, :base] do
4
4
 
5
5
  meta :service, :volume
6
6
  meta :api_version, :v1
7
7
 
8
8
  link 'documentation', 'http://docs.rackspace.com/cbs/api/v1.0/cbs-devguide/content/PUT_renameVolume_v1__tenant_id__volumes__volume_id__v1__tenant_id__volumes.html'
9
9
 
10
- param :id, required: true
11
- param :display_name, required: false
12
- param :display_description, required: false
10
+ param :id, :required => true
11
+ param :display_name, :required => false
12
+ param :display_description, :required => false
13
13
 
14
14
 
15
15
  def body
16
- p = { volume: {} }
16
+ p = { :volume => {} }
17
17
 
18
18
  [:display_name, :display_description].each do |key|
19
19
  p[:volume][key] = params[key] if params[key]
@@ -1,3 +1,3 @@
1
1
  module Aviator
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
data/lib/aviator.rb CHANGED
@@ -1 +1,6 @@
1
+ # Add the parent dir to the load path. This is for when
2
+ # Aviator is not installed as a gem
3
+ lib_path = File.dirname(__FILE__)
4
+ $LOAD_PATH.unshift(lib_path) unless $LOAD_PATH.include? lib_path
5
+
1
6
  require 'aviator/core'
@@ -32,7 +32,7 @@ class Aviator::Test
32
32
 
33
33
  inherit = [provider_name.to_sym, service_name.to_sym, base_ver, base_ept, base_name]
34
34
 
35
- Aviator.define_request request_name, inherit: inherit, &block
35
+ Aviator.define_request request_name, :inherit => inherit, &block
36
36
  end
37
37
 
38
38
 
@@ -110,7 +110,7 @@ class Aviator::Test
110
110
  request_class = build_request(provider, service, request_name)
111
111
 
112
112
  expected = <<-EOF
113
- Request: #{ request_name }
113
+ :Request => #{ request_name }
114
114
 
115
115
  Sample Code:
116
116
  session.#{ service }_service.request(:#{ request_name })
@@ -134,20 +134,20 @@ EOF
134
134
  request_name = 'sample_request2'
135
135
 
136
136
  request_class = build_request(provider, service, request_name) do
137
- param :theParam, required: true
138
- param :another, required: false
137
+ param :theParam, :required => true
138
+ param :another, :required => false
139
139
  end
140
140
 
141
141
  expected = <<-EOF
142
- Request: #{ request_name }
142
+ :Request => #{ request_name }
143
143
 
144
144
  Parameters:
145
- +----------+----------+
146
- | NAME | REQUIRED |
147
- +----------+----------+
148
- | another | N |
149
- | theParam | Y |
150
- +----------+----------+
145
+ +----------+-----------+
146
+ | NAME | REQUIRED? |
147
+ +----------+-----------+
148
+ | another | N |
149
+ | theParam | Y |
150
+ +----------+-----------+
151
151
 
152
152
  Sample Code:
153
153
  session.#{ service }_service.request(:#{ request_name }) do |params|
@@ -174,20 +174,20 @@ EOF
174
174
  request_name = 'sample_request3'
175
175
 
176
176
  request_class = build_request(provider, service, request_name) do
177
- param :theParam, required: true, alias: :the_param
178
- param :anotherParam, required: false, alias: :another_param
177
+ param :theParam, :required => true, :alias => :the_param
178
+ param :anotherParam, :required => false, :alias => :another_param
179
179
  end
180
180
 
181
181
  expected = <<-EOF
182
- Request: #{ request_name }
182
+ :Request => #{ request_name }
183
183
 
184
184
  Parameters:
185
- +--------------+----------+---------------+
186
- | NAME | REQUIRED | ALIAS |
187
- +--------------+----------+---------------+
188
- | anotherParam | N | another_param |
189
- | theParam | Y | the_param |
190
- +--------------+----------+---------------+
185
+ +--------------+-----------+---------------+
186
+ | NAME | REQUIRED? | ALIAS |
187
+ +--------------+-----------+---------------+
188
+ | anotherParam | N | another_param |
189
+ | theParam | Y | the_param |
190
+ +--------------+-----------+---------------+
191
191
 
192
192
  Sample Code:
193
193
  session.#{ service }_service.request(:#{ request_name }) do |params|
@@ -214,22 +214,22 @@ EOF
214
214
  request_name = 'sample_request4'
215
215
 
216
216
  request_class = build_request(provider, service, request_name) do
217
- param :theParam, required: true, alias: :the_param
218
- param :anotherParam, required: false, alias: :another_param
217
+ param :theParam, :required => true, :alias => :the_param
218
+ param :anotherParam, :required => false, :alias => :another_param
219
219
 
220
220
  link 'link1', 'http://www.link.com'
221
221
  end
222
222
 
223
223
  expected = <<-EOF
224
- Request: #{ request_name }
224
+ :Request => #{ request_name }
225
225
 
226
226
  Parameters:
227
- +--------------+----------+---------------+
228
- | NAME | REQUIRED | ALIAS |
229
- +--------------+----------+---------------+
230
- | anotherParam | N | another_param |
231
- | theParam | Y | the_param |
232
- +--------------+----------+---------------+
227
+ +--------------+-----------+---------------+
228
+ | NAME | REQUIRED? | ALIAS |
229
+ +--------------+-----------+---------------+
230
+ | anotherParam | N | another_param |
231
+ | theParam | Y | the_param |
232
+ +--------------+-----------+---------------+
233
233
 
234
234
  Sample Code:
235
235
  session.#{ service }_service.request(:#{ request_name }) do |params|
@@ -62,11 +62,11 @@ class Aviator::Test
62
62
 
63
63
  it 'understands request inheritance' do
64
64
  base = {
65
- provider: :another_provider,
66
- service: :base_service,
67
- api_ver: :base_api_ver,
68
- ep_type: :base_ep_type,
69
- name: :base_name
65
+ :provider => :another_provider,
66
+ :service => :base_service,
67
+ :api_ver => :base_api_ver,
68
+ :ep_type => :base_ep_type,
69
+ :name => :base_name
70
70
  }
71
71
 
72
72
  builder.define_request base[:name] do
@@ -84,7 +84,7 @@ class Aviator::Test
84
84
  base[:name]
85
85
  ]
86
86
 
87
- builder.define_request :child_request, inherit: base_request do; end
87
+ builder.define_request :child_request, :inherit => base_request do; end
88
88
 
89
89
  child_req_hierarchy = [
90
90
  base[:provider],
@@ -110,7 +110,7 @@ class Aviator::Test
110
110
  non_existent_base = [:none, :existent, :base]
111
111
 
112
112
  the_method = lambda do
113
- builder.define_request :child, inherit: non_existent_base do; end
113
+ builder.define_request :child, :inherit => non_existent_base do; end
114
114
  end
115
115
 
116
116
  the_method.must_raise Aviator::BaseRequestNotFoundError
@@ -125,11 +125,11 @@ class Aviator::Test
125
125
 
126
126
  it 'raises a RequestAlreadyDefinedError if the request is already defined' do
127
127
  request = {
128
- provider: :existing_provider,
129
- service: :base_service,
130
- api_ver: :base_api_ver,
131
- ep_type: :base_ep_type,
132
- name: :base_name
128
+ :provider => :existing_provider,
129
+ :service => :base_service,
130
+ :api_ver => :base_api_ver,
131
+ :ep_type => :base_ep_type,
132
+ :name => :base_name
133
133
  }
134
134
 
135
135
  builder.define_request request[:name] do
@@ -161,7 +161,7 @@ class Aviator::Test
161
161
  base_arr = [:openstack, :identity, :v2, :public, :root]
162
162
  child_arr = base_arr.first(base_arr.length - 1) + [:child]
163
163
 
164
- builder.define_request child_arr.last, inherit: base_arr do; end
164
+ builder.define_request child_arr.last, :inherit => base_arr do; end
165
165
 
166
166
  base_klass = base_arr.inject(builder) do |namespace, sym|
167
167
  namespace.const_get(sym.to_s.camelize, false)
@@ -8,7 +8,7 @@ class Aviator::Test
8
8
 
9
9
  it 'raises an error when a required param is not provided' do
10
10
  klass = Class.new(Aviator::Request) do
11
- param :someparamname, required: true
11
+ param :someparamname, :required => true
12
12
  end
13
13
 
14
14
  the_method = lambda { klass.new }
@@ -23,7 +23,7 @@ class Aviator::Test
23
23
 
24
24
  it 'does not raise any error when the required param is provided' do
25
25
  klass = Class.new(Aviator::Request) do
26
- param :someparamname, required: true
26
+ param :someparamname, :required => true
27
27
  end
28
28
 
29
29
  obj = klass.new do |params|
@@ -190,7 +190,7 @@ class Aviator::Test
190
190
  end
191
191
 
192
192
  expected = [
193
- { rel: rel, href: href }
193
+ { :rel => rel, :href => href }
194
194
  ]
195
195
 
196
196
  klass.links.must_equal expected
@@ -215,7 +215,7 @@ class Aviator::Test
215
215
 
216
216
  it 'accepts an alias for a given parameter' do
217
217
  klass = Class.new(Aviator::Request) do
218
- param :the_param, required: true, alias: :the_alias
218
+ param :the_param, :required => true, :alias => :the_alias
219
219
  end
220
220
 
221
221
  param_val = 999
@@ -231,7 +231,7 @@ class Aviator::Test
231
231
 
232
232
  it 'makes the param alias assignable' do
233
233
  klass = Class.new(Aviator::Request) do
234
- param :the_param, required: true, alias: :the_alias
234
+ param :the_param, :required => true, :alias => :the_alias
235
235
  end
236
236
 
237
237
  param_val = 999
@@ -247,7 +247,7 @@ class Aviator::Test
247
247
 
248
248
  it 'allows aliases to be accessible as symbols' do
249
249
  klass = Class.new(Aviator::Request) do
250
- param :the_param, required: true, alias: :the_alias
250
+ param :the_param, :required => true, :alias => :the_alias
251
251
  end
252
252
 
253
253
  param_val = 999
@@ -263,7 +263,7 @@ class Aviator::Test
263
263
 
264
264
  it 'allows aliases to be accessible as strings' do
265
265
  klass = Class.new(Aviator::Request) do
266
- param :the_param, required: true, alias: :the_alias
266
+ param :the_param, :required => true, :alias => :the_alias
267
267
  end
268
268
 
269
269
  param_val = 999
@@ -283,7 +283,7 @@ class Aviator::Test
283
283
 
284
284
  it 'returns an array' do
285
285
  klass = Class.new(Aviator::Request) do
286
- param :whatever, required: false
286
+ param :whatever, :required => false
287
287
  end
288
288
 
289
289
  klass.optional_params.must_equal [:whatever]
@@ -296,7 +296,7 @@ class Aviator::Test
296
296
 
297
297
  it 'returns an array' do
298
298
  klass = Class.new(Aviator::Request) do
299
- param :whatever, required: false
299
+ param :whatever, :required => false
300
300
  end
301
301
 
302
302
  klass.new.optional_params.must_equal [:whatever]
@@ -309,7 +309,7 @@ class Aviator::Test
309
309
 
310
310
  it 'returns an array' do
311
311
  klass = Class.new(Aviator::Request) do
312
- param :whatever, required: true
312
+ param :whatever, :required => true
313
313
  end
314
314
 
315
315
  klass.required_params.must_equal [:whatever]
@@ -322,7 +322,7 @@ class Aviator::Test
322
322
 
323
323
  it 'returns an array' do
324
324
  klass = Class.new(Aviator::Request) do
325
- param :whatever, required: true
325
+ param :whatever, :required => true
326
326
  end
327
327
 
328
328
  request = klass.new do |params|
@@ -13,10 +13,10 @@ class Aviator::Test
13
13
  request_name = config[:auth_service][:request].to_sym
14
14
 
15
15
  bootstrap = {
16
- auth_service: config[:auth_service]
16
+ :auth_service => config[:auth_service]
17
17
  }
18
18
 
19
- service.request request_name, session_data: bootstrap do |params|
19
+ service.request request_name, :session_data => bootstrap do |params|
20
20
  config[:auth_credentials].each do |k,v|
21
21
  params[k] = v
22
22
  end
@@ -31,8 +31,8 @@ class Aviator::Test
31
31
 
32
32
  def service(default_session_data=nil)
33
33
  options = {
34
- provider: config[:provider],
35
- service: config[:auth_service][:name]
34
+ :provider => config[:provider],
35
+ :service => config[:auth_service][:name]
36
36
  }
37
37
 
38
38
  options[:default_session_data] = default_session_data unless default_session_data.nil?
@@ -55,14 +55,14 @@ class Aviator::Test
55
55
  request_name = config[:auth_service][:request].to_sym
56
56
 
57
57
  bootstrap = {
58
- auth_service: {
59
- name: 'identity',
60
- host_uri: 'http://devstack:5000/v2.0',
61
- request: 'create_token'
58
+ :auth_service => {
59
+ :name => 'identity',
60
+ :host_uri => 'http://devstack:5000/v2.0',
61
+ :request => 'create_token'
62
62
  }
63
63
  }
64
64
 
65
- response = service.request request_name, session_data: bootstrap do |params|
65
+ response = service.request request_name, :session_data => bootstrap do |params|
66
66
  config[:auth_credentials].each do |k,v|
67
67
  params[k] = v
68
68
  end
@@ -77,25 +77,25 @@ class Aviator::Test
77
77
  it 'raises an error if session data does not have the endpoint information' do
78
78
  request_name = config[:auth_service][:request].to_sym
79
79
 
80
- bootstrap = JSON.parse('{"access": {"token": {"issued_at": "2013-09-25T20:21:55.453783",
80
+ bootstrap = Hashish.new(JSON.parse('{"access": {"token": {"issued_at": "2013-09-25T20:21:55.453783",
81
81
  "expires": "2013-09-26T02:21:55Z", "id": "2f6bdec6cd0f49b4a60ede0cd4bf2c0d"},
82
82
  "serviceCatalog": [], "user": {"username": "bogus",
83
83
  "roles_links": [], "id": "447527294dae4a1788d36beb0db99c00", "roles": [],
84
84
  "name": "bogus"}, "metadata": {"is_admin": 0, "roles":
85
- []}}}').with_indifferent_access
86
-
85
+ []}}}'))
86
+
87
87
  s = service(bootstrap)
88
88
 
89
89
  the_method = lambda { s.request request_name }
90
90
 
91
91
  the_method.must_raise Aviator::Service::MissingServiceEndpointError
92
92
  end
93
-
93
+
94
94
 
95
95
  it 'can find the correct request based on non-bootstrapped session data' do
96
96
  session_data = do_auth_request.body
97
97
 
98
- response = service.request :list_tenants, session_data: session_data
98
+ response = service.request :list_tenants, :session_data => session_data
99
99
 
100
100
  response.status.must_equal 200
101
101
  end
@@ -126,35 +126,35 @@ class Aviator::Test
126
126
  default_session_data = do_auth_request.body
127
127
  s = service(default_session_data)
128
128
 
129
- response1 = s.request :list_tenants, endpoint_type: 'admin'
130
- response2 = s.request :list_tenants, endpoint_type: 'public'
129
+ response1 = s.request :list_tenants, :endpoint_type => 'admin'
130
+ response2 = s.request :list_tenants, :endpoint_type => 'public'
131
131
 
132
132
  response1.request.url.wont_equal response2.request.url
133
133
  end
134
134
 
135
135
  end
136
-
137
-
136
+
137
+
138
138
  describe '#request_classes' do
139
-
139
+
140
140
  it 'returns an array of the request classes' do
141
141
  provider_name = config[:provider]
142
142
  service_name = config[:auth_service][:name]
143
143
  service_path = Pathname.new(__FILE__).join(
144
144
  '..', '..', '..', '..', 'lib', 'aviator', provider_name, service_name
145
145
  ).expand_path
146
-
147
- request_files = Pathname.glob(service_path.join('**', '*.rb'))
148
- .map{|rf| rf.to_s.match(/#{provider_name}\/#{service_name}\/([\w\/]+)\.rb$/) }
146
+
147
+ request_files = Pathname.glob(service_path.join('**', '*.rb')) \
148
+ .map{|rf| rf.to_s.match(/#{provider_name}\/#{service_name}\/([\w\/]+)\.rb$/) } \
149
149
  .map{|rf| rf[1].split('/').map{|c| c.camelize }.join('::') }
150
-
151
- classes = request_files.map do |rf|
150
+
151
+ classes = request_files.map do |rf|
152
152
  "Aviator::#{provider_name.camelize}::#{service_name.camelize}::#{rf}".constantize
153
153
  end
154
-
154
+
155
155
  service.request_classes.must_equal classes
156
156
  end
157
-
157
+
158
158
  end
159
159
 
160
160
 
@@ -162,10 +162,10 @@ class Aviator::Test
162
162
 
163
163
  it 'sets the service\'s default session data' do
164
164
  bootstrap = {
165
- auth_service: {
166
- name: 'identity',
167
- host_uri: 'http://devstack:5000/v2.0',
168
- request: 'create_token'
165
+ :auth_service => {
166
+ :name => 'identity',
167
+ :host_uri => 'http://devstack:5000/v2.0',
168
+ :request => 'create_token'
169
169
  }
170
170
  }
171
171
 
@@ -184,4 +184,4 @@ class Aviator::Test
184
184
 
185
185
  end
186
186
 
187
- end
187
+ end