fog 0.0.56 → 0.0.57

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. data/Rakefile +1 -1
  2. data/VERSION.yml +1 -1
  3. data/fog.gemspec +4 -4
  4. data/lib/fog/aws.rb +4 -3
  5. data/lib/fog/aws/ec2.rb +136 -150
  6. data/lib/fog/aws/models/ec2/address.rb +3 -1
  7. data/lib/fog/aws/models/ec2/addresses.rb +20 -6
  8. data/lib/fog/aws/models/ec2/flavor.rb +3 -1
  9. data/lib/fog/aws/models/ec2/flavors.rb +14 -3
  10. data/lib/fog/aws/models/ec2/image.rb +3 -1
  11. data/lib/fog/aws/models/ec2/images.rb +14 -3
  12. data/lib/fog/aws/models/ec2/key_pair.rb +3 -1
  13. data/lib/fog/aws/models/ec2/key_pairs.rb +14 -3
  14. data/lib/fog/aws/models/ec2/security_group.rb +3 -1
  15. data/lib/fog/aws/models/ec2/security_groups.rb +14 -3
  16. data/lib/fog/aws/models/ec2/server.rb +3 -1
  17. data/lib/fog/aws/models/ec2/servers.rb +14 -3
  18. data/lib/fog/aws/models/ec2/snapshot.rb +3 -1
  19. data/lib/fog/aws/models/ec2/snapshots.rb +18 -5
  20. data/lib/fog/aws/models/ec2/volume.rb +3 -1
  21. data/lib/fog/aws/models/ec2/volumes.rb +18 -5
  22. data/lib/fog/aws/models/s3/directories.rb +14 -3
  23. data/lib/fog/aws/models/s3/directory.rb +4 -1
  24. data/lib/fog/aws/models/s3/file.rb +3 -1
  25. data/lib/fog/aws/models/s3/files.rb +4 -1
  26. data/lib/fog/aws/parsers/simpledb/domain_metadata.rb +2 -0
  27. data/lib/fog/aws/parsers/simpledb/get_attributes.rb +2 -0
  28. data/lib/fog/aws/parsers/simpledb/list_domains.rb +2 -0
  29. data/lib/fog/aws/parsers/simpledb/select.rb +2 -0
  30. data/lib/fog/aws/requests/ec2/allocate_address.rb +11 -16
  31. data/lib/fog/aws/requests/ec2/associate_address.rb +14 -19
  32. data/lib/fog/aws/requests/ec2/attach_volume.rb +16 -21
  33. data/lib/fog/aws/requests/ec2/authorize_security_group_ingress.rb +29 -27
  34. data/lib/fog/aws/requests/ec2/create_key_pair.rb +13 -18
  35. data/lib/fog/aws/requests/ec2/create_security_group.rb +14 -19
  36. data/lib/fog/aws/requests/ec2/create_snapshot.rb +13 -18
  37. data/lib/fog/aws/requests/ec2/create_volume.rb +14 -19
  38. data/lib/fog/aws/requests/ec2/delete_key_pair.rb +12 -17
  39. data/lib/fog/aws/requests/ec2/delete_security_group.rb +13 -18
  40. data/lib/fog/aws/requests/ec2/delete_snapshot.rb +12 -17
  41. data/lib/fog/aws/requests/ec2/delete_volume.rb +13 -18
  42. data/lib/fog/aws/requests/ec2/describe_addresses.rb +11 -16
  43. data/lib/fog/aws/requests/ec2/describe_availability_zones.rb +9 -14
  44. data/lib/fog/aws/requests/ec2/describe_images.rb +9 -14
  45. data/lib/fog/aws/requests/ec2/describe_instances.rb +17 -22
  46. data/lib/fog/aws/requests/ec2/describe_key_pairs.rb +11 -16
  47. data/lib/fog/aws/requests/ec2/describe_regions.rb +9 -14
  48. data/lib/fog/aws/requests/ec2/describe_reserved_instances.rb +9 -14
  49. data/lib/fog/aws/requests/ec2/describe_security_groups.rb +11 -16
  50. data/lib/fog/aws/requests/ec2/describe_snapshots.rb +12 -17
  51. data/lib/fog/aws/requests/ec2/describe_volumes.rb +14 -19
  52. data/lib/fog/aws/requests/ec2/detach_volume.rb +11 -16
  53. data/lib/fog/aws/requests/ec2/disassociate_address.rb +12 -17
  54. data/lib/fog/aws/requests/ec2/get_console_output.rb +12 -17
  55. data/lib/fog/aws/requests/ec2/reboot_instances.rb +11 -16
  56. data/lib/fog/aws/requests/ec2/release_address.rb +12 -17
  57. data/lib/fog/aws/requests/ec2/revoke_security_group_ingress.rb +10 -15
  58. data/lib/fog/aws/requests/ec2/run_instances.rb +36 -38
  59. data/lib/fog/aws/requests/ec2/terminate_instances.rb +16 -20
  60. data/lib/fog/aws/requests/s3/copy_object.rb +9 -15
  61. data/lib/fog/aws/requests/s3/delete_bucket.rb +9 -16
  62. data/lib/fog/aws/requests/s3/delete_object.rb +6 -14
  63. data/lib/fog/aws/requests/s3/get_bucket.rb +9 -14
  64. data/lib/fog/aws/requests/s3/get_bucket_location.rb +8 -14
  65. data/lib/fog/aws/requests/s3/get_object.rb +7 -15
  66. data/lib/fog/aws/requests/s3/get_request_payment.rb +7 -13
  67. data/lib/fog/aws/requests/s3/get_service.rb +7 -13
  68. data/lib/fog/aws/requests/s3/head_object.rb +6 -14
  69. data/lib/fog/aws/requests/s3/put_bucket.rb +13 -21
  70. data/lib/fog/aws/requests/s3/put_object.rb +8 -16
  71. data/lib/fog/aws/requests/s3/put_request_payment.rb +7 -16
  72. data/lib/fog/aws/requests/simpledb/batch_put_attributes.rb +14 -21
  73. data/lib/fog/aws/requests/simpledb/create_domain.rb +11 -18
  74. data/lib/fog/aws/requests/simpledb/delete_attributes.rb +15 -22
  75. data/lib/fog/aws/requests/simpledb/delete_domain.rb +11 -18
  76. data/lib/fog/aws/requests/simpledb/domain_metadata.rb +14 -19
  77. data/lib/fog/aws/requests/simpledb/get_attributes.rb +19 -23
  78. data/lib/fog/aws/requests/simpledb/list_domains.rb +11 -16
  79. data/lib/fog/aws/requests/simpledb/put_attributes.rb +15 -15
  80. data/lib/fog/aws/requests/simpledb/select.rb +12 -17
  81. data/lib/fog/aws/s3.rb +117 -121
  82. data/lib/fog/aws/simpledb.rb +127 -127
  83. data/lib/fog/rackspace/models/servers/images.rb +1 -1
  84. data/spec/aws/requests/ec2/authorize_security_group_ingress_spec.rb +11 -1
  85. metadata +4 -4
data/Rakefile CHANGED
@@ -16,7 +16,7 @@ begin
16
16
  gem.name = "fog"
17
17
  gem.description = %Q{brings clouds to you}
18
18
  gem.summary = %Q{fog = clouds + you}
19
- gem.email = "me@geemus.com"
19
+ gem.email = "geemus@gmail.com"
20
20
  gem.homepage = "http://github.com/geemus/fog"
21
21
  gem.authors = ["geemus (Wesley Beary)"]
22
22
  gem.rubyforge_project = "fog"
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 0
4
- :patch: 56
4
+ :patch: 57
5
5
  :build:
@@ -1,18 +1,18 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{fog}
8
- s.version = "0.0.56"
8
+ s.version = "0.0.57"
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-03-11}
12
+ s.date = %q{2010-03-17}
13
13
  s.default_executable = %q{fog}
14
14
  s.description = %q{brings clouds to you}
15
- s.email = %q{me@geemus.com}
15
+ s.email = %q{geemus@gmail.com}
16
16
  s.executables = ["fog"]
17
17
  s.extra_rdoc_files = [
18
18
  "README.rdoc"
@@ -1,11 +1,12 @@
1
+ require 'fog/aws/s3'
2
+ require 'fog/aws/simpledb'
3
+
1
4
  module Fog
2
5
  module AWS
3
6
 
4
7
  def self.dependencies
5
8
  [
6
- 'fog/aws/ec2.rb',
7
- 'fog/aws/simpledb.rb',
8
- 'fog/aws/s3.rb'
9
+ 'fog/aws/ec2.rb'
9
10
  ]
10
11
  end
11
12
 
@@ -1,12 +1,65 @@
1
+ require 'fog/aws/models/ec2/address'
2
+ require 'fog/aws/models/ec2/addresses'
3
+ require 'fog/aws/models/ec2/flavor'
4
+ require 'fog/aws/models/ec2/flavors'
5
+ require 'fog/aws/models/ec2/image'
6
+ require 'fog/aws/models/ec2/images'
7
+ require 'fog/aws/models/ec2/key_pair'
8
+ require 'fog/aws/models/ec2/key_pairs'
9
+ require 'fog/aws/models/ec2/security_group'
10
+ require 'fog/aws/models/ec2/security_groups'
11
+ require 'fog/aws/models/ec2/server'
12
+ require 'fog/aws/models/ec2/servers'
13
+ require 'fog/aws/models/ec2/snapshot'
14
+ require 'fog/aws/models/ec2/snapshots'
15
+ require 'fog/aws/models/ec2/volume'
16
+ require 'fog/aws/models/ec2/volumes'
17
+ require 'fog/aws/requests/ec2/allocate_address'
18
+ require 'fog/aws/requests/ec2/associate_address'
19
+ require 'fog/aws/requests/ec2/attach_volume'
20
+ require 'fog/aws/requests/ec2/authorize_security_group_ingress'
21
+ require 'fog/aws/requests/ec2/create_key_pair'
22
+ require 'fog/aws/requests/ec2/create_security_group'
23
+ require 'fog/aws/requests/ec2/create_snapshot'
24
+ require 'fog/aws/requests/ec2/create_volume'
25
+ require 'fog/aws/requests/ec2/delete_key_pair'
26
+ require 'fog/aws/requests/ec2/delete_security_group'
27
+ require 'fog/aws/requests/ec2/delete_snapshot'
28
+ require 'fog/aws/requests/ec2/delete_volume'
29
+ require 'fog/aws/requests/ec2/describe_addresses'
30
+ require 'fog/aws/requests/ec2/describe_availability_zones'
31
+ require 'fog/aws/requests/ec2/describe_images'
32
+ require 'fog/aws/requests/ec2/describe_instances'
33
+ require 'fog/aws/requests/ec2/describe_reserved_instances'
34
+ require 'fog/aws/requests/ec2/describe_key_pairs'
35
+ require 'fog/aws/requests/ec2/describe_regions'
36
+ require 'fog/aws/requests/ec2/describe_security_groups'
37
+ require 'fog/aws/requests/ec2/describe_snapshots'
38
+ require 'fog/aws/requests/ec2/describe_volumes'
39
+ require 'fog/aws/requests/ec2/detach_volume'
40
+ require 'fog/aws/requests/ec2/disassociate_address'
41
+ require 'fog/aws/requests/ec2/get_console_output'
42
+ require 'fog/aws/requests/ec2/reboot_instances'
43
+ require 'fog/aws/requests/ec2/release_address'
44
+ require 'fog/aws/requests/ec2/revoke_security_group_ingress'
45
+ require 'fog/aws/requests/ec2/run_instances'
46
+ require 'fog/aws/requests/ec2/terminate_instances'
47
+
1
48
  module Fog
2
49
  module AWS
3
- class EC2
50
+ module EC2
4
51
 
5
- if Fog.mocking?
6
- def self.data
7
- @data
52
+ def self.new(options={})
53
+ if Fog.mocking?
54
+ Fog::AWS::EC2::Mock.new(options)
55
+ else
56
+ Fog::AWS::EC2::Real.new(options)
8
57
  end
9
- def self.reset_data
58
+ end
59
+
60
+ class Mock
61
+
62
+ def reset_data
10
63
  @data = {
11
64
  :deleted_at => {},
12
65
  :addresses => {},
@@ -17,163 +70,96 @@ module Fog
17
70
  :volumes => {}
18
71
  }
19
72
  end
20
- end
21
73
 
22
- def self.dependencies
23
- [
24
- "fog/aws/models/ec2/address.rb",
25
- "fog/aws/models/ec2/addresses.rb",
26
- "fog/aws/models/ec2/flavor.rb",
27
- "fog/aws/models/ec2/flavors.rb",
28
- "fog/aws/models/ec2/image.rb",
29
- "fog/aws/models/ec2/images.rb",
30
- "fog/aws/models/ec2/key_pair.rb",
31
- "fog/aws/models/ec2/key_pairs.rb",
32
- "fog/aws/models/ec2/security_group.rb",
33
- "fog/aws/models/ec2/security_groups.rb",
34
- "fog/aws/models/ec2/server.rb",
35
- "fog/aws/models/ec2/servers.rb",
36
- "fog/aws/models/ec2/snapshot.rb",
37
- "fog/aws/models/ec2/snapshots.rb",
38
- "fog/aws/models/ec2/volume.rb",
39
- "fog/aws/models/ec2/volumes.rb",
40
- "fog/aws/parsers/ec2/allocate_address.rb",
41
- "fog/aws/parsers/ec2/attach_volume.rb",
42
- "fog/aws/parsers/ec2/basic.rb",
43
- "fog/aws/parsers/ec2/create_key_pair.rb",
44
- "fog/aws/parsers/ec2/create_snapshot.rb",
45
- "fog/aws/parsers/ec2/create_volume.rb",
46
- "fog/aws/parsers/ec2/describe_addresses.rb",
47
- "fog/aws/parsers/ec2/describe_availability_zones.rb",
48
- "fog/aws/parsers/ec2/describe_images.rb",
49
- "fog/aws/parsers/ec2/describe_instances.rb",
50
- "fog/aws/parsers/ec2/describe_reserved_instances.rb",
51
- "fog/aws/parsers/ec2/describe_key_pairs.rb",
52
- "fog/aws/parsers/ec2/describe_regions.rb",
53
- "fog/aws/parsers/ec2/describe_security_groups.rb",
54
- "fog/aws/parsers/ec2/describe_snapshots.rb",
55
- "fog/aws/parsers/ec2/describe_volumes.rb",
56
- "fog/aws/parsers/ec2/detach_volume.rb",
57
- "fog/aws/parsers/ec2/get_console_output.rb",
58
- "fog/aws/parsers/ec2/run_instances.rb",
59
- "fog/aws/parsers/ec2/terminate_instances.rb",
60
- "fog/aws/requests/ec2/allocate_address.rb",
61
- "fog/aws/requests/ec2/associate_address.rb",
62
- "fog/aws/requests/ec2/attach_volume.rb",
63
- "fog/aws/requests/ec2/authorize_security_group_ingress.rb",
64
- "fog/aws/requests/ec2/create_key_pair.rb",
65
- "fog/aws/requests/ec2/create_security_group.rb",
66
- "fog/aws/requests/ec2/create_snapshot.rb",
67
- "fog/aws/requests/ec2/create_volume.rb",
68
- "fog/aws/requests/ec2/delete_key_pair.rb",
69
- "fog/aws/requests/ec2/delete_security_group.rb",
70
- "fog/aws/requests/ec2/delete_snapshot.rb",
71
- "fog/aws/requests/ec2/delete_volume.rb",
72
- "fog/aws/requests/ec2/describe_addresses.rb",
73
- "fog/aws/requests/ec2/describe_availability_zones.rb",
74
- "fog/aws/requests/ec2/describe_images.rb",
75
- "fog/aws/requests/ec2/describe_instances.rb",
76
- "fog/aws/requests/ec2/describe_reserved_instances.rb",
77
- "fog/aws/requests/ec2/describe_key_pairs.rb",
78
- "fog/aws/requests/ec2/describe_regions.rb",
79
- "fog/aws/requests/ec2/describe_security_groups.rb",
80
- "fog/aws/requests/ec2/describe_snapshots.rb",
81
- "fog/aws/requests/ec2/describe_volumes.rb",
82
- "fog/aws/requests/ec2/detach_volume.rb",
83
- "fog/aws/requests/ec2/disassociate_address.rb",
84
- "fog/aws/requests/ec2/get_console_output.rb",
85
- "fog/aws/requests/ec2/reboot_instances.rb",
86
- "fog/aws/requests/ec2/release_address.rb",
87
- "fog/aws/requests/ec2/revoke_security_group_ingress.rb",
88
- "fog/aws/requests/ec2/run_instances.rb",
89
- "fog/aws/requests/ec2/terminate_instances.rb"
90
- ]
91
- end
92
-
93
- def self.reload
94
- self.dependencies.each {|dependency| load(dependency)}
95
- if Fog.mocking?
74
+ def initialize(options={})
96
75
  reset_data
97
76
  end
98
- end
99
77
 
100
- # Initialize connection to EC2
101
- #
102
- # ==== Notes
103
- # options parameter must include values for :aws_access_key_id and
104
- # :aws_secret_access_key in order to create a connection
105
- #
106
- # ==== Examples
107
- # sdb = SimpleDB.new(
108
- # :aws_access_key_id => your_aws_access_key_id,
109
- # :aws_secret_access_key => your_aws_secret_access_key
110
- # )
111
- #
112
- # ==== Parameters
113
- # * options<~Hash> - config arguments for connection. Defaults to {}.
114
- # * region<~String> - optional region to use, in ['eu-west-1', 'us-east-1', 'us-west-1']
115
- #
116
- # ==== Returns
117
- # * EC2 object with connection to aws.
118
- def initialize(options={})
119
- unless @aws_access_key_id = options[:aws_access_key_id]
120
- raise ArgumentError.new('aws_access_key_id is required to access ec2')
121
- end
122
- unless @aws_secret_access_key = options[:aws_secret_access_key]
123
- raise ArgumentError.new('aws_secret_access_key is required to access ec2')
124
- end
125
- @hmac = HMAC::SHA256.new(@aws_secret_access_key)
126
- @host = options[:host] || case options[:region]
127
- when 'eu-west-1'
128
- 'ec2.eu-west-1.amazonaws.com'
129
- when 'us-east-1'
130
- 'ec2.us-east-1.amazonaws.com'
131
- when 'us-west-1'
132
- 'ec2.us-west-1.amazonaws.com'
133
- else
134
- 'ec2.amazonaws.com'
135
- end
136
- @port = options[:port] || 443
137
- @scheme = options[:scheme] || 'https'
138
78
  end
139
79
 
140
- private
141
-
142
- def request(params, parser)
143
- @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}")
144
- params.merge!({
145
- 'AWSAccessKeyId' => @aws_access_key_id,
146
- 'SignatureMethod' => 'HmacSHA256',
147
- 'SignatureVersion' => '2',
148
- 'Timestamp' => Time.now.utc.strftime("%Y-%m-%dT%H:%M:%SZ"),
149
- 'Version' => '2009-11-30'
150
- })
151
-
152
- body = ''
153
- for key in params.keys.sort
154
- unless (value = params[key]).nil?
155
- body << "#{key}=#{CGI.escape(value.to_s).gsub(/\+/, '%20')}&"
80
+ class Real
81
+
82
+ # Initialize connection to EC2
83
+ #
84
+ # ==== Notes
85
+ # options parameter must include values for :aws_access_key_id and
86
+ # :aws_secret_access_key in order to create a connection
87
+ #
88
+ # ==== Examples
89
+ # sdb = SimpleDB.new(
90
+ # :aws_access_key_id => your_aws_access_key_id,
91
+ # :aws_secret_access_key => your_aws_secret_access_key
92
+ # )
93
+ #
94
+ # ==== Parameters
95
+ # * options<~Hash> - config arguments for connection. Defaults to {}.
96
+ # * region<~String> - optional region to use, in ['eu-west-1', 'us-east-1', 'us-west-1']
97
+ #
98
+ # ==== Returns
99
+ # * EC2 object with connection to aws.
100
+ def initialize(options={})
101
+ unless @aws_access_key_id = options[:aws_access_key_id]
102
+ raise ArgumentError.new('aws_access_key_id is required to access ec2')
103
+ end
104
+ unless @aws_secret_access_key = options[:aws_secret_access_key]
105
+ raise ArgumentError.new('aws_secret_access_key is required to access ec2')
106
+ end
107
+ @hmac = HMAC::SHA256.new(@aws_secret_access_key)
108
+ @host = options[:host] || case options[:region]
109
+ when 'eu-west-1'
110
+ 'ec2.eu-west-1.amazonaws.com'
111
+ when 'us-east-1'
112
+ 'ec2.us-east-1.amazonaws.com'
113
+ when 'us-west-1'
114
+ 'ec2.us-west-1.amazonaws.com'
115
+ else
116
+ 'ec2.amazonaws.com'
156
117
  end
118
+ @port = options[:port] || 443
119
+ @scheme = options[:scheme] || 'https'
157
120
  end
158
121
 
159
- string_to_sign = "POST\n#{@host}\n/\n" << body.chop
160
- hmac = @hmac.update(string_to_sign)
161
- body << "Signature=#{CGI.escape(Base64.encode64(hmac.digest).chomp!).gsub(/\+/, '%20')}"
122
+ private
162
123
 
163
- response = @connection.request({
164
- :body => body,
165
- :expects => 200,
166
- :headers => { 'Content-Type' => 'application/x-www-form-urlencoded' },
167
- :host => @host,
168
- :method => 'POST',
169
- :parser => parser
170
- })
124
+ def request(params)
125
+ @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}")
171
126
 
172
- response
173
- end
127
+ idempotent = params.delete(:idempotent)
128
+ parser = params.delete(:parser)
129
+
130
+ params.merge!({
131
+ 'AWSAccessKeyId' => @aws_access_key_id,
132
+ 'SignatureMethod' => 'HmacSHA256',
133
+ 'SignatureVersion' => '2',
134
+ 'Timestamp' => Time.now.utc.strftime("%Y-%m-%dT%H:%M:%SZ"),
135
+ 'Version' => '2009-11-30'
136
+ })
137
+
138
+ body = ''
139
+ for key in params.keys.sort
140
+ unless (value = params[key]).nil?
141
+ body << "#{key}=#{CGI.escape(value.to_s).gsub(/\+/, '%20')}&"
142
+ end
143
+ end
144
+
145
+ string_to_sign = "POST\n#{@host}\n/\n" << body.chop
146
+ hmac = @hmac.update(string_to_sign)
147
+ body << "Signature=#{CGI.escape(Base64.encode64(hmac.digest).chomp!).gsub(/\+/, '%20')}"
174
148
 
149
+ response = @connection.request({
150
+ :body => body,
151
+ :expects => 200,
152
+ :headers => { 'Content-Type' => 'application/x-www-form-urlencoded' },
153
+ :idempotent => idempotent,
154
+ :host => @host,
155
+ :method => 'POST',
156
+ :parser => parser
157
+ })
158
+
159
+ response
160
+ end
161
+
162
+ end
175
163
  end
176
164
  end
177
165
  end
178
-
179
- Fog::AWS::EC2.reload
@@ -1,6 +1,8 @@
1
+ require 'fog/model'
2
+
1
3
  module Fog
2
4
  module AWS
3
- class EC2
5
+ module EC2
4
6
 
5
7
  class Address < Fog::Model
6
8
 
@@ -1,11 +1,24 @@
1
+ require 'fog/collection'
2
+ require 'fog/aws/models/ec2/address'
3
+
1
4
  module Fog
2
5
  module AWS
3
- class EC2
6
+ module EC2
4
7
 
5
- def addresses(attributes = {})
6
- Fog::AWS::EC2::Addresses.new({
7
- :connection => self
8
- }.merge!(attributes))
8
+ class Mock
9
+ def addresses(attributes = {})
10
+ Fog::AWS::EC2::Addresses.new({
11
+ :connection => self
12
+ }.merge!(attributes))
13
+ end
14
+ end
15
+
16
+ class Real
17
+ def addresses(attributes = {})
18
+ Fog::AWS::EC2::Addresses.new({
19
+ :connection => self
20
+ }.merge!(attributes))
21
+ end
9
22
  end
10
23
 
11
24
  class Addresses < Fog::Collection
@@ -29,8 +42,9 @@ module Fog
29
42
  end
30
43
  )
31
44
  if server
32
- self.replace(self.select {|address| address.instance_id == server.id})
45
+ self.replace(self.select {|address| address.server_id == server.id})
33
46
  end
47
+ self
34
48
  end
35
49
 
36
50
  def get(public_ip)
@@ -1,6 +1,8 @@
1
+ require 'fog/model'
2
+
1
3
  module Fog
2
4
  module AWS
3
- class EC2
5
+ module EC2
4
6
 
5
7
  class Flavor < Fog::Model
6
8
 
@@ -1,9 +1,20 @@
1
+ require 'fog/collection'
2
+ require 'fog/aws/models/ec2/flavor'
3
+
1
4
  module Fog
2
5
  module AWS
3
- class EC2
6
+ module EC2
4
7
 
5
- def flavors
6
- Fog::AWS::EC2::Flavors.new(:connection => self)
8
+ class Mock
9
+ def flavors
10
+ Fog::AWS::EC2::Flavors.new(:connection => self)
11
+ end
12
+ end
13
+
14
+ class Real
15
+ def flavors
16
+ Fog::AWS::EC2::Flavors.new(:connection => self)
17
+ end
7
18
  end
8
19
 
9
20
  class Flavors < Fog::Collection