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
@@ -12,8 +12,8 @@ class Aviator::Test
12
12
  def session
13
13
  unless @session
14
14
  @session = Aviator::Session.new(
15
- config_file: Environment.path,
16
- environment: 'openstack_member'
15
+ :config_file => Environment.path,
16
+ :environment => 'openstack_member'
17
17
  )
18
18
  @session.authenticate
19
19
  end
@@ -110,7 +110,7 @@ class Aviator::Test
110
110
 
111
111
  validate_attr :param_aliases do
112
112
  aliases = {
113
- network_id: :networkID
113
+ :network_id => :networkID
114
114
  }
115
115
 
116
116
  klass.param_aliases.must_equal aliases
@@ -12,8 +12,8 @@ class Aviator::Test
12
12
  def session
13
13
  unless @session
14
14
  @session = Aviator::Session.new(
15
- config_file: Environment.path,
16
- environment: 'openstack_member'
15
+ :config_file => Environment.path,
16
+ :environment => 'openstack_member'
17
17
  )
18
18
  @session.authenticate
19
19
  end
@@ -118,8 +118,8 @@ class Aviator::Test
118
118
 
119
119
  validate_attr :param_aliases do
120
120
  aliases = {
121
- min_disk: :minDisk,
122
- min_ram: :minRam
121
+ :min_disk => :minDisk,
122
+ :min_ram => :minRam
123
123
  }
124
124
 
125
125
  klass.param_aliases.must_equal aliases
@@ -0,0 +1,127 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/compute/v2/public/list_image_metadata' do
6
+
7
+ def create_request(session_data = get_session_data, &block)
8
+ block ||= lambda { |p| p[:id] = 'doesnt matter' }
9
+
10
+ klass.new(session_data, &block)
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', 'public', 'list_image_metadata.rb')
26
+ end
27
+
28
+
29
+ def session
30
+ unless @session
31
+ @session = Aviator::Session.new(
32
+ :config_file => Environment.path,
33
+ :environment => 'openstack_member'
34
+ )
35
+ @session.authenticate
36
+ end
37
+
38
+ @session
39
+ end
40
+
41
+
42
+ validate_attr :anonymous? do
43
+ klass.anonymous?.must_equal false
44
+ end
45
+
46
+
47
+ validate_attr :api_version do
48
+ klass.api_version.must_equal :v2
49
+ end
50
+
51
+
52
+ validate_attr :body do
53
+ klass.body?.must_equal false
54
+ create_request.body?.must_equal false
55
+ end
56
+
57
+
58
+ validate_attr :endpoint_type do
59
+ klass.endpoint_type.must_equal :public
60
+ end
61
+
62
+
63
+ validate_attr :headers do
64
+ session_data = get_session_data
65
+
66
+ headers = { 'X-Auth-Token' => session_data[:access][:token][:id] }
67
+
68
+ request = create_request(session_data)
69
+
70
+ request.headers.must_equal headers
71
+ end
72
+
73
+
74
+ validate_attr :http_method do
75
+ create_request.http_method.must_equal :get
76
+ end
77
+
78
+
79
+ validate_attr :required_params do
80
+ klass.required_params.must_equal [:id]
81
+ end
82
+
83
+
84
+ validate_attr :url do
85
+ image_id = 'doesnt matter'
86
+ service_spec = get_session_data[:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
87
+ url = "#{ service_spec[:endpoints][0][:publicURL] }/images/#{ image_id }/metadata"
88
+
89
+ request = create_request { |p| p[:id] = image_id }
90
+
91
+ request.url.must_equal url
92
+ end
93
+
94
+
95
+ validate_response 'valid image id is provided' do
96
+ service = session.compute_service
97
+
98
+ images = service.request :list_images
99
+ image_id = images.body[:images].first[:id]
100
+
101
+ response = service.request :list_image_metadata do |params|
102
+ params[:id] = image_id
103
+ end
104
+
105
+ response.status.must_equal 200
106
+ response.body.wont_be_nil
107
+ response.body[:metadata].length.wont_equal 0
108
+ response.headers.wont_be_nil
109
+ end
110
+
111
+
112
+ validate_response 'invalid image id is provided' do
113
+ service = session.compute_service
114
+ image_id = 'invalidimageid'
115
+
116
+ response = service.request :list_image_metadata do |params|
117
+ params[:id] = image_id
118
+ end
119
+
120
+ response.status.must_equal 404
121
+ response.body.wont_be_nil
122
+ response.headers.wont_be_nil
123
+ end
124
+
125
+ end
126
+
127
+ end
@@ -11,13 +11,13 @@ class Aviator::Test
11
11
 
12
12
  def new_session_data
13
13
  service = Aviator::Service.new(
14
- provider: 'openstack',
15
- service: 'identity'
14
+ :provider => 'openstack',
15
+ :service => 'identity'
16
16
  )
17
17
 
18
18
  bootstrap = RequestHelper.admin_bootstrap_session_data
19
19
 
20
- response = service.request :create_token, session_data: bootstrap do |params|
20
+ response = service.request :create_token, :session_data => bootstrap do |params|
21
21
  auth_credentials = Environment.openstack_admin[:auth_credentials]
22
22
  auth_credentials.each { |key, value| params[key] = auth_credentials[key] }
23
23
  end
@@ -123,7 +123,7 @@ class Aviator::Test
123
123
 
124
124
  validate_attr :param_aliases do
125
125
  aliases = {
126
- changes_since: 'changes-since'
126
+ :changes_since => 'changes-since'
127
127
  }
128
128
 
129
129
  klass.param_aliases.must_equal aliases
@@ -132,9 +132,9 @@ class Aviator::Test
132
132
 
133
133
  validate_response 'no parameters are provided' do
134
134
  service = Aviator::Service.new(
135
- provider: 'openstack',
136
- service: 'compute',
137
- default_session_data: new_session_data
135
+ :provider => 'openstack',
136
+ :service => 'compute',
137
+ :default_session_data => new_session_data
138
138
  )
139
139
 
140
140
  response = service.request :list_images
@@ -147,9 +147,9 @@ class Aviator::Test
147
147
 
148
148
  validate_response 'parameters are invalid' do
149
149
  service = Aviator::Service.new(
150
- provider: 'openstack',
151
- service: 'compute',
152
- default_session_data: new_session_data
150
+ :provider => 'openstack',
151
+ :service => 'compute',
152
+ :default_session_data => new_session_data
153
153
  )
154
154
 
155
155
  response = service.request :list_images do |params|
@@ -165,9 +165,9 @@ class Aviator::Test
165
165
 
166
166
  validate_response 'parameters are valid' do
167
167
  service = Aviator::Service.new(
168
- provider: 'openstack',
169
- service: 'compute',
170
- default_session_data: new_session_data
168
+ :provider => 'openstack',
169
+ :service => 'compute',
170
+ :default_session_data => new_session_data
171
171
  )
172
172
 
173
173
  response = service.request :list_images do |params|
@@ -27,8 +27,8 @@ class Aviator::Test
27
27
  def session
28
28
  unless @session
29
29
  @session = Aviator::Session.new(
30
- config_file: Environment.path,
31
- environment: 'openstack_member'
30
+ :config_file => Environment.path,
31
+ :environment => 'openstack_member'
32
32
  )
33
33
  @session.authenticate
34
34
  end
@@ -0,0 +1,127 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/compute/v2/public/list_server_metadata' do
6
+
7
+ def create_request(session_data = get_session_data, &block)
8
+ block ||= lambda { |p| p[:id] = 'doesnt matter' }
9
+
10
+ klass.new(session_data, &block)
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', 'public', 'list_server_metadata.rb')
26
+ end
27
+
28
+
29
+ def session
30
+ unless @session
31
+ @session = Aviator::Session.new(
32
+ :config_file => Environment.path,
33
+ :environment => 'openstack_member'
34
+ )
35
+ @session.authenticate
36
+ end
37
+
38
+ @session
39
+ end
40
+
41
+
42
+ validate_attr :anonymous? do
43
+ klass.anonymous?.must_equal false
44
+ end
45
+
46
+
47
+ validate_attr :api_version do
48
+ klass.api_version.must_equal :v2
49
+ end
50
+
51
+
52
+ validate_attr :body do
53
+ klass.body?.must_equal false
54
+ create_request.body?.must_equal false
55
+ end
56
+
57
+
58
+ validate_attr :endpoint_type do
59
+ klass.endpoint_type.must_equal :public
60
+ end
61
+
62
+
63
+ validate_attr :headers do
64
+ session_data = get_session_data
65
+
66
+ headers = { 'X-Auth-Token' => session_data[:access][:token][:id] }
67
+
68
+ request = create_request(session_data)
69
+
70
+ request.headers.must_equal headers
71
+ end
72
+
73
+
74
+ validate_attr :http_method do
75
+ create_request.http_method.must_equal :get
76
+ end
77
+
78
+
79
+ validate_attr :required_params do
80
+ klass.required_params.must_equal [:id]
81
+ end
82
+
83
+
84
+ validate_attr :url do
85
+ server_id = 'doesnt matter'
86
+ service_spec = get_session_data[:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
87
+ url = "#{ service_spec[:endpoints][0][:publicURL] }/servers/#{ server_id }/metadata"
88
+
89
+ request = create_request { |p| p[:id] = server_id }
90
+
91
+ request.url.must_equal url
92
+ end
93
+
94
+
95
+ validate_response 'valid server id is provided' do
96
+ service = session.compute_service
97
+
98
+ servers = service.request :list_servers
99
+ server_id = servers.body[:servers].first[:id]
100
+
101
+ response = service.request :list_server_metadata do |params|
102
+ params[:id] = server_id
103
+ end
104
+
105
+ response.status.must_equal 200
106
+ response.body.wont_be_nil
107
+ response.body[:metadata].length.wont_equal 0
108
+ response.headers.wont_be_nil
109
+ end
110
+
111
+
112
+ validate_response 'invalid server id is provided' do
113
+ service = session.compute_service
114
+ server_id = 'invalidserverid'
115
+
116
+ response = service.request :list_server_metadata do |params|
117
+ params[:id] = server_id
118
+ end
119
+
120
+ response.status.must_equal 404
121
+ response.body.wont_be_nil
122
+ response.headers.wont_be_nil
123
+ end
124
+
125
+ end
126
+
127
+ end
@@ -8,8 +8,8 @@ class Aviator::Test
8
8
  def admin_session
9
9
  unless @admin_session
10
10
  @admin_session = Aviator::Session.new(
11
- config_file: Environment.path,
12
- environment: 'openstack_admin'
11
+ :config_file => Environment.path,
12
+ :environment => 'openstack_admin'
13
13
  )
14
14
  @admin_session.authenticate
15
15
  end
@@ -25,13 +25,13 @@ class Aviator::Test
25
25
 
26
26
  def new_session_data
27
27
  service = Aviator::Service.new(
28
- provider: Environment.openstack_admin[:provider],
29
- service: Environment.openstack_admin[:auth_service][:name]
28
+ :provider => Environment.openstack_admin[:provider],
29
+ :service => Environment.openstack_admin[:auth_service][:name]
30
30
  )
31
31
 
32
32
  bootstrap = RequestHelper.admin_bootstrap_session_data
33
33
 
34
- response = service.request :create_token, session_data: bootstrap do |params|
34
+ response = service.request :create_token, :session_data => bootstrap do |params|
35
35
  auth_credentials = Environment.openstack_admin[:auth_credentials]
36
36
  auth_credentials.each { |key, value| params[key] = auth_credentials[key] }
37
37
  end
@@ -138,7 +138,7 @@ class Aviator::Test
138
138
 
139
139
  validate_attr :param_aliases do
140
140
  aliases = {
141
- changes_since: 'changes-since'
141
+ :changes_since => 'changes-since'
142
142
  }
143
143
 
144
144
  klass.param_aliases.must_equal aliases
@@ -147,9 +147,9 @@ class Aviator::Test
147
147
 
148
148
  validate_response 'no parameters are provided' do
149
149
  service = Aviator::Service.new(
150
- provider: 'openstack',
151
- service: 'compute',
152
- default_session_data: new_session_data
150
+ :provider => 'openstack',
151
+ :service => 'compute',
152
+ :default_session_data => new_session_data
153
153
  )
154
154
 
155
155
  response = service.request :list_servers
@@ -163,9 +163,9 @@ class Aviator::Test
163
163
 
164
164
  validate_response 'parameters are invalid' do
165
165
  service = Aviator::Service.new(
166
- provider: 'openstack',
167
- service: 'compute',
168
- default_session_data: new_session_data
166
+ :provider => 'openstack',
167
+ :service => 'compute',
168
+ :default_session_data => new_session_data
169
169
  )
170
170
 
171
171
  response = service.request :list_servers do |params|
@@ -181,9 +181,9 @@ class Aviator::Test
181
181
 
182
182
  validate_response 'parameters are valid' do
183
183
  service = Aviator::Service.new(
184
- provider: 'openstack',
185
- service: 'compute',
186
- default_session_data: new_session_data
184
+ :provider => 'openstack',
185
+ :service => 'compute',
186
+ :default_session_data => new_session_data
187
187
  )
188
188
 
189
189
  response = service.request :list_servers do |params|
@@ -28,8 +28,8 @@ class Aviator::Test
28
28
  def session
29
29
  unless @session
30
30
  @session = Aviator::Session.new(
31
- config_file: Environment.path,
32
- environment: 'openstack_member'
31
+ :config_file => Environment.path,
32
+ :environment => 'openstack_member'
33
33
  )
34
34
  @session.authenticate
35
35
  end
@@ -31,8 +31,8 @@ class Aviator::Test
31
31
  def session
32
32
  unless @session
33
33
  @session = Aviator::Session.new(
34
- config_file: Environment.path,
35
- environment: 'openstack_member'
34
+ :config_file => Environment.path,
35
+ :environment => 'openstack_member'
36
36
  )
37
37
  @session.authenticate
38
38
  end
@@ -34,8 +34,8 @@ class Aviator::Test
34
34
  def session
35
35
  unless @session
36
36
  @session = Aviator::Session.new(
37
- config_file: Environment.path,
38
- environment: 'openstack_member'
37
+ :config_file => Environment.path,
38
+ :environment => 'openstack_member'
39
39
  )
40
40
  @session.authenticate
41
41
  end
@@ -120,10 +120,10 @@ class Aviator::Test
120
120
 
121
121
  validate_attr :param_aliases do
122
122
  aliases = {
123
- access_ipv4: :accessIPv4,
124
- access_ipv6: :accessIPv6,
125
- admin_pass: :adminPass,
126
- image_ref: :imageRef
123
+ :access_ipv4 => :accessIPv4,
124
+ :access_ipv6 => :accessIPv6,
125
+ :admin_pass => :adminPass,
126
+ :image_ref => :imageRef
127
127
  }
128
128
 
129
129
  klass.param_aliases.must_equal aliases
@@ -28,8 +28,8 @@ class Aviator::Test
28
28
  def session
29
29
  unless @session
30
30
  @session = Aviator::Session.new(
31
- config_file: Environment.path,
32
- environment: 'openstack_member'
31
+ :config_file => Environment.path,
32
+ :environment => 'openstack_member'
33
33
  )
34
34
  @session.authenticate
35
35
  end
@@ -27,8 +27,8 @@ class Aviator::Test
27
27
  def session
28
28
  unless @session
29
29
  @session = Aviator::Session.new(
30
- config_file: Environment.path,
31
- environment: 'openstack_member'
30
+ :config_file => Environment.path,
31
+ :environment => 'openstack_member'
32
32
  )
33
33
  @session.authenticate
34
34
  end
@@ -0,0 +1,151 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/compute/v2/public/set_image_metadata' do
6
+
7
+ def create_request(session_data = get_session_data, &block)
8
+ block ||= lambda do |p|
9
+ p[:id] = 'doesnt matter'
10
+ p[:metadata] = {}
11
+ end
12
+
13
+ klass.new(session_data, &block)
14
+ end
15
+
16
+
17
+ def get_session_data
18
+ session.send :auth_info
19
+ end
20
+
21
+
22
+ def helper
23
+ Aviator::Test::RequestHelper
24
+ end
25
+
26
+
27
+ def klass
28
+ @klass ||= helper.load_request('openstack', 'compute', 'v2', 'public', 'set_image_metadata.rb')
29
+ end
30
+
31
+
32
+ def session
33
+ unless @session
34
+ @session = Aviator::Session.new(
35
+ :config_file => Environment.path,
36
+ :environment => 'openstack_member'
37
+ )
38
+ @session.authenticate
39
+ end
40
+
41
+ @session
42
+ end
43
+
44
+
45
+ validate_attr :anonymous? do
46
+ klass.anonymous?.must_equal false
47
+ end
48
+
49
+
50
+ validate_attr :api_version do
51
+ klass.api_version.must_equal :v2
52
+ end
53
+
54
+
55
+ validate_attr :body do
56
+ metadata = {
57
+ :foo => 'lorem',
58
+ :bar => 'ipsum'
59
+ }
60
+
61
+ body = {
62
+ :metadata => metadata
63
+ }
64
+
65
+ request = klass.new(get_session_data) do |p|
66
+ p[:id] = 'doesnt matter'
67
+ p[:metadata] = metadata
68
+ end
69
+
70
+ request.body.must_equal body
71
+ end
72
+
73
+
74
+ validate_attr :endpoint_type do
75
+ klass.endpoint_type.must_equal :public
76
+ end
77
+
78
+
79
+ validate_attr :headers do
80
+ headers = { 'X-Auth-Token' => get_session_data[:access][:token][:id] }
81
+ request = create_request
82
+
83
+ request.headers.must_equal headers
84
+ end
85
+
86
+
87
+ validate_attr :http_method do
88
+ create_request.http_method.must_equal :put
89
+ end
90
+
91
+
92
+ validate_attr :required_params do
93
+ klass.required_params.must_equal [:id, :metadata]
94
+ end
95
+
96
+
97
+ validate_attr :url do
98
+ service_spec = get_session_data[:access][:serviceCatalog].find { |s| s[:type] == 'compute' }
99
+ image_id = 'doesnt matter'
100
+ url = "#{ service_spec[:endpoints][0][:publicURL] }/images/#{ image_id }/metadata"
101
+
102
+ request = create_request do |params|
103
+ params[:id] = image_id
104
+ params[:metadata] = {}
105
+ end
106
+
107
+ request.url.must_equal url
108
+ end
109
+
110
+
111
+ validate_response 'valid image id is provided' do
112
+ # must be hardcoded so as not to inadvertently alter random resources
113
+ # in case the corresponding cassette is deleted and
114
+ # this requires image that the user has modify access
115
+ image_id = '2755c6d2-2978-4053-a728-f77388e24bec'
116
+
117
+ new_metadata = Hashish.new({
118
+ 'foo' => 'lorem',
119
+ 'bar' => 'ipsum'
120
+ })
121
+
122
+ response = session.compute_service.request :set_image_metadata do |params|
123
+ params[:id] = image_id
124
+ params[:metadata] = new_metadata
125
+ end
126
+
127
+ response.status.must_equal 200
128
+ response.body.wont_be_nil
129
+ response.body[:metadata].wont_be_nil
130
+ response.body[:metadata].must_equal new_metadata
131
+ response.headers.wont_be_nil
132
+ end
133
+
134
+
135
+ validate_response 'invalid image id is provided' do
136
+ image_id = 'abogusmetadataidthatdoesnotexist'
137
+
138
+ response = session.compute_service.request :set_image_metadata do |params|
139
+ params[:id] = image_id
140
+ params[:metadata] = { :any => 'value' }
141
+ end
142
+
143
+ response.status.must_equal 404
144
+ response.body.wont_be_nil
145
+ response.headers.wont_be_nil
146
+ end
147
+
148
+
149
+ end
150
+
151
+ end