aviator 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +4 -3
- data/lib/aviator/core.rb +1 -0
- data/lib/aviator/core/request.rb +0 -35
- data/lib/aviator/core/request_builder.rb +37 -0
- data/lib/aviator/core/response.rb +11 -3
- data/lib/aviator/core/service.rb +3 -2
- data/lib/aviator/openstack/compute/v2/admin/confirm_server_resize.rb +46 -0
- data/lib/aviator/openstack/compute/v2/admin/get_host_details.rb +40 -0
- data/lib/aviator/openstack/compute/v2/admin/list_hosts.rb +55 -0
- data/lib/aviator/openstack/compute/v2/admin/resize_server.rb +51 -0
- data/lib/aviator/openstack/compute/v2/admin/revert_server_resize.rb +46 -0
- data/lib/aviator/openstack/compute/v2/public/delete_image.rb +40 -0
- data/lib/aviator/openstack/compute/v2/public/get_image_details.rb +40 -0
- data/lib/aviator/openstack/compute/v2/public/list_servers.rb +12 -1
- data/lib/aviator/openstack/identity/v2/admin/add_role_to_user_on_tenant.rb +46 -0
- data/lib/aviator/openstack/identity/v2/admin/create_user.rb +66 -0
- data/lib/aviator/openstack/identity/v2/admin/delete_role_from_user_on_tenant.rb +46 -0
- data/lib/aviator/openstack/identity/v2/admin/delete_tenant.rb +40 -0
- data/lib/aviator/openstack/identity/v2/admin/delete_user.rb +39 -0
- data/lib/aviator/openstack/identity/v2/admin/list_users.rb +37 -0
- data/lib/aviator/openstack/identity/v2/admin/update_tenant.rb +57 -0
- data/lib/aviator/openstack/identity/v2/admin/update_user.rb +61 -0
- data/lib/aviator/openstack/identity/v2/public/root.rb +34 -0
- data/lib/aviator/openstack/image/v1/public/root.rb +34 -0
- data/lib/aviator/openstack/metering/v1/admin/list_projects.rb +34 -0
- data/lib/aviator/openstack/volume/v1/public/root.rb +34 -0
- data/lib/aviator/version.rb +1 -1
- data/test/aviator/core/request_builder_test.rb +61 -0
- data/test/aviator/openstack/compute/v2/admin/confirm_server_resize_test.rb +145 -0
- data/test/aviator/openstack/compute/v2/admin/get_host_details_test.rb +133 -0
- data/test/aviator/openstack/compute/v2/admin/list_hosts_test.rb +138 -0
- data/test/aviator/openstack/compute/v2/admin/resize_server_test.rb +177 -0
- data/test/aviator/openstack/compute/v2/admin/revert_server_resize_test.rb +145 -0
- data/test/aviator/openstack/compute/v2/public/delete_image_test.rb +134 -0
- data/test/aviator/openstack/compute/v2/public/get_image_details_test.rb +134 -0
- data/test/aviator/openstack/compute/v2/public/list_servers_test.rb +63 -33
- data/test/aviator/openstack/identity/v2/admin/add_role_to_user_on_tenant_test.rb +192 -0
- data/test/aviator/openstack/identity/v2/admin/create_user_test.rb +161 -0
- data/test/aviator/openstack/identity/v2/admin/delete_role_from_user_on_tenant_test.rb +190 -0
- data/test/aviator/openstack/identity/v2/admin/delete_tenant_test.rb +132 -0
- data/test/aviator/openstack/identity/v2/admin/delete_user_test.rb +127 -0
- data/test/aviator/openstack/identity/v2/admin/list_users_test.rb +101 -0
- data/test/aviator/openstack/identity/v2/admin/update_tenant_test.rb +142 -0
- data/test/aviator/openstack/identity/v2/admin/update_user_test.rb +143 -0
- data/test/aviator/openstack/identity/v2/public/root_test.rb +106 -0
- data/test/aviator/openstack/image/v1/public/root_test.rb +106 -0
- data/test/aviator/openstack/metering/v1/admin/list_projects_test.rb +106 -0
- data/test/aviator/openstack/volume/v1/public/root_test.rb +106 -0
- data/test/cassettes/openstack/compute/v2/admin/confirm_server_resize/leads_to_a_valid_response_when_parameters_are_provided.yml +907 -0
- data/test/cassettes/openstack/compute/v2/admin/confirm_server_resize/leads_to_a_valid_response_when_the_id_parameter_is_invalid.yml +96 -0
- data/test/cassettes/openstack/compute/v2/admin/confirm_server_resize/returns_the_correct_value_for_body_.yml +876 -0
- data/test/cassettes/openstack/compute/v2/admin/confirm_server_resize/returns_the_correct_value_for_headers_.yml +876 -0
- data/test/cassettes/openstack/compute/v2/admin/confirm_server_resize/returns_the_correct_value_for_http_method_.yml +876 -0
- data/test/cassettes/openstack/compute/v2/admin/confirm_server_resize/returns_the_correct_value_for_url_.yml +876 -0
- data/test/cassettes/openstack/compute/v2/admin/get_host_details/leads_to_a_valid_response_when_invalid_params_are_provided.yml +96 -0
- data/test/cassettes/openstack/compute/v2/admin/get_host_details/leads_to_a_valid_response_when_valid_params_are_provided.yml +160 -0
- data/test/cassettes/openstack/compute/v2/admin/get_host_details/returns_the_correct_value_for_body_.yml +62 -0
- data/test/cassettes/openstack/compute/v2/admin/get_host_details/returns_the_correct_value_for_headers_.yml +62 -0
- data/test/cassettes/openstack/compute/v2/admin/get_host_details/returns_the_correct_value_for_http_method_.yml +62 -0
- data/test/cassettes/openstack/compute/v2/admin/get_host_details/returns_the_correct_value_for_url_.yml +101 -0
- data/test/cassettes/openstack/compute/v2/admin/list_hosts/leads_to_a_valid_response_when_invalid_zone_parameter_is_provided.yml +95 -0
- data/test/cassettes/openstack/compute/v2/admin/list_hosts/leads_to_a_valid_response_when_no_parameters_are_provided.yml +101 -0
- data/test/cassettes/openstack/compute/v2/admin/list_hosts/leads_to_a_valid_response_when_valid_zone_parameter_is_provided.yml +96 -0
- data/test/cassettes/openstack/compute/v2/admin/list_hosts/returns_the_correct_value_for_body_.yml +62 -0
- data/test/cassettes/openstack/compute/v2/admin/list_hosts/returns_the_correct_value_for_headers_.yml +62 -0
- data/test/cassettes/openstack/compute/v2/admin/list_hosts/returns_the_correct_value_for_http_method_.yml +62 -0
- data/test/cassettes/openstack/compute/v2/admin/list_hosts/returns_the_correct_value_for_url_.yml +62 -0
- data/test/cassettes/openstack/compute/v2/admin/resize_server/leads_to_a_valid_response_when_parameters_are_provided.yml +949 -0
- data/test/cassettes/openstack/compute/v2/admin/resize_server/leads_to_a_valid_response_when_the_flavorRef_parameter_is_invalid.yml +910 -0
- data/test/cassettes/openstack/compute/v2/admin/resize_server/leads_to_a_valid_response_when_the_id_parameter_is_invalid.yml +138 -0
- data/test/cassettes/openstack/compute/v2/admin/resize_server/returns_the_correct_value_for_body_.yml +902 -0
- data/test/cassettes/openstack/compute/v2/admin/resize_server/returns_the_correct_value_for_headers_.yml +902 -0
- data/test/cassettes/openstack/compute/v2/admin/resize_server/returns_the_correct_value_for_http_method_.yml +918 -0
- data/test/cassettes/openstack/compute/v2/admin/resize_server/returns_the_correct_value_for_url_.yml +902 -0
- data/test/cassettes/openstack/compute/v2/admin/revert_server_resize/leads_to_a_valid_response_when_parameters_are_provided.yml +326 -0
- data/test/cassettes/openstack/compute/v2/admin/revert_server_resize/leads_to_a_valid_response_when_the_id_parameter_is_invalid.yml +96 -0
- data/test/cassettes/openstack/compute/v2/admin/revert_server_resize/returns_the_correct_value_for_body_.yml +295 -0
- data/test/cassettes/openstack/compute/v2/admin/revert_server_resize/returns_the_correct_value_for_headers_.yml +295 -0
- data/test/cassettes/openstack/compute/v2/admin/revert_server_resize/returns_the_correct_value_for_http_method_.yml +295 -0
- data/test/cassettes/openstack/compute/v2/admin/revert_server_resize/returns_the_correct_value_for_url_.yml +295 -0
- data/test/cassettes/openstack/compute/v2/public/delete_image/leads_to_a_valid_response_when_invalid_params_are_provided.yml +96 -0
- data/test/cassettes/openstack/compute/v2/public/delete_image/leads_to_a_valid_response_when_valid_params_are_provided.yml +168 -0
- data/test/cassettes/openstack/compute/v2/public/delete_image/returns_the_correct_value_for_body_.yml +63 -0
- data/test/cassettes/openstack/compute/v2/public/delete_image/returns_the_correct_value_for_headers_.yml +63 -0
- data/test/cassettes/openstack/compute/v2/public/delete_image/returns_the_correct_value_for_http_method_.yml +63 -0
- data/test/cassettes/openstack/compute/v2/public/delete_image/returns_the_correct_value_for_url_.yml +63 -0
- data/test/cassettes/openstack/compute/v2/public/get_image_details/leads_to_a_valid_response_when_invalid_params_are_provided.yml +96 -0
- data/test/cassettes/openstack/compute/v2/public/get_image_details/leads_to_a_valid_response_when_valid_params_are_provided.yml +187 -0
- data/test/cassettes/openstack/compute/v2/public/get_image_details/returns_the_correct_value_for_body_.yml +63 -0
- data/test/cassettes/openstack/compute/v2/public/get_image_details/returns_the_correct_value_for_headers_.yml +63 -0
- data/test/cassettes/openstack/compute/v2/public/get_image_details/returns_the_correct_value_for_http_method_.yml +63 -0
- data/test/cassettes/openstack/compute/v2/public/get_image_details/returns_the_correct_value_for_url_.yml +63 -0
- data/test/cassettes/openstack/compute/v2/public/list_servers/leads_to_a_valid_response_when_the_all_tenants_parameter_is_provided.yml +274 -0
- data/test/cassettes/openstack/identity/v2/admin/add_role_to_user_on_tenant/leads_to_a_valid_response_when_invalid_role_id_is_provided.yml +98 -0
- data/test/cassettes/openstack/identity/v2/admin/add_role_to_user_on_tenant/leads_to_a_valid_response_when_invalid_tenant_id_is_provided.yml +98 -0
- data/test/cassettes/openstack/identity/v2/admin/add_role_to_user_on_tenant/leads_to_a_valid_response_when_invalid_user_id_is_provided.yml +98 -0
- data/test/cassettes/openstack/identity/v2/admin/add_role_to_user_on_tenant/leads_to_a_valid_response_when_valid_ids_are_provided.yml +97 -0
- data/test/cassettes/openstack/identity/v2/admin/add_role_to_user_on_tenant/returns_the_correct_value_for_body_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/add_role_to_user_on_tenant/returns_the_correct_value_for_headers_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/add_role_to_user_on_tenant/returns_the_correct_value_for_http_method_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/add_role_to_user_on_tenant/returns_the_correct_value_for_url_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/create_user/leads_to_a_valid_response_when_invalid_param_is_provided.yml +98 -0
- data/test/cassettes/openstack/identity/v2/admin/create_user/leads_to_a_valid_response_when_params_are_valid.yml +136 -0
- data/test/cassettes/openstack/identity/v2/admin/create_user/returns_the_correct_value_for_body_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/create_user/returns_the_correct_value_for_headers_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/create_user/returns_the_correct_value_for_http_method_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/create_user/returns_the_correct_value_for_url_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_role_from_user_on_tenant/leads_to_a_valid_response_when_invalid_role_id_is_provided.yml +98 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_role_from_user_on_tenant/leads_to_a_valid_response_when_invalid_tenant_id_is_provided.yml +98 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_role_from_user_on_tenant/leads_to_a_valid_response_when_invalid_user_id_is_provided.yml +98 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_role_from_user_on_tenant/leads_to_a_valid_response_when_valid_ids_are_provided.yml +95 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_role_from_user_on_tenant/returns_the_correct_value_for_headers_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_role_from_user_on_tenant/returns_the_correct_value_for_http_method_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_role_from_user_on_tenant/returns_the_correct_value_for_url_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_tenant/leads_to_a_valid_response_when_invalid_params_are_provided.yml +98 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_tenant/leads_to_a_valid_response_when_valid_params_are_provided.yml +95 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_tenant/returns_the_correct_value_for_body_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_tenant/returns_the_correct_value_for_headers_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_tenant/returns_the_correct_value_for_http_method_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_tenant/returns_the_correct_value_for_url_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_user/leads_to_a_valid_response_when_invalid_params_are_provided.yml +98 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_user/leads_to_a_valid_response_when_valid_params_are_provided.yml +95 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_user/returns_the_correct_value_for_body_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_user/returns_the_correct_value_for_headers_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_user/returns_the_correct_value_for_http_method_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/delete_user/returns_the_correct_value_for_url_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/list_users/leads_to_a_valid_response_when_no_parameters_are_provided.yml +114 -0
- data/test/cassettes/openstack/identity/v2/admin/list_users/returns_the_correct_value_for_body_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/list_users/returns_the_correct_value_for_headers_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/list_users/returns_the_correct_value_for_http_method_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/list_users/returns_the_correct_value_for_url_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/update_tenant/leads_to_a_valid_response_when_invalid_tenant_id_is_provided.yml +98 -0
- data/test/cassettes/openstack/identity/v2/admin/update_tenant/leads_to_a_valid_response_when_valid_tenant_id_is_provided.yml +140 -0
- data/test/cassettes/openstack/identity/v2/admin/update_tenant/returns_the_correct_value_for_body_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/update_tenant/returns_the_correct_value_for_headers_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/update_tenant/returns_the_correct_value_for_http_method_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/update_tenant/returns_the_correct_value_for_url_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/update_user/leads_to_a_valid_response_when_invalid_user_id_is_provided.yml +98 -0
- data/test/cassettes/openstack/identity/v2/admin/update_user/leads_to_a_valid_response_when_valid_user_id_is_provided.yml +100 -0
- data/test/cassettes/openstack/identity/v2/admin/update_user/returns_the_correct_value_for_body_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/update_user/returns_the_correct_value_for_headers_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/update_user/returns_the_correct_value_for_http_method_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/admin/update_user/returns_the_correct_value_for_url_.yml +64 -0
- data/test/cassettes/openstack/identity/v2/public/root/leads_to_a_valid_response_when_no_parameters_are_provided.yml +104 -0
- data/test/cassettes/openstack/identity/v2/public/root/returns_the_correct_value_for_body_.yml +65 -0
- data/test/cassettes/openstack/identity/v2/public/root/returns_the_correct_value_for_headers_.yml +65 -0
- data/test/cassettes/openstack/identity/v2/public/root/returns_the_correct_value_for_http_method_.yml +65 -0
- data/test/cassettes/openstack/identity/v2/public/root/returns_the_correct_value_for_url_.yml +65 -0
- data/test/cassettes/openstack/image/v1/public/root/leads_to_a_valid_response_when_no_parameters_are_provided.yml +105 -0
- data/test/cassettes/openstack/image/v1/public/root/returns_the_correct_value_for_body_.yml +65 -0
- data/test/cassettes/openstack/image/v1/public/root/returns_the_correct_value_for_headers_.yml +65 -0
- data/test/cassettes/openstack/image/v1/public/root/returns_the_correct_value_for_http_method_.yml +65 -0
- data/test/cassettes/openstack/image/v1/public/root/returns_the_correct_value_for_url_.yml +65 -0
- data/test/cassettes/openstack/metering/v1/admin/projects/leads_to_a_valid_response_when_no_parameters_are_provided.yml +97 -0
- data/test/cassettes/openstack/metering/v1/admin/projects/returns_the_correct_value_for_body_.yml +65 -0
- data/test/cassettes/openstack/metering/v1/admin/projects/returns_the_correct_value_for_headers_.yml +65 -0
- data/test/cassettes/openstack/metering/v1/admin/projects/returns_the_correct_value_for_http_method_.yml +65 -0
- data/test/cassettes/openstack/metering/v1/admin/projects/returns_the_correct_value_for_url_.yml +65 -0
- data/test/cassettes/openstack/volume/v1/public/root/leads_to_a_valid_response_when_no_parameters_are_provided.yml +104 -0
- data/test/cassettes/openstack/volume/v1/public/root/returns_the_correct_value_for_body_.yml +65 -0
- data/test/cassettes/openstack/volume/v1/public/root/returns_the_correct_value_for_headers_.yml +65 -0
- data/test/cassettes/openstack/volume/v1/public/root/returns_the_correct_value_for_http_method_.yml +65 -0
- data/test/cassettes/openstack/volume/v1/public/root/returns_the_correct_value_for_url_.yml +65 -0
- data/test/support/vcr_setup.rb +10 -5
- metadata +292 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MWFjN2RhZjk0MjY3Yjc3MzI4YzM2ZTAyZGUxYTY1YTdiN2FjNmY2NA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MzE0YzgxYjE3YTU5ZTg0ZTNlM2NmYTExM2NmMWU4Nzk1MjAxNDNmNQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MmM2MWJlMGExNjU0OWNjOWUyZDY2ZmU4ZWEyMzE2Y2U0ODVkY2QxN2Y1MjU3
|
10
|
+
MjQ3NTgzYWI2MzEzYmI0N2YzZTZlN2I2NmJhZWMzMTMxNWJjMGZkZTNkMTQ1
|
11
|
+
NTkyZTU2YTZhYTc5OWIzNGFkYTQxZjE3YjA1ZGJhNDhlNjE2NmU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YjMxYTgwYzI1MDM2NDdkNzg5NWYxMTY5MjljMDE5OTI4Y2M2OWViYTE5M2Jk
|
14
|
+
OWJmMTNmODdiYmFmYjg4Mzc0MmZjMTI0NzA4MDQ2ZTJiMDIwZjI4NGRiMjQz
|
15
|
+
MzlmM2YxY2Q1OTk4ZDA2YjU5MzczMWIxNWUxOWQ4NWZjNDQzNmI=
|
data/README.md
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
-
|
1
|
+
![Aviator](https://raw.github.com/aviator/www/gh-pages/images/logo-small.png)
|
2
|
+
<br/>A lightweight library for communicating with the OpenStack API.
|
3
|
+
|
4
|
+
## Project Stats
|
2
5
|
|
3
6
|
[![Build Status](https://travis-ci.org/aviator/aviator.png?branch=master)](https://travis-ci.org/aviator/aviator)
|
4
7
|
[![Coverage Status](https://coveralls.io/repos/aviator/aviator/badge.png?branch=master)](https://coveralls.io/r/aviator/aviator?branch=master)
|
@@ -6,8 +9,6 @@
|
|
6
9
|
[![Gem Version](https://badge.fury.io/rb/aviator.png)](http://badge.fury.io/rb/aviator)
|
7
10
|
[![Dependency Status](https://gemnasium.com/aviator/aviator.png)](https://gemnasium.com/aviator/aviator)
|
8
11
|
|
9
|
-
A lightweight library for communicating with the OpenStack API.
|
10
|
-
|
11
12
|
|
12
13
|
## Installation
|
13
14
|
|
data/lib/aviator/core.rb
CHANGED
data/lib/aviator/core/request.rb
CHANGED
@@ -1,40 +1,5 @@
|
|
1
1
|
module Aviator
|
2
2
|
|
3
|
-
class << self
|
4
|
-
|
5
|
-
def define_request(request_name, &block)
|
6
|
-
class_obj = Class.new(Request, &block)
|
7
|
-
|
8
|
-
set_class_name(
|
9
|
-
Aviator,
|
10
|
-
class_obj,
|
11
|
-
|
12
|
-
class_obj.provider,
|
13
|
-
class_obj.service,
|
14
|
-
class_obj.api_version,
|
15
|
-
class_obj.endpoint_type,
|
16
|
-
request_name
|
17
|
-
)
|
18
|
-
end
|
19
|
-
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def set_class_name(base, obj, *hierarchy)
|
24
|
-
const_name = hierarchy.shift.to_s.camelize
|
25
|
-
|
26
|
-
const = if base.const_defined?(const_name)
|
27
|
-
base.const_get(const_name)
|
28
|
-
else
|
29
|
-
base.const_set(const_name, (hierarchy.empty? ? obj : Module.new))
|
30
|
-
end
|
31
|
-
|
32
|
-
hierarchy.empty? ? const : set_class_name(const, obj, *hierarchy)
|
33
|
-
end
|
34
|
-
|
35
|
-
end # class << self
|
36
|
-
|
37
|
-
|
38
3
|
class Request
|
39
4
|
|
40
5
|
class ApiVersionNotDefinedError < StandardError
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Aviator
|
2
|
+
|
3
|
+
class << self
|
4
|
+
|
5
|
+
def define_request(request_name, &block)
|
6
|
+
class_obj = Class.new(Request, &block)
|
7
|
+
|
8
|
+
set_class_name(
|
9
|
+
Aviator,
|
10
|
+
class_obj,
|
11
|
+
|
12
|
+
class_obj.provider,
|
13
|
+
class_obj.service,
|
14
|
+
class_obj.api_version,
|
15
|
+
class_obj.endpoint_type,
|
16
|
+
request_name
|
17
|
+
)
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def set_class_name(base, obj, *hierarchy)
|
24
|
+
const_name = hierarchy.shift.to_s.camelize
|
25
|
+
|
26
|
+
const = if base.const_defined?(const_name, false)
|
27
|
+
base.const_get(const_name, false)
|
28
|
+
else
|
29
|
+
base.const_set(const_name, (hierarchy.empty? ? obj : Module.new))
|
30
|
+
end
|
31
|
+
|
32
|
+
hierarchy.empty? ? const : set_class_name(const, obj, *hierarchy)
|
33
|
+
end
|
34
|
+
|
35
|
+
end # class << self
|
36
|
+
|
37
|
+
end
|
@@ -2,12 +2,20 @@ module Aviator
|
|
2
2
|
|
3
3
|
class Response
|
4
4
|
|
5
|
+
|
6
|
+
def body
|
7
|
+
@body ||= if response.body.length > 0
|
8
|
+
JSON.parse(response.body).with_indifferent_access
|
9
|
+
else
|
10
|
+
{}
|
11
|
+
end
|
12
|
+
|
13
|
+
@body.dup
|
14
|
+
end
|
15
|
+
|
5
16
|
|
6
17
|
def method_missing(name, *args)
|
7
18
|
case name
|
8
|
-
when :body
|
9
|
-
@body ||= JSON.parse(response.body).with_indifferent_access
|
10
|
-
@body.dup
|
11
19
|
when :headers, :status
|
12
20
|
response.send(name)
|
13
21
|
when :request
|
data/lib/aviator/core/service.rb
CHANGED
@@ -149,7 +149,8 @@ module Aviator
|
|
149
149
|
|
150
150
|
elsif session_data.has_key? :access
|
151
151
|
service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == service }
|
152
|
-
service_spec[:endpoints][0][:publicURL].match(/(v\d+)\.?\d*/)
|
152
|
+
version = service_spec[:endpoints][0][:publicURL].match(/(v\d+)\.?\d*/)
|
153
|
+
version ? version[1].to_sym : :v1
|
153
154
|
end
|
154
155
|
end
|
155
156
|
|
@@ -185,4 +186,4 @@ module Aviator
|
|
185
186
|
|
186
187
|
end
|
187
188
|
|
188
|
-
end
|
189
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Aviator
|
2
|
+
|
3
|
+
define_request :confirm_server_resize do
|
4
|
+
|
5
|
+
meta :provider, :openstack
|
6
|
+
meta :service, :compute
|
7
|
+
meta :api_version, :v2
|
8
|
+
meta :endpoint_type, :admin
|
9
|
+
|
10
|
+
link 'documentation',
|
11
|
+
'http://docs.openstack.org/api/openstack-compute/2/content/Confirm_Resized_Server-d1e3868.html'
|
12
|
+
|
13
|
+
param :id, required: true
|
14
|
+
|
15
|
+
|
16
|
+
def body
|
17
|
+
{
|
18
|
+
confirmResize: nil
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
def headers
|
24
|
+
h = {}
|
25
|
+
|
26
|
+
unless self.anonymous?
|
27
|
+
h['X-Auth-Token'] = session_data[:access][:token][:id]
|
28
|
+
end
|
29
|
+
|
30
|
+
h
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
def http_method
|
35
|
+
:post
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
def url
|
40
|
+
service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == service.to_s }
|
41
|
+
"#{ service_spec[:endpoints][0][:adminURL] }/servers/#{ params[:id] }/action"
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Aviator
|
2
|
+
|
3
|
+
define_request :get_host_details do
|
4
|
+
|
5
|
+
meta :provider, :openstack
|
6
|
+
meta :service, :compute
|
7
|
+
meta :api_version, :v2
|
8
|
+
meta :endpoint_type, :admin
|
9
|
+
|
10
|
+
link 'documentation',
|
11
|
+
'http://api.openstack.org/api-ref.html#ext-os-hosts'
|
12
|
+
|
13
|
+
param :host_name, required: true
|
14
|
+
|
15
|
+
|
16
|
+
def headers
|
17
|
+
h = {}
|
18
|
+
|
19
|
+
unless self.anonymous?
|
20
|
+
h['X-Auth-Token'] = session_data[:access][:token][:id]
|
21
|
+
end
|
22
|
+
|
23
|
+
h
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
def http_method
|
28
|
+
:get
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
def url
|
33
|
+
service_spec = session_data[:access][:serviceCatalog].find { |s| s[:type] == service.to_s }
|
34
|
+
|
35
|
+
"#{ service_spec[:endpoints][0][:adminURL] }/os-hosts/#{ params[:host_name] }"
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Aviator
|
2
|
+
|
3
|
+
define_request :list_hosts do
|
4
|
+
|
5
|
+
meta :provider, :openstack
|
6
|
+
meta :service, :compute
|
7
|
+
meta :api_version, :v2
|
8
|
+
meta :endpoint_type, :admin
|
9
|
+
|
10
|
+
link 'documentation',
|
11
|
+
'http://api.openstack.org/api-ref.html#ext-os-hosts'
|
12
|
+
|
13
|
+
link 'documentation bug',
|
14
|
+
'https://bugs.launchpad.net/nova/+bug/1224763'
|
15
|
+
|
16
|
+
param :service, required: false
|
17
|
+
param :zone, required: false
|
18
|
+
|
19
|
+
|
20
|
+
def headers
|
21
|
+
h = {}
|
22
|
+
|
23
|
+
unless self.anonymous?
|
24
|
+
h['X-Auth-Token'] = session_data[:access][:token][:id]
|
25
|
+
end
|
26
|
+
|
27
|
+
h
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
def http_method
|
32
|
+
:get
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
def url
|
37
|
+
service_spec = session_data[:access][:serviceCatalog].find { |s| s[:type] == service.to_s }
|
38
|
+
|
39
|
+
url = "#{ service_spec[:endpoints][0][:adminURL] }/os-hosts"
|
40
|
+
|
41
|
+
filters = []
|
42
|
+
|
43
|
+
optional_params.each do |param_name|
|
44
|
+
filters << "#{ param_name }=#{ params[param_name] }" if params[param_name]
|
45
|
+
end
|
46
|
+
|
47
|
+
url += "?#{ filters.join('&') }" unless filters.empty?
|
48
|
+
|
49
|
+
url
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Aviator
|
2
|
+
|
3
|
+
define_request :resize_server do
|
4
|
+
|
5
|
+
meta :provider, :openstack
|
6
|
+
meta :service, :compute
|
7
|
+
meta :api_version, :v2
|
8
|
+
meta :endpoint_type, :admin
|
9
|
+
|
10
|
+
link 'documentation',
|
11
|
+
'http://docs.openstack.org/api/openstack-compute/2/content/Resize_Server-d1e3707.html'
|
12
|
+
|
13
|
+
param :id, required: true
|
14
|
+
param :name, required: true
|
15
|
+
param :flavorRef, required: true
|
16
|
+
|
17
|
+
|
18
|
+
def body
|
19
|
+
{
|
20
|
+
resize: {
|
21
|
+
name: params[:name],
|
22
|
+
flavorRef: params[:flavorRef]
|
23
|
+
}
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
def headers
|
29
|
+
h = {}
|
30
|
+
|
31
|
+
unless self.anonymous?
|
32
|
+
h['X-Auth-Token'] = session_data[:access][:token][:id]
|
33
|
+
end
|
34
|
+
|
35
|
+
h
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
def http_method
|
40
|
+
:post
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
def url
|
45
|
+
service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == service.to_s }
|
46
|
+
"#{ service_spec[:endpoints][0][:adminURL] }/servers/#{ params[:id] }/action"
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Aviator
|
2
|
+
|
3
|
+
define_request :revert_server_resize do
|
4
|
+
|
5
|
+
meta :provider, :openstack
|
6
|
+
meta :service, :compute
|
7
|
+
meta :api_version, :v2
|
8
|
+
meta :endpoint_type, :admin
|
9
|
+
|
10
|
+
link 'documentation',
|
11
|
+
'http://docs.openstack.org/api/openstack-compute/2/content/Revert_Resized_Server-d1e4024.html'
|
12
|
+
|
13
|
+
param :id, required: true
|
14
|
+
|
15
|
+
|
16
|
+
def body
|
17
|
+
{
|
18
|
+
revertResize: nil
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
def headers
|
24
|
+
h = {}
|
25
|
+
|
26
|
+
unless self.anonymous?
|
27
|
+
h['X-Auth-Token'] = session_data[:access][:token][:id]
|
28
|
+
end
|
29
|
+
|
30
|
+
h
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
def http_method
|
35
|
+
:post
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
def url
|
40
|
+
service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == service.to_s }
|
41
|
+
"#{ service_spec[:endpoints][0][:adminURL] }/servers/#{ params[:id] }/action"
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Aviator
|
2
|
+
|
3
|
+
define_request :delete_image do
|
4
|
+
|
5
|
+
meta :provider, :openstack
|
6
|
+
meta :service, :compute
|
7
|
+
meta :api_version, :v2
|
8
|
+
meta :endpoint_type, :public
|
9
|
+
|
10
|
+
link 'documentation',
|
11
|
+
'http://docs.openstack.org/api/openstack-compute/2/content/Delete_Image-d1e4957.html'
|
12
|
+
|
13
|
+
param :id, required: true
|
14
|
+
|
15
|
+
|
16
|
+
def headers
|
17
|
+
h = {}
|
18
|
+
|
19
|
+
unless self.anonymous?
|
20
|
+
h['X-Auth-Token'] = session_data[:access][:token][:id]
|
21
|
+
end
|
22
|
+
|
23
|
+
h
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
def http_method
|
28
|
+
:delete
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
def url
|
33
|
+
service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == service.to_s }
|
34
|
+
|
35
|
+
"#{ service_spec[:endpoints][0][:publicURL] }/images/#{ params[:id]}"
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|