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
@@ -9,6 +9,11 @@ class Aviator::Test
9
9
  end
10
10
 
11
11
 
12
+ def klass
13
+ Aviator::Session
14
+ end
15
+
16
+
12
17
  def log_file_path
13
18
  Pathname.new(__FILE__).expand_path.join('..', '..', '..', '..', 'tmp', 'aviator.log')
14
19
  end
@@ -16,33 +21,33 @@ class Aviator::Test
16
21
 
17
22
  def new_session
18
23
  Aviator::Session.new(
19
- config_file: config.path,
20
- environment: 'openstack_admin',
21
- log_file: log_file_path
24
+ :config_file => config.path,
25
+ :environment => 'openstack_admin',
26
+ :log_file => log_file_path
22
27
  )
23
28
  end
24
29
 
25
30
 
26
- describe '#authenticate' do
31
+ describe '#authenticate' do
27
32
 
28
33
  it 'authenticates against the auth service indicated in the config file' do
29
34
  session = new_session
30
-
35
+
31
36
  session.authenticate
32
37
 
33
38
  session.authenticated?.must_equal true
34
39
  end
35
-
36
-
40
+
41
+
37
42
  it 'authenticates against the auth service using the credentials in the given block' do
38
43
  session = new_session
39
44
  credentials = config.openstack_admin[:auth_credentials]
40
-
45
+
41
46
  session.authenticate do |c|
42
47
  c[:username] = credentials[:username]
43
48
  c[:password] = credentials[:password]
44
49
  end
45
-
50
+
46
51
  session.authenticated?.must_equal true
47
52
  end
48
53
 
@@ -50,68 +55,68 @@ class Aviator::Test
50
55
  it 'raises an AuthenticationError when authentication fails' do
51
56
  session = new_session
52
57
  credentials = config.openstack_admin[:auth_credentials]
53
-
58
+
54
59
  the_method = lambda do
55
60
  session.authenticate do |c|
56
61
  c[:username] = 'invalidusername'
57
62
  c[:password] = 'invalidpassword'
58
63
  end
59
64
  end
60
-
65
+
61
66
  the_method.must_raise Aviator::Session::AuthenticationError
62
67
  end
63
-
64
-
68
+
69
+
65
70
  it 'updates the session data of its service objects' do
66
71
  session = new_session
67
72
  session.authenticate
68
-
73
+
69
74
  keystone = session.identity_service
70
-
75
+
71
76
  session_data_1 = keystone.default_session_data
72
-
77
+
73
78
  session.authenticate
74
-
79
+
75
80
  session.identity_service.must_equal keystone
76
-
81
+
77
82
  new_token = session.identity_service.default_session_data[:access][:token][:id]
78
83
  new_token.wont_equal session_data_1[:access][:token][:id]
79
84
  keystone.default_session_data[:access][:token][:id].must_equal new_token
80
85
  end
81
86
 
82
87
  end # describe '#authenticate'
83
-
84
-
88
+
89
+
85
90
  describe '#dump' do
86
-
91
+
87
92
  it 'serializes the session data for caching' do
88
93
  session = new_session
89
94
  session.authenticate
90
-
95
+
91
96
  str = session.dump
92
-
97
+
93
98
  expected = JSON.generate({
94
- environment: session.send(:environment),
95
- auth_info: session.send(:auth_info)
99
+ :environment => session.send(:environment),
100
+ :auth_info => session.send(:auth_info)
96
101
  })
97
102
 
98
103
  str.must_equal expected
99
104
  end
100
-
105
+
101
106
  end
102
107
 
103
108
 
104
109
  describe '#load' do
105
-
110
+
106
111
  it 'returns itself' do
107
112
  session = new_session
108
113
  session.authenticate
109
-
114
+
110
115
  str = session.dump
111
116
  session.load(str).must_equal session
112
117
  end
113
118
 
114
-
119
+
115
120
  it 'updates the session data of its service objects' do
116
121
  session1 = new_session
117
122
  session1.authenticate
@@ -128,103 +133,150 @@ class Aviator::Test
128
133
  end
129
134
 
130
135
  end # describe '#load'
131
-
132
-
136
+
137
+
133
138
  describe '::load' do
134
-
139
+
135
140
  it 'creates a new instance from the given session dump' do
136
141
  session = new_session
137
142
  session.authenticate
138
-
143
+
139
144
  str = session.dump
140
145
  session = Aviator::Session.load(str)
141
- expected = JSON.parse(str).with_indifferent_access
142
-
143
- session.dump.must_equal str
146
+ expected = Hashish.new(JSON.parse(str))
147
+
144
148
  session.authenticated?.must_equal true
145
-
146
- # This is bad testing practice (testing a private method) but
149
+
150
+ # This is bad testing practice (testing a private method) but
147
151
  # I'll go ahead and do it anyway just to be sure.
148
152
  session.send(:environment).must_equal expected[:environment]
149
153
  session.send(:auth_info).must_equal expected[:auth_info]
150
154
  end
151
-
152
-
155
+
156
+
153
157
  it 'uses the loaded auth info for its services' do
154
158
  session = new_session
155
159
  session.authenticate
156
-
157
- expected = JSON.parse(session.dump).with_indifferent_access
160
+
161
+ expected = Hashish.new(JSON.parse(session.dump))
158
162
  session = Aviator::Session.load(session.dump)
159
163
  service = session.identity_service
160
-
164
+
161
165
  service.default_session_data.must_equal expected[:auth_info]
162
166
  end
163
-
167
+
164
168
  end
165
-
166
-
169
+
170
+
167
171
  describe '::new' do
168
-
172
+
173
+ it 'can accept a hash object as configuration' do
174
+ config = {
175
+ :provider => 'openstack',
176
+ :auth_service => {
177
+ :name => 'identity',
178
+ :host_uri => 'http://devstack:5000/v2.0',
179
+ :request => 'create_token',
180
+ :validator => 'list_tenants'
181
+ },
182
+ :auth_credentials => {
183
+ :username => 'myusername',
184
+ :password => 'mypassword',
185
+ :tenant_name => 'myproject'
186
+ }
187
+ }
188
+
189
+ session = klass.new(:config => config)
190
+
191
+ session.send(:environment).must_equal Hashish.new(config)
192
+
193
+ auth_service = session.send(:auth_service)
194
+ auth_service.send(:service).must_equal config[:auth_service][:name]
195
+ end
196
+
197
+
169
198
  it 'directs log entries to the given log file' do
170
199
  log_file_path.delete if log_file_path.file?
171
-
200
+
172
201
  session = new_session
173
202
  session.authenticate
174
203
 
175
204
  log_file_path.file?.must_equal true
176
205
  end
177
-
206
+
207
+
208
+ it 'raises an error when constructor keys are missing' do
209
+ the_method = lambda { klass.new }
210
+ the_method.must_raise Aviator::Session::InitializationError
211
+
212
+ error = the_method.call rescue $!
213
+
214
+ error.message.wont_be_nil
215
+ end
216
+
178
217
  end
179
-
180
-
218
+
219
+
181
220
  describe '#validate' do
182
-
221
+
183
222
  it 'returns true if session is still valid' do
184
223
  session = new_session
185
224
  session.authenticate
186
-
225
+
187
226
  session.validate.must_equal true
188
227
  end
189
-
190
-
228
+
229
+
191
230
  it 'returns false if session is no longer valid' do
192
231
  session = new_session
193
232
  session.authenticate
194
-
233
+
195
234
  session.send(:auth_info)[:access][:token][:id] = 'invalidtokenid'
196
-
235
+
197
236
  session.validate.must_equal false
198
237
  end
199
-
200
-
238
+
239
+
201
240
  it 'raises an error if called before authenticating' do
202
241
  the_method = lambda { new_session.validate }
203
-
242
+
204
243
  the_method.must_raise Aviator::Session::NotAuthenticatedError
205
244
  end
206
-
245
+
246
+
247
+ it 'returns true even when a default token is used' do
248
+ session = new_session
249
+ credentials = config.openstack_admin[:auth_credentials]
250
+
251
+ session.authenticate do |c|
252
+ c[:username] = credentials[:username]
253
+ c[:password] = credentials[:password]
254
+ end
255
+
256
+ session.validate.must_equal true
257
+ end
258
+
207
259
  end
208
-
209
-
260
+
261
+
210
262
  describe '#xxx_service' do
211
-
263
+
212
264
  it 'raises a NotAuthenticatedError if called without authenticating first' do
213
265
  the_method = lambda { new_session.identity_service }
214
-
266
+
215
267
  the_method.must_raise Aviator::Session::NotAuthenticatedError
216
268
  end
217
-
218
-
269
+
270
+
219
271
  it 'returns an instance of the indicated service' do
220
272
  session = new_session
221
273
  session.authenticate
222
-
274
+
223
275
  session.identity_service.wont_be_nil
224
276
  end
225
-
277
+
226
278
  end
227
279
 
228
280
  end # describe 'aviator/core/service'
229
281
 
230
- end # class Aviator::Test
282
+ end # class Aviator::Test
@@ -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_admin'
36
+ :config_file => Environment.path,
37
+ :environment => 'openstack_admin'
38
38
  )
39
39
  @session.authenticate
40
40
  end
@@ -70,12 +70,12 @@ class Aviator::Test
70
70
  describe '::base_url' do
71
71
 
72
72
  it 'must throw a MissingServiceEndpointError when the service\'s endpoint can\'t be found' do
73
- default_session_data = JSON.parse('{"access": {"token": {"issued_at": "2013-09-25T20:21:55.453783",
73
+ default_session_data = Hashish.new(JSON.parse('{"access": {"token": {"issued_at": "2013-09-25T20:21:55.453783",
74
74
  "expires": "2013-09-26T02:21:55Z", "id": "2f6bdec6cd0f49b4a60ede0cd4bf2c0d"},
75
75
  "serviceCatalog": [], "user": {"username": "bogus",
76
76
  "roles_links": [], "id": "447527294dae4a1788d36beb0db99c00", "roles": [],
77
77
  "name": "bogus"}, "metadata": {"is_admin": 0, "roles":
78
- []}}}').with_indifferent_access
78
+ []}}}'))
79
79
 
80
80
  request = klass.new(default_session_data)
81
81
 
@@ -85,17 +85,17 @@ class Aviator::Test
85
85
  end
86
86
 
87
87
 
88
- it 'must use the base_url value if provided.' do
89
- default_session_data = JSON.parse('{"access": {"token": {"issued_at": "2013-09-25T20:21:55.453783",
88
+ it 'must use the base_url value if provided.' do
89
+ default_session_data = Hashish.new(JSON.parse('{"access": {"token": {"issued_at": "2013-09-25T20:21:55.453783",
90
90
  "expires": "2013-09-26T02:21:55Z", "id": "2f6bdec6cd0f49b4a60ede0cd4bf2c0d"},
91
91
  "serviceCatalog": [], "user": {"username": "bogus",
92
92
  "roles_links": [], "id": "447527294dae4a1788d36beb0db99c00", "roles": [],
93
93
  "name": "bogus"}, "metadata": {"is_admin": 0, "roles":
94
- []}}}').with_indifferent_access
94
+ []}}}'))
95
95
 
96
96
  base_url = 'http://sample'
97
97
 
98
- default_session_data.merge!({ base_url: base_url })
98
+ default_session_data.merge!({ :base_url => base_url })
99
99
 
100
100
  request = klass.new(default_session_data)
101
101
 
@@ -29,8 +29,8 @@ class Aviator::Test
29
29
  def session
30
30
  unless @session
31
31
  @session = Aviator::Session.new(
32
- config_file: Environment.path,
33
- environment: 'openstack_admin'
32
+ :config_file => Environment.path,
33
+ :environment => 'openstack_admin'
34
34
  )
35
35
 
36
36
  @session.authenticate
@@ -32,8 +32,8 @@ class Aviator::Test
32
32
  def session
33
33
  unless @session
34
34
  @session = Aviator::Session.new(
35
- config_file: Environment.path,
36
- environment: 'openstack_admin'
35
+ :config_file => Environment.path,
36
+ :environment => 'openstack_admin'
37
37
  )
38
38
  @session.authenticate
39
39
  end
@@ -54,22 +54,22 @@ class Aviator::Test
54
54
 
55
55
  validate_attr :body do
56
56
  params = {
57
- label: 'mynetwork',
58
- bridge: 'dummy-value-for-test',
59
- bridge_interface: 'dummy-value-for-test',
60
- cidr: 'dummy-value-for-test',
61
- cidr_v6: 'dummy-value-for-test',
62
- dns1: 'dummy-value-for-test',
63
- dns2: 'dummy-value-for-test',
64
- gateway: 'dummy-value-for-test',
65
- gateway_v6: 'dummy-value-for-test',
66
- multi_host: 'dummy-value-for-test',
67
- project_id: 'dummy-value-for-test',
68
- vlan: 'dummy-value-for-test'
57
+ :label => 'mynetwork',
58
+ :bridge => 'dummy-value-for-test',
59
+ :bridge_interface => 'dummy-value-for-test',
60
+ :cidr => 'dummy-value-for-test',
61
+ :cidr_v6 => 'dummy-value-for-test',
62
+ :dns1 => 'dummy-value-for-test',
63
+ :dns2 => 'dummy-value-for-test',
64
+ :gateway => 'dummy-value-for-test',
65
+ :gateway_v6 => 'dummy-value-for-test',
66
+ :multi_host => 'dummy-value-for-test',
67
+ :project_id => 'dummy-value-for-test',
68
+ :vlan => 'dummy-value-for-test'
69
69
  }
70
70
 
71
71
  body = {
72
- network: params
72
+ :network => params
73
73
  }
74
74
 
75
75
  request = klass.new(helper.admin_session_data) do |p|
@@ -39,8 +39,8 @@ class Aviator::Test
39
39
  def session
40
40
  unless @session
41
41
  @session = Aviator::Session.new(
42
- config_file: Environment.path,
43
- environment: 'openstack_admin'
42
+ :config_file => Environment.path,
43
+ :environment => 'openstack_admin'
44
44
  )
45
45
  @session.authenticate
46
46
  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
@@ -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
@@ -32,8 +32,8 @@ class Aviator::Test
32
32
  def session
33
33
  unless @session
34
34
  @session = Aviator::Session.new(
35
- config_file: Environment.path,
36
- environment: 'openstack_admin'
35
+ :config_file => Environment.path,
36
+ :environment => 'openstack_admin'
37
37
  )
38
38
  @session.authenticate
39
39
  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_admin'
34
+ :config_file => Environment.path,
35
+ :environment => 'openstack_admin'
36
36
  )
37
37
 
38
38
  @session.authenticate
@@ -121,7 +121,7 @@ class Aviator::Test
121
121
 
122
122
  validate_attr :param_aliases do
123
123
  aliases = {
124
- flavor_ref: :flavorRef
124
+ :flavor_ref => :flavorRef
125
125
  }
126
126
 
127
127
  klass.param_aliases.must_equal aliases
@@ -29,8 +29,8 @@ class Aviator::Test
29
29
  def session
30
30
  unless @session
31
31
  @session = Aviator::Session.new(
32
- config_file: Environment.path,
33
- environment: 'openstack_admin'
32
+ :config_file => Environment.path,
33
+ :environment => 'openstack_admin'
34
34
  )
35
35
 
36
36
  @session.authenticate
@@ -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
@@ -32,8 +32,8 @@ class Aviator::Test
32
32
  def session
33
33
  unless @session
34
34
  @session = Aviator::Session.new(
35
- config_file: Environment.path,
36
- environment: 'openstack_member'
35
+ :config_file => Environment.path,
36
+ :environment => 'openstack_member'
37
37
  )
38
38
  @session.authenticate
39
39
  end
@@ -95,7 +95,7 @@ class Aviator::Test
95
95
 
96
96
  validate_attr :param_aliases do
97
97
  aliases = {
98
- admin_pass: :adminPass
98
+ :admin_pass => :adminPass
99
99
  }
100
100
 
101
101
  klass.param_aliases.must_equal aliases
@@ -32,8 +32,8 @@ class Aviator::Test
32
32
  def session
33
33
  unless @session
34
34
  @session = Aviator::Session.new(
35
- config_file: Environment.path,
36
- environment: 'openstack_member'
35
+ :config_file => Environment.path,
36
+ :environment => 'openstack_member'
37
37
  )
38
38
  @session.authenticate
39
39
  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
@@ -123,11 +123,11 @@ class Aviator::Test
123
123
 
124
124
  validate_attr :param_aliases do
125
125
  aliases = {
126
- access_ipv4: :accessIPv4,
127
- access_ipv6: :accessIPv6,
128
- admin_pass: :adminPass,
129
- image_ref: :imageRef,
130
- flavor_ref: :flavorRef
126
+ :access_ipv4 => :accessIPv4,
127
+ :access_ipv6 => :accessIPv6,
128
+ :admin_pass => :adminPass,
129
+ :image_ref => :imageRef,
130
+ :flavor_ref => :flavorRef
131
131
  }
132
132
 
133
133
  klass.param_aliases.must_equal aliases