fog-maestrodev 1.18.0.20131112185232 → 1.18.0.20131114200144

Sign up to get free protection for your applications and to get access to all the features.
data/fog.gemspec CHANGED
@@ -6,8 +6,8 @@ Gem::Specification.new do |s|
6
6
  ## If your rubyforge_project name is different, then edit it and comment out
7
7
  ## the sub! line in the Rakefile
8
8
  s.name = 'fog-maestrodev'
9
- s.version = '1.18.0.20131112185232'
10
- s.date = '2013-11-12'
9
+ s.version = '1.18.0.20131114200144'
10
+ s.date = '2013-11-14'
11
11
  s.rubyforge_project = 'fog'
12
12
 
13
13
  ## Make sure your summary is short. The description may be as long
data/lib/fog/aws/dns.rb CHANGED
@@ -34,7 +34,8 @@ module Fog
34
34
  :limits => {
35
35
  :duplicate_domains => 5
36
36
  },
37
- :zones => {}
37
+ :zones => {},
38
+ :changes => {}
38
39
  }
39
40
  end
40
41
  end
@@ -141,6 +141,7 @@ module Fog
141
141
  if (zone = self.data[:zones][zone_id])
142
142
  response.status = 200
143
143
 
144
+ change_id = Fog::AWS::Mock.change_id
144
145
  change_batch.each do |change|
145
146
  case change[:action]
146
147
  when "CREATE"
@@ -149,12 +150,23 @@ module Fog
149
150
  end
150
151
 
151
152
  if zone[:records][change[:type]][change[:name]].nil?
153
+ # raise change.to_s if change[:resource_records].nil?
154
+ zone[:records][change[:type]][change[:name]] =
155
+ if change[:alias_target]
156
+ record = {
157
+ :alias_target => change[:alias_target]
158
+ }
159
+ else
160
+ record = {
161
+ :ttl => change[:ttl].to_s,
162
+ }
163
+ end
152
164
  zone[:records][change[:type]][change[:name]] = {
165
+ :change_id => change_id,
166
+ :resource_records => change[:resource_records] || [],
153
167
  :name => change[:name],
154
- :type => change[:type],
155
- :ttl => change[:ttl],
156
- :resource_records => change[:resource_records]
157
- }
168
+ :type => change[:type]
169
+ }.merge(record)
158
170
  else
159
171
  errors << "Tried to create resource record set #{change[:name]}. type #{change[:type]}, but it already exists"
160
172
  end
@@ -166,12 +178,16 @@ module Fog
166
178
  end
167
179
 
168
180
  if errors.empty?
181
+ change = {
182
+ :id => change_id,
183
+ :status => 'INSYNC',
184
+ :submitted_at => Time.now.utc.iso8601
185
+ }
186
+ self.data[:changes][change[:id]] = change
169
187
  response.body = {
170
- 'ChangeInfo' => {
171
- 'Id' => "/change/#{Fog::AWS::Mock.change_id}",
172
- 'Status' => 'INSYNC',
173
- 'SubmittedAt' => Time.now.utc.iso8601
174
- }
188
+ 'Id' => change[:id],
189
+ 'Status' => change[:status],
190
+ 'SubmittedAt' => change[:submitted_at]
175
191
  }
176
192
  response
177
193
  else
@@ -184,6 +200,7 @@ module Fog
184
200
  response.body = "<?xml version=\"1.0\"?><Response><Errors><Error><Code>NoSuchHostedZone</Code><Message>A hosted zone with the specified hosted zone ID does not exist.</Message></Error></Errors><RequestID>#{Fog::AWS::Mock.request_id}</RequestID></Response>"
185
201
  raise(Excon::Errors.status_error({:expects => 200}, response))
186
202
  end
203
+
187
204
  end
188
205
  end
189
206
 
@@ -60,6 +60,9 @@ module Fog
60
60
  require 'time'
61
61
 
62
62
  def create_hosted_zone(name, options = {})
63
+ # Append a trailing period to the name if absent.
64
+ name = name + "." unless name.end_with?(".")
65
+
63
66
  response = Excon::Response.new
64
67
  if list_hosted_zones.body['HostedZones'].find_all {|z| z['Name'] == name}.size < self.data[:limits][:duplicate_domains]
65
68
  response.status = 201
@@ -77,6 +80,12 @@ module Fog
77
80
  :comment => options[:comment],
78
81
  :records => {}
79
82
  }
83
+ change = {
84
+ :id => Fog::AWS::Mock.change_id,
85
+ :status => 'INSYNC',
86
+ :submitted_at => Time.now.utc.iso8601
87
+ }
88
+ self.data[:changes][change[:id]] = change
80
89
  response.body = {
81
90
  'HostedZone' => {
82
91
  'Id' => zone_id,
@@ -85,9 +94,9 @@ module Fog
85
94
  'Comment' => options[:comment]
86
95
  },
87
96
  'ChangeInfo' => {
88
- 'Id' => "/change/#{Fog::AWS::Mock.change_id}",
89
- 'Status' => 'INSYNC',
90
- 'SubmittedAt' => Time.now.utc.iso8601
97
+ 'Id' => change[:id],
98
+ 'Status' => change[:status],
99
+ 'SubmittedAt' => change[:submitted_at]
91
100
  },
92
101
  'NameServers' => Fog::AWS::Mock.nameservers
93
102
  }
@@ -34,6 +34,39 @@ module Fog
34
34
  end
35
35
 
36
36
  end
37
+
38
+ class Mock
39
+
40
+ require 'time'
41
+
42
+ def delete_hosted_zone(zone_id)
43
+ response = Excon::Response.new
44
+ key = [zone_id, "/hostedzone/#{zone_id}"].find{|k| !self.data[:zones][k].nil?}
45
+ if key
46
+ change = {
47
+ :id => Fog::AWS::Mock.change_id,
48
+ :status => 'INSYNC',
49
+ :submitted_at => Time.now.utc.iso8601
50
+ }
51
+ self.data[:changes][change[:id]] = change
52
+ response.status = 200
53
+ response.body = {
54
+ 'ChangeInfo' => {
55
+ 'Id' => change[:id],
56
+ 'Status' => change[:status],
57
+ 'SubmittedAt' => change[:submitted_at]
58
+ }
59
+ }
60
+ self.data[:zones].delete(key)
61
+ response
62
+ else
63
+ response.status = 404
64
+ response.body = "<?xml version=\"1.0\"?><ErrorResponse xmlns=\"https://route53.amazonaws.com/doc/2012-02-29/\"><Error><Type>Sender</Type><Code>NoSuchHostedZone</Code><Message>The specified hosted zone does not exist.</Message></Error><RequestId>#{Fog::AWS::Mock.request_id}</RequestId></ErrorResponse>"
65
+ raise(Excon::Errors.status_error({:expects => 200}, response))
66
+ end
67
+ end
68
+ end
69
+
37
70
  end
38
71
  end
39
72
  end
@@ -33,6 +33,30 @@ module Fog
33
33
  end
34
34
 
35
35
  end
36
+
37
+ class Mock
38
+ def get_change(change_id)
39
+ response = Excon::Response.new
40
+ # find the record with matching change_id
41
+ # records = data[:zones].values.map{|z| z[:records].values.map{|r| r.values}}.flatten
42
+ change = self.data[:changes][change_id]
43
+
44
+ if change
45
+ response.status = 200
46
+ response.body = {
47
+ 'Id' => change[:id],
48
+ 'Status' => 'INSYNC', # TODO do some logic here
49
+ 'SubmittedAt' => change[:submitted_at]
50
+ }
51
+ response
52
+ else
53
+ response.status = 404
54
+ response.body = "<?xml version=\"1.0\"?><ErrorResponse xmlns=\"https://route53.amazonaws.com/doc/2012-02-29/\"><Error><Type>Sender</Type><Code>NoSuchChange</Code><Message>Could not find resource with ID: #{change_id}</Message></Error><RequestId>#{Fog::AWS::Mock.request_id}</RequestId></ErrorResponse>"
55
+ raise(Excon::Errors.status_error({:expects => 200}, response))
56
+ end
57
+ end
58
+ end
59
+
36
60
  end
37
61
  end
38
62
  end
@@ -55,7 +55,7 @@ module Fog
55
55
  response
56
56
  else
57
57
  response.status = 404
58
- response.body = "<?xml version=\"1.0\"?><Response><Errors><Error><Code>NoSuchHostedZone</Code><Message>A hosted zone with the specified hosted zone ID does not exist.</Message></Error></Errors><RequestID>#{Fog::AWS::Mock.request_id}</RequestID></Response>"
58
+ response.body = "<?xml version=\"1.0\"?><ErrorResponse xmlns=\"https://route53.amazonaws.com/doc/2012-02-29/\"><Error><Type>Sender</Type><Code>NoSuchHostedZone</Code><Message>The specified hosted zone does not exist.</Message></Error><RequestId>#{Fog::AWS::Mock.request_id}</RequestId></ErrorResponse>"
59
59
  raise(Excon::Errors.status_error({:expects => 200}, response))
60
60
  end
61
61
  end
@@ -53,12 +53,7 @@ module Fog
53
53
  class Mock
54
54
 
55
55
  def list_hosted_zones(options = {})
56
-
57
- if options[:max_items].nil?
58
- maxitems = 100
59
- else
60
- maxitems = options[:max_items]
61
- end
56
+ maxitems = [options[:max_items]||100,100].min
62
57
 
63
58
  if options[:marker].nil?
64
59
  start = 0
@@ -82,8 +77,8 @@ module Fog
82
77
  }
83
78
  end,
84
79
  'Marker' => options[:marker].to_s,
85
- 'MaxItems' => options[:max_items].to_s,
86
- 'IsTruncated' => truncated.to_s
80
+ 'MaxItems' => maxitems,
81
+ 'IsTruncated' => truncated
87
82
  }
88
83
 
89
84
  if truncated
@@ -66,39 +66,62 @@ module Fog
66
66
  def list_resource_record_sets(zone_id, options = {})
67
67
  maxitems = [options[:max_items]||100,100].min
68
68
 
69
+ response = Excon::Response.new
70
+
69
71
  zone = self.data[:zones][zone_id]
72
+ if zone.nil?
73
+ response.status = 404
74
+ response.body = "<?xml version=\"1.0\"?>\n<ErrorResponse xmlns=\"https://route53.amazonaws.com/doc/2012-02-29/\"><Error><Type>Sender</Type><Code>NoSuchHostedZone</Code><Message>No hosted zone found with ID: #{zone_id}</Message></Error><RequestId>#{Fog::AWS::Mock.request_id}</RequestId></ErrorResponse>"
75
+ raise(Excon::Errors.status_error({:expects => 200}, response))
76
+ end
77
+
70
78
  if options[:type]
71
79
  records = zone[:records][options[:type]].values
72
80
  else
73
- records = zone[:records].values.first.values
81
+ records = zone[:records].values.map{|r| r.values}.flatten
74
82
  end
75
83
 
84
+ # sort for pagination
85
+ records.sort! { |a,b| a[:name].gsub(zone[:name],"") <=> b[:name].gsub(zone[:name],"") }
86
+
76
87
  if options[:name]
77
88
  name = options[:name].gsub(zone[:name],"")
78
89
  records = records.select{|r| r[:name].gsub(zone[:name],"") >= name }
90
+ require 'pp'
79
91
  end
80
92
 
81
- next_records = records[maxitems]
93
+ next_record = records[maxitems]
82
94
  records = records[0, maxitems]
83
- truncated = !next_records.nil?
95
+ truncated = !next_record.nil?
84
96
 
85
- response = Excon::Response.new
86
97
  response.status = 200
87
98
  response.body = {
88
99
  'ResourceRecordSets' => records.map do |r|
100
+ if r[:alias_target]
101
+ record = {
102
+ 'AliasTarget' => {
103
+ 'HostedZoneId' => r[:alias_target][:hosted_zone_id],
104
+ 'DNSName' => r[:alias_target][:dns_name]
105
+ }
106
+ }
107
+ else
108
+ record = {
109
+ 'TTL' => r[:ttl]
110
+ }
111
+ end
89
112
  {
90
113
  'ResourceRecords' => r[:resource_records],
91
114
  'Name' => r[:name],
92
- 'Type' => r[:type],
93
- 'TTL' => r[:ttl]
94
- }
115
+ 'Type' => r[:type]
116
+ }.merge(record)
95
117
  end,
96
- 'MaxItems' => maxitems.to_s,
97
- 'IsTruncated' => truncated.to_s
118
+ 'MaxItems' => maxitems,
119
+ 'IsTruncated' => truncated
98
120
  }
99
121
 
100
122
  if truncated
101
- response.body['NextMarker'] = next_records[:id]
123
+ response.body['NextRecordName'] = next_record[:name]
124
+ response.body['NextRecordType'] = next_record[:type]
102
125
  end
103
126
 
104
127
  response
data/lib/fog/aws.rb CHANGED
@@ -270,7 +270,7 @@ module Fog
270
270
  "zone-#{Fog::Mock.random_hex(8)}"
271
271
  end
272
272
  def self.change_id
273
- "change-#{Fog::Mock.random_hex(8)}"
273
+ Fog::Mock.random_letters_and_numbers(14)
274
274
  end
275
275
  def self.nameservers
276
276
  [
data/lib/fog/core/mock.rb CHANGED
@@ -74,6 +74,13 @@ module Fog
74
74
  rand(max).to_s
75
75
  end
76
76
 
77
+ def self.random_letters_and_numbers(length)
78
+ random_selection(
79
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
80
+ length
81
+ )
82
+ end
83
+
77
84
  def self.random_selection(characters, length)
78
85
  selection = ''
79
86
  length.times do
@@ -1,13 +1,12 @@
1
1
  Shindo.tests("Fog::Dns[:aws] | record", ['aws', 'dns']) do
2
2
 
3
- pending if Fog.mocking?
4
3
  tests("zones#create").succeeds do
5
4
  @zone = Fog::DNS[:aws].zones.create(:domain => generate_unique_domain)
6
5
  end
7
6
 
8
7
  params = { :name => @zone.domain, :type => 'A', :ttl => 3600, :value => ['1.2.3.4'] }
9
8
 
10
- model_tests(@zone.records, params, false) do
9
+ model_tests(@zone.records, params) do
11
10
 
12
11
  # Newly created records should have a change id
13
12
  tests("#change_id") do
@@ -1,5 +1,4 @@
1
1
  Shindo.tests("Fog::DNS[:aws] | records", ['aws', 'dns']) do
2
- pending if Fog.mocking?
3
2
 
4
3
  tests("zones#create").succeeds do
5
4
  @zone = Fog::DNS[:aws].zones.create(:domain => generate_unique_domain)
@@ -13,7 +12,7 @@ Shindo.tests("Fog::DNS[:aws] | records", ['aws', 'dns']) do
13
12
  ]
14
13
 
15
14
  param_groups.each do |params|
16
- collection_tests(@zone.records, params, false)
15
+ collection_tests(@zone.records, params)
17
16
  end
18
17
 
19
18
  records = []
@@ -24,11 +23,7 @@ Shindo.tests("Fog::DNS[:aws] | records", ['aws', 'dns']) do
24
23
 
25
24
  records << @zone.records.create(:name => "*.#{@zone.domain}", :type => "A", :ttl => 3600, :value => ['1.2.3.4'])
26
25
 
27
- tests("#all!").returns(103) do
28
- @zone.records.all!.size
29
- end
30
-
31
- tests("#all!").returns(103) do
26
+ tests("#all!").returns(101) do
32
27
  @zone.records.all!.size
33
28
  end
34
29
 
@@ -1,4 +1,4 @@
1
1
  Shindo.tests("Fog::DNS[:aws] | zone", ['aws', 'dns']) do
2
2
  params = {:domain => generate_unique_domain }
3
- model_tests(Fog::DNS[:aws].zones, params, false)
3
+ model_tests(Fog::DNS[:aws].zones, params)
4
4
  end
@@ -1,4 +1,4 @@
1
1
  Shindo.tests("Fog::DNS[:aws] | zones", ['aws', 'dns']) do
2
2
  params = {:domain => generate_unique_domain }
3
- collection_tests(Fog::DNS[:aws].zones, params, false)
3
+ collection_tests(Fog::DNS[:aws].zones, params)
4
4
  end
@@ -12,8 +12,6 @@ Shindo.tests('Fog::DNS[:aws] | DNS requests', ['aws', 'dns']) do
12
12
  tests('success') do
13
13
 
14
14
  test('get current zone count') do
15
- pending if Fog.mocking?
16
-
17
15
  @org_zone_count= 0
18
16
  response = @r53_connection.list_hosted_zones
19
17
  if response.status == 200
@@ -25,8 +23,6 @@ Shindo.tests('Fog::DNS[:aws] | DNS requests', ['aws', 'dns']) do
25
23
  end
26
24
 
27
25
  test('create simple zone') {
28
- pending if Fog.mocking?
29
-
30
26
  result = false
31
27
 
32
28
  response = @r53_connection.create_hosted_zone(@domain_name)
@@ -55,8 +51,6 @@ Shindo.tests('Fog::DNS[:aws] | DNS requests', ['aws', 'dns']) do
55
51
  }
56
52
 
57
53
  test("get status of change #{@change_id}") {
58
- pending if Fog.mocking?
59
-
60
54
  result = false
61
55
  response = @r53_connection.get_change(@change_id)
62
56
  if response.status == 200
@@ -70,8 +64,6 @@ Shindo.tests('Fog::DNS[:aws] | DNS requests', ['aws', 'dns']) do
70
64
  }
71
65
 
72
66
  test("get info on hosted zone #{@zone_id}") {
73
- pending if Fog.mocking?
74
-
75
67
  result = false
76
68
 
77
69
  response = @r53_connection.get_hosted_zone(@zone_id)
@@ -83,7 +75,6 @@ Shindo.tests('Fog::DNS[:aws] | DNS requests', ['aws', 'dns']) do
83
75
  ns_servers = response.body['NameServers']
84
76
 
85
77
  # AWS returns domain with a dot at end - so when compare, remove dot
86
-
87
78
  if (zone_id == @zone_id) and (name.chop == @domain_name) and (caller_ref.length > 0) and
88
79
  (ns_servers.count > 0)
89
80
  result = true
@@ -94,8 +85,6 @@ Shindo.tests('Fog::DNS[:aws] | DNS requests', ['aws', 'dns']) do
94
85
  }
95
86
 
96
87
  test('list zones') do
97
- pending if Fog.mocking?
98
-
99
88
  result = false
100
89
 
101
90
  response = @r53_connection.list_hosted_zones
@@ -120,8 +109,6 @@ Shindo.tests('Fog::DNS[:aws] | DNS requests', ['aws', 'dns']) do
120
109
  end
121
110
 
122
111
  test("add a A resource record") {
123
- pending if Fog.mocking?
124
-
125
112
  # create an A resource record
126
113
  host = 'www.' + @domain_name
127
114
  ip_addrs = ['1.2.3.4']
@@ -142,8 +129,6 @@ Shindo.tests('Fog::DNS[:aws] | DNS requests', ['aws', 'dns']) do
142
129
  }
143
130
 
144
131
  test("add a CNAME resource record") {
145
- pending if Fog.mocking?
146
-
147
132
  # create a CNAME resource record
148
133
  host = 'mail.' + @domain_name
149
134
  value = ['www.' + @domain_name]
@@ -164,8 +149,6 @@ Shindo.tests('Fog::DNS[:aws] | DNS requests', ['aws', 'dns']) do
164
149
  }
165
150
 
166
151
  test("add a MX resource record") {
167
- pending if Fog.mocking?
168
-
169
152
  # create a MX resource record
170
153
  host = @domain_name
171
154
  value = ['7 mail.' + @domain_name]
@@ -186,8 +169,6 @@ Shindo.tests('Fog::DNS[:aws] | DNS requests', ['aws', 'dns']) do
186
169
  }
187
170
 
188
171
  test("add an ALIAS resource record") {
189
- pending if Fog.mocking?
190
-
191
172
  # create a load balancer
192
173
  @elb_connection.create_load_balancer(["us-east-1a"], "fog", [{"Protocol" => "HTTP", "LoadBalancerPort" => "80", "InstancePort" => "80"}])
193
174
 
@@ -213,7 +194,7 @@ Shindo.tests('Fog::DNS[:aws] | DNS requests', ['aws', 'dns']) do
213
194
  puts "DNS Name (ELB): #{dns_name}"
214
195
  puts "Zone ID for Route 53: #{@zone_id}"
215
196
 
216
- sleep 120
197
+ sleep 120 unless Fog.mocking?
217
198
  response = @r53_connection.change_resource_record_sets(@zone_id, change_batch, options)
218
199
  if response.status == 200
219
200
  change_id = response.body['Id']
@@ -225,15 +206,11 @@ Shindo.tests('Fog::DNS[:aws] | DNS requests', ['aws', 'dns']) do
225
206
  }
226
207
 
227
208
  tests("list resource records").formats(AWS::DNS::Formats::LIST_RESOURCE_RECORD_SETS) {
228
- pending if Fog.mocking?
229
-
230
209
  # get resource records for zone
231
210
  @r53_connection.list_resource_record_sets(@zone_id).body
232
211
  }
233
212
 
234
213
  test("delete #{@new_records.count} resource records") {
235
- pending if Fog.mocking?
236
-
237
214
  result = true
238
215
 
239
216
  change_batch = []
@@ -252,8 +229,6 @@ Shindo.tests('Fog::DNS[:aws] | DNS requests', ['aws', 'dns']) do
252
229
  }
253
230
 
254
231
  test("delete hosted zone #{@zone_id}") {
255
- pending if Fog.mocking?
256
-
257
232
  # cleanup the ELB as well
258
233
  @elb_connection.delete_load_balancer("fog")
259
234
 
metadata CHANGED
@@ -1,309 +1,247 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fog-maestrodev
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.18.0.20131112185232
4
+ version: 1.18.0.20131114200144
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - geemus (Wesley Beary)
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-11-12 00:00:00.000000000 Z
12
+ date: 2013-11-14 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: builder
15
- requirement: !ruby/object:Gem::Requirement
16
+ requirement: &9899280 !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: '0'
20
22
  type: :runtime
21
23
  prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ! '>='
25
- - !ruby/object:Gem::Version
26
- version: '0'
24
+ version_requirements: *9899280
27
25
  - !ruby/object:Gem::Dependency
28
26
  name: excon
29
- requirement: !ruby/object:Gem::Requirement
27
+ requirement: &9898720 !ruby/object:Gem::Requirement
28
+ none: false
30
29
  requirements:
31
30
  - - ~>
32
31
  - !ruby/object:Gem::Version
33
32
  version: 0.28.0
34
33
  type: :runtime
35
34
  prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ~>
39
- - !ruby/object:Gem::Version
40
- version: 0.28.0
35
+ version_requirements: *9898720
41
36
  - !ruby/object:Gem::Dependency
42
37
  name: formatador
43
- requirement: !ruby/object:Gem::Requirement
38
+ requirement: &9898220 !ruby/object:Gem::Requirement
39
+ none: false
44
40
  requirements:
45
41
  - - ~>
46
42
  - !ruby/object:Gem::Version
47
43
  version: 0.2.0
48
44
  type: :runtime
49
45
  prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ~>
53
- - !ruby/object:Gem::Version
54
- version: 0.2.0
46
+ version_requirements: *9898220
55
47
  - !ruby/object:Gem::Dependency
56
48
  name: multi_json
57
- requirement: !ruby/object:Gem::Requirement
49
+ requirement: &9897760 !ruby/object:Gem::Requirement
50
+ none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
61
54
  version: '1.0'
62
55
  type: :runtime
63
56
  prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ~>
67
- - !ruby/object:Gem::Version
68
- version: '1.0'
57
+ version_requirements: *9897760
69
58
  - !ruby/object:Gem::Dependency
70
59
  name: mime-types
71
- requirement: !ruby/object:Gem::Requirement
60
+ requirement: &9897320 !ruby/object:Gem::Requirement
61
+ none: false
72
62
  requirements:
73
63
  - - ! '>='
74
64
  - !ruby/object:Gem::Version
75
65
  version: '0'
76
66
  type: :runtime
77
67
  prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ! '>='
81
- - !ruby/object:Gem::Version
82
- version: '0'
68
+ version_requirements: *9897320
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: net-scp
85
- requirement: !ruby/object:Gem::Requirement
71
+ requirement: &9896780 !ruby/object:Gem::Requirement
72
+ none: false
86
73
  requirements:
87
74
  - - ~>
88
75
  - !ruby/object:Gem::Version
89
76
  version: '1.1'
90
77
  type: :runtime
91
78
  prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ~>
95
- - !ruby/object:Gem::Version
96
- version: '1.1'
79
+ version_requirements: *9896780
97
80
  - !ruby/object:Gem::Dependency
98
81
  name: net-ssh
99
- requirement: !ruby/object:Gem::Requirement
82
+ requirement: &9896280 !ruby/object:Gem::Requirement
83
+ none: false
100
84
  requirements:
101
85
  - - ! '>='
102
86
  - !ruby/object:Gem::Version
103
87
  version: 2.1.3
104
88
  type: :runtime
105
89
  prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ! '>='
109
- - !ruby/object:Gem::Version
110
- version: 2.1.3
90
+ version_requirements: *9896280
111
91
  - !ruby/object:Gem::Dependency
112
92
  name: nokogiri
113
- requirement: !ruby/object:Gem::Requirement
93
+ requirement: &9895820 !ruby/object:Gem::Requirement
94
+ none: false
114
95
  requirements:
115
96
  - - ~>
116
97
  - !ruby/object:Gem::Version
117
98
  version: '1.5'
118
99
  type: :runtime
119
100
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ~>
123
- - !ruby/object:Gem::Version
124
- version: '1.5'
101
+ version_requirements: *9895820
125
102
  - !ruby/object:Gem::Dependency
126
103
  name: ruby-hmac
127
- requirement: !ruby/object:Gem::Requirement
104
+ requirement: &9895440 !ruby/object:Gem::Requirement
105
+ none: false
128
106
  requirements:
129
107
  - - ! '>='
130
108
  - !ruby/object:Gem::Version
131
109
  version: '0'
132
110
  type: :runtime
133
111
  prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ! '>='
137
- - !ruby/object:Gem::Version
138
- version: '0'
112
+ version_requirements: *9895440
139
113
  - !ruby/object:Gem::Dependency
140
114
  name: jekyll
141
- requirement: !ruby/object:Gem::Requirement
115
+ requirement: &9911340 !ruby/object:Gem::Requirement
116
+ none: false
142
117
  requirements:
143
118
  - - ! '>='
144
119
  - !ruby/object:Gem::Version
145
120
  version: '0'
146
121
  type: :development
147
122
  prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ! '>='
151
- - !ruby/object:Gem::Version
152
- version: '0'
123
+ version_requirements: *9911340
153
124
  - !ruby/object:Gem::Dependency
154
125
  name: rake
155
- requirement: !ruby/object:Gem::Requirement
126
+ requirement: &9910920 !ruby/object:Gem::Requirement
127
+ none: false
156
128
  requirements:
157
129
  - - ! '>='
158
130
  - !ruby/object:Gem::Version
159
131
  version: '0'
160
132
  type: :development
161
133
  prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ! '>='
165
- - !ruby/object:Gem::Version
166
- version: '0'
134
+ version_requirements: *9910920
167
135
  - !ruby/object:Gem::Dependency
168
136
  name: rbvmomi
169
- requirement: !ruby/object:Gem::Requirement
137
+ requirement: &9910500 !ruby/object:Gem::Requirement
138
+ none: false
170
139
  requirements:
171
140
  - - ! '>='
172
141
  - !ruby/object:Gem::Version
173
142
  version: '0'
174
143
  type: :development
175
144
  prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ! '>='
179
- - !ruby/object:Gem::Version
180
- version: '0'
145
+ version_requirements: *9910500
181
146
  - !ruby/object:Gem::Dependency
182
147
  name: yard
183
- requirement: !ruby/object:Gem::Requirement
148
+ requirement: &9910080 !ruby/object:Gem::Requirement
149
+ none: false
184
150
  requirements:
185
151
  - - ! '>='
186
152
  - !ruby/object:Gem::Version
187
153
  version: '0'
188
154
  type: :development
189
155
  prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - ! '>='
193
- - !ruby/object:Gem::Version
194
- version: '0'
156
+ version_requirements: *9910080
195
157
  - !ruby/object:Gem::Dependency
196
158
  name: thor
197
- requirement: !ruby/object:Gem::Requirement
159
+ requirement: &9909660 !ruby/object:Gem::Requirement
160
+ none: false
198
161
  requirements:
199
162
  - - ! '>='
200
163
  - !ruby/object:Gem::Version
201
164
  version: '0'
202
165
  type: :development
203
166
  prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - ! '>='
207
- - !ruby/object:Gem::Version
208
- version: '0'
167
+ version_requirements: *9909660
209
168
  - !ruby/object:Gem::Dependency
210
169
  name: rspec
211
- requirement: !ruby/object:Gem::Requirement
170
+ requirement: &9909160 !ruby/object:Gem::Requirement
171
+ none: false
212
172
  requirements:
213
173
  - - ~>
214
174
  - !ruby/object:Gem::Version
215
175
  version: 1.3.1
216
176
  type: :development
217
177
  prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - ~>
221
- - !ruby/object:Gem::Version
222
- version: 1.3.1
178
+ version_requirements: *9909160
223
179
  - !ruby/object:Gem::Dependency
224
180
  name: rbovirt
225
- requirement: !ruby/object:Gem::Requirement
181
+ requirement: &9908660 !ruby/object:Gem::Requirement
182
+ none: false
226
183
  requirements:
227
184
  - - ! '>='
228
185
  - !ruby/object:Gem::Version
229
186
  version: 0.0.11
230
187
  type: :development
231
188
  prerelease: false
232
- version_requirements: !ruby/object:Gem::Requirement
233
- requirements:
234
- - - ! '>='
235
- - !ruby/object:Gem::Version
236
- version: 0.0.11
189
+ version_requirements: *9908660
237
190
  - !ruby/object:Gem::Dependency
238
191
  name: shindo
239
- requirement: !ruby/object:Gem::Requirement
192
+ requirement: &9908200 !ruby/object:Gem::Requirement
193
+ none: false
240
194
  requirements:
241
195
  - - ~>
242
196
  - !ruby/object:Gem::Version
243
197
  version: 0.3.4
244
198
  type: :development
245
199
  prerelease: false
246
- version_requirements: !ruby/object:Gem::Requirement
247
- requirements:
248
- - - ~>
249
- - !ruby/object:Gem::Version
250
- version: 0.3.4
200
+ version_requirements: *9908200
251
201
  - !ruby/object:Gem::Dependency
252
202
  name: fission
253
- requirement: !ruby/object:Gem::Requirement
203
+ requirement: &9907820 !ruby/object:Gem::Requirement
204
+ none: false
254
205
  requirements:
255
206
  - - ! '>='
256
207
  - !ruby/object:Gem::Version
257
208
  version: '0'
258
209
  type: :development
259
210
  prerelease: false
260
- version_requirements: !ruby/object:Gem::Requirement
261
- requirements:
262
- - - ! '>='
263
- - !ruby/object:Gem::Version
264
- version: '0'
211
+ version_requirements: *9907820
265
212
  - !ruby/object:Gem::Dependency
266
213
  name: pry
267
- requirement: !ruby/object:Gem::Requirement
214
+ requirement: &9907360 !ruby/object:Gem::Requirement
215
+ none: false
268
216
  requirements:
269
217
  - - ! '>='
270
218
  - !ruby/object:Gem::Version
271
219
  version: '0'
272
220
  type: :development
273
221
  prerelease: false
274
- version_requirements: !ruby/object:Gem::Requirement
275
- requirements:
276
- - - ! '>='
277
- - !ruby/object:Gem::Version
278
- version: '0'
222
+ version_requirements: *9907360
279
223
  - !ruby/object:Gem::Dependency
280
224
  name: google-api-client
281
- requirement: !ruby/object:Gem::Requirement
225
+ requirement: &9906860 !ruby/object:Gem::Requirement
226
+ none: false
282
227
  requirements:
283
228
  - - ~>
284
229
  - !ruby/object:Gem::Version
285
230
  version: 0.6.2
286
231
  type: :development
287
232
  prerelease: false
288
- version_requirements: !ruby/object:Gem::Requirement
289
- requirements:
290
- - - ~>
291
- - !ruby/object:Gem::Version
292
- version: 0.6.2
233
+ version_requirements: *9906860
293
234
  - !ruby/object:Gem::Dependency
294
235
  name: unf
295
- requirement: !ruby/object:Gem::Requirement
236
+ requirement: &9906440 !ruby/object:Gem::Requirement
237
+ none: false
296
238
  requirements:
297
239
  - - ! '>='
298
240
  - !ruby/object:Gem::Version
299
241
  version: '0'
300
242
  type: :development
301
243
  prerelease: false
302
- version_requirements: !ruby/object:Gem::Requirement
303
- requirements:
304
- - - ! '>='
305
- - !ruby/object:Gem::Version
306
- version: '0'
244
+ version_requirements: *9906440
307
245
  description: The Ruby cloud services library. Supports all major cloud providers including
308
246
  AWS, Rackspace, Linode, Blue Box, StormOnDemand, and many others. Full support for
309
247
  most AWS services including EC2, S3, CloudWatch, SimpleDB, ELB, and RDS.
@@ -5379,25 +5317,29 @@ files:
5379
5317
  homepage: http://github.com/fog/fog
5380
5318
  licenses:
5381
5319
  - MIT
5382
- metadata: {}
5383
5320
  post_install_message:
5384
5321
  rdoc_options:
5385
5322
  - --charset=UTF-8
5386
5323
  require_paths:
5387
5324
  - lib
5388
5325
  required_ruby_version: !ruby/object:Gem::Requirement
5326
+ none: false
5389
5327
  requirements:
5390
5328
  - - ! '>='
5391
5329
  - !ruby/object:Gem::Version
5392
5330
  version: '0'
5331
+ segments:
5332
+ - 0
5333
+ hash: -1666891968851766766
5393
5334
  required_rubygems_version: !ruby/object:Gem::Requirement
5335
+ none: false
5394
5336
  requirements:
5395
5337
  - - ! '>='
5396
5338
  - !ruby/object:Gem::Version
5397
5339
  version: '0'
5398
5340
  requirements: []
5399
5341
  rubyforge_project: fog
5400
- rubygems_version: 2.0.0
5342
+ rubygems_version: 1.8.9
5401
5343
  signing_key:
5402
5344
  specification_version: 2
5403
5345
  summary: brings clouds to you
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NzYxNjdjNWQwMjZlYmQyNGZmYmUxZGJlZDdlMjE3NDBmNjQ1MjgyOQ==
5
- data.tar.gz: !binary |-
6
- ODYyZTAzNTZiNWZhYzc1YzI1YmQyMTQyYzQ1Yjk1NWEwN2Y1OGE1OA==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- NmFlYzY1NDkwY2UwMjUxZjliYTk1MDI0MDQwNjQ5OTZkOWFiNDc0NTZhODA3
10
- MDBmMTI1NzIzZjI2NDAyOGRkMmE1MzAwOTk0NDc2MjM5ZmEwOWQyYjUwYjFh
11
- MGE5ZjViN2Y5YTJlMzAyNDdhZWNlNTg0ODZkMTM5NWE4NDlkNjE=
12
- data.tar.gz: !binary |-
13
- ZmM3ZDc3ZGNhZmU2YzBmYjY0OTY5MDkyMWFiYmFkZTFmM2U5MjIwNTU2ZjYy
14
- YzlhZWZhNjY4OTE0ZDQ1NjhmNjFjMGUzYzg2MDkzNmU5ZjljNTY0YmZkMzBk
15
- ZDBjMDdjZjFhOTkxZWM3ZTRmZTQ5MWQ2NjQwY2Q1OWVlNTgyMjE=