1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/ibm/storage.rb

60 lines
1.2 KiB
Ruby
Raw Normal View History

2012-01-10 17:20:56 -05:00
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'ibm'))
require 'fog/storage'
module Fog
module Storage
class IBM < Fog::Service
requires :ibm_user_id, :ibm_password
recognizes :location
model_path 'fog/ibm/models/storage'
model :offering
collection :offerings
model :volume
collection :volumes
request_path 'fog/ibm/requests/storage'
request :list_offerings
2012-01-10 17:20:56 -05:00
request :list_volumes
2012-01-10 17:20:56 -05:00
request :create_volume
request :delete_volume
request :get_volume
class Real
def initialize(options={})
@connection = Fog::IBM::Connection.new(options[:ibm_user_id], options[:ibm_password])
end
private
def request(options)
begin
@connection.request(options)
rescue Excon::Errors::HTTPStatusError => error
raise case error
when Excon::Errors::NotFound
Fog::Storage::IBM::NotFound.slurp(error)
else
error
end
end
end
end
class Mock
def request(options)
Fog::Mock.not_implemented
end
end
end
end
end