fog 0.0.93 → 0.0.94
Sign up to get free protection for your applications and to get access to all the features.
- 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({
|