fog--fog/lib/fog.rb

96 lines
1.7 KiB
Ruby
Raw Normal View History

2009-10-21 21:49:17 +00:00
require 'rubygems'
require 'base64'
require 'cgi'
require 'digest/md5'
2009-11-16 22:31:17 +00:00
require 'excon'
require 'formatador'
2009-10-21 21:49:17 +00:00
require 'json'
require 'mime/types'
2010-04-15 03:32:56 +00:00
require 'net/ssh'
require 'nokogiri'
require 'time'
2009-10-21 21:49:17 +00:00
__DIR__ = File.dirname(__FILE__)
$LOAD_PATH.unshift __DIR__ unless
$LOAD_PATH.include?(__DIR__) ||
$LOAD_PATH.include?(File.expand_path(__DIR__))
require 'fog/attributes'
2010-03-26 18:15:27 +00:00
require 'fog/collection'
require 'fog/connection'
2010-04-23 22:20:37 +00:00
require 'fog/deprecation'
2010-06-11 02:04:06 +00:00
require 'fog/errors'
2010-06-16 04:04:16 +00:00
require 'fog/hmac'
2010-03-26 18:15:27 +00:00
require 'fog/model'
require 'fog/parser'
require 'fog/provider'
require 'fog/service'
2010-04-15 03:32:56 +00:00
require 'fog/ssh'
2009-08-07 07:28:53 +00:00
module Fog
2010-05-04 00:25:59 +00:00
unless const_defined?(:VERSION)
2010-09-01 18:16:09 +00:00
VERSION = '0.2.30'
2010-04-30 06:30:49 +00:00
end
2010-04-21 03:23:24 +00:00
2010-04-08 22:39:25 +00:00
module Mock
@delay = 1
def self.delay
@delay
end
def self.delay=(new_delay)
raise ArgumentError, "delay must be non-negative" unless new_delay >= 0
@delay = new_delay
end
def self.not_implemented
raise Fog::Errors::MockNotImplemented.new("Contributions welcome!")
end
2010-04-08 22:39:25 +00:00
end
def self.bin
@bin ||= false
end
def self.bin=(new_bin)
@bin = new_bin
end
def self.mock!
@mocking = true
2009-08-10 15:30:28 +00:00
end
2009-08-07 07:28:53 +00:00
def self.mocking?
2009-08-10 15:30:28 +00:00
!!@mocking
end
2010-07-22 02:18:34 +00:00
def self.wait_for(timeout=600, interval=1, &block)
duration = 0
start = Time.now
until yield || duration > timeout
2010-07-22 02:18:34 +00:00
sleep(interval)
duration = Time.now - start
end
if duration > timeout
false
else
{ :duration => duration }
end
end
2009-08-07 07:28:53 +00:00
end
require 'fog/aws'
require 'fog/bluebox'
require 'fog/go_grid'
require 'fog/linode'
require 'fog/local'
require 'fog/new_servers'
require 'fog/rackspace'
require 'fog/slicehost'
require 'fog/terremark'
require 'fog/vcloud'