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,149 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/compute/v2/public/set_server_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_server_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
+ server_id = 'doesnt matter'
100
+ url = "#{ service_spec[:endpoints][0][:publicURL] }/servers/#{ server_id }/metadata"
101
+
102
+ request = create_request do |params|
103
+ params[:id] = server_id
104
+ params[:metadata] = {}
105
+ end
106
+
107
+ request.url.must_equal url
108
+ end
109
+
110
+
111
+ validate_response 'valid server id is provided' do
112
+ service = session.compute_service
113
+ server_id = service.request(:list_servers).body[:servers].first[:id]
114
+
115
+ new_metadata = Hashish.new({
116
+ 'foo' => 'lorem',
117
+ 'bar' => 'ipsum'
118
+ })
119
+
120
+ response = session.compute_service.request :set_server_metadata do |params|
121
+ params[:id] = server_id
122
+ params[:metadata] = new_metadata
123
+ end
124
+
125
+ response.status.must_equal 200
126
+ response.body.wont_be_nil
127
+ response.body[:metadata].wont_be_nil
128
+ response.body[:metadata].must_equal new_metadata
129
+ response.headers.wont_be_nil
130
+ end
131
+
132
+
133
+ validate_response 'invalid server id is provided' do
134
+ server_id = 'abogusmetadataidthatdoesnotexist'
135
+
136
+ response = session.compute_service.request :set_server_metadata do |params|
137
+ params[:id] = server_id
138
+ params[:metadata] = { :any => 'value' }
139
+ end
140
+
141
+ response.status.must_equal 404
142
+ response.body.wont_be_nil
143
+ response.headers.wont_be_nil
144
+ end
145
+
146
+
147
+ end
148
+
149
+ 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
@@ -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
@@ -0,0 +1,154 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/compute/v2/public/update_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', 'update_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 :post
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
+ service = session.compute_service
118
+
119
+ new_metadata = {
120
+ :foo => 'lorem',
121
+ :bar => 'ipsum'
122
+ }
123
+
124
+ response = service.request :update_image_metadata do |params|
125
+ params[:id] = image_id
126
+ params[:metadata] = new_metadata
127
+ end
128
+
129
+ response.status.must_equal 200
130
+ response.body.wont_be_nil
131
+ response.body[:metadata].wont_be_nil
132
+ response.body[:metadata][:foo].must_equal new_metadata[:foo]
133
+ response.body[:metadata][:bar].must_equal new_metadata[:bar]
134
+ response.headers.wont_be_nil
135
+ end
136
+
137
+
138
+ validate_response 'invalid image id is provided' do
139
+ image_id = 'abogusimageidthatdoesnotexist'
140
+
141
+ response = session.compute_service.request :update_image_metadata do |params|
142
+ params[:id] = image_id
143
+ params[:metadata] = { :any => 'value' }
144
+ end
145
+
146
+ response.status.must_equal 404
147
+ response.body.wont_be_nil
148
+ response.headers.wont_be_nil
149
+ end
150
+
151
+
152
+ end
153
+
154
+ end
@@ -0,0 +1,150 @@
1
+ require 'test_helper'
2
+
3
+ class Aviator::Test
4
+
5
+ describe 'aviator/openstack/compute/v2/public/update_server_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', 'update_server_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 :post
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
+ server_id = 'doesnt matter'
100
+ url = "#{ service_spec[:endpoints][0][:publicURL] }/servers/#{ server_id }/metadata"
101
+
102
+ request = create_request do |params|
103
+ params[:id] = server_id
104
+ params[:metadata] = {}
105
+ end
106
+
107
+ request.url.must_equal url
108
+ end
109
+
110
+
111
+ validate_response 'valid server id is provided' do
112
+ service = session.compute_service
113
+ server_id = service.request(:list_servers).body[:servers].first[:id]
114
+
115
+ new_metadata = {
116
+ :foo => 'lorem',
117
+ :bar => 'ipsum'
118
+ }
119
+
120
+ response = service.request :update_server_metadata do |params|
121
+ params[:id] = server_id
122
+ params[:metadata] = new_metadata
123
+ end
124
+
125
+ response.status.must_equal 200
126
+ response.body.wont_be_nil
127
+ response.body[:metadata].wont_be_nil
128
+ response.body[:metadata][:foo].must_equal new_metadata[:foo]
129
+ response.body[:metadata][:bar].must_equal new_metadata[:bar]
130
+ response.headers.wont_be_nil
131
+ end
132
+
133
+
134
+ validate_response 'invalid server id is provided' do
135
+ server_id = 'abogusserveridthatdoesnotexist'
136
+
137
+ response = session.compute_service.request :update_server_metadata do |params|
138
+ params[:id] = server_id
139
+ params[:metadata] = { :any => 'value' }
140
+ end
141
+
142
+ response.status.must_equal 404
143
+ response.body.wont_be_nil
144
+ response.headers.wont_be_nil
145
+ end
146
+
147
+
148
+ end
149
+
150
+ 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
@@ -109,8 +109,8 @@ class Aviator::Test
109
109
 
110
110
  validate_attr :param_aliases do
111
111
  aliases = {
112
- access_ipv4: :accessIPv4,
113
- access_ipv6: :accessIPv6
112
+ :access_ipv4 => :accessIPv4,
113
+ :access_ipv6 => :accessIPv6
114
114
  }
115
115
 
116
116
  klass.param_aliases.must_equal aliases
@@ -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
@@ -15,13 +15,13 @@ class Aviator::Test
15
15
 
16
16
  def new_session_data
17
17
  service = Aviator::Service.new(
18
- provider: 'openstack',
19
- service: 'identity'
18
+ :provider => 'openstack',
19
+ :service => 'identity'
20
20
  )
21
21
 
22
22
  bootstrap = RequestHelper.admin_bootstrap_session_data
23
23
 
24
- response = service.request :create_token, session_data: bootstrap do |params|
24
+ response = service.request :create_token, :session_data => bootstrap do |params|
25
25
  auth_credentials = Environment.openstack_admin[:auth_credentials]
26
26
  auth_credentials.each { |key, value| params[key] = auth_credentials[key] }
27
27
  end
@@ -52,13 +52,13 @@ class Aviator::Test
52
52
 
53
53
  validate_attr :body do
54
54
  params = {
55
- name: 'Project',
56
- description: 'My Project',
57
- enabled: true
55
+ :name => 'Project',
56
+ :description => 'My Project',
57
+ :enabled => true
58
58
  }
59
59
 
60
60
  body = {
61
- tenant: params
61
+ :tenant => params
62
62
  }
63
63
 
64
64
  request = klass.new(helper.admin_session_data) do |p|
@@ -108,9 +108,9 @@ class Aviator::Test
108
108
 
109
109
  validate_response 'params are invalid' do
110
110
  service = Aviator::Service.new(
111
- provider: 'openstack',
112
- service: 'identity',
113
- default_session_data: new_session_data
111
+ :provider => 'openstack',
112
+ :service => 'identity',
113
+ :default_session_data => new_session_data
114
114
  )
115
115
 
116
116
  response = service.request :create_tenant do |params|
@@ -127,9 +127,9 @@ class Aviator::Test
127
127
 
128
128
  validate_response 'params are valid' do
129
129
  service = Aviator::Service.new(
130
- provider: 'openstack',
131
- service: 'identity',
132
- default_session_data: new_session_data
130
+ :provider => 'openstack',
131
+ :service => 'identity',
132
+ :default_session_data => new_session_data
133
133
  )
134
134
 
135
135
  response = service.request :create_tenant do |params|
@@ -32,8 +32,9 @@ 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
+ :log_file => Environment.log_file_path
37
38
  )
38
39
  @session.authenticate
39
40
  end
@@ -54,15 +55,15 @@ class Aviator::Test
54
55
 
55
56
  validate_attr :body do
56
57
  params = {
57
- name: 'username_example',
58
- password: 'user_password123',
59
- email: 'sample@email.com',
60
- tenantId: 'sample_tenant_id',
61
- enabled: true
58
+ :name => 'username_example',
59
+ :password => 'user_password123',
60
+ :email => 'sample@email.com',
61
+ :tenantId => 'sample_tenant_id',
62
+ :enabled => true
62
63
  }
63
64
 
64
65
  body = {
65
- user: params
66
+ :user => params
66
67
  }
67
68
 
68
69
  request = klass.new(get_session_data) do |p|
@@ -121,7 +122,7 @@ class Aviator::Test
121
122
 
122
123
  validate_attr :param_aliases do
123
124
  aliases = {
124
- tenant_id: :tenantId
125
+ :tenant_id => :tenantId
125
126
  }
126
127
 
127
128
  klass.param_aliases.must_equal aliases
@@ -147,7 +148,8 @@ class Aviator::Test
147
148
  service = session.identity_service
148
149
 
149
150
  tenant = service.request(:list_tenants).body[:tenants].find do |t|
150
- t[:name] == Environment.openstack_admin[:auth_credentials][:tenantName]
151
+ t[:name] == Environment.openstack_admin[:auth_credentials][:tenantName] ||
152
+ Environment.openstack_admin[:auth_credentials][:tenant_name]
151
153
  end
152
154
 
153
155
  response = service.request :create_user do |params|
@@ -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
@@ -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
  @session.authenticate
36
36
  end
@@ -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
  @session.authenticate
36
36
  end