aviator 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/.gitignore +2 -1
- data/.travis.yml +4 -0
- data/Gemfile +6 -2
- data/aviator.gemspec +19 -6
- data/lib/aviator/compatibility.rb +34 -0
- data/lib/aviator/core/cli/describer.rb +16 -16
- data/lib/aviator/core/logger.rb +55 -0
- data/lib/aviator/core/request.rb +5 -4
- data/lib/aviator/core/request_builder.rb +1 -1
- data/lib/aviator/core/response.rb +17 -11
- data/lib/aviator/core/service.rb +9 -27
- data/lib/aviator/core/session.rb +71 -61
- data/lib/aviator/core.rb +3 -1
- data/lib/aviator/hashish.rb +111 -0
- data/lib/aviator/openstack/common/v2/admin/base.rb +1 -1
- data/lib/aviator/openstack/common/v2/public/base.rb +7 -3
- data/lib/aviator/openstack/compute/v2/admin/confirm_server_resize.rb +3 -3
- data/lib/aviator/openstack/compute/v2/admin/create_network.rb +15 -15
- data/lib/aviator/openstack/compute/v2/admin/get_host_details.rb +2 -2
- data/lib/aviator/openstack/compute/v2/admin/list_hosts.rb +3 -3
- data/lib/aviator/openstack/compute/v2/admin/lock_server.rb +3 -3
- data/lib/aviator/openstack/compute/v2/admin/migrate_server.rb +3 -3
- data/lib/aviator/openstack/compute/v2/admin/reset_server.rb +3 -3
- data/lib/aviator/openstack/compute/v2/admin/resize_server.rb +7 -7
- data/lib/aviator/openstack/compute/v2/admin/revert_server_resize.rb +2 -2
- data/lib/aviator/openstack/compute/v2/admin/unlock_server.rb +3 -3
- data/lib/aviator/openstack/compute/v2/public/change_admin_password.rb +5 -5
- data/lib/aviator/openstack/compute/v2/public/create_image.rb +6 -6
- data/lib/aviator/openstack/compute/v2/public/create_server.rb +14 -14
- data/lib/aviator/openstack/compute/v2/public/delete_image.rb +2 -2
- data/lib/aviator/openstack/compute/v2/public/delete_image_metadata_item.rb +31 -0
- data/lib/aviator/openstack/compute/v2/public/delete_server.rb +2 -2
- data/lib/aviator/openstack/compute/v2/public/delete_server_metadata_item.rb +31 -0
- data/lib/aviator/openstack/compute/v2/public/get_flavor_details.rb +2 -2
- data/lib/aviator/openstack/compute/v2/public/get_image_details.rb +2 -2
- data/lib/aviator/openstack/compute/v2/public/get_image_metadata_item.rb +31 -0
- data/lib/aviator/openstack/compute/v2/public/get_network_details.rb +2 -2
- data/lib/aviator/openstack/compute/v2/public/get_server.rb +2 -2
- data/lib/aviator/openstack/compute/v2/public/get_server_metadata_item.rb +31 -0
- data/lib/aviator/openstack/compute/v2/public/list_addresses.rb +3 -3
- data/lib/aviator/openstack/compute/v2/public/list_flavors.rb +6 -6
- data/lib/aviator/openstack/compute/v2/public/list_image_metadata.rb +30 -0
- data/lib/aviator/openstack/compute/v2/public/list_images.rb +9 -9
- data/lib/aviator/openstack/compute/v2/public/list_networks.rb +1 -1
- data/lib/aviator/openstack/compute/v2/public/list_server_metadata.rb +30 -0
- data/lib/aviator/openstack/compute/v2/public/list_servers.rb +11 -11
- data/lib/aviator/openstack/compute/v2/public/pause_server.rb +3 -3
- data/lib/aviator/openstack/compute/v2/public/reboot_server.rb +5 -5
- data/lib/aviator/openstack/compute/v2/public/rebuild_server.rb +13 -13
- data/lib/aviator/openstack/compute/v2/public/resume_server.rb +3 -3
- data/lib/aviator/openstack/compute/v2/public/root.rb +1 -1
- data/lib/aviator/openstack/compute/v2/public/set_image_metadata.rb +38 -0
- data/lib/aviator/openstack/compute/v2/public/set_server_metadata.rb +38 -0
- data/lib/aviator/openstack/compute/v2/public/suspend_server.rb +3 -3
- data/lib/aviator/openstack/compute/v2/public/unpause_server.rb +3 -3
- data/lib/aviator/openstack/compute/v2/public/update_image_metadata.rb +38 -0
- data/lib/aviator/openstack/compute/v2/public/update_server.rb +6 -6
- data/lib/aviator/openstack/compute/v2/public/update_server_metadata.rb +38 -0
- data/lib/aviator/openstack/identity/v2/admin/add_role_to_user_on_tenant.rb +4 -4
- data/lib/aviator/openstack/identity/v2/admin/create_tenant.rb +8 -8
- data/lib/aviator/openstack/identity/v2/admin/create_user.rb +6 -6
- data/lib/aviator/openstack/identity/v2/admin/delete_role_from_user_on_tenant.rb +4 -4
- data/lib/aviator/openstack/identity/v2/admin/delete_tenant.rb +2 -2
- data/lib/aviator/openstack/identity/v2/admin/delete_user.rb +1 -1
- data/lib/aviator/openstack/identity/v2/admin/get_tenant_by_id.rb +30 -0
- data/lib/aviator/openstack/identity/v2/admin/list_tenants.rb +3 -3
- data/lib/aviator/openstack/identity/v2/admin/update_tenant.rb +6 -6
- data/lib/aviator/openstack/identity/v2/admin/update_user.rb +7 -7
- data/lib/aviator/openstack/identity/v2/public/create_token.rb +13 -13
- data/lib/aviator/openstack/identity/v2/public/list_tenants.rb +3 -3
- data/lib/aviator/openstack/identity/v2/public/root.rb +1 -1
- data/lib/aviator/openstack/image/v1/public/list_public_images.rb +45 -0
- data/lib/aviator/openstack/image/v1/public/root.rb +1 -1
- data/lib/aviator/openstack/metering/v1/admin/list_projects.rb +1 -1
- data/lib/aviator/openstack/volume/v1/public/create_volume.rb +13 -13
- data/lib/aviator/openstack/volume/v1/public/delete_volume.rb +2 -2
- data/lib/aviator/openstack/volume/v1/public/get_volume.rb +2 -2
- data/lib/aviator/openstack/volume/v1/public/list_volume_types.rb +3 -3
- data/lib/aviator/openstack/volume/v1/public/list_volumes.rb +22 -11
- data/lib/aviator/openstack/volume/v1/public/root.rb +1 -1
- data/lib/aviator/openstack/volume/v1/public/update_volume.rb +5 -5
- data/lib/aviator/version.rb +1 -1
- data/lib/aviator.rb +5 -0
- data/test/aviator/core/cli/describer_test.rb +29 -29
- data/test/aviator/core/request_builder_test.rb +13 -13
- data/test/aviator/core/request_test.rb +11 -11
- data/test/aviator/core/service_test.rb +31 -31
- data/test/aviator/core/session_test.rb +122 -70
- data/test/aviator/openstack/common/v2/public/base_test.rb +8 -8
- data/test/aviator/openstack/compute/v2/admin/confirm_server_resize_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/admin/create_network_test.rb +15 -15
- data/test/aviator/openstack/compute/v2/admin/get_host_details_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/admin/list_hosts_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/admin/lock_server_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/admin/migrate_server_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/admin/reset_server_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/admin/resize_server_test.rb +3 -3
- data/test/aviator/openstack/compute/v2/admin/revert_server_resize_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/admin/unlock_server_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/public/change_admin_password_test.rb +3 -3
- data/test/aviator/openstack/compute/v2/public/create_image_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/public/create_server_test.rb +7 -7
- data/test/aviator/openstack/compute/v2/public/delete_image_metadata_item_test.rb +159 -0
- data/test/aviator/openstack/compute/v2/public/delete_image_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/public/delete_server_metadata_item_test.rb +156 -0
- data/test/aviator/openstack/compute/v2/public/delete_server_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/public/get_flavor_details_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/public/get_image_details_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/public/get_image_metadata_item_test.rb +160 -0
- data/test/aviator/openstack/compute/v2/public/get_network_details_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/public/get_server_metadata_item_test.rb +160 -0
- data/test/aviator/openstack/compute/v2/public/get_server_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/public/list_addresses_test.rb +3 -3
- data/test/aviator/openstack/compute/v2/public/list_flavors_test.rb +4 -4
- data/test/aviator/openstack/compute/v2/public/list_image_metadata_test.rb +127 -0
- data/test/aviator/openstack/compute/v2/public/list_images_test.rb +13 -13
- data/test/aviator/openstack/compute/v2/public/list_networks_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/public/list_server_metadata_test.rb +127 -0
- data/test/aviator/openstack/compute/v2/public/list_servers_test.rb +15 -15
- data/test/aviator/openstack/compute/v2/public/pause_server_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/public/reboot_server_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/public/rebuild_server_test.rb +6 -6
- data/test/aviator/openstack/compute/v2/public/resume_server_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/public/root_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/public/set_image_metadata_test.rb +151 -0
- data/test/aviator/openstack/compute/v2/public/set_server_metadata_test.rb +149 -0
- data/test/aviator/openstack/compute/v2/public/suspend_server_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/public/unpause_server_test.rb +2 -2
- data/test/aviator/openstack/compute/v2/public/update_image_metadata_test.rb +154 -0
- data/test/aviator/openstack/compute/v2/public/update_server_metadata_test.rb +150 -0
- data/test/aviator/openstack/compute/v2/public/update_server_test.rb +4 -4
- data/test/aviator/openstack/identity/v2/admin/add_role_to_user_on_tenant_test.rb +2 -2
- data/test/aviator/openstack/identity/v2/admin/create_tenant_test.rb +13 -13
- data/test/aviator/openstack/identity/v2/admin/create_user_test.rb +12 -10
- data/test/aviator/openstack/identity/v2/admin/delete_role_from_user_on_tenant_test.rb +2 -2
- data/test/aviator/openstack/identity/v2/admin/delete_tenant_test.rb +2 -2
- data/test/aviator/openstack/identity/v2/admin/delete_user_test.rb +2 -2
- data/test/aviator/openstack/identity/v2/admin/get_tenant_by_id_test.rb +122 -0
- data/test/aviator/openstack/identity/v2/admin/list_users_test.rb +2 -2
- data/test/aviator/openstack/identity/v2/admin/update_tenant_test.rb +2 -2
- data/test/aviator/openstack/identity/v2/admin/update_user_test.rb +3 -3
- data/test/aviator/openstack/identity/v2/public/create_token_test.rb +19 -18
- data/test/aviator/openstack/identity/v2/public/list_tenants_test.rb +5 -5
- data/test/aviator/openstack/identity/v2/public/root_test.rb +2 -2
- data/test/aviator/openstack/image/v1/public/list_public_images_test.rb +145 -0
- data/test/aviator/openstack/image/v1/public/root_test.rb +2 -2
- data/test/aviator/openstack/metering/v1/admin/list_projects_test.rb +2 -2
- data/test/aviator/openstack/volume/v1/public/create_volume_test.rb +2 -2
- data/test/aviator/openstack/volume/v1/public/delete_volume_test.rb +2 -2
- data/test/aviator/openstack/volume/v1/public/get_volume_test.rb +2 -2
- data/test/aviator/openstack/volume/v1/public/list_volume_types_test.rb +2 -2
- data/test/aviator/openstack/volume/v1/public/list_volumes_test.rb +49 -24
- data/test/aviator/openstack/volume/v1/public/root_test.rb +2 -2
- data/test/aviator/openstack/volume/v1/public/update_volume_test.rb +2 -2
- data/test/cassettes/core/session/i_validate/returns_false_if_session_is_no_longer_valid.yml +20 -19
- data/test/cassettes/core/session/i_validate/returns_true_even_when_a_default_token_is_used.yml +72 -0
- data/test/cassettes/core/session/i_validate/returns_true_if_session_is_still_valid.yml +24 -24
- 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
- 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
- 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
- data/test/cassettes/openstack/compute/v2/public/delete_image_metadata_item/returns_the_correct_value_for_body_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/delete_image_metadata_item/returns_the_correct_value_for_headers_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/delete_image_metadata_item/returns_the_correct_value_for_http_method_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/delete_image_metadata_item/returns_the_correct_value_for_url_.yml +65 -0
- 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
- 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
- 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
- data/test/cassettes/openstack/compute/v2/public/delete_server_metadata_item/returns_the_correct_value_for_body_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/delete_server_metadata_item/returns_the_correct_value_for_headers_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/delete_server_metadata_item/returns_the_correct_value_for_http_method_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/delete_server_metadata_item/returns_the_correct_value_for_url_.yml +65 -0
- 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
- 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
- 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
- data/test/cassettes/openstack/compute/v2/public/get_image_metadata_item/returns_the_correct_value_for_body_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/get_image_metadata_item/returns_the_correct_value_for_headers_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/get_image_metadata_item/returns_the_correct_value_for_http_method_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/get_image_metadata_item/returns_the_correct_value_for_url_.yml +65 -0
- 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
- 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
- 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
- data/test/cassettes/openstack/compute/v2/public/get_server_metadata_item/returns_the_correct_value_for_body_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/get_server_metadata_item/returns_the_correct_value_for_headers_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/get_server_metadata_item/returns_the_correct_value_for_http_method_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/get_server_metadata_item/returns_the_correct_value_for_url_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/list_image_metadata/leads_to_a_valid_response_when_invalid_image_id_is_provided.yml +98 -0
- data/test/cassettes/openstack/compute/v2/public/list_image_metadata/leads_to_a_valid_response_when_valid_image_id_is_provided.yml +147 -0
- data/test/cassettes/openstack/compute/v2/public/list_image_metadata/returns_the_correct_value_for_body_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/list_image_metadata/returns_the_correct_value_for_headers_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/list_image_metadata/returns_the_correct_value_for_http_method_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/list_image_metadata/returns_the_correct_value_for_url_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/list_server_metadata/leads_to_a_valid_response_when_invalid_server_id_is_provided.yml +98 -0
- data/test/cassettes/openstack/compute/v2/public/list_server_metadata/leads_to_a_valid_response_when_valid_server_id_is_provided.yml +134 -0
- data/test/cassettes/openstack/compute/v2/public/list_server_metadata/returns_the_correct_value_for_body_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/list_server_metadata/returns_the_correct_value_for_headers_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/list_server_metadata/returns_the_correct_value_for_http_method_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/list_server_metadata/returns_the_correct_value_for_url_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/set_image_metadata/leads_to_a_valid_response_when_invalid_image_id_is_provided.yml +98 -0
- data/test/cassettes/openstack/compute/v2/public/set_image_metadata/leads_to_a_valid_response_when_valid_image_id_is_provided.yml +98 -0
- data/test/cassettes/openstack/compute/v2/public/set_image_metadata/returns_the_correct_value_for_body_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/set_image_metadata/returns_the_correct_value_for_headers_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/set_image_metadata/returns_the_correct_value_for_http_method_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/set_image_metadata/returns_the_correct_value_for_url_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/set_server_metadata/leads_to_a_valid_response_when_invalid_server_id_is_provided.yml +98 -0
- data/test/cassettes/openstack/compute/v2/public/set_server_metadata/leads_to_a_valid_response_when_valid_server_id_is_provided.yml +134 -0
- data/test/cassettes/openstack/compute/v2/public/set_server_metadata/returns_the_correct_value_for_body_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/set_server_metadata/returns_the_correct_value_for_headers_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/set_server_metadata/returns_the_correct_value_for_http_method_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/set_server_metadata/returns_the_correct_value_for_url_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/update_image_metadata/leads_to_a_valid_response_when_invalid_image_id_is_provided.yml +98 -0
- data/test/cassettes/openstack/compute/v2/public/update_image_metadata/leads_to_a_valid_response_when_valid_image_id_is_provided.yml +98 -0
- data/test/cassettes/openstack/compute/v2/public/update_image_metadata/returns_the_correct_value_for_body_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/update_image_metadata/returns_the_correct_value_for_headers_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/update_image_metadata/returns_the_correct_value_for_http_method_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/update_image_metadata/returns_the_correct_value_for_url_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/update_server_metadata/leads_to_a_valid_response_when_invalid_server_id_is_provided.yml +98 -0
- data/test/cassettes/openstack/compute/v2/public/update_server_metadata/leads_to_a_valid_response_when_valid_server_id_is_provided.yml +134 -0
- data/test/cassettes/openstack/compute/v2/public/update_server_metadata/returns_the_correct_value_for_body_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/update_server_metadata/returns_the_correct_value_for_headers_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/update_server_metadata/returns_the_correct_value_for_http_method_.yml +65 -0
- data/test/cassettes/openstack/compute/v2/public/update_server_metadata/returns_the_correct_value_for_url_.yml +65 -0
- 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
- data/test/cassettes/openstack/identity/v2/admin/get_tenant_by_id/returns_the_correct_value_for_body_.yml +65 -0
- data/test/cassettes/openstack/identity/v2/admin/get_tenant_by_id/returns_the_correct_value_for_headers_.yml +65 -0
- data/test/cassettes/openstack/identity/v2/admin/get_tenant_by_id/returns_the_correct_value_for_http_method_.yml +65 -0
- data/test/cassettes/openstack/identity/v2/admin/get_tenant_by_id/returns_the_correct_value_for_url_.yml +65 -0
- data/test/cassettes/openstack/image/v1/public/list_public_images/leads_to_a_valid_response_when_filtering_with_matches.yml +99 -0
- data/test/cassettes/openstack/image/v1/public/list_public_images/leads_to_a_valid_response_when_filtering_with_no_matches.yml +97 -0
- data/test/cassettes/openstack/image/v1/public/list_public_images/leads_to_a_valid_response_when_no_parameters_are_provided.yml +99 -0
- data/test/cassettes/openstack/image/v1/public/list_public_images/returns_the_correct_value_for_body_.yml +64 -0
- data/test/cassettes/openstack/image/v1/public/list_public_images/returns_the_correct_value_for_headers_.yml +64 -0
- data/test/cassettes/openstack/image/v1/public/list_public_images/returns_the_correct_value_for_http_method_.yml +64 -0
- data/test/cassettes/openstack/volume/v1/public/list_volumes/leads_to_a_valid_response_when_all_tenants_param_is_true.yml +139 -0
- data/test/environment.yml.example +2 -2
- data/test/environment.yml.travis-ci +2 -2
- data/test/support/request_helper.rb +13 -13
- data/test/support/test_base_class.rb +13 -13
- data/test/support/test_environment.rb +33 -15
- data/test/support/test_reporter.rb +38 -30
- data/test/support/vcr_setup.rb +29 -11
- data/test/test_helper.rb +16 -6
- metadata +205 -42
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZGVhYTFmYzUyMjc5MGY4OWU0MDM2YzViZTM3N2ViNzEzNjljOGIyNA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MzYyY2MwNTM5NDRmZTJhZWU2Mzg1ZmUxODNmNGVlZWI5MDgzMWY5MQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NjBmYWUyY2Q0NjFhODg5MjBhYWEwZTA4NTFhYTY5YjczMDE2OWRmZGZkMTNh
|
10
|
+
ZTRkMGI1YjBmNjY3OWY3MzA2NGQxNjlhNGE0NDVhY2E0ZmQ3NTg3OThkNjcy
|
11
|
+
YjFjNWUxZjJiZmZkYWIzZjQ2NDRmNDg4MzY0NjFjOWI4Nzg0YzY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NDAyMjlkNGQ1MzRhNmE5YzVlNThlNzA0M2M2YWFkNDM5ODNhNTQ2MzkxZDg3
|
14
|
+
MjcwMDZhYmE4MGJmZjIyZTljMDAxOGY4NTJiY2QzZWFkNDQwOTA5NTA0NGUw
|
15
|
+
NGI0NTFlODM2NmI1OGU4M2VkYzVkNjVhMDg2YWM5ZjdjOWM2ZDk=
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
+
- 1.8.7
|
3
4
|
- 1.9.3
|
4
5
|
- 2.0.0
|
5
6
|
branches:
|
@@ -11,3 +12,6 @@ bundler_args: --without development
|
|
11
12
|
script:
|
12
13
|
- cp test/environment.yml.travis-ci test/environment.yml
|
13
14
|
- bundle exec rake
|
15
|
+
after_script:
|
16
|
+
- cat tmp/aviator.log
|
17
|
+
- cat tmp/vcr.log
|
data/Gemfile
CHANGED
@@ -7,11 +7,15 @@ gemspec
|
|
7
7
|
# we can tell travis-ci not to build any of the
|
8
8
|
# development gems. Makes the build run faster.
|
9
9
|
group :test do
|
10
|
+
if Aviator::Compatibility::RUBY_1_8_MODE
|
11
|
+
gem 'mime-types', '~> 1.25.1'
|
12
|
+
end
|
13
|
+
|
10
14
|
gem 'rake'
|
11
15
|
gem 'simplecov', '~> 0.7.0'
|
12
|
-
gem 'coveralls', '~> 0.
|
16
|
+
gem 'coveralls', '~> 0.7.0'
|
13
17
|
gem 'json', '~> 1.7.0'
|
14
18
|
gem 'minitest', '~> 4.7.0'
|
15
19
|
gem 'minitest-reporters', '~> 0.14.20'
|
16
|
-
gem 'vcr', '~> 2.
|
20
|
+
gem 'vcr', '~> 2.8.0'
|
17
21
|
end
|
data/aviator.gemspec
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
lib = File.expand_path('../lib', __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
|
4
5
|
require 'aviator/version'
|
6
|
+
require 'aviator/compatibility'
|
7
|
+
require 'rbconfig'
|
5
8
|
|
6
9
|
Gem::Specification.new do |spec|
|
7
10
|
spec.name = "aviator"
|
@@ -18,19 +21,29 @@ Gem::Specification.new do |spec|
|
|
18
21
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
22
|
spec.require_paths = ["lib"]
|
20
23
|
|
21
|
-
spec.add_dependency 'faraday', '
|
22
|
-
|
24
|
+
spec.add_dependency 'faraday', '0.8.8'
|
25
|
+
|
26
|
+
if Aviator::Compatibility::RUBY_1_8_MODE
|
27
|
+
spec.add_dependency 'activesupport', '~> 2.0'
|
28
|
+
else
|
29
|
+
spec.add_dependency 'activesupport', '>= 3.2.8'
|
30
|
+
end
|
31
|
+
|
23
32
|
spec.add_dependency 'thor', '~> 0.18.1'
|
24
33
|
spec.add_dependency 'terminal-table', '>= 1.4.5'
|
25
34
|
|
26
|
-
spec.add_development_dependency "bundler", "
|
27
|
-
spec.add_development_dependency "rake"
|
35
|
+
spec.add_development_dependency "bundler", ">= 1.0"
|
28
36
|
spec.add_development_dependency 'rb-fsevent', '~> 0.9.0'
|
29
37
|
spec.add_development_dependency 'guard', '~> 1.8.0'
|
30
38
|
spec.add_development_dependency 'guard-rake', '~> 0.0.0'
|
31
39
|
spec.add_development_dependency 'guard-minitest', '~> 0.5.0'
|
32
|
-
|
33
|
-
|
40
|
+
|
41
|
+
if /darwin|mac os/ === RbConfig::CONFIG['host_os']
|
42
|
+
spec.add_development_dependency 'terminal-notifier-guard', '~> 1.5.3'
|
43
|
+
else
|
44
|
+
spec.add_development_dependency 'ruby_gntp', '~> 0.3.0'
|
45
|
+
end
|
46
|
+
|
34
47
|
spec.add_development_dependency 'pry', '~> 0.9.0'
|
35
48
|
spec.add_development_dependency 'yard', '~> 0.8.0'
|
36
49
|
spec.add_development_dependency 'redcarpet', '~> 2.3.0'
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Aviator
|
2
|
+
|
3
|
+
module Compatibility
|
4
|
+
RUBY_1_8_MODE = (not (RUBY_VERSION =~ /1\.8\.\d*/).nil?)
|
5
|
+
end
|
6
|
+
|
7
|
+
end
|
8
|
+
|
9
|
+
if Aviator::Compatibility::RUBY_1_8_MODE
|
10
|
+
|
11
|
+
class Module
|
12
|
+
|
13
|
+
alias_method :old_const_defined?, :const_defined?
|
14
|
+
|
15
|
+
def const_defined?(sym, ignore=nil)
|
16
|
+
old_const_defined?(sym)
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
alias_method :old_const_get, :const_get
|
21
|
+
|
22
|
+
def const_get(sym, ignore=nil)
|
23
|
+
old_const_get(sym)
|
24
|
+
end
|
25
|
+
|
26
|
+
alias_method :old_instance_methods, :instance_methods
|
27
|
+
|
28
|
+
def instance_methods(include_super=true)
|
29
|
+
old_instance_methods(include_super).map(&:to_sym)
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
@@ -25,11 +25,11 @@ module Aviator
|
|
25
25
|
|
26
26
|
|
27
27
|
def self.describe_request(provider_name, service_name, api_version, endpoint_type, request_name)
|
28
|
-
service = Aviator::Service.new provider
|
28
|
+
service = Aviator::Service.new :provider => provider_name, :service => service_name
|
29
29
|
request_class = "Aviator::#{ provider_name.camelize }::#{ service_name.camelize }::"\
|
30
30
|
"#{ api_version.camelize }::#{ endpoint_type.camelize }::#{ request_name.camelize }".constantize
|
31
31
|
|
32
|
-
display = "Request
|
32
|
+
display = ":Request => #{ request_name }\n"
|
33
33
|
|
34
34
|
|
35
35
|
# Build the parameters
|
@@ -41,7 +41,7 @@ module Aviator
|
|
41
41
|
if params.length > 0
|
42
42
|
display << "\n"
|
43
43
|
|
44
|
-
headings = ['NAME', 'REQUIRED']
|
44
|
+
headings = ['NAME', 'REQUIRED?']
|
45
45
|
|
46
46
|
headings << 'ALIAS' if aliases.length > 0
|
47
47
|
|
@@ -57,13 +57,13 @@ module Aviator
|
|
57
57
|
end
|
58
58
|
|
59
59
|
widths = [
|
60
|
-
rows.map{|row| row[0].length }.max,
|
61
|
-
rows.map{|row| row[1].length }.max
|
60
|
+
rows.map{|row| row[0].to_s.length }.max,
|
61
|
+
rows.map{|row| row[1].to_s.length }.max
|
62
62
|
]
|
63
63
|
|
64
|
-
widths << rows.map{|row| row[2].length }.max if aliases.length > 0
|
64
|
+
widths << rows.map{|row| row[2].to_s.length }.max if aliases.length > 0
|
65
65
|
|
66
|
-
table = Terminal::Table.new(headings
|
66
|
+
table = Terminal::Table.new(:headings => headings, :rows => rows)
|
67
67
|
|
68
68
|
table.align_column(1, :center)
|
69
69
|
|
@@ -118,25 +118,25 @@ module Aviator
|
|
118
118
|
private
|
119
119
|
|
120
120
|
def provider_names
|
121
|
-
Pathname.new(__FILE__)
|
122
|
-
.join('..', '..', '..')
|
123
|
-
.children
|
124
|
-
.select{|c| c.directory? && c.basename.to_s != 'core' }
|
121
|
+
Pathname.new(__FILE__) \
|
122
|
+
.join('..', '..', '..') \
|
123
|
+
.children \
|
124
|
+
.select{|c| c.directory? && c.basename.to_s != 'core' } \
|
125
125
|
.map{|c| c.basename.to_s }
|
126
126
|
end
|
127
127
|
|
128
128
|
|
129
129
|
def request_classes(provider_name, service_name)
|
130
|
-
service = Aviator::Service.new(provider
|
130
|
+
service = Aviator::Service.new(:provider => provider_name, :service => service_name)
|
131
131
|
service.request_classes
|
132
132
|
end
|
133
133
|
|
134
134
|
|
135
135
|
def service_names(provider_name)
|
136
|
-
Pathname.new(__FILE__)
|
137
|
-
.join('..', '..', '..', provider_name)
|
138
|
-
.children
|
139
|
-
.select{|c| c.directory? }
|
136
|
+
Pathname.new(__FILE__) \
|
137
|
+
.join('..', '..', '..', provider_name) \
|
138
|
+
.children \
|
139
|
+
.select{|c| c.directory? } \
|
140
140
|
.map{|c| c.basename.to_s }
|
141
141
|
end
|
142
142
|
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Aviator
|
2
|
+
|
3
|
+
class Logger < Faraday::Response::Middleware
|
4
|
+
extend Forwardable
|
5
|
+
|
6
|
+
def initialize(app, logger=nil)
|
7
|
+
super(app)
|
8
|
+
@logger = logger || begin
|
9
|
+
require 'logger'
|
10
|
+
::Logger.new(self.class::LOG_FILE_PATH)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
|
15
|
+
def_delegators :@logger, :debug, :info, :warn, :error, :fatal
|
16
|
+
|
17
|
+
|
18
|
+
def call(env)
|
19
|
+
info(env[:method].to_s.upcase) { env[:url].to_s }
|
20
|
+
debug('REQ_HEAD') { dump_headers env[:request_headers] }
|
21
|
+
debug('REQ_BODY') { dump_body env[:body] }
|
22
|
+
super
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
def on_complete(env)
|
27
|
+
info('STATUS') { env[:status].to_s }
|
28
|
+
debug('RES_HEAD') { dump_headers env[:response_headers] }
|
29
|
+
debug('RES_BODY') { dump_body env[:body] }
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
def self.configure(log_file_path)
|
34
|
+
# Return a subclass with its logfile path set. This
|
35
|
+
# must be done so that different sessions can log to
|
36
|
+
# different paths.
|
37
|
+
Class.new(self) { const_set('LOG_FILE_PATH', log_file_path) }
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def dump_body(body)
|
44
|
+
return if body.nil?
|
45
|
+
|
46
|
+
# :TODO => Make this configurable
|
47
|
+
body.gsub(/["']password["']:["']\w*["']/, '"password":[FILTERED_VALUE]')
|
48
|
+
end
|
49
|
+
|
50
|
+
def dump_headers(headers)
|
51
|
+
headers.map { |k, v| "#{k}: #{v.inspect}" }.join("; ")
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
data/lib/aviator/core/request.rb
CHANGED
@@ -196,12 +196,13 @@ module Aviator
|
|
196
196
|
|
197
197
|
|
198
198
|
def link(rel, href)
|
199
|
-
links << { rel
|
199
|
+
links << { :rel => rel, :href => href }
|
200
200
|
end
|
201
201
|
|
202
202
|
|
203
203
|
def meta(attr_name, attr_value)
|
204
|
-
|
204
|
+
eigenclass = class << self; self; end
|
205
|
+
eigenclass.send(:define_method, attr_name) do
|
205
206
|
attr_value
|
206
207
|
end
|
207
208
|
|
@@ -212,7 +213,7 @@ module Aviator
|
|
212
213
|
|
213
214
|
|
214
215
|
def param(param_name, opts={})
|
215
|
-
opts = opts
|
216
|
+
opts = Hashish.new(opts)
|
216
217
|
list = (opts[:required] == false ? optional_params : required_params)
|
217
218
|
list << param_name unless optional_params.include?(param_name)
|
218
219
|
|
@@ -225,4 +226,4 @@ module Aviator
|
|
225
226
|
|
226
227
|
end
|
227
228
|
|
228
|
-
end
|
229
|
+
end
|
@@ -80,7 +80,7 @@ module Aviator
|
|
80
80
|
|
81
81
|
class << self
|
82
82
|
|
83
|
-
def define_request(request_name, options={ inherit
|
83
|
+
def define_request(request_name, options={ :inherit => [:request] }, &block)
|
84
84
|
RequestBuilder.define_request self, request_name, options, &block
|
85
85
|
end
|
86
86
|
|
@@ -2,11 +2,11 @@ module Aviator
|
|
2
2
|
|
3
3
|
class Response
|
4
4
|
extend Forwardable
|
5
|
-
|
5
|
+
|
6
6
|
def_delegators :@response, :headers, :status
|
7
|
-
|
7
|
+
|
8
8
|
attr_reader :request
|
9
|
-
|
9
|
+
|
10
10
|
def initialize(response, request)
|
11
11
|
@response = response
|
12
12
|
@request = request
|
@@ -15,19 +15,25 @@ module Aviator
|
|
15
15
|
|
16
16
|
def body
|
17
17
|
if raw_body.length > 0
|
18
|
-
|
18
|
+
if Aviator::Compatibility::RUBY_1_8_MODE
|
19
|
+
clean_body = raw_body.gsub(/\\ /, ' ')
|
20
|
+
else
|
21
|
+
clean_body = raw_body
|
22
|
+
end
|
23
|
+
|
24
|
+
Hashish.new(JSON.parse(clean_body))
|
19
25
|
else
|
20
|
-
{}
|
26
|
+
Hashish.new({})
|
21
27
|
end
|
22
28
|
end
|
23
|
-
|
24
|
-
|
29
|
+
|
30
|
+
|
25
31
|
private
|
26
|
-
|
32
|
+
|
27
33
|
def raw_body
|
28
34
|
@response.body
|
29
35
|
end
|
30
|
-
|
36
|
+
|
31
37
|
end
|
32
|
-
|
33
|
-
end
|
38
|
+
|
39
|
+
end
|
data/lib/aviator/core/service.rb
CHANGED
@@ -42,27 +42,14 @@ module Aviator
|
|
42
42
|
"service. Therefore, I don't know to which base URL the request should be sent. "\
|
43
43
|
"This may be because you are using a default or unscoped token. If this is not your "\
|
44
44
|
"intention, please authenticate with a scoped token. If using a default token is your "\
|
45
|
-
"intention, make sure to provide a base url when you call the request. For example
|
46
|
-
"session.#{ service_name }_service.request :#{ request_name }, base_url
|
45
|
+
"intention, make sure to provide a base url when you call the request. For :example => \n\n"\
|
46
|
+
"session.#{ service_name }_service.request :#{ request_name }, :base_url => 'http://myenv.com:9999/v2.0' do |params|\n"\
|
47
47
|
" params[:example1] = 'example1'\n"\
|
48
48
|
" params[:example2] = 'example2'\n"\
|
49
49
|
"end\n\n"
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
|
-
|
54
|
-
|
55
|
-
class Logger < Faraday::Response::Logger
|
56
|
-
def initialize(app, logger=nil)
|
57
|
-
super(app)
|
58
|
-
@logger = logger || begin
|
59
|
-
require 'logger'
|
60
|
-
::Logger.new(self.class::LOG_FILE_PATH)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
|
66
53
|
attr_accessor :default_session_data
|
67
54
|
|
68
55
|
attr_reader :service,
|
@@ -84,7 +71,7 @@ module Aviator
|
|
84
71
|
session_data = options[:session_data] || default_session_data
|
85
72
|
|
86
73
|
raise SessionDataNotProvidedError.new unless session_data
|
87
|
-
|
74
|
+
|
88
75
|
[:base_url].each do |k|
|
89
76
|
session_data[k] = options[k] if options[k]
|
90
77
|
end
|
@@ -116,14 +103,9 @@ module Aviator
|
|
116
103
|
|
117
104
|
def http_connection
|
118
105
|
@http_connection ||= Faraday.new do |conn|
|
119
|
-
if log_file
|
120
|
-
# Ugly hack to make logger configurable
|
121
|
-
const_name = 'LOG_FILE_PATH'
|
122
|
-
Logger.send(:remove_const, const_name) if Logger.const_defined?(const_name)
|
123
|
-
Logger.const_set(const_name, log_file)
|
124
|
-
conn.use Logger.dup
|
125
|
-
end
|
106
|
+
conn.use Logger.configure(log_file) if log_file
|
126
107
|
conn.adapter Faraday.default_adapter
|
108
|
+
|
127
109
|
conn.headers['Content-Type'] = 'application/json'
|
128
110
|
end
|
129
111
|
end
|
@@ -137,7 +119,7 @@ module Aviator
|
|
137
119
|
['Public', 'Admin']
|
138
120
|
end
|
139
121
|
|
140
|
-
namespace = Aviator.const_get(provider.camelize)
|
122
|
+
namespace = Aviator.const_get(provider.camelize) \
|
141
123
|
.const_get(service.camelize)
|
142
124
|
|
143
125
|
version = infer_version(session_data, name).to_s.camelize
|
@@ -182,7 +164,7 @@ module Aviator
|
|
182
164
|
|
183
165
|
|
184
166
|
def load_requests
|
185
|
-
# TODO
|
167
|
+
# :TODO => This should be determined by a provider-specific module.
|
186
168
|
# e.g. Aviator::OpenStack::requests_base_dir
|
187
169
|
request_file_paths = Dir.glob(Pathname.new(__FILE__).join(
|
188
170
|
'..',
|
@@ -196,8 +178,8 @@ module Aviator
|
|
196
178
|
|
197
179
|
request_file_paths.each{ |path| require path }
|
198
180
|
|
199
|
-
constant_parts = request_file_paths
|
200
|
-
.map{|rf| rf.to_s.match(/#{provider}\/#{service}\/([\w\/]+)\.rb$/) }
|
181
|
+
constant_parts = request_file_paths \
|
182
|
+
.map{|rf| rf.to_s.match(/#{provider}\/#{service}\/([\w\/]+)\.rb$/) } \
|
201
183
|
.map{|rf| rf[1].split('/').map{|c| c.camelize }.join('::') }
|
202
184
|
|
203
185
|
@request_classes = constant_parts.map do |cp|
|