]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/aviator/feature/aviator/openstack/common/v2/public/base.rb
add aimonb/aviator to 3rdparty
[dsa-puppet.git] / 3rdparty / modules / aviator / feature / aviator / openstack / common / v2 / public / base.rb
1 module Aviator
2
3   define_request :base do
4
5     meta :provider,      :openstack
6     meta :service,       :common
7     meta :api_version,   :v2
8     meta :endpoint_type, :public
9
10     def headers
11       {}.tap do |h|
12         h['X-Auth-Token'] = session_data[:access][:token][:id] unless self.anonymous?
13       end
14     end
15
16
17     private
18
19
20     def base_url
21       if session_data[:base_url]
22         session_data[:base_url]
23       elsif service_spec = session_data[:access][:serviceCatalog].find { |s| s[:type] == service.to_s }
24         service_spec[:endpoints][0]["#{ endpoint_type }URL".to_sym]
25       elsif session_data[:auth_service] && session_data[:auth_service][:host_uri] && session_data[:auth_service][:api_version]
26         "#{ session_data[:auth_service][:host_uri] }/v2.0"
27       elsif session_data[:auth_service] && session_data[:auth_service][:host_uri]
28         session_data[:auth_service][:host_uri]
29       else
30         raise Aviator::Service::MissingServiceEndpointError.new(service.to_s, self.class)
31       end
32     end
33
34
35     def params_to_querystring(param_names)
36       filters = []
37
38       param_names.each do |param_name|
39         filters << "#{ param_name }=#{ params[param_name] }" if params[param_name]
40       end
41
42       filters.empty? ? "" : "?#{ filters.join('&') }"
43     end
44
45   end
46
47 end