fog 0.0.42 → 0.0.43

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.
Files changed (79) hide show
  1. data/README.rdoc +1 -1
  2. data/Rakefile +1 -0
  3. data/VERSION.yml +2 -2
  4. data/bin/fog +23 -102
  5. data/fog.gemspec +48 -2
  6. data/lib/fog.rb +17 -46
  7. data/lib/fog/aws.rb +10 -4
  8. data/lib/fog/aws/bin.rb +69 -0
  9. data/lib/fog/aws/ec2.rb +82 -86
  10. data/lib/fog/aws/requests/ec2/authorize_security_group_ingress.rb +20 -16
  11. data/lib/fog/aws/requests/ec2/revoke_security_group_ingress.rb +19 -15
  12. data/lib/fog/aws/requests/s3/get_object.rb +4 -0
  13. data/lib/fog/aws/requests/simpledb/select.rb +42 -24
  14. data/lib/fog/aws/s3.rb +28 -25
  15. data/lib/fog/aws/simpledb.rb +21 -17
  16. data/lib/fog/bin.rb +79 -0
  17. data/lib/fog/collection.rb +20 -9
  18. data/lib/fog/model.rb +9 -4
  19. data/lib/fog/rackspace.rb +10 -3
  20. data/lib/fog/rackspace/bin.rb +44 -0
  21. data/lib/fog/rackspace/files.rb +16 -9
  22. data/lib/fog/rackspace/requests/files/delete_container.rb +2 -1
  23. data/lib/fog/rackspace/requests/files/delete_object.rb +2 -1
  24. data/lib/fog/rackspace/requests/files/get_container.rb +2 -1
  25. data/lib/fog/rackspace/requests/files/get_containers.rb +2 -1
  26. data/lib/fog/rackspace/requests/files/head_container.rb +2 -1
  27. data/lib/fog/rackspace/requests/files/head_containers.rb +2 -1
  28. data/lib/fog/rackspace/requests/files/put_container.rb +2 -1
  29. data/lib/fog/rackspace/requests/files/put_object.rb +2 -1
  30. data/lib/fog/rackspace/requests/servers/get_flavor_details.rb +1 -0
  31. data/lib/fog/rackspace/requests/servers/list_flavors.rb +1 -0
  32. data/lib/fog/rackspace/requests/servers/list_flavors_detail.rb +1 -0
  33. data/lib/fog/rackspace/requests/servers/list_images.rb +0 -1
  34. data/lib/fog/rackspace/requests/servers/reboot_server.rb +2 -1
  35. data/lib/fog/rackspace/servers.rb +31 -26
  36. data/lib/fog/slicehost.rb +35 -17
  37. data/lib/fog/slicehost/bin.rb +42 -0
  38. data/lib/fog/slicehost/models/flavor.rb +41 -0
  39. data/lib/fog/slicehost/models/flavors.rb +33 -0
  40. data/lib/fog/slicehost/models/image.rb +13 -0
  41. data/lib/fog/slicehost/models/images.rb +35 -0
  42. data/lib/fog/slicehost/models/server.rb +55 -0
  43. data/lib/fog/slicehost/models/servers.rb +37 -0
  44. data/lib/fog/slicehost/parsers/get_flavor.rb +24 -0
  45. data/lib/fog/slicehost/parsers/get_image.rb +24 -0
  46. data/lib/fog/slicehost/parsers/get_slice.rb +29 -0
  47. data/lib/fog/slicehost/requests/create_slice.rb +2 -1
  48. data/lib/fog/slicehost/requests/delete_slice.rb +2 -1
  49. data/lib/fog/slicehost/requests/get_backups.rb +1 -0
  50. data/lib/fog/slicehost/requests/get_flavor.rb +42 -0
  51. data/lib/fog/slicehost/requests/get_flavors.rb +1 -0
  52. data/lib/fog/slicehost/requests/get_image.rb +40 -0
  53. data/lib/fog/slicehost/requests/get_images.rb +1 -0
  54. data/lib/fog/slicehost/requests/get_slice.rb +48 -0
  55. data/lib/fog/slicehost/requests/get_slices.rb +1 -0
  56. data/lib/fog/slicehost/requests/reboot_slice.rb +49 -0
  57. data/lib/fog/terremark.rb +71 -0
  58. data/lib/fog/terremark/bin.rb +30 -0
  59. data/lib/fog/terremark/parsers/get_catalog.rb +43 -0
  60. data/lib/fog/terremark/parsers/get_catalog_item.rb +44 -0
  61. data/lib/fog/terremark/parsers/get_organization.rb +44 -0
  62. data/lib/fog/terremark/parsers/get_organizations.rb +26 -0
  63. data/lib/fog/terremark/parsers/get_vapp_template.rb +44 -0
  64. data/lib/fog/terremark/parsers/get_vdc.rb +105 -0
  65. data/lib/fog/terremark/requests/get_catalog.rb +44 -0
  66. data/lib/fog/terremark/requests/get_catalog_item.rb +47 -0
  67. data/lib/fog/terremark/requests/get_organization.rb +46 -0
  68. data/lib/fog/terremark/requests/get_organizations.rb +42 -0
  69. data/lib/fog/terremark/requests/get_vapp_template.rb +47 -0
  70. data/lib/fog/terremark/requests/get_vdc.rb +47 -0
  71. data/spec/slicehost/models/server_spec.rb +51 -0
  72. data/spec/slicehost/models/servers_spec.rb +22 -0
  73. data/spec/slicehost/requests/get_flavor_spec.rb +24 -0
  74. data/spec/slicehost/requests/get_image_spec.rb +24 -0
  75. data/spec/slicehost/requests/get_slice_spec.rb +41 -0
  76. data/spec/slicehost/requests/get_slices_spec.rb +20 -9
  77. data/spec/slicehost/requests/reboot_slice_spec.rb +41 -0
  78. data/spec/spec_helper.rb +10 -0
  79. metadata +55 -2
data/README.rdoc CHANGED
@@ -93,7 +93,7 @@ Now we will try again, but with Rackspace
93
93
  directory.files.create(:key => 'filename', :body => 'filebody')
94
94
 
95
95
  # connect to your directory
96
- directory = connection.directories.get('filename')
96
+ directory = connection.directories.get('directoryname')
97
97
 
98
98
  # get your file
99
99
  file = directory.files.get('filename')
data/Rakefile CHANGED
@@ -8,6 +8,7 @@ begin
8
8
  require 'jeweler'
9
9
  Jeweler::Tasks.new do |gem|
10
10
  gem.add_dependency('excon', '>=0.0.18')
11
+ gem.add_dependency('formatador')
11
12
  gem.add_dependency('json')
12
13
  gem.add_dependency('mime-types')
13
14
  gem.add_dependency('nokogiri')
data/VERSION.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 0
4
- :patch: 42
5
- :build:
4
+ :patch: 43
5
+ :build:
data/bin/fog CHANGED
@@ -1,116 +1,37 @@
1
1
  #!/usr/bin/env ruby
2
- require File.join(File.dirname(__FILE__), '..', 'lib', 'fog')
2
+ lib_dir = File.join(File.dirname(__FILE__), '..', 'lib')
3
+ require File.join(lib_dir, 'fog')
3
4
  require 'irb'
4
5
  require 'yaml'
5
6
 
6
- module Fog
7
- module Credentials
8
- Fog.credential = (ARGV.first && :"#{ARGV.first}") || :default
9
- unless Fog.credentials
10
- exit
11
- end
12
- end
13
- end
14
-
15
- module AWS
16
- class << self
17
- credential = (ARGV.first && :"#{ARGV.first}") || :default
18
- if Fog.credentials[:aws_access_key_id] && Fog.credentials[:aws_secret_access_key]
19
-
20
- def [](service)
21
- @@connections ||= Hash.new do |hash, key|
22
- credentials = Fog.credentials.reject do |k, v|
23
- ![:aws_access_key_id, :aws_secret_access_key].include?(k)
24
- end
25
- hash[key] = case key
26
- when :ec2
27
- Fog::AWS::EC2.new(credentials)
28
- when :s3
29
- Fog::AWS::S3.new(credentials)
30
- end
31
- end
32
- @@connections[service]
33
- end
34
-
35
- def addresses
36
- self[:ec2].addresses
37
- end
38
-
39
- def directories
40
- self[:s3].directories
41
- end
42
-
43
- def flavors
44
- self[:ec2].flavors
45
- end
46
-
47
- def images
48
- self[:ec2].images
49
- end
50
-
51
- def servers
52
- self[:ec2].servers
53
- end
54
-
55
- def key_pairs
56
- self[:ec2].key_pairs
57
- end
58
-
59
- def security_groups
60
- self[:ec2].security_groups
61
- end
7
+ require File.join(lib_dir, 'fog', 'bin')
62
8
 
63
- def snapshots
64
- self[:ec2].snapshots
65
- end
66
-
67
- def volumes
68
- self[:ec2].volumes
69
- end
70
-
71
- end
72
- end
9
+ Fog.credential = (ARGV.first && :"#{ARGV.first}") || :default
10
+ unless Fog.credentials
11
+ exit
73
12
  end
74
13
 
75
- module Rackspace
76
- class << self
77
- if Fog.credentials[:rackspace_api_key] && Fog.credentials[:rackspace_username]
78
-
79
- def [](service)
80
- @@connections ||= Hash.new do |hash, key|
81
- credential = (ARGV.first && :"#{ARGV.first}") || :default
82
- credentials = Fog.credentials.reject do |k,v|
83
- ![:rackspace_api_key, :rackspace_username].include?(k)
84
- end
85
- hash[key] = case key
86
- when :files
87
- Fog::Rackspace::Files.new(credentials)
88
- when :servers
89
- Fog::Rackspace::Servers.new(credentials)
90
- end
91
- end
92
- @@connections[service]
93
- end
94
-
95
- def flavors
96
- self[:servers].flavors
97
- end
98
-
99
- def images
100
- self[:servers].images
101
- end
102
-
103
- def servers
104
- self[:servers].servers
105
- end
106
-
107
- end
108
- end
109
- end
14
+ require File.join(lib_dir, 'fog', 'aws', 'bin')
15
+ require File.join(lib_dir, 'fog', 'rackspace', 'bin')
16
+ require File.join(lib_dir, 'fog', 'slicehost', 'bin')
17
+ require File.join(lib_dir, 'fog', 'terremark', 'bin')
110
18
 
111
19
  ARGV.clear # Avoid passing args to IRB
112
20
  IRB.setup(nil)
113
21
  @irb = IRB::Irb.new(nil)
114
22
  IRB.conf[:MAIN_CONTEXT] = @irb.context
23
+ IRB.conf[:PROMPT][:FOG] = IRB.conf[:PROMPT][:SIMPLE].dup
24
+ IRB.conf[:PROMPT][:FOG][:RETURN] = "%s\n"
25
+ @irb.context.prompt_mode = :FOG
115
26
  @irb.context.workspace = IRB::WorkSpace.new(binding)
27
+
28
+ services = Fog.services.map{|service| service.to_s}
29
+ available_services = if services.length > 1
30
+ services[0...-1].join(', ') << ' and ' << services[-1]
31
+ else
32
+ services.first
33
+ end
34
+ print "Welcome to fog interactive!\n"
35
+ print "Your '#{Fog.credential.to_s}' configuration provides access to #{available_services}.\n"
36
+
116
37
  catch(:IRB_EXIT) { @irb.eval_input }
data/fog.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{fog}
8
- s.version = "0.0.42"
8
+ s.version = "0.0.43"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["geemus (Wesley Beary)"]
12
- s.date = %q{2010-02-01}
12
+ s.date = %q{2010-02-15}
13
13
  s.default_executable = %q{fog}
14
14
  s.description = %q{brings clouds to you}
15
15
  s.email = %q{me@geemus.com}
@@ -30,6 +30,7 @@ Gem::Specification.new do |s|
30
30
  "fog.gemspec",
31
31
  "lib/fog.rb",
32
32
  "lib/fog/aws.rb",
33
+ "lib/fog/aws/bin.rb",
33
34
  "lib/fog/aws/ec2.rb",
34
35
  "lib/fog/aws/models/ec2/address.rb",
35
36
  "lib/fog/aws/models/ec2/addresses.rb",
@@ -132,11 +133,13 @@ Gem::Specification.new do |s|
132
133
  "lib/fog/aws/requests/simpledb/select.rb",
133
134
  "lib/fog/aws/s3.rb",
134
135
  "lib/fog/aws/simpledb.rb",
136
+ "lib/fog/bin.rb",
135
137
  "lib/fog/collection.rb",
136
138
  "lib/fog/connection.rb",
137
139
  "lib/fog/model.rb",
138
140
  "lib/fog/parser.rb",
139
141
  "lib/fog/rackspace.rb",
142
+ "lib/fog/rackspace/bin.rb",
140
143
  "lib/fog/rackspace/files.rb",
141
144
  "lib/fog/rackspace/models/servers/flavor.rb",
142
145
  "lib/fog/rackspace/models/servers/flavors.rb",
@@ -171,17 +174,45 @@ Gem::Specification.new do |s|
171
174
  "lib/fog/rackspace/requests/servers/update_server.rb",
172
175
  "lib/fog/rackspace/servers.rb",
173
176
  "lib/fog/slicehost.rb",
177
+ "lib/fog/slicehost/bin.rb",
178
+ "lib/fog/slicehost/models/flavor.rb",
179
+ "lib/fog/slicehost/models/flavors.rb",
180
+ "lib/fog/slicehost/models/image.rb",
181
+ "lib/fog/slicehost/models/images.rb",
182
+ "lib/fog/slicehost/models/server.rb",
183
+ "lib/fog/slicehost/models/servers.rb",
174
184
  "lib/fog/slicehost/parsers/create_slice.rb",
175
185
  "lib/fog/slicehost/parsers/get_backups.rb",
186
+ "lib/fog/slicehost/parsers/get_flavor.rb",
176
187
  "lib/fog/slicehost/parsers/get_flavors.rb",
188
+ "lib/fog/slicehost/parsers/get_image.rb",
177
189
  "lib/fog/slicehost/parsers/get_images.rb",
190
+ "lib/fog/slicehost/parsers/get_slice.rb",
178
191
  "lib/fog/slicehost/parsers/get_slices.rb",
179
192
  "lib/fog/slicehost/requests/create_slice.rb",
180
193
  "lib/fog/slicehost/requests/delete_slice.rb",
181
194
  "lib/fog/slicehost/requests/get_backups.rb",
195
+ "lib/fog/slicehost/requests/get_flavor.rb",
182
196
  "lib/fog/slicehost/requests/get_flavors.rb",
197
+ "lib/fog/slicehost/requests/get_image.rb",
183
198
  "lib/fog/slicehost/requests/get_images.rb",
199
+ "lib/fog/slicehost/requests/get_slice.rb",
184
200
  "lib/fog/slicehost/requests/get_slices.rb",
201
+ "lib/fog/slicehost/requests/reboot_slice.rb",
202
+ "lib/fog/terremark.rb",
203
+ "lib/fog/terremark/bin.rb",
204
+ "lib/fog/terremark/parsers/get_catalog.rb",
205
+ "lib/fog/terremark/parsers/get_catalog_item.rb",
206
+ "lib/fog/terremark/parsers/get_organization.rb",
207
+ "lib/fog/terremark/parsers/get_organizations.rb",
208
+ "lib/fog/terremark/parsers/get_vapp_template.rb",
209
+ "lib/fog/terremark/parsers/get_vdc.rb",
210
+ "lib/fog/terremark/requests/get_catalog.rb",
211
+ "lib/fog/terremark/requests/get_catalog_item.rb",
212
+ "lib/fog/terremark/requests/get_organization.rb",
213
+ "lib/fog/terremark/requests/get_organizations.rb",
214
+ "lib/fog/terremark/requests/get_vapp_template.rb",
215
+ "lib/fog/terremark/requests/get_vdc.rb",
185
216
  "spec/aws/models/ec2/address_spec.rb",
186
217
  "spec/aws/models/ec2/addresses_spec.rb",
187
218
  "spec/aws/models/ec2/key_pair_spec.rb",
@@ -279,12 +310,18 @@ Gem::Specification.new do |s|
279
310
  "spec/rackspace/requests/servers/update_server_spec.rb",
280
311
  "spec/shared_examples/server_examples.rb",
281
312
  "spec/shared_examples/servers_examples.rb",
313
+ "spec/slicehost/models/server_spec.rb",
314
+ "spec/slicehost/models/servers_spec.rb",
282
315
  "spec/slicehost/requests/create_slice_spec.rb",
283
316
  "spec/slicehost/requests/delete_slice_spec.rb",
284
317
  "spec/slicehost/requests/get_backups_spec.rb",
318
+ "spec/slicehost/requests/get_flavor_spec.rb",
285
319
  "spec/slicehost/requests/get_flavors_spec.rb",
320
+ "spec/slicehost/requests/get_image_spec.rb",
286
321
  "spec/slicehost/requests/get_images_spec.rb",
322
+ "spec/slicehost/requests/get_slice_spec.rb",
287
323
  "spec/slicehost/requests/get_slices_spec.rb",
324
+ "spec/slicehost/requests/reboot_slice_spec.rb",
288
325
  "spec/spec_helper.rb"
289
326
  ]
290
327
  s.homepage = %q{http://github.com/geemus/fog}
@@ -423,12 +460,18 @@ Gem::Specification.new do |s|
423
460
  "spec/rackspace/requests/servers/update_server_spec.rb",
424
461
  "spec/shared_examples/server_examples.rb",
425
462
  "spec/shared_examples/servers_examples.rb",
463
+ "spec/slicehost/models/server_spec.rb",
464
+ "spec/slicehost/models/servers_spec.rb",
426
465
  "spec/slicehost/requests/create_slice_spec.rb",
427
466
  "spec/slicehost/requests/delete_slice_spec.rb",
428
467
  "spec/slicehost/requests/get_backups_spec.rb",
468
+ "spec/slicehost/requests/get_flavor_spec.rb",
429
469
  "spec/slicehost/requests/get_flavors_spec.rb",
470
+ "spec/slicehost/requests/get_image_spec.rb",
430
471
  "spec/slicehost/requests/get_images_spec.rb",
472
+ "spec/slicehost/requests/get_slice_spec.rb",
431
473
  "spec/slicehost/requests/get_slices_spec.rb",
474
+ "spec/slicehost/requests/reboot_slice_spec.rb",
432
475
  "spec/spec_helper.rb"
433
476
  ]
434
477
 
@@ -438,12 +481,14 @@ Gem::Specification.new do |s|
438
481
 
439
482
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
440
483
  s.add_runtime_dependency(%q<excon>, [">= 0.0.18"])
484
+ s.add_runtime_dependency(%q<formatador>, [">= 0"])
441
485
  s.add_runtime_dependency(%q<json>, [">= 0"])
442
486
  s.add_runtime_dependency(%q<mime-types>, [">= 0"])
443
487
  s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
444
488
  s.add_runtime_dependency(%q<ruby-hmac>, [">= 0"])
445
489
  else
446
490
  s.add_dependency(%q<excon>, [">= 0.0.18"])
491
+ s.add_dependency(%q<formatador>, [">= 0"])
447
492
  s.add_dependency(%q<json>, [">= 0"])
448
493
  s.add_dependency(%q<mime-types>, [">= 0"])
449
494
  s.add_dependency(%q<nokogiri>, [">= 0"])
@@ -451,6 +496,7 @@ Gem::Specification.new do |s|
451
496
  end
452
497
  else
453
498
  s.add_dependency(%q<excon>, [">= 0.0.18"])
499
+ s.add_dependency(%q<formatador>, [">= 0"])
454
500
  s.add_dependency(%q<json>, [">= 0"])
455
501
  s.add_dependency(%q<mime-types>, [">= 0"])
456
502
  s.add_dependency(%q<nokogiri>, [">= 0"])
data/lib/fog.rb CHANGED
@@ -3,6 +3,7 @@ require 'base64'
3
3
  require 'cgi'
4
4
  require 'digest/md5'
5
5
  require 'excon'
6
+ require 'formatador'
6
7
  require 'hmac-sha1'
7
8
  require 'hmac-sha2'
8
9
  require 'json'
@@ -18,6 +19,8 @@ $LOAD_PATH.unshift __DIR__ unless
18
19
 
19
20
  module Fog
20
21
 
22
+ class MockNotImplemented < StandardError; end
23
+
21
24
  def self.mock!
22
25
  @mocking = true
23
26
  self.reload
@@ -27,55 +30,23 @@ module Fog
27
30
  !!@mocking
28
31
  end
29
32
 
30
- def self.reload
31
- load "fog/collection.rb"
32
- load "fog/connection.rb"
33
- load "fog/model.rb"
34
- load "fog/parser.rb"
35
-
36
- load "fog/aws.rb"
37
- load "fog/rackspace.rb"
38
- load "fog/slicehost.rb"
39
- end
40
-
41
- def self.credential=(new_credential)
42
- @credential = new_credential
43
- @credentials = nil
33
+ def self.dependencies
34
+ [
35
+ 'fog/collection.rb',
36
+ 'fog/connection.rb',
37
+ 'fog/model.rb',
38
+ 'fog/parser.rb',
39
+ 'fog/aws.rb',
40
+ 'fog/rackspace.rb',
41
+ 'fog/slicehost.rb',
42
+ 'fog/terremark.rb'
43
+ ]
44
44
  end
45
45
 
46
- def self.credential
47
- @credential || :default
48
- end
49
-
50
- def self.credentials
51
- @credentials ||= begin
52
- path = File.expand_path('~/.fog')
53
- credentials = if File.exists?(path)
54
- File.open(path) do |file|
55
- YAML.load(file.read)
56
- end
57
- else
58
- nil
59
- end
60
- unless credentials && credentials[credential]
61
- print("\n To run as '#{credential}', add credentials like the following to ~/.fog\n")
62
- yml = <<-YML
63
-
64
- :#{credential}:
65
- :aws_access_key_id: INTENTIONALLY_LEFT_BLANK
66
- :aws_secret_access_key: INTENTIONALLY_LEFT_BLANK
67
- :rackspace_api_key: INTENTIONALLY_LEFT_BLANK
68
- :rackspace_username: INTENTIONALLY_LEFT_BLANK
69
- :slicehost_password: INTENTIONALLY_LEFT_BLANK
70
-
71
- YML
72
- print(yml)
73
- raise(ArgumentError.new("Missing Credentials"))
74
- end
75
- credentials[credential]
76
- end
46
+ def self.reload
47
+ self.dependencies.each {|dependency| load(dependency)}
77
48
  end
78
49
 
79
50
  end
80
51
 
81
- Fog.reload
52
+ Fog.dependencies.each {|dependency| require(dependency)}
data/lib/fog/aws.rb CHANGED
@@ -1,10 +1,16 @@
1
1
  module Fog
2
2
  module AWS
3
3
 
4
+ def self.dependencies
5
+ [
6
+ 'fog/aws/ec2.rb',
7
+ 'fog/aws/simpledb.rb',
8
+ 'fog/aws/s3.rb'
9
+ ]
10
+ end
11
+
4
12
  def self.reload
5
- load "fog/aws/ec2.rb"
6
- load "fog/aws/simpledb.rb"
7
- load "fog/aws/s3.rb"
13
+ self.dependencies.each {|dependency| load(dependency)}
8
14
  end
9
15
 
10
16
  def self.indexed_param(key, values)
@@ -172,4 +178,4 @@ module Fog
172
178
  end
173
179
  end
174
180
 
175
- Fog::AWS.reload
181
+ Fog::AWS.dependencies.each {|dependency| require(dependency)}
@@ -0,0 +1,69 @@
1
+ module AWS
2
+ class << self
3
+ credential = (ARGV.first && :"#{ARGV.first}") || :default
4
+ if Fog.credentials[:aws_access_key_id] && Fog.credentials[:aws_secret_access_key]
5
+
6
+ def initialized?
7
+ true
8
+ end
9
+
10
+ def [](service)
11
+ @@connections ||= Hash.new do |hash, key|
12
+ credentials = Fog.credentials.reject do |k, v|
13
+ ![:aws_access_key_id, :aws_secret_access_key].include?(k)
14
+ end
15
+ hash[key] = case key
16
+ when :ec2
17
+ Fog::AWS::EC2.new(credentials)
18
+ when :s3
19
+ Fog::AWS::S3.new(credentials)
20
+ end
21
+ end
22
+ @@connections[service]
23
+ end
24
+
25
+ def addresses
26
+ self[:ec2].addresses
27
+ end
28
+
29
+ def directories
30
+ self[:s3].directories
31
+ end
32
+
33
+ def flavors
34
+ self[:ec2].flavors
35
+ end
36
+
37
+ def images
38
+ self[:ec2].images
39
+ end
40
+
41
+ def servers
42
+ self[:ec2].servers
43
+ end
44
+
45
+ def key_pairs
46
+ self[:ec2].key_pairs
47
+ end
48
+
49
+ def security_groups
50
+ self[:ec2].security_groups
51
+ end
52
+
53
+ def snapshots
54
+ self[:ec2].snapshots
55
+ end
56
+
57
+ def volumes
58
+ self[:ec2].volumes
59
+ end
60
+
61
+ else
62
+
63
+ def initialized?
64
+ false
65
+ end
66
+
67
+ end
68
+ end
69
+ end