lib/fog/storm_on_demand/compute.rb in fog-maestrodev-1.8.0.20130114204828 vs lib/fog/storm_on_demand/compute.rb in fog-maestrodev-1.14.0.20130806165225

- old
+ new

@@ -1,49 +1,68 @@ require 'fog/storm_on_demand' require 'fog/compute' +require 'fog/storm_on_demand/shared' module Fog module Compute class StormOnDemand < Fog::Service - API_URL = 'https://api.stormondemand.com' - requires :storm_on_demand_username, :storm_on_demand_password recognizes :storm_on_demand_auth_url model_path 'fog/storm_on_demand/models/compute' model :config collection :configs model :image collection :images model :server collection :servers - model :balancer - collection :balancers - model :private_ip - collection :private_ips - model :stat - collection :stats model :template collection :templates + model :product + collection :products + model :notification + collection :notifications request_path 'fog/storm_on_demand/requests/compute' request :clone_server request :delete_server request :reboot_server request :list_servers request :get_server request :create_server request :resize_server - request :remove_balancer_node - request :add_balancer_node - request :list_balancers + request :server_history + request :shutdown_server + request :start_server + request :server_status + request :update_server + request :list_configs + request :get_config_details + request :list_templates + request :get_template_details + request :restore_template + request :list_images - request :get_stats - request :list_private_ips + request :create_image + request :delete_image + request :get_image_details + request :update_image + request :restore_image + + request :get_product + request :get_product_code + request :list_products + request :get_product_price + request :get_product_starting_price + + request :list_notifications + request :current_notifications + request :get_notification + request :resolve_notification class Mock def self.data @data ||= Hash.new do |hash, key| @@ -82,54 +101,10 @@ end class Real - def initialize(options={}) - uri = URI.parse(options[:storm_on_demand_auth_url] ||= API_URL) - @connection_options = options[:connection_options] || {} - @host = uri.host - @path = uri.path - @persistent = options[:persistent] || false - @port = uri.port - @scheme = uri.scheme - @storm_on_demand_username = options[:storm_on_demand_username] - @storm_on_demand_password = options[:storm_on_demand_password] - @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options) - end - - def reload - @connection.reset - end - - def request(params) - begin - response = @connection.request(params.merge!({ - :headers => { - 'Content-Type' => 'application/json', - 'Authorization' => 'Basic ' << Base64.encode64("#{@storm_on_demand_username}:#{@storm_on_demand_password}").chomp - }.merge!(params[:headers] || {}), - :host => @host, - :path => "#{@path}/#{params[:path]}", - :expects => 200, - :method => :post - })) - rescue Excon::Errors::HTTPStatusError => error - raise case error - when Excon::Errors::NotFound - Fog::StormOnDemand::Compute::NotFound.slurp(error) - else - error - end - end - unless response.body.empty? - response.body = Fog::JSON.decode(response.body) - end - if response.body.has_key?('full_error') - raise(Fog::Compute::StormOnDemand::Error, response.body.inspect) - end - response - end + include Fog::StormOnDemand::RealShared end end end end