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.
- 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
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
module Aviator
|
|
2
2
|
|
|
3
|
-
define_request :list_volumes, inherit
|
|
3
|
+
define_request :list_volumes, :inherit => [:openstack, :common, :v2, :public, :base] do
|
|
4
4
|
|
|
5
5
|
meta :service, :volume
|
|
6
6
|
meta :api_version, :v1
|
|
7
7
|
|
|
8
8
|
link 'documentation', 'http://docs.rackspace.com/cbs/api/v1.0/cbs-devguide/content/GET_getVolumesSimple_v1__tenant_id__volumes_v1__tenant_id__volumes.html'
|
|
9
9
|
|
|
10
|
-
param :
|
|
11
|
-
param :
|
|
12
|
-
param :
|
|
13
|
-
param :
|
|
14
|
-
param :
|
|
15
|
-
param :
|
|
16
|
-
param :
|
|
17
|
-
param :
|
|
18
|
-
param :
|
|
10
|
+
param :all_tenants, :required => false
|
|
11
|
+
param :details, :required => false
|
|
12
|
+
param :status, :required => false
|
|
13
|
+
param :availability_zone, :required => false
|
|
14
|
+
param :bootable, :required => false
|
|
15
|
+
param :display_name, :required => false
|
|
16
|
+
param :display_description, :required => false
|
|
17
|
+
param :volume_type, :required => false
|
|
18
|
+
param :snapshot_id, :required => false
|
|
19
|
+
param :size, :required => false
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
def headers
|
|
@@ -29,7 +30,17 @@ module Aviator
|
|
|
29
30
|
def url
|
|
30
31
|
str = "#{ base_url }/volumes"
|
|
31
32
|
str += "/detail" if params[:details]
|
|
32
|
-
|
|
33
|
+
|
|
34
|
+
filters = []
|
|
35
|
+
|
|
36
|
+
(optional_params + required_params - [:details]).each do |param_name|
|
|
37
|
+
value = param_name == :all_tenants && params[param_name] ? 1 : params[param_name]
|
|
38
|
+
filters << "#{ param_name }=#{ value }" if value
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
str += "?#{ filters.join('&') }" unless filters.empty?
|
|
42
|
+
|
|
43
|
+
str
|
|
33
44
|
end
|
|
34
45
|
|
|
35
46
|
end
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
module Aviator
|
|
2
2
|
|
|
3
|
-
define_request :update_volume, inherit
|
|
3
|
+
define_request :update_volume, :inherit => [:openstack, :common, :v2, :public, :base] do
|
|
4
4
|
|
|
5
5
|
meta :service, :volume
|
|
6
6
|
meta :api_version, :v1
|
|
7
7
|
|
|
8
8
|
link 'documentation', 'http://docs.rackspace.com/cbs/api/v1.0/cbs-devguide/content/PUT_renameVolume_v1__tenant_id__volumes__volume_id__v1__tenant_id__volumes.html'
|
|
9
9
|
|
|
10
|
-
param :id, required
|
|
11
|
-
param :display_name, required
|
|
12
|
-
param :display_description, required
|
|
10
|
+
param :id, :required => true
|
|
11
|
+
param :display_name, :required => false
|
|
12
|
+
param :display_description, :required => false
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
def body
|
|
16
|
-
p = { volume
|
|
16
|
+
p = { :volume => {} }
|
|
17
17
|
|
|
18
18
|
[:display_name, :display_description].each do |key|
|
|
19
19
|
p[:volume][key] = params[key] if params[key]
|
data/lib/aviator/version.rb
CHANGED
data/lib/aviator.rb
CHANGED
|
@@ -32,7 +32,7 @@ class Aviator::Test
|
|
|
32
32
|
|
|
33
33
|
inherit = [provider_name.to_sym, service_name.to_sym, base_ver, base_ept, base_name]
|
|
34
34
|
|
|
35
|
-
Aviator.define_request request_name, inherit
|
|
35
|
+
Aviator.define_request request_name, :inherit => inherit, &block
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
|
|
@@ -110,7 +110,7 @@ class Aviator::Test
|
|
|
110
110
|
request_class = build_request(provider, service, request_name)
|
|
111
111
|
|
|
112
112
|
expected = <<-EOF
|
|
113
|
-
Request
|
|
113
|
+
:Request => #{ request_name }
|
|
114
114
|
|
|
115
115
|
Sample Code:
|
|
116
116
|
session.#{ service }_service.request(:#{ request_name })
|
|
@@ -134,20 +134,20 @@ EOF
|
|
|
134
134
|
request_name = 'sample_request2'
|
|
135
135
|
|
|
136
136
|
request_class = build_request(provider, service, request_name) do
|
|
137
|
-
param :theParam, required
|
|
138
|
-
param :another, required
|
|
137
|
+
param :theParam, :required => true
|
|
138
|
+
param :another, :required => false
|
|
139
139
|
end
|
|
140
140
|
|
|
141
141
|
expected = <<-EOF
|
|
142
|
-
Request
|
|
142
|
+
:Request => #{ request_name }
|
|
143
143
|
|
|
144
144
|
Parameters:
|
|
145
|
-
|
|
146
|
-
| NAME | REQUIRED |
|
|
147
|
-
|
|
148
|
-
| another |
|
|
149
|
-
| theParam |
|
|
150
|
-
|
|
145
|
+
+----------+-----------+
|
|
146
|
+
| NAME | REQUIRED? |
|
|
147
|
+
+----------+-----------+
|
|
148
|
+
| another | N |
|
|
149
|
+
| theParam | Y |
|
|
150
|
+
+----------+-----------+
|
|
151
151
|
|
|
152
152
|
Sample Code:
|
|
153
153
|
session.#{ service }_service.request(:#{ request_name }) do |params|
|
|
@@ -174,20 +174,20 @@ EOF
|
|
|
174
174
|
request_name = 'sample_request3'
|
|
175
175
|
|
|
176
176
|
request_class = build_request(provider, service, request_name) do
|
|
177
|
-
param :theParam, required
|
|
178
|
-
param :anotherParam, required
|
|
177
|
+
param :theParam, :required => true, :alias => :the_param
|
|
178
|
+
param :anotherParam, :required => false, :alias => :another_param
|
|
179
179
|
end
|
|
180
180
|
|
|
181
181
|
expected = <<-EOF
|
|
182
|
-
Request
|
|
182
|
+
:Request => #{ request_name }
|
|
183
183
|
|
|
184
184
|
Parameters:
|
|
185
|
-
|
|
186
|
-
| NAME | REQUIRED | ALIAS |
|
|
187
|
-
|
|
188
|
-
| anotherParam |
|
|
189
|
-
| theParam |
|
|
190
|
-
|
|
185
|
+
+--------------+-----------+---------------+
|
|
186
|
+
| NAME | REQUIRED? | ALIAS |
|
|
187
|
+
+--------------+-----------+---------------+
|
|
188
|
+
| anotherParam | N | another_param |
|
|
189
|
+
| theParam | Y | the_param |
|
|
190
|
+
+--------------+-----------+---------------+
|
|
191
191
|
|
|
192
192
|
Sample Code:
|
|
193
193
|
session.#{ service }_service.request(:#{ request_name }) do |params|
|
|
@@ -214,22 +214,22 @@ EOF
|
|
|
214
214
|
request_name = 'sample_request4'
|
|
215
215
|
|
|
216
216
|
request_class = build_request(provider, service, request_name) do
|
|
217
|
-
param :theParam, required
|
|
218
|
-
param :anotherParam, required
|
|
217
|
+
param :theParam, :required => true, :alias => :the_param
|
|
218
|
+
param :anotherParam, :required => false, :alias => :another_param
|
|
219
219
|
|
|
220
220
|
link 'link1', 'http://www.link.com'
|
|
221
221
|
end
|
|
222
222
|
|
|
223
223
|
expected = <<-EOF
|
|
224
|
-
Request
|
|
224
|
+
:Request => #{ request_name }
|
|
225
225
|
|
|
226
226
|
Parameters:
|
|
227
|
-
|
|
228
|
-
| NAME | REQUIRED | ALIAS |
|
|
229
|
-
|
|
230
|
-
| anotherParam |
|
|
231
|
-
| theParam |
|
|
232
|
-
|
|
227
|
+
+--------------+-----------+---------------+
|
|
228
|
+
| NAME | REQUIRED? | ALIAS |
|
|
229
|
+
+--------------+-----------+---------------+
|
|
230
|
+
| anotherParam | N | another_param |
|
|
231
|
+
| theParam | Y | the_param |
|
|
232
|
+
+--------------+-----------+---------------+
|
|
233
233
|
|
|
234
234
|
Sample Code:
|
|
235
235
|
session.#{ service }_service.request(:#{ request_name }) do |params|
|
|
@@ -62,11 +62,11 @@ class Aviator::Test
|
|
|
62
62
|
|
|
63
63
|
it 'understands request inheritance' do
|
|
64
64
|
base = {
|
|
65
|
-
provider
|
|
66
|
-
service
|
|
67
|
-
api_ver
|
|
68
|
-
ep_type
|
|
69
|
-
name
|
|
65
|
+
:provider => :another_provider,
|
|
66
|
+
:service => :base_service,
|
|
67
|
+
:api_ver => :base_api_ver,
|
|
68
|
+
:ep_type => :base_ep_type,
|
|
69
|
+
:name => :base_name
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
builder.define_request base[:name] do
|
|
@@ -84,7 +84,7 @@ class Aviator::Test
|
|
|
84
84
|
base[:name]
|
|
85
85
|
]
|
|
86
86
|
|
|
87
|
-
builder.define_request :child_request, inherit
|
|
87
|
+
builder.define_request :child_request, :inherit => base_request do; end
|
|
88
88
|
|
|
89
89
|
child_req_hierarchy = [
|
|
90
90
|
base[:provider],
|
|
@@ -110,7 +110,7 @@ class Aviator::Test
|
|
|
110
110
|
non_existent_base = [:none, :existent, :base]
|
|
111
111
|
|
|
112
112
|
the_method = lambda do
|
|
113
|
-
builder.define_request :child, inherit
|
|
113
|
+
builder.define_request :child, :inherit => non_existent_base do; end
|
|
114
114
|
end
|
|
115
115
|
|
|
116
116
|
the_method.must_raise Aviator::BaseRequestNotFoundError
|
|
@@ -125,11 +125,11 @@ class Aviator::Test
|
|
|
125
125
|
|
|
126
126
|
it 'raises a RequestAlreadyDefinedError if the request is already defined' do
|
|
127
127
|
request = {
|
|
128
|
-
provider
|
|
129
|
-
service
|
|
130
|
-
api_ver
|
|
131
|
-
ep_type
|
|
132
|
-
name
|
|
128
|
+
:provider => :existing_provider,
|
|
129
|
+
:service => :base_service,
|
|
130
|
+
:api_ver => :base_api_ver,
|
|
131
|
+
:ep_type => :base_ep_type,
|
|
132
|
+
:name => :base_name
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
builder.define_request request[:name] do
|
|
@@ -161,7 +161,7 @@ class Aviator::Test
|
|
|
161
161
|
base_arr = [:openstack, :identity, :v2, :public, :root]
|
|
162
162
|
child_arr = base_arr.first(base_arr.length - 1) + [:child]
|
|
163
163
|
|
|
164
|
-
builder.define_request child_arr.last, inherit
|
|
164
|
+
builder.define_request child_arr.last, :inherit => base_arr do; end
|
|
165
165
|
|
|
166
166
|
base_klass = base_arr.inject(builder) do |namespace, sym|
|
|
167
167
|
namespace.const_get(sym.to_s.camelize, false)
|
|
@@ -8,7 +8,7 @@ class Aviator::Test
|
|
|
8
8
|
|
|
9
9
|
it 'raises an error when a required param is not provided' do
|
|
10
10
|
klass = Class.new(Aviator::Request) do
|
|
11
|
-
param :someparamname, required
|
|
11
|
+
param :someparamname, :required => true
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
the_method = lambda { klass.new }
|
|
@@ -23,7 +23,7 @@ class Aviator::Test
|
|
|
23
23
|
|
|
24
24
|
it 'does not raise any error when the required param is provided' do
|
|
25
25
|
klass = Class.new(Aviator::Request) do
|
|
26
|
-
param :someparamname, required
|
|
26
|
+
param :someparamname, :required => true
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
obj = klass.new do |params|
|
|
@@ -190,7 +190,7 @@ class Aviator::Test
|
|
|
190
190
|
end
|
|
191
191
|
|
|
192
192
|
expected = [
|
|
193
|
-
{ rel
|
|
193
|
+
{ :rel => rel, :href => href }
|
|
194
194
|
]
|
|
195
195
|
|
|
196
196
|
klass.links.must_equal expected
|
|
@@ -215,7 +215,7 @@ class Aviator::Test
|
|
|
215
215
|
|
|
216
216
|
it 'accepts an alias for a given parameter' do
|
|
217
217
|
klass = Class.new(Aviator::Request) do
|
|
218
|
-
param :the_param, required
|
|
218
|
+
param :the_param, :required => true, :alias => :the_alias
|
|
219
219
|
end
|
|
220
220
|
|
|
221
221
|
param_val = 999
|
|
@@ -231,7 +231,7 @@ class Aviator::Test
|
|
|
231
231
|
|
|
232
232
|
it 'makes the param alias assignable' do
|
|
233
233
|
klass = Class.new(Aviator::Request) do
|
|
234
|
-
param :the_param, required
|
|
234
|
+
param :the_param, :required => true, :alias => :the_alias
|
|
235
235
|
end
|
|
236
236
|
|
|
237
237
|
param_val = 999
|
|
@@ -247,7 +247,7 @@ class Aviator::Test
|
|
|
247
247
|
|
|
248
248
|
it 'allows aliases to be accessible as symbols' do
|
|
249
249
|
klass = Class.new(Aviator::Request) do
|
|
250
|
-
param :the_param, required
|
|
250
|
+
param :the_param, :required => true, :alias => :the_alias
|
|
251
251
|
end
|
|
252
252
|
|
|
253
253
|
param_val = 999
|
|
@@ -263,7 +263,7 @@ class Aviator::Test
|
|
|
263
263
|
|
|
264
264
|
it 'allows aliases to be accessible as strings' do
|
|
265
265
|
klass = Class.new(Aviator::Request) do
|
|
266
|
-
param :the_param, required
|
|
266
|
+
param :the_param, :required => true, :alias => :the_alias
|
|
267
267
|
end
|
|
268
268
|
|
|
269
269
|
param_val = 999
|
|
@@ -283,7 +283,7 @@ class Aviator::Test
|
|
|
283
283
|
|
|
284
284
|
it 'returns an array' do
|
|
285
285
|
klass = Class.new(Aviator::Request) do
|
|
286
|
-
param :whatever, required
|
|
286
|
+
param :whatever, :required => false
|
|
287
287
|
end
|
|
288
288
|
|
|
289
289
|
klass.optional_params.must_equal [:whatever]
|
|
@@ -296,7 +296,7 @@ class Aviator::Test
|
|
|
296
296
|
|
|
297
297
|
it 'returns an array' do
|
|
298
298
|
klass = Class.new(Aviator::Request) do
|
|
299
|
-
param :whatever, required
|
|
299
|
+
param :whatever, :required => false
|
|
300
300
|
end
|
|
301
301
|
|
|
302
302
|
klass.new.optional_params.must_equal [:whatever]
|
|
@@ -309,7 +309,7 @@ class Aviator::Test
|
|
|
309
309
|
|
|
310
310
|
it 'returns an array' do
|
|
311
311
|
klass = Class.new(Aviator::Request) do
|
|
312
|
-
param :whatever, required
|
|
312
|
+
param :whatever, :required => true
|
|
313
313
|
end
|
|
314
314
|
|
|
315
315
|
klass.required_params.must_equal [:whatever]
|
|
@@ -322,7 +322,7 @@ class Aviator::Test
|
|
|
322
322
|
|
|
323
323
|
it 'returns an array' do
|
|
324
324
|
klass = Class.new(Aviator::Request) do
|
|
325
|
-
param :whatever, required
|
|
325
|
+
param :whatever, :required => true
|
|
326
326
|
end
|
|
327
327
|
|
|
328
328
|
request = klass.new do |params|
|
|
@@ -13,10 +13,10 @@ class Aviator::Test
|
|
|
13
13
|
request_name = config[:auth_service][:request].to_sym
|
|
14
14
|
|
|
15
15
|
bootstrap = {
|
|
16
|
-
auth_service
|
|
16
|
+
:auth_service => config[:auth_service]
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
service.request request_name, session_data
|
|
19
|
+
service.request request_name, :session_data => bootstrap do |params|
|
|
20
20
|
config[:auth_credentials].each do |k,v|
|
|
21
21
|
params[k] = v
|
|
22
22
|
end
|
|
@@ -31,8 +31,8 @@ class Aviator::Test
|
|
|
31
31
|
|
|
32
32
|
def service(default_session_data=nil)
|
|
33
33
|
options = {
|
|
34
|
-
provider
|
|
35
|
-
service
|
|
34
|
+
:provider => config[:provider],
|
|
35
|
+
:service => config[:auth_service][:name]
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
options[:default_session_data] = default_session_data unless default_session_data.nil?
|
|
@@ -55,14 +55,14 @@ class Aviator::Test
|
|
|
55
55
|
request_name = config[:auth_service][:request].to_sym
|
|
56
56
|
|
|
57
57
|
bootstrap = {
|
|
58
|
-
auth_service
|
|
59
|
-
name
|
|
60
|
-
host_uri
|
|
61
|
-
request
|
|
58
|
+
:auth_service => {
|
|
59
|
+
:name => 'identity',
|
|
60
|
+
:host_uri => 'http://devstack:5000/v2.0',
|
|
61
|
+
:request => 'create_token'
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
response = service.request request_name, session_data
|
|
65
|
+
response = service.request request_name, :session_data => bootstrap do |params|
|
|
66
66
|
config[:auth_credentials].each do |k,v|
|
|
67
67
|
params[k] = v
|
|
68
68
|
end
|
|
@@ -77,25 +77,25 @@ class Aviator::Test
|
|
|
77
77
|
it 'raises an error if session data does not have the endpoint information' do
|
|
78
78
|
request_name = config[:auth_service][:request].to_sym
|
|
79
79
|
|
|
80
|
-
bootstrap = JSON.parse('{"access": {"token": {"issued_at": "2013-09-25T20:21:55.453783",
|
|
80
|
+
bootstrap = Hashish.new(JSON.parse('{"access": {"token": {"issued_at": "2013-09-25T20:21:55.453783",
|
|
81
81
|
"expires": "2013-09-26T02:21:55Z", "id": "2f6bdec6cd0f49b4a60ede0cd4bf2c0d"},
|
|
82
82
|
"serviceCatalog": [], "user": {"username": "bogus",
|
|
83
83
|
"roles_links": [], "id": "447527294dae4a1788d36beb0db99c00", "roles": [],
|
|
84
84
|
"name": "bogus"}, "metadata": {"is_admin": 0, "roles":
|
|
85
|
-
[]}}}')
|
|
86
|
-
|
|
85
|
+
[]}}}'))
|
|
86
|
+
|
|
87
87
|
s = service(bootstrap)
|
|
88
88
|
|
|
89
89
|
the_method = lambda { s.request request_name }
|
|
90
90
|
|
|
91
91
|
the_method.must_raise Aviator::Service::MissingServiceEndpointError
|
|
92
92
|
end
|
|
93
|
-
|
|
93
|
+
|
|
94
94
|
|
|
95
95
|
it 'can find the correct request based on non-bootstrapped session data' do
|
|
96
96
|
session_data = do_auth_request.body
|
|
97
97
|
|
|
98
|
-
response = service.request :list_tenants, session_data
|
|
98
|
+
response = service.request :list_tenants, :session_data => session_data
|
|
99
99
|
|
|
100
100
|
response.status.must_equal 200
|
|
101
101
|
end
|
|
@@ -126,35 +126,35 @@ class Aviator::Test
|
|
|
126
126
|
default_session_data = do_auth_request.body
|
|
127
127
|
s = service(default_session_data)
|
|
128
128
|
|
|
129
|
-
response1 = s.request :list_tenants, endpoint_type
|
|
130
|
-
response2 = s.request :list_tenants, endpoint_type
|
|
129
|
+
response1 = s.request :list_tenants, :endpoint_type => 'admin'
|
|
130
|
+
response2 = s.request :list_tenants, :endpoint_type => 'public'
|
|
131
131
|
|
|
132
132
|
response1.request.url.wont_equal response2.request.url
|
|
133
133
|
end
|
|
134
134
|
|
|
135
135
|
end
|
|
136
|
-
|
|
137
|
-
|
|
136
|
+
|
|
137
|
+
|
|
138
138
|
describe '#request_classes' do
|
|
139
|
-
|
|
139
|
+
|
|
140
140
|
it 'returns an array of the request classes' do
|
|
141
141
|
provider_name = config[:provider]
|
|
142
142
|
service_name = config[:auth_service][:name]
|
|
143
143
|
service_path = Pathname.new(__FILE__).join(
|
|
144
144
|
'..', '..', '..', '..', 'lib', 'aviator', provider_name, service_name
|
|
145
145
|
).expand_path
|
|
146
|
-
|
|
147
|
-
request_files = Pathname.glob(service_path.join('**', '*.rb'))
|
|
148
|
-
.map{|rf| rf.to_s.match(/#{provider_name}\/#{service_name}\/([\w\/]+)\.rb$/) }
|
|
146
|
+
|
|
147
|
+
request_files = Pathname.glob(service_path.join('**', '*.rb')) \
|
|
148
|
+
.map{|rf| rf.to_s.match(/#{provider_name}\/#{service_name}\/([\w\/]+)\.rb$/) } \
|
|
149
149
|
.map{|rf| rf[1].split('/').map{|c| c.camelize }.join('::') }
|
|
150
|
-
|
|
151
|
-
classes = request_files.map do |rf|
|
|
150
|
+
|
|
151
|
+
classes = request_files.map do |rf|
|
|
152
152
|
"Aviator::#{provider_name.camelize}::#{service_name.camelize}::#{rf}".constantize
|
|
153
153
|
end
|
|
154
|
-
|
|
154
|
+
|
|
155
155
|
service.request_classes.must_equal classes
|
|
156
156
|
end
|
|
157
|
-
|
|
157
|
+
|
|
158
158
|
end
|
|
159
159
|
|
|
160
160
|
|
|
@@ -162,10 +162,10 @@ class Aviator::Test
|
|
|
162
162
|
|
|
163
163
|
it 'sets the service\'s default session data' do
|
|
164
164
|
bootstrap = {
|
|
165
|
-
auth_service
|
|
166
|
-
name
|
|
167
|
-
host_uri
|
|
168
|
-
request
|
|
165
|
+
:auth_service => {
|
|
166
|
+
:name => 'identity',
|
|
167
|
+
:host_uri => 'http://devstack:5000/v2.0',
|
|
168
|
+
:request => 'create_token'
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
171
|
|
|
@@ -184,4 +184,4 @@ class Aviator::Test
|
|
|
184
184
|
|
|
185
185
|
end
|
|
186
186
|
|
|
187
|
-
end
|
|
187
|
+
end
|