/
fog.rb
93 lines (75 loc) · 1.53 KB
/
fog.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
require 'rubygems'
require 'base64'
require 'cgi'
require 'digest/md5'
require 'excon'
require 'formatador'
require 'json'
require 'mime/types'
require 'net/ssh'
require 'nokogiri'
require 'tempfile'
require 'time'
__DIR__ = File.dirname(__FILE__)
$LOAD_PATH.unshift __DIR__ unless
$LOAD_PATH.include?(__DIR__) ||
$LOAD_PATH.include?(File.expand_path(__DIR__))
require 'fog/core'
module Fog
@mocking = false
unless const_defined?(:VERSION)
VERSION = '0.3.13'
end
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
end
def self.bin
@bin ||= false
end
def self.bin=(new_bin)
@bin = new_bin
end
def self.credentials
{}
end
def self.mock!
@mocking = true
end
def self.mocking?
!!@mocking
end
def self.wait_for(timeout=600, interval=1, &block)
duration = 0
start = Time.now
until yield || duration > timeout
sleep(interval)
duration = Time.now - start
end
if duration > timeout
false
else
{ :duration => duration }
end
end
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'
require 'fog/google'