fog 0.0.93 → 0.0.94
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +2 -1
- data/Gemfile.lock +13 -7
- data/bin/fog +6 -0
- data/fog.gemspec +40 -3
- data/lib/fog.rb +2 -1
- data/lib/fog/aws.rb +12 -8
- data/lib/fog/aws/parsers/s3/get_bucket_logging.rb +40 -0
- data/lib/fog/aws/parsers/s3/get_bucket_object_versions.rb +88 -0
- data/lib/fog/aws/parsers/s3/get_bucket_versioning.rb +24 -0
- data/lib/fog/aws/requests/ec2/associate_address.rb +3 -0
- data/lib/fog/aws/requests/ec2/describe_instances.rb +4 -3
- data/lib/fog/aws/requests/ec2/disassociate_address.rb +4 -0
- data/lib/fog/aws/requests/s3/get_bucket.rb +6 -5
- data/lib/fog/aws/requests/s3/get_bucket_logging.rb +53 -0
- data/lib/fog/aws/requests/s3/get_bucket_object_versions.rb +83 -0
- data/lib/fog/aws/requests/s3/get_bucket_versioning.rb +43 -0
- data/lib/fog/aws/requests/s3/get_object.rb +6 -1
- data/lib/fog/aws/requests/s3/get_object_acl.rb +8 -2
- data/lib/fog/aws/requests/s3/head_object.rb +4 -1
- data/lib/fog/aws/requests/s3/put_bucket_acl.rb +1 -1
- data/lib/fog/aws/requests/s3/put_bucket_logging.rb +87 -0
- data/lib/fog/aws/requests/s3/put_bucket_versioning.rb +40 -0
- data/lib/fog/aws/s3.rb +9 -1
- data/lib/fog/bin.rb +1 -1
- data/lib/fog/credentials.rb +6 -2
- data/lib/fog/vcloud.rb +288 -0
- data/lib/fog/vcloud/bin.rb +57 -0
- data/lib/fog/vcloud/parser.rb +34 -0
- data/lib/fog/vcloud/parsers/get_organization.rb +37 -0
- data/lib/fog/vcloud/parsers/get_vdc.rb +37 -0
- data/lib/fog/vcloud/parsers/get_versions.rb +46 -0
- data/lib/fog/vcloud/parsers/login.rb +40 -0
- data/lib/fog/vcloud/requests/get_organization.rb +55 -0
- data/lib/fog/vcloud/requests/get_vdc.rb +59 -0
- data/lib/fog/vcloud/requests/get_versions.rb +43 -0
- data/lib/fog/vcloud/requests/login.rb +46 -0
- data/lib/fog/vcloud/terremark/all.rb +9 -0
- data/lib/fog/vcloud/terremark/ecloud.rb +47 -0
- data/lib/fog/vcloud/terremark/ecloud/parsers/get_vdc.rb +59 -0
- data/lib/fog/vcloud/terremark/ecloud/requests/get_vdc.rb +94 -0
- data/lib/fog/vcloud/terremark/ecloud/requests/login.rb +27 -0
- data/lib/fog/vcloud/terremark/vcloud.rb +43 -0
- data/lib/fog/vcloud/terremark/vcloud/parsers/get_vdc.rb +34 -0
- data/lib/fog/vcloud/terremark/vcloud/requests/get_vdc.rb +65 -0
- data/spec/aws/requests/ec2/describe_instances_spec.rb +4 -4
- data/spec/spec_helper.rb +3 -1
- data/spec/vcloud/bin_spec.rb +31 -0
- data/spec/vcloud/requests/get_organization_spec.rb +46 -0
- data/spec/vcloud/requests/get_vdc_spec.rb +50 -0
- data/spec/vcloud/requests/get_versions_spec.rb +28 -0
- data/spec/vcloud/requests/login_spec.rb +8 -0
- data/spec/vcloud/spec_helper.rb +184 -0
- data/spec/vcloud/terremark/ecloud/requests/get_vdc_spec.rb +135 -0
- data/spec/vcloud/terremark/ecloud/requests/login_spec.rb +7 -0
- data/spec/vcloud/terremark/vcloud/requests/get_vdc_spec.rb +74 -0
- data/spec/vcloud/vcloud_spec.rb +17 -0
- data/tests/aws/requests/ec2/address_tests.rb +3 -0
- metadata +42 -5
data/Gemfile
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
source 'http://gemcutter.org'
|
|
2
2
|
|
|
3
3
|
gem 'rake'
|
|
4
|
-
gem 'excon', '>= 0.0.
|
|
4
|
+
gem 'excon', '>= 0.0.24'
|
|
5
5
|
gem 'formatador', ">= 0.0.10"
|
|
6
6
|
gem 'json', ">= 0"
|
|
7
7
|
gem 'mime-types', ">= 0"
|
|
@@ -10,3 +10,4 @@ gem 'nokogiri', ">= 0"
|
|
|
10
10
|
gem 'ruby-hmac', ">= 0"
|
|
11
11
|
gem 'rspec', '>= 0'
|
|
12
12
|
gem 'shindo', '>= 0'
|
|
13
|
+
gem 'builder', '>= 0'
|
data/Gemfile.lock
CHANGED
|
@@ -8,7 +8,7 @@ dependencies:
|
|
|
8
8
|
group:
|
|
9
9
|
- :default
|
|
10
10
|
version: ">= 0"
|
|
11
|
-
|
|
11
|
+
rspec:
|
|
12
12
|
group:
|
|
13
13
|
- :default
|
|
14
14
|
version: ">= 0"
|
|
@@ -16,22 +16,26 @@ dependencies:
|
|
|
16
16
|
group:
|
|
17
17
|
- :default
|
|
18
18
|
version: ">= 0"
|
|
19
|
-
|
|
19
|
+
ruby-hmac:
|
|
20
20
|
group:
|
|
21
21
|
- :default
|
|
22
22
|
version: ">= 0"
|
|
23
|
-
|
|
23
|
+
json:
|
|
24
24
|
group:
|
|
25
25
|
- :default
|
|
26
26
|
version: ">= 0"
|
|
27
|
-
|
|
27
|
+
net-ssh:
|
|
28
28
|
group:
|
|
29
29
|
- :default
|
|
30
30
|
version: ">= 0"
|
|
31
31
|
excon:
|
|
32
32
|
group:
|
|
33
33
|
- :default
|
|
34
|
-
version: ">= 0.0.
|
|
34
|
+
version: ">= 0.0.24"
|
|
35
|
+
builder:
|
|
36
|
+
group:
|
|
37
|
+
- :default
|
|
38
|
+
version: ">= 0"
|
|
35
39
|
shindo:
|
|
36
40
|
group:
|
|
37
41
|
- :default
|
|
@@ -43,8 +47,10 @@ dependencies:
|
|
|
43
47
|
specs:
|
|
44
48
|
- rake:
|
|
45
49
|
version: 0.8.7
|
|
50
|
+
- builder:
|
|
51
|
+
version: 2.1.2
|
|
46
52
|
- excon:
|
|
47
|
-
version: 0.0.
|
|
53
|
+
version: 0.0.24
|
|
48
54
|
- formatador:
|
|
49
55
|
version: 0.0.14
|
|
50
56
|
- gestalt:
|
|
@@ -63,7 +69,7 @@ specs:
|
|
|
63
69
|
version: 0.4.0
|
|
64
70
|
- shindo:
|
|
65
71
|
version: 0.0.18
|
|
66
|
-
hash:
|
|
72
|
+
hash: 9a6ccfd107913e3f8ca98af1fe437f5d2b7b112a
|
|
67
73
|
sources:
|
|
68
74
|
- Rubygems:
|
|
69
75
|
uri: http://gemcutter.org
|
data/bin/fog
CHANGED
|
@@ -15,6 +15,7 @@ require 'fog/local/bin'
|
|
|
15
15
|
require 'fog/rackspace/bin'
|
|
16
16
|
require 'fog/slicehost/bin'
|
|
17
17
|
require 'fog/terremark/bin'
|
|
18
|
+
require 'fog/vcloud/bin'
|
|
18
19
|
|
|
19
20
|
if ARGV.length > 1
|
|
20
21
|
print(instance_eval(ARGV[1..-1].join(' ')).to_json)
|
|
@@ -37,6 +38,11 @@ else
|
|
|
37
38
|
end
|
|
38
39
|
print "Welcome to fog interactive!\n"
|
|
39
40
|
print "Your '#{Fog.credential.to_s}' configuration provides access to #{available_services}.\n"
|
|
41
|
+
Fog.services.each do |service|
|
|
42
|
+
if service.respond_to?(:startup_notice)
|
|
43
|
+
service.send(:startup_notice)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
40
46
|
|
|
41
47
|
catch(:IRB_EXIT) { @irb.eval_input }
|
|
42
48
|
|
data/fog.gemspec
CHANGED
|
@@ -7,8 +7,8 @@ Gem::Specification.new do |s|
|
|
|
7
7
|
## If your rubyforge_project name is different, then edit it and comment out
|
|
8
8
|
## the sub! line in the Rakefile
|
|
9
9
|
s.name = 'fog'
|
|
10
|
-
s.version = '0.0.
|
|
11
|
-
s.date = '2010-05-
|
|
10
|
+
s.version = '0.0.94'
|
|
11
|
+
s.date = '2010-05-13'
|
|
12
12
|
s.rubyforge_project = 'fog'
|
|
13
13
|
|
|
14
14
|
## Make sure your summary is short. The description may be as long
|
|
@@ -42,7 +42,7 @@ Gem::Specification.new do |s|
|
|
|
42
42
|
|
|
43
43
|
## List your runtime dependencies here. Runtime dependencies are those
|
|
44
44
|
## that are needed for an end user to actually USE your code.
|
|
45
|
-
s.add_dependency('excon', '>=0.0.
|
|
45
|
+
s.add_dependency('excon', '>=0.0.24')
|
|
46
46
|
s.add_dependency('formatador', '>=0.0.10')
|
|
47
47
|
s.add_dependency('json')
|
|
48
48
|
s.add_dependency('mime-types')
|
|
@@ -126,6 +126,9 @@ Gem::Specification.new do |s|
|
|
|
126
126
|
lib/fog/aws/parsers/s3/copy_object.rb
|
|
127
127
|
lib/fog/aws/parsers/s3/get_bucket.rb
|
|
128
128
|
lib/fog/aws/parsers/s3/get_bucket_location.rb
|
|
129
|
+
lib/fog/aws/parsers/s3/get_bucket_logging.rb
|
|
130
|
+
lib/fog/aws/parsers/s3/get_bucket_object_versions.rb
|
|
131
|
+
lib/fog/aws/parsers/s3/get_bucket_versioning.rb
|
|
129
132
|
lib/fog/aws/parsers/s3/get_request_payment.rb
|
|
130
133
|
lib/fog/aws/parsers/s3/get_service.rb
|
|
131
134
|
lib/fog/aws/parsers/simpledb/basic.rb
|
|
@@ -178,6 +181,9 @@ Gem::Specification.new do |s|
|
|
|
178
181
|
lib/fog/aws/requests/s3/get_bucket.rb
|
|
179
182
|
lib/fog/aws/requests/s3/get_bucket_acl.rb
|
|
180
183
|
lib/fog/aws/requests/s3/get_bucket_location.rb
|
|
184
|
+
lib/fog/aws/requests/s3/get_bucket_logging.rb
|
|
185
|
+
lib/fog/aws/requests/s3/get_bucket_object_versions.rb
|
|
186
|
+
lib/fog/aws/requests/s3/get_bucket_versioning.rb
|
|
181
187
|
lib/fog/aws/requests/s3/get_object.rb
|
|
182
188
|
lib/fog/aws/requests/s3/get_object_acl.rb
|
|
183
189
|
lib/fog/aws/requests/s3/get_object_torrent.rb
|
|
@@ -187,6 +193,8 @@ Gem::Specification.new do |s|
|
|
|
187
193
|
lib/fog/aws/requests/s3/head_object.rb
|
|
188
194
|
lib/fog/aws/requests/s3/put_bucket.rb
|
|
189
195
|
lib/fog/aws/requests/s3/put_bucket_acl.rb
|
|
196
|
+
lib/fog/aws/requests/s3/put_bucket_logging.rb
|
|
197
|
+
lib/fog/aws/requests/s3/put_bucket_versioning.rb
|
|
190
198
|
lib/fog/aws/requests/s3/put_object.rb
|
|
191
199
|
lib/fog/aws/requests/s3/put_request_payment.rb
|
|
192
200
|
lib/fog/aws/requests/simpledb/batch_put_attributes.rb
|
|
@@ -344,6 +352,25 @@ Gem::Specification.new do |s|
|
|
|
344
352
|
lib/fog/terremark/requests/shared/power_shutdown.rb
|
|
345
353
|
lib/fog/terremark/shared.rb
|
|
346
354
|
lib/fog/terremark/vcloud.rb
|
|
355
|
+
lib/fog/vcloud.rb
|
|
356
|
+
lib/fog/vcloud/bin.rb
|
|
357
|
+
lib/fog/vcloud/parser.rb
|
|
358
|
+
lib/fog/vcloud/parsers/get_organization.rb
|
|
359
|
+
lib/fog/vcloud/parsers/get_vdc.rb
|
|
360
|
+
lib/fog/vcloud/parsers/get_versions.rb
|
|
361
|
+
lib/fog/vcloud/parsers/login.rb
|
|
362
|
+
lib/fog/vcloud/requests/get_organization.rb
|
|
363
|
+
lib/fog/vcloud/requests/get_vdc.rb
|
|
364
|
+
lib/fog/vcloud/requests/get_versions.rb
|
|
365
|
+
lib/fog/vcloud/requests/login.rb
|
|
366
|
+
lib/fog/vcloud/terremark/all.rb
|
|
367
|
+
lib/fog/vcloud/terremark/ecloud.rb
|
|
368
|
+
lib/fog/vcloud/terremark/ecloud/parsers/get_vdc.rb
|
|
369
|
+
lib/fog/vcloud/terremark/ecloud/requests/get_vdc.rb
|
|
370
|
+
lib/fog/vcloud/terremark/ecloud/requests/login.rb
|
|
371
|
+
lib/fog/vcloud/terremark/vcloud.rb
|
|
372
|
+
lib/fog/vcloud/terremark/vcloud/parsers/get_vdc.rb
|
|
373
|
+
lib/fog/vcloud/terremark/vcloud/requests/get_vdc.rb
|
|
347
374
|
spec/aws/models/ec2/address_spec.rb
|
|
348
375
|
spec/aws/models/ec2/addresses_spec.rb
|
|
349
376
|
spec/aws/models/ec2/flavors_spec.rb
|
|
@@ -420,6 +447,16 @@ Gem::Specification.new do |s|
|
|
|
420
447
|
spec/slicehost/models/server_spec.rb
|
|
421
448
|
spec/slicehost/models/servers_spec.rb
|
|
422
449
|
spec/spec_helper.rb
|
|
450
|
+
spec/vcloud/bin_spec.rb
|
|
451
|
+
spec/vcloud/requests/get_organization_spec.rb
|
|
452
|
+
spec/vcloud/requests/get_vdc_spec.rb
|
|
453
|
+
spec/vcloud/requests/get_versions_spec.rb
|
|
454
|
+
spec/vcloud/requests/login_spec.rb
|
|
455
|
+
spec/vcloud/spec_helper.rb
|
|
456
|
+
spec/vcloud/terremark/ecloud/requests/get_vdc_spec.rb
|
|
457
|
+
spec/vcloud/terremark/ecloud/requests/login_spec.rb
|
|
458
|
+
spec/vcloud/terremark/vcloud/requests/get_vdc_spec.rb
|
|
459
|
+
spec/vcloud/vcloud_spec.rb
|
|
423
460
|
tests/aws/helper.rb
|
|
424
461
|
tests/aws/requests/ec2/address_tests.rb
|
|
425
462
|
tests/aws/requests/ec2/snapshot_tests.rb
|
data/lib/fog.rb
CHANGED
|
@@ -30,11 +30,12 @@ require 'fog/local'
|
|
|
30
30
|
require 'fog/rackspace'
|
|
31
31
|
require 'fog/slicehost'
|
|
32
32
|
require 'fog/terremark'
|
|
33
|
+
require 'fog/vcloud'
|
|
33
34
|
|
|
34
35
|
module Fog
|
|
35
36
|
|
|
36
37
|
unless const_defined?(:VERSION)
|
|
37
|
-
VERSION = '0.0.
|
|
38
|
+
VERSION = '0.0.94'
|
|
38
39
|
end
|
|
39
40
|
|
|
40
41
|
module Mock
|
data/lib/fog/aws.rb
CHANGED
|
@@ -46,6 +46,14 @@ module Fog
|
|
|
46
46
|
sprintf("%0.10f", rand / 100).to_f
|
|
47
47
|
end
|
|
48
48
|
|
|
49
|
+
def self.dns_name_for(ip_address)
|
|
50
|
+
"ec2-#{ip_address.gsub('.','-')}.compute-1.amazonaws.com"
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def self.private_dns_name_for(ip_address)
|
|
54
|
+
"ip-#{ip_address.gsub('.','-')}.ec2.internal"
|
|
55
|
+
end
|
|
56
|
+
|
|
49
57
|
def self.console_output
|
|
50
58
|
'This is my console. There are many like it, but this one is mine. My console is my best friend. It is my life. I must master it as I master my life. My console, without me, is useless. Without my console, I am useless.'
|
|
51
59
|
end
|
|
@@ -164,17 +172,13 @@ module Fog
|
|
|
164
172
|
end
|
|
165
173
|
|
|
166
174
|
def self.numbers(length)
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
length
|
|
170
|
-
)
|
|
175
|
+
max = ('9' * length).to_i
|
|
176
|
+
rand(max).to_s
|
|
171
177
|
end
|
|
172
178
|
|
|
173
179
|
def self.hex(length)
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
length
|
|
177
|
-
)
|
|
180
|
+
max = ('f' * length).to_i(16)
|
|
181
|
+
rand(max).to_s(16)
|
|
178
182
|
end
|
|
179
183
|
|
|
180
184
|
def self.base64(length)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Parsers
|
|
3
|
+
module AWS
|
|
4
|
+
module S3
|
|
5
|
+
|
|
6
|
+
class AccessControlList < Fog::Parsers::Base
|
|
7
|
+
|
|
8
|
+
def reset
|
|
9
|
+
@grant = { 'Grantee' => {} }
|
|
10
|
+
@response = { 'BucketLoggingStatus' => {} }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def end_element(name)
|
|
14
|
+
case name
|
|
15
|
+
when 'DisplayName', 'ID'
|
|
16
|
+
if @in_access_control_list
|
|
17
|
+
@grant['Grantee'][name] = @value
|
|
18
|
+
else
|
|
19
|
+
@response['Owner'][name] = @value
|
|
20
|
+
end
|
|
21
|
+
when 'Grant'
|
|
22
|
+
@response['BucketLoggingStatus']['LoggingEnabled']['TargetGrants'] << @grant
|
|
23
|
+
@grant = { 'Grantee' => {} }
|
|
24
|
+
when 'LoggingEnabled'
|
|
25
|
+
@response['BucketLoggingStatus']['LoggingEnabled'] = { 'TargetGrants' => [] }
|
|
26
|
+
when 'Permission'
|
|
27
|
+
@grant[name] = @value
|
|
28
|
+
when 'TargetBucket', 'TargetPrefix'
|
|
29
|
+
@response['BucketLoggingStatus'][name] = @value
|
|
30
|
+
when 'URI'
|
|
31
|
+
@grant['Grantee'][name] = @value
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Parsers
|
|
3
|
+
module AWS
|
|
4
|
+
module S3
|
|
5
|
+
|
|
6
|
+
class GetBucketObjectVersions < Fog::Parsers::Base
|
|
7
|
+
|
|
8
|
+
def reset
|
|
9
|
+
@delete_marker = { 'Owner' => {} }
|
|
10
|
+
@version = { 'Owner' => {} }
|
|
11
|
+
|
|
12
|
+
@in_delete_marke = false
|
|
13
|
+
@in_version = false
|
|
14
|
+
|
|
15
|
+
@response = { 'Versions' => [] }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def start_element(name, attrs = [])
|
|
19
|
+
super
|
|
20
|
+
case name
|
|
21
|
+
when 'DeleteMarker'
|
|
22
|
+
@in_delete_marker = true
|
|
23
|
+
when 'Version'
|
|
24
|
+
@in_version = true
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def end_element(name)
|
|
29
|
+
case name
|
|
30
|
+
when 'DeleteMarker'
|
|
31
|
+
@response['Versions'] << {'DeleteMarker' => @delete_marker }
|
|
32
|
+
@delete_marker = { 'Owner' => {} }
|
|
33
|
+
@in_delete_marker = false
|
|
34
|
+
when 'Version'
|
|
35
|
+
@response['Versions'] << {'Version' => @version }
|
|
36
|
+
@version = { 'Owner' => {} }
|
|
37
|
+
@in_version = false
|
|
38
|
+
when 'DisplayName', 'ID'
|
|
39
|
+
if @in_delete_marker
|
|
40
|
+
@delete_marker
|
|
41
|
+
elsif @in_version
|
|
42
|
+
@version
|
|
43
|
+
end['Owner'][name] = @value
|
|
44
|
+
when 'ETag'
|
|
45
|
+
@version[name] = @value.gsub('"', '')
|
|
46
|
+
when 'IsLatest'
|
|
47
|
+
if @in_delete_marker
|
|
48
|
+
@delete_marker
|
|
49
|
+
elsif @in_version
|
|
50
|
+
@version
|
|
51
|
+
end['IsLatest'] = if @value == 'true'
|
|
52
|
+
true
|
|
53
|
+
else
|
|
54
|
+
false
|
|
55
|
+
end
|
|
56
|
+
when 'IsTruncated'
|
|
57
|
+
if @value == 'true'
|
|
58
|
+
@response['IsTruncated'] = true
|
|
59
|
+
else
|
|
60
|
+
@response['IsTruncated'] = false
|
|
61
|
+
end
|
|
62
|
+
when 'LastModified'
|
|
63
|
+
if @in_delete_marker
|
|
64
|
+
@delete_marker
|
|
65
|
+
elsif @in_version
|
|
66
|
+
@version
|
|
67
|
+
end['LastModified'] = Time.parse(@value)
|
|
68
|
+
when 'KeyMarker', 'Name', 'Prefix', 'VersionIdMarker'
|
|
69
|
+
@response[name] = @value
|
|
70
|
+
when 'MaxKeys'
|
|
71
|
+
@response['MaxKeys'] = @value.to_i
|
|
72
|
+
when 'Size'
|
|
73
|
+
@version['Size'] = @value.to_i
|
|
74
|
+
when 'Key', 'Name', 'StorageClass', 'VersionId'
|
|
75
|
+
if @in_delete_marker
|
|
76
|
+
@delete_marker
|
|
77
|
+
elsif @in_version
|
|
78
|
+
@version
|
|
79
|
+
end[name] = @value
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Parsers
|
|
3
|
+
module AWS
|
|
4
|
+
module S3
|
|
5
|
+
|
|
6
|
+
class GetBucketVersioning < Fog::Parsers::Base
|
|
7
|
+
|
|
8
|
+
def reset
|
|
9
|
+
@response = { 'VersioningConfiguration' => {} }
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def end_element(name)
|
|
13
|
+
case name
|
|
14
|
+
when 'Status'
|
|
15
|
+
@response['VersioningConfiguration'][name] = @value
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -34,6 +34,9 @@ module Fog
|
|
|
34
34
|
address = @data[:addresses][public_ip]
|
|
35
35
|
if instance && address
|
|
36
36
|
address['instanceId'] = instance_id
|
|
37
|
+
instance['originalIpAddress'] = instance['ipAddress']
|
|
38
|
+
instance['ipAddress'] = public_ip
|
|
39
|
+
instance['dnsName'] = Fog::AWS::Mock.dns_name_for(public_ip)
|
|
37
40
|
response.status = 200
|
|
38
41
|
response.body = {
|
|
39
42
|
'requestId' => Fog::AWS::Mock.request_id,
|
|
@@ -77,9 +77,10 @@ module Fog
|
|
|
77
77
|
case instance['instanceState']['name']
|
|
78
78
|
when 'pending'
|
|
79
79
|
if Time.now - instance['launchTime'] > Fog::Mock.delay
|
|
80
|
-
instance['
|
|
80
|
+
instance['ipAddress'] = Fog::AWS::Mock.ip_address
|
|
81
|
+
instance['dnsName'] = Fog::AWS::Mock.dns_name_for(instance['ipAddress'])
|
|
81
82
|
instance['privateIpAddress'] = Fog::AWS::Mock.ip_address
|
|
82
|
-
instance['privateDnsName'] =
|
|
83
|
+
instance['privateDnsName'] = Fog::AWS::Mock.private_dns_name_for(instance['privateIpAddress'])
|
|
83
84
|
instance['instanceState'] = { 'code' => 16, 'name' => 'running' }
|
|
84
85
|
end
|
|
85
86
|
when 'rebooting'
|
|
@@ -105,7 +106,7 @@ module Fog
|
|
|
105
106
|
'ownerId' => instance['ownerId'],
|
|
106
107
|
'reservationId' => instance['reservationId']
|
|
107
108
|
}
|
|
108
|
-
reservation_set[instance['reservationId']]['instancesSet'] << instance.reject{|key,value| !['amiLaunchIndex', 'blockDeviceMapping', 'dnsName', 'imageId', 'instanceId', 'instanceState', 'instanceType', 'kernelId', 'keyName', 'launchTime', 'monitoring', 'placement', 'privateDnsName', 'productCodes', 'ramdiskId', 'reason', 'rootDeviceType'].include?(key)}
|
|
109
|
+
reservation_set[instance['reservationId']]['instancesSet'] << instance.reject{|key,value| !['amiLaunchIndex', 'blockDeviceMapping', 'dnsName', 'imageId', 'instanceId', 'instanceState', 'instanceType', 'ipAddress', 'kernelId', 'keyName', 'launchTime', 'monitoring', 'placement', 'privateDnsName', 'privateIpAddress', 'productCodes', 'ramdiskId', 'reason', 'rootDeviceType'].include?(key)}
|
|
109
110
|
end
|
|
110
111
|
end
|
|
111
112
|
|
|
@@ -29,6 +29,10 @@ module Fog
|
|
|
29
29
|
response = Excon::Response.new
|
|
30
30
|
response.status = 200
|
|
31
31
|
if address = @data[:addresses][public_ip]
|
|
32
|
+
instance_id = address['instanceId']
|
|
33
|
+
instance = @data[:instances][instance_id]
|
|
34
|
+
instance['ipAddress'] = instance['originalIpAddress']
|
|
35
|
+
instance['dnsName'] = Fog::AWS::Mock.dns_name_for(instance['ipAddress'])
|
|
32
36
|
address['instanceId'] = nil
|
|
33
37
|
response.status = 200
|
|
34
38
|
response.body = {
|
|
@@ -8,17 +8,18 @@ module Fog
|
|
|
8
8
|
# ==== Parameters
|
|
9
9
|
# * bucket_name<~String> - name of bucket to list object keys from
|
|
10
10
|
# * options<~Hash> - config arguments for list. Defaults to {}.
|
|
11
|
-
# * '
|
|
11
|
+
# * 'delimiter'<~String> - causes keys with the same string between the prefix
|
|
12
|
+
# value and the first occurence of delimiter to be rolled up
|
|
12
13
|
# * 'marker'<~String> - limits object keys to only those that appear
|
|
13
14
|
# lexicographically after its value.
|
|
14
15
|
# * 'max-keys'<~Integer> - limits number of object keys returned
|
|
15
|
-
# * '
|
|
16
|
-
# value and the first occurence of delimiter to be rolled up
|
|
16
|
+
# * 'prefix'<~String> - limits object keys to those beginning with its value.
|
|
17
17
|
#
|
|
18
18
|
# ==== Returns
|
|
19
19
|
# * response<~Excon::Response>:
|
|
20
20
|
# * body<~Hash>:
|
|
21
21
|
# * 'Delimeter'<~String> - Delimiter specified for query
|
|
22
|
+
# * 'IsTruncated'<~Boolean> - Whether or not the listing is truncated
|
|
22
23
|
# * 'Marker'<~String> - Marker specified for query
|
|
23
24
|
# * 'MaxKeys'<~Integer> - Maximum number of keys specified for query
|
|
24
25
|
# * 'Name'<~String> - Name of the bucket
|
|
@@ -32,14 +33,14 @@ module Fog
|
|
|
32
33
|
# * 'ID'<~String> - Id of object owner
|
|
33
34
|
# * 'Size'<~Integer> - Size of object
|
|
34
35
|
# * 'StorageClass'<~String> - Storage class of object
|
|
36
|
+
#
|
|
35
37
|
def get_bucket(bucket_name, options = {})
|
|
36
38
|
unless bucket_name
|
|
37
39
|
raise ArgumentError.new('bucket_name is required')
|
|
38
40
|
end
|
|
39
|
-
options.reject! {|key, value| !['prefix', 'marker', 'max-keys', 'delimiter'].include?(key)}
|
|
40
41
|
query = ''
|
|
41
42
|
for key, value in options
|
|
42
|
-
query << "#{key}=#{CGI.escape(value.to_s).gsub(/\+/, '%20')}
|
|
43
|
+
query << "#{key}=#{CGI.escape(value.to_s).gsub(/\+/, '%20')}&"
|
|
43
44
|
end
|
|
44
45
|
query.chop!
|
|
45
46
|
request({
|