mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
71 lines
2 KiB
Ruby
71 lines
2 KiB
Ruby
module Fog
|
|
module Terremark
|
|
module Ecloud
|
|
|
|
module Bin
|
|
end
|
|
|
|
module Defaults
|
|
HOST = 'services.enterprisecloud.terremark.com'
|
|
PATH = '/api/v0.8a-ext2.0'
|
|
PORT = 443
|
|
SCHEME = 'https'
|
|
end
|
|
|
|
extend Fog::Terremark::Shared
|
|
|
|
def self.new(options={})
|
|
|
|
unless @required
|
|
shared_requires
|
|
@required = true
|
|
end
|
|
|
|
check_shared_options(options)
|
|
|
|
if Fog.mocking?
|
|
Fog::Terremark::Ecloud::Mock.new(options)
|
|
else
|
|
Fog::Terremark::Ecloud::Real.new(options)
|
|
end
|
|
|
|
end
|
|
|
|
class Real
|
|
# NOTE: When this vbecomes a service, take care to pass the &inject_parameter_specs
|
|
# block on call to requires and recognizes
|
|
requires :terremark_ecloud_password, :terremark_ecloud_username
|
|
recognizes :host, :path, :port, :scheme, :persistent
|
|
|
|
include Fog::Terremark::Shared::Real
|
|
include Fog::Terremark::Shared::Parser
|
|
|
|
def initialize(options={})
|
|
@terremark_password = options[:terremark_ecloud_password]
|
|
@terremark_username = options[:terremark_ecloud_username]
|
|
@host = options[:host] || Fog::Terremark::Ecloud::Defaults::HOST
|
|
@path = options[:path] || Fog::Terremark::Ecloud::Defaults::PATH
|
|
@port = options[:port] || Fog::Terremark::Ecloud::Defaults::PORT
|
|
@scheme = options[:scheme] || Fog::Terremark::Ecloud::Defaults::SCHEME
|
|
@connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", options[:persistent])
|
|
end
|
|
|
|
end
|
|
|
|
class Mock
|
|
include Fog::Terremark::Shared::Mock
|
|
include Fog::Terremark::Shared::Parser
|
|
|
|
def initialize(option = {})
|
|
super
|
|
@base_url = Fog::Terremark::Ecloud::Defaults::SCHEME + "://" +
|
|
Fog::Terremark::Ecloud::Defaults::HOST +
|
|
Fog::Terremark::Ecloud::Defaults::PATH
|
|
@data = self.class.data[:terremark_ecloud_username]
|
|
end
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|
|
|