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
@@ -0,0 +1,122 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/identity/v2/admin/get_tenant_by_id' do
6
+
7
+ def create_request(session_data = get_session_data, &block)
8
+ block ||= lambda do |params|
9
+ params[:id] = 'this_doesnt_matter_with_this_test'
10
+ end
11
+
12
+ klass.new(session_data, &block)
13
+ end
14
+
15
+
16
+ def get_session_data
17
+ session.send :auth_info
18
+ end
19
+
20
+
21
+ def helper
22
+ Aviator::Test::RequestHelper
23
+ end
24
+
25
+
26
+ def klass
27
+ @klass ||= helper.load_request('openstack', 'identity', 'v2', 'admin', 'get_tenant_by_id.rb')
28
+ end
29
+
30
+
31
+ def session
32
+ unless @session
33
+ @session = Aviator::Session.new(
34
+ :config_file => Environment.path,
35
+ :environment => 'openstack_admin'
36
+ )
37
+ @session.authenticate
38
+ end
39
+
40
+ @session
41
+ end
42
+
43
+
44
+ validate_attr :anonymous? do
45
+ klass.anonymous?.must_equal false
46
+ end
47
+
48
+
49
+ validate_attr :api_version do
50
+ klass.api_version.must_equal :v2
51
+ end
52
+
53
+
54
+ validate_attr :body do
55
+ klass.body?.must_equal false
56
+ create_request.body?.must_equal false
57
+ end
58
+
59
+
60
+ validate_attr :endpoint_type do
61
+ klass.endpoint_type.must_equal :admin
62
+ end
63
+
64
+
65
+ validate_attr :headers do
66
+ session_data = get_session_data
67
+
68
+ headers = { 'X-Auth-Token' => session_data[:access][:token][:id] }
69
+
70
+ request = create_request(session_data)
71
+
72
+ request.headers.must_equal headers
73
+ end
74
+
75
+
76
+ validate_attr :http_method do
77
+ create_request.http_method.must_equal :get
78
+ end
79
+
80
+
81
+ validate_attr :optional_params do
82
+ klass.optional_params.must_equal []
83
+ end
84
+
85
+
86
+ validate_attr :required_params do
87
+ klass.required_params.must_equal [:id]
88
+ end
89
+
90
+
91
+ validate_attr :url do
92
+ session_data = get_session_data
93
+ service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == 'identity' }
94
+ tenant_id = 'itdoesnotmatter'
95
+ url = "#{ service_spec[:endpoints][0][:adminURL] }/tenants/#{ tenant_id }"
96
+
97
+ request = create_request do |p|
98
+ p[:id] = tenant_id
99
+ end
100
+
101
+ request.url.must_equal url
102
+ end
103
+
104
+
105
+ validate_response 'a valid tenant id is provided' do
106
+ service = session.identity_service
107
+ tenant = session.identity_service.request(:list_tenants).body[:tenants].first
108
+
109
+ response = service.request :get_tenant_by_id do |p|
110
+ p[:id] = tenant[:id]
111
+ end
112
+
113
+ response.status.must_equal 200
114
+ response.body.wont_be_nil
115
+ response.body[:tenant][:id].must_equal tenant[:id]
116
+ response.headers.wont_be_nil
117
+ end
118
+
119
+
120
+ end
121
+
122
+ 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_admin'
30
+ :config_file => Environment.path,
31
+ :environment => 'openstack_admin'
32
32
  )
33
33
  @session.authenticate
34
34
  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_admin'
30
+ :config_file => Environment.path,
31
+ :environment => 'openstack_admin'
32
32
  )
33
33
  @session.authenticate
34
34
  end
@@ -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_admin'
31
+ :config_file => Environment.path,
32
+ :environment => 'openstack_admin'
33
33
  )
34
34
  @session.authenticate
35
35
  end
@@ -107,7 +107,7 @@ class Aviator::Test
107
107
 
108
108
  validate_attr :param_aliases do
109
109
  aliases = {
110
- tenant_id: :tenantId
110
+ :tenant_id => :tenantId
111
111
  }
112
112
 
113
113
  klass.param_aliases.must_equal aliases
@@ -34,10 +34,10 @@ class Aviator::Test
34
34
 
35
35
  validate_attr :body do
36
36
  p = {
37
- auth: {
38
- passwordCredentials: {
39
- username: Environment.openstack_admin[:auth_credentials][:username],
40
- password: Environment.openstack_admin[:auth_credentials][:password]
37
+ :auth => {
38
+ :passwordCredentials => {
39
+ :username => Environment.openstack_admin[:auth_credentials][:username],
40
+ :password => Environment.openstack_admin[:auth_credentials][:password]
41
41
  }
42
42
  }
43
43
  }
@@ -83,7 +83,7 @@ class Aviator::Test
83
83
  validate_attr :url, 'when the host uri contains the api version' do
84
84
  host_uri = 'http://x.y.z:5000/v2.0'
85
85
 
86
- request = klass.new({ auth_service: { host_uri: host_uri } }) do |params|
86
+ request = klass.new({ :auth_service => { :host_uri => host_uri } }) do |params|
87
87
  params[:username] = Environment.openstack_admin[:auth_credentials][:username]
88
88
  params[:password] = Environment.openstack_admin[:auth_credentials][:password]
89
89
  end
@@ -94,9 +94,9 @@ class Aviator::Test
94
94
 
95
95
  validate_attr :param_aliases do
96
96
  aliases = {
97
- token_id: :tokenId,
98
- tenant_name: :tenantName,
99
- tenant_id: :tenantId
97
+ :token_id => :tokenId,
98
+ :tenant_name => :tenantName,
99
+ :tenant_id => :tenantId
100
100
  }
101
101
 
102
102
  klass.param_aliases.must_equal aliases
@@ -105,9 +105,9 @@ class Aviator::Test
105
105
 
106
106
  validate_response 'parameters are invalid' do
107
107
  service = Aviator::Service.new(
108
- provider: 'openstack',
109
- service: 'identity',
110
- default_session_data: RequestHelper.admin_bootstrap_session_data
108
+ :provider => 'openstack',
109
+ :service => 'identity',
110
+ :default_session_data => RequestHelper.admin_bootstrap_session_data
111
111
  )
112
112
 
113
113
  response = service.request :create_token do |params|
@@ -123,9 +123,9 @@ class Aviator::Test
123
123
 
124
124
  validate_response 'parameters are valid' do
125
125
  service = Aviator::Service.new(
126
- provider: 'openstack',
127
- service: 'identity',
128
- default_session_data: RequestHelper.admin_bootstrap_session_data
126
+ :provider => 'openstack',
127
+ :service => 'identity',
128
+ :default_session_data => RequestHelper.admin_bootstrap_session_data
129
129
  )
130
130
 
131
131
  response = service.request :create_token do |params|
@@ -141,9 +141,9 @@ class Aviator::Test
141
141
 
142
142
  validate_response 'provided with a token' do
143
143
  service = Aviator::Service.new(
144
- provider: 'openstack',
145
- service: 'identity',
146
- default_session_data: RequestHelper.admin_bootstrap_session_data
144
+ :provider => 'openstack',
145
+ :service => 'identity',
146
+ :default_session_data => RequestHelper.admin_bootstrap_session_data
147
147
  )
148
148
 
149
149
  response = service.request :create_token do |params|
@@ -155,7 +155,8 @@ class Aviator::Test
155
155
 
156
156
  response = service.request :create_token do |params|
157
157
  params[:tokenId] = token
158
- params[:tenantName] = Environment.openstack_admin[:auth_credentials][:tenantName]
158
+ params[:tenantName] = Environment.openstack_admin[:auth_credentials][:tenantName] ||
159
+ Environment.openstack_admin[:auth_credentials][:tenant_name]
159
160
  end
160
161
 
161
162
  response.status.must_equal 200
@@ -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_admin'
30
+ :config_file => Environment.path,
31
+ :environment => 'openstack_admin'
32
32
  )
33
33
  @session.authenticate
34
34
  end
@@ -98,8 +98,8 @@ class Aviator::Test
98
98
 
99
99
  validate_response 'session is using a default token' do
100
100
  s = Aviator::Session.new(
101
- config_file: Environment.path,
102
- environment: 'openstack_admin'
101
+ :config_file => Environment.path,
102
+ :environment => 'openstack_admin'
103
103
  )
104
104
 
105
105
  s.authenticate do |creds|
@@ -117,7 +117,7 @@ class Aviator::Test
117
117
 
118
118
  # base_url should have the form 'https://<domain>:<port>/<api_version>'
119
119
 
120
- response = s.identity_service.request :list_tenants, base_url: base_url.to_s
120
+ response = s.identity_service.request :list_tenants, :base_url => base_url.to_s
121
121
 
122
122
  response.status.must_equal 200
123
123
  response.body.wont_be_nil
@@ -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,145 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/image/v1/public/list_public_images' do
6
+
7
+ def create_request(session_data = get_session_data, &block)
8
+ klass.new(session_data, &block)
9
+ end
10
+
11
+
12
+ def session
13
+ unless @session
14
+ @session = Aviator::Session.new(
15
+ :config_file => Environment.path,
16
+ :environment => 'openstack_member'
17
+ )
18
+ @session.authenticate
19
+ end
20
+
21
+ @session
22
+ end
23
+
24
+
25
+ def get_session_data
26
+ session.send :auth_info
27
+ end
28
+
29
+
30
+ def helper
31
+ Aviator::Test::RequestHelper
32
+ end
33
+
34
+ def session
35
+ unless @session
36
+ @session = Aviator::Session.new(
37
+ :config_file => Environment.path,
38
+ :environment => 'openstack_member'
39
+ )
40
+ @session.authenticate
41
+ end
42
+
43
+ @session
44
+ end
45
+
46
+
47
+ def helper
48
+ Aviator::Test::RequestHelper
49
+ end
50
+
51
+
52
+ def klass
53
+ @klass ||= helper.load_request('openstack', 'image', 'v1', 'public', 'list_public_images.rb')
54
+ end
55
+
56
+
57
+ validate_attr :anonymous? do
58
+ klass.anonymous?.must_equal false
59
+ end
60
+
61
+
62
+ validate_attr :api_version do
63
+ klass.api_version.must_equal :v1
64
+ end
65
+
66
+
67
+ validate_attr :body do
68
+ klass.body?.must_equal false
69
+ create_request.body?.must_equal false
70
+ end
71
+
72
+
73
+ validate_attr :endpoint_type do
74
+ klass.endpoint_type.must_equal :public
75
+ end
76
+
77
+
78
+ validate_attr :headers do
79
+ headers = { 'X-Auth-Token' => get_session_data[:access][:token][:id] }
80
+
81
+ request = create_request
82
+
83
+ request.headers.must_equal headers
84
+ end
85
+
86
+
87
+ validate_attr :optional_params do
88
+ klass.optional_params.must_equal [
89
+ :name,
90
+ :container_format,
91
+ :disk_format,
92
+ :status,
93
+ :size_min,
94
+ :size_max,
95
+ :sort_key,
96
+ :sort_dir
97
+ ]
98
+ end
99
+
100
+
101
+ validate_attr :required_params do
102
+ klass.required_params.must_equal []
103
+ end
104
+
105
+
106
+ validate_attr :http_method do
107
+ create_request.http_method.must_equal :get
108
+ end
109
+
110
+
111
+ validate_response 'no parameters are provided' do
112
+ response = session.image_service.request :list_public_images
113
+
114
+ response.status.must_equal 200
115
+ response.body.wont_be_nil
116
+ response.body[:images].length.wont_equal 0
117
+ response.headers.wont_be_nil
118
+ end
119
+
120
+
121
+ validate_response 'filtering with matches' do
122
+ response = session.image_service.request :list_public_images do |p|
123
+ p[:name] = '64Bit Ubuntu 12.04'
124
+ end
125
+
126
+ response.status.must_equal 200
127
+ response.body.wont_be_nil
128
+ response.body[:images].length.must_equal 1
129
+ response.headers.wont_be_nil
130
+ end
131
+
132
+
133
+ validate_response 'filtering with no matches' do
134
+ response = session.image_service.request :list_public_images do |p|
135
+ p[:name] = 'does-not-match-any-image'
136
+ end
137
+
138
+ response.status.must_equal 200
139
+ response.body.wont_be_nil
140
+ response.body[:images].length.must_equal 0
141
+ response.headers.wont_be_nil
142
+ end
143
+
144
+ end
145
+ 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
@@ -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
@@ -33,8 +33,8 @@ class Aviator::Test
33
33
  def session
34
34
  unless @session
35
35
  @session = Aviator::Session.new(
36
- config_file: Environment.path,
37
- environment: 'openstack_member'
36
+ :config_file => Environment.path,
37
+ :environment => 'openstack_member'
38
38
  )
39
39
  @session.authenticate
40
40
  end
@@ -30,8 +30,8 @@ class Aviator::Test
30
30
  def session
31
31
  unless @session
32
32
  @session = Aviator::Session.new(
33
- config_file: Environment.path,
34
- environment: 'openstack_member'
33
+ :config_file => Environment.path,
34
+ :environment => 'openstack_member'
35
35
  )
36
36
  @session.authenticate
37
37
  end
@@ -15,8 +15,8 @@ class Aviator::Test
15
15
  def session
16
16
  unless @session
17
17
  @session = Aviator::Session.new(
18
- config_file: Environment.path,
19
- environment: 'openstack_member'
18
+ :config_file => Environment.path,
19
+ :environment => 'openstack_member'
20
20
  )
21
21
  @session.authenticate
22
22
  end
@@ -25,8 +25,8 @@ class Aviator::Test
25
25
  def session
26
26
  unless @session
27
27
  @session = Aviator::Session.new(
28
- config_file: Environment.path,
29
- environment: 'openstack_member'
28
+ :config_file => Environment.path,
29
+ :environment => 'openstack_member'
30
30
  )
31
31
  @session.authenticate
32
32
  end
@@ -4,26 +4,40 @@ class Aviator::Test
4
4
 
5
5
  describe 'aviator/openstack/volume/v1/public/list_volumes' do
6
6
 
7
+
8
+ def admin_session
9
+ unless @admin_session
10
+ @admin_session = Aviator::Session.new(
11
+ :config_file => Environment.path,
12
+ :environment => 'openstack_admin'
13
+ )
14
+ @admin_session.authenticate
15
+ end
16
+
17
+ @admin_session
18
+ end
19
+
20
+
7
21
  def create_request(session_data = get_session_data, &block)
8
22
  klass.new(session_data, &block)
9
23
  end
10
24
 
11
25
 
12
- def session
13
- unless @session
14
- @session = Aviator::Session.new(
15
- config_file: Environment.path,
16
- environment: 'openstack_member'
26
+ def member_session
27
+ unless @member_session
28
+ @member_session = Aviator::Session.new(
29
+ :config_file => Environment.path,
30
+ :environment => 'openstack_member'
17
31
  )
18
- @session.authenticate
32
+ @member_session.authenticate
19
33
  end
20
34
 
21
- @session
35
+ @member_session
22
36
  end
23
37
 
24
38
 
25
39
  def get_session_data
26
- session.send :auth_info
40
+ member_session.send :auth_info
27
41
  end
28
42
 
29
43
 
@@ -31,18 +45,6 @@ class Aviator::Test
31
45
  Aviator::Test::RequestHelper
32
46
  end
33
47
 
34
- def session
35
- unless @session
36
- @session = Aviator::Session.new(
37
- config_file: Environment.path,
38
- environment: 'openstack_member'
39
- )
40
- @session.authenticate
41
- end
42
-
43
- @session
44
- end
45
-
46
48
 
47
49
  def helper
48
50
  Aviator::Test::RequestHelper
@@ -53,14 +55,16 @@ class Aviator::Test
53
55
  @klass ||= helper.load_request('openstack', 'volume', 'v1', 'public', 'list_volumes.rb')
54
56
  end
55
57
 
58
+
56
59
  def create_volume
57
- session.volume_service.request :create_volume do |params|
60
+ member_session.volume_service.request :create_volume do |params|
58
61
  params[:display_name] = 'Aviator Volume Test Name'
59
62
  params[:display_description] = 'Aviator Volume Test Description'
60
63
  params[:size] = '1'
61
64
  end
62
65
  end
63
66
 
67
+
64
68
  validate_attr :anonymous? do
65
69
  klass.anonymous?.must_equal false
66
70
  end
@@ -90,8 +94,10 @@ class Aviator::Test
90
94
  request.headers.must_equal headers
91
95
  end
92
96
 
97
+
93
98
  validate_attr :optional_params do
94
99
  klass.optional_params.must_equal [
100
+ :all_tenants,
95
101
  :details,
96
102
  :status,
97
103
  :availability_zone,
@@ -114,10 +120,24 @@ class Aviator::Test
114
120
  create_request.http_method.must_equal :get
115
121
  end
116
122
 
123
+
124
+ validate_response 'all_tenants param is true' do
125
+ # Manually create the volumes in more than one tenant for now
126
+
127
+ control_response = admin_session.volume_service.request :list_volumes
128
+
129
+ all_tenants_response = admin_session.volume_service.request :list_volumes do |params|
130
+ params[:all_tenants] = true
131
+ end
132
+
133
+ all_tenants_response.body[:volumes].length.must_be :>, control_response.body[:volumes].length
134
+ end
135
+
136
+
117
137
  validate_response 'no parameters are provided' do
118
138
  create_volume
119
139
 
120
- response = session.volume_service.request :list_volumes
140
+ response = member_session.volume_service.request :list_volumes
121
141
 
122
142
  response.status.must_equal 200
123
143
  response.body.wont_be_nil
@@ -125,10 +145,11 @@ class Aviator::Test
125
145
  response.headers.wont_be_nil
126
146
  end
127
147
 
148
+
128
149
  validate_response 'parameters are valid' do
129
150
  create_volume
130
151
 
131
- response = session.volume_service.request :list_volumes do |params|
152
+ response = member_session.volume_service.request :list_volumes do |params|
132
153
  params[:details] = true
133
154
  params[:display_name] = 'Aviator Volume Test Name'
134
155
  end
@@ -140,8 +161,9 @@ class Aviator::Test
140
161
  response.headers.wont_be_nil
141
162
  end
142
163
 
164
+
143
165
  validate_response 'parameters are invalid' do
144
- response = session.volume_service.request :list_volumes do |params|
166
+ response = member_session.volume_service.request :list_volumes do |params|
145
167
  params[:display_name] = "derpderp"
146
168
  end
147
169
 
@@ -150,5 +172,8 @@ class Aviator::Test
150
172
  response.body[:volumes].length.must_equal 0
151
173
  response.headers.wont_be_nil
152
174
  end
175
+
176
+
153
177
  end
178
+
154
179
  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
@@ -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