lib/fog/oraclecloud/storage.rb in fog-oraclecloud-0.1.12 vs lib/fog/oraclecloud/storage.rb in fog-oraclecloud-0.1.13

- old
+ new

@@ -1,99 +1,99 @@ -module Fog - module Storage - class OracleCloud < Fog::Service - requires :oracle_username, :oracle_password, :oracle_domain, :oracle_storage_api - - model_path 'fog/oraclecloud/models/storage' - collection :containers - model :container - collection :objects - model :object - - request_path 'fog/oraclecloud/requests/storage' - request :list_containers - request :create_container - request :get_container - request :delete_container - - class Real - def initialize(options={}) - @username = options[:oracle_username] - @password = options[:oracle_password] - @identity_domain = options[:oracle_domain] - @api_endpoint = options[:oracle_storage_api] - - @connection = Fog::XML::Connection.new(@api_endpoint) - - # Get authentication token - authenticate - end - - def authenticate() - - begin - response = @connection.request({ - :expects => 200, - :method => 'GET', - :path => "auth/v1.0", - :headers => { - 'X-Storage-User' => "Storage-#{@identity_domain}:#{@username}", - 'X-Storage-Pass' => @password - } - }) - rescue Excon::Errors::HTTPStatusError => error - error - end - if response.nil? || !response.headers['X-Auth-Token'] then - raise Error.new('Could not authenticate to Storage Cloud Service. Check your athentication details in your config') - end - @auth_token = response.headers['X-Auth-Token'] - end - - def request(params, parse_json = true, &block) - begin - response = @connection.request(params.merge!({ - :headers => { - 'X-Auth-Token' => @auth_token - }.merge!(params[:headers] || {}) - }), &block) - rescue Excon::Errors::HTTPStatusError => error - raise case error - when Excon::Errors::Conflict - data = Fog::JSON.decode(error.response.body) - raise Error.new(data['message']) - else - error - end - end - if !response.body.empty? && parse_json - response.body = Fog::JSON.decode(response.body) - end - response - end - end - - class Mock - def initialize(options={}) - @username = options[:oracle_username] - @password = options[:oracle_password] - @identity_domain = options[:oracle_domain] - @api_endpoint = options[:oracle_compute_api] - end - - def self.data - @data ||= { - :containers => {} - } - end - - def self.reset - @data = nil - end - - def data - self.class.data - end - end - end - end +module Fog + module Storage + class OracleCloud < Fog::Service + requires :oracle_username, :oracle_password, :oracle_domain, :oracle_storage_api + + model_path 'fog/oraclecloud/models/storage' + collection :containers + model :container + collection :objects + model :object + + request_path 'fog/oraclecloud/requests/storage' + request :list_containers + request :create_container + request :get_container + request :delete_container + + class Real + def initialize(options={}) + @username = options[:oracle_username] + @password = options[:oracle_password] + @identity_domain = options[:oracle_domain] + @api_endpoint = options[:oracle_storage_api] + + @connection = Fog::XML::Connection.new(@api_endpoint) + + # Get authentication token + authenticate + end + + def authenticate() + + begin + response = @connection.request({ + :expects => 200, + :method => 'GET', + :path => "auth/v1.0", + :headers => { + 'X-Storage-User' => "Storage-#{@identity_domain}:#{@username}", + 'X-Storage-Pass' => @password + } + }) + rescue Excon::Errors::HTTPStatusError => error + error + end + if response.nil? || !response.headers['X-Auth-Token'] then + raise Error.new('Could not authenticate to Storage Cloud Service. Check your athentication details in your config') + end + @auth_token = response.headers['X-Auth-Token'] + end + + def request(params, parse_json = true, &block) + begin + response = @connection.request(params.merge!({ + :headers => { + 'X-Auth-Token' => @auth_token + }.merge!(params[:headers] || {}) + }), &block) + rescue Excon::Errors::HTTPStatusError => error + raise case error + when Excon::Errors::Conflict + data = Fog::JSON.decode(error.response.body) + raise Error.new(data['message']) + else + error + end + end + if !response.body.empty? && parse_json + response.body = Fog::JSON.decode(response.body) + end + response + end + end + + class Mock + def initialize(options={}) + @username = options[:oracle_username] + @password = options[:oracle_password] + @identity_domain = options[:oracle_domain] + @api_endpoint = options[:oracle_compute_api] + end + + def self.data + @data ||= { + :containers => {} + } + end + + def self.reset + @data = nil + end + + def data + self.class.data + end + end + end + end end \ No newline at end of file