fog 0.3.22 → 0.3.23

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 (47) hide show
  1. data/Gemfile.lock +1 -1
  2. data/fog.gemspec +2 -2
  3. data/lib/fog.rb +1 -1
  4. data/lib/fog/aws/models/compute/address.rb +6 -5
  5. data/lib/fog/aws/models/compute/addresses.rb +3 -3
  6. data/lib/fog/aws/models/compute/image.rb +7 -11
  7. data/lib/fog/aws/models/compute/images.rb +3 -3
  8. data/lib/fog/aws/models/compute/key_pair.rb +1 -1
  9. data/lib/fog/aws/models/compute/key_pairs.rb +4 -3
  10. data/lib/fog/aws/models/compute/security_group.rb +6 -6
  11. data/lib/fog/aws/models/compute/security_groups.rb +3 -3
  12. data/lib/fog/aws/models/compute/server.rb +15 -44
  13. data/lib/fog/aws/models/compute/servers.rb +3 -5
  14. data/lib/fog/aws/models/compute/snapshot.rb +4 -4
  15. data/lib/fog/aws/models/compute/snapshots.rb +3 -3
  16. data/lib/fog/aws/models/compute/tags.rb +4 -4
  17. data/lib/fog/aws/models/compute/volume.rb +7 -7
  18. data/lib/fog/aws/models/compute/volumes.rb +4 -4
  19. data/lib/fog/aws/models/storage/directories.rb +1 -1
  20. data/lib/fog/aws/models/storage/file.rb +9 -5
  21. data/lib/fog/aws/models/storage/files.rb +10 -9
  22. data/lib/fog/aws/parsers/storage/get_bucket.rb +19 -3
  23. data/lib/fog/aws/requests/storage/get_bucket.rb +1 -0
  24. data/lib/fog/bluebox/models/compute/server.rb +7 -13
  25. data/lib/fog/brightbox/models/compute/image.rb +4 -4
  26. data/lib/fog/brightbox/models/compute/server.rb +7 -7
  27. data/lib/fog/brightbox/models/compute/user.rb +3 -3
  28. data/lib/fog/core/attributes.rb +18 -26
  29. data/lib/fog/go_grid/models/compute/image.rb +2 -2
  30. data/lib/fog/go_grid/models/compute/server.rb +2 -2
  31. data/lib/fog/google/models/storage/directories.rb +1 -1
  32. data/lib/fog/google/models/storage/file.rb +9 -6
  33. data/lib/fog/google/models/storage/files.rb +10 -9
  34. data/lib/fog/google/parsers/storage/get_bucket.rb +19 -3
  35. data/lib/fog/google/requests/storage/get_bucket.rb +1 -0
  36. data/lib/fog/local/models/storage/file.rb +5 -2
  37. data/lib/fog/rackspace/models/compute/image.rb +3 -3
  38. data/lib/fog/rackspace/models/compute/server.rb +10 -10
  39. data/lib/fog/rackspace/models/storage/file.rb +8 -5
  40. data/lib/fog/rackspace/models/storage/files.rb +4 -4
  41. data/lib/fog/slicehost/models/compute/server.rb +7 -7
  42. data/lib/fog/terremark/models/shared/address.rb +2 -2
  43. data/lib/fog/terremark/models/shared/network.rb +2 -2
  44. data/lib/fog/terremark/models/shared/server.rb +13 -13
  45. data/lib/fog/terremark/models/shared/task.rb +3 -3
  46. data/lib/fog/terremark/models/shared/vdc.rb +4 -4
  47. metadata +3 -3
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fog (0.3.22)
4
+ fog (0.3.23)
5
5
  builder
6
6
  excon (>= 0.2.4)
7
7
  formatador (>= 0.0.16)
@@ -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.3.22'
11
- s.date = '2010-11-18'
10
+ s.version = '0.3.23'
11
+ s.date = '2010-11-19'
12
12
  s.rubyforge_project = 'fog'
13
13
 
14
14
  ## Make sure your summary is short. The description may be as long
data/lib/fog.rb CHANGED
@@ -18,7 +18,7 @@ module Fog
18
18
  @mocking = false
19
19
 
20
20
  unless const_defined?(:VERSION)
21
- VERSION = '0.3.22'
21
+ VERSION = '0.3.23'
22
22
  end
23
23
 
24
24
  module Mock
@@ -19,7 +19,7 @@ module Fog
19
19
  def destroy
20
20
  requires :public_ip
21
21
 
22
- connection.release_address(@public_ip)
22
+ connection.release_address(public_ip)
23
23
  true
24
24
  end
25
25
 
@@ -33,8 +33,9 @@ module Fog
33
33
 
34
34
  def save
35
35
  raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
36
- data = connection.allocate_address
37
- @public_ip = data.body['publicIp']
36
+ data = connection.allocate_address.body
37
+ new_attributes = data.reject {|key,value| key == 'requestId'}
38
+ merge_attributes(new_attributes)
38
39
  if @server
39
40
  self.server = @server
40
41
  end
@@ -48,14 +49,14 @@ module Fog
48
49
  @server = new_server
49
50
  else
50
51
  @server = nil
51
- @server_id = new_server.id
52
+ self.server_id = new_server.id
52
53
  connection.associate_address(@server_id, @public_ip)
53
54
  end
54
55
  end
55
56
 
56
57
  def disassociate
57
58
  @server = nil
58
- @server_id = nil
59
+ self.server_id = nil
59
60
  unless new_record?
60
61
  connection.disassociate_address(@public_ip)
61
62
  end
@@ -13,16 +13,16 @@ module Fog
13
13
  model Fog::AWS::Compute::Address
14
14
 
15
15
  def initialize(attributes)
16
- @filters ||= {}
16
+ self.filters ||= {}
17
17
  super
18
18
  end
19
19
 
20
- def all(filters = @filters)
20
+ def all(filters = filters)
21
21
  unless filters.is_a?(Hash)
22
22
  Formatador.display_line("[yellow][WARN] all with #{filters.class} param is deprecated, use all('public-ip' => []) instead[/] [light_black](#{caller.first})[/]")
23
23
  filters = {'public-ip' => [*filters]}
24
24
  end
25
- @filters = filters
25
+ self.filters = filters
26
26
  data = connection.describe_addresses(filters).body
27
27
  load(
28
28
  data['addressesSet'].map do |address|
@@ -24,18 +24,14 @@ module Fog
24
24
  attribute :tags, :aliases => 'tagSet'
25
25
 
26
26
  def deregister(delete_snapshot = false)
27
- connection.deregister_image(@id)
28
-
29
- if(delete_snapshot && @root_device_type=="ebs")
30
- @block_device_mapping.each do |block_device|
31
- next if block_device["deviceName"] != @root_device_name
32
- snapshot_id = block_device["snapshotId"]
33
- snapshot = @connection.snapshots.get(snapshot_id)
34
- return snapshot.destroy
35
- end
36
- end
27
+ connection.deregister_image(id)
37
28
 
38
- return true
29
+ if(delete_snapshot && root_device_type == "ebs")
30
+ block_device = block_device_mapping.select {|block_device| block_device['deviceName'] == root_device_name}
31
+ @connection.snapshots.new(:id => block_device['snapshotId']).destroy
32
+ else
33
+ true
34
+ end
39
35
  end
40
36
 
41
37
  end
@@ -12,13 +12,13 @@ module Fog
12
12
  model Fog::AWS::Compute::Image
13
13
 
14
14
  def initialize(attributes)
15
- @filters ||= {}
15
+ self.filters ||= {}
16
16
  super
17
17
  end
18
18
 
19
19
  def all(filters = @filters)
20
- @filters = filters
21
- data = connection.describe_images(@filters).body
20
+ self.filters = filters
21
+ data = connection.describe_images(filters).body
22
22
  load(data['imagesSet'])
23
23
  end
24
24
 
@@ -18,7 +18,7 @@ module Fog
18
18
  def destroy
19
19
  requires :name
20
20
 
21
- connection.delete_key_pair(@name)
21
+ connection.delete_key_pair(name)
22
22
  true
23
23
  end
24
24
 
@@ -7,21 +7,22 @@ module Fog
7
7
 
8
8
  class KeyPairs < Fog::Collection
9
9
 
10
+ attribute :filters
10
11
  attribute :key_name
11
12
 
12
13
  model Fog::AWS::Compute::KeyPair
13
14
 
14
15
  def initialize(attributes)
15
- @filters ||= {}
16
+ self.filters ||= {}
16
17
  super
17
18
  end
18
19
 
19
- def all(filters = @filters)
20
+ def all(filters = filters)
20
21
  unless filters.is_a?(Hash)
21
22
  Formatador.display_line("[yellow][WARN] all with #{filters.class} param is deprecated, use all('key-name' => []) instead[/] [light_black](#{caller.first})[/]")
22
23
  filters = {'key-name' => [*filters]}
23
24
  end
24
- @filters = filters
25
+ self.filters = filters
25
26
  data = connection.describe_key_pairs(filters).body
26
27
  load(data['keySet'])
27
28
  end
@@ -16,7 +16,7 @@ module Fog
16
16
  requires :name
17
17
 
18
18
  connection.authorize_security_group_ingress(
19
- 'GroupName' => @name,
19
+ 'GroupName' => name,
20
20
  'SourceSecurityGroupName' => group,
21
21
  'SourceSecurityGroupOwnerId' => owner
22
22
  )
@@ -28,7 +28,7 @@ module Fog
28
28
  connection.authorize_security_group_ingress(
29
29
  'CidrIp' => options[:cidr_ip] || '0.0.0.0/0',
30
30
  'FromPort' => range.min,
31
- 'GroupName' => @name,
31
+ 'GroupName' => name,
32
32
  'ToPort' => range.max,
33
33
  'IpProtocol' => options[:ip_protocol] || 'tcp'
34
34
  )
@@ -37,7 +37,7 @@ module Fog
37
37
  def destroy
38
38
  requires :name
39
39
 
40
- connection.delete_security_group(@name)
40
+ connection.delete_security_group(name)
41
41
  true
42
42
  end
43
43
 
@@ -45,7 +45,7 @@ module Fog
45
45
  requires :name
46
46
 
47
47
  connection.revoke_security_group_ingress(
48
- 'GroupName' => @name,
48
+ 'GroupName' => name,
49
49
  'SourceSecurityGroupName' => group,
50
50
  'SourceSecurityGroupOwnerId' => owner
51
51
  )
@@ -57,7 +57,7 @@ module Fog
57
57
  connection.revoke_security_group_ingress(
58
58
  'CidrIp' => options[:cidr_ip] || '0.0.0.0/0',
59
59
  'FromPort' => range.min,
60
- 'GroupName' => @name,
60
+ 'GroupName' => name,
61
61
  'ToPort' => range.max,
62
62
  'IpProtocol' => options[:ip_protocol] || 'tcp'
63
63
  )
@@ -66,7 +66,7 @@ module Fog
66
66
  def save
67
67
  requires :description, :name
68
68
 
69
- data = connection.create_security_group(@name, @description).body
69
+ data = connection.create_security_group(name, description).body
70
70
  true
71
71
  end
72
72
 
@@ -12,16 +12,16 @@ module Fog
12
12
  model Fog::AWS::Compute::SecurityGroup
13
13
 
14
14
  def initialize(attributes)
15
- @filters ||= {}
15
+ self.filters ||= {}
16
16
  super
17
17
  end
18
18
 
19
- def all(filters = @filters)
19
+ def all(filters = filters)
20
20
  unless filters.is_a?(Hash)
21
21
  Formatador.display_line("[yellow][WARN] all with #{filters.class} param is deprecated, use all('group-name' => []) instead[/] [light_black](#{caller.first})[/]")
22
22
  filters = {'group-name' => [*filters]}
23
23
  end
24
- @filters = filters
24
+ self.filters = filters
25
25
  data = connection.describe_security_groups(@filters).body
26
26
  load(data['securityGroupInfo'])
27
27
  end
@@ -10,7 +10,7 @@ module Fog
10
10
 
11
11
  attr_accessor :architecture
12
12
  attribute :ami_launch_index, :aliases => 'amiLaunchIndex'
13
- attribute :availability_zone, :aliases => ['availabilityZone', 'placement']
13
+ attribute :availability_zone, :aliases => ['availabilityZone', 'placement'], :squash => 'availabilityZone'
14
14
  attribute :block_device_mapping, :aliases => 'blockDeviceMapping'
15
15
  attribute :client_token, :aliases => 'clientToken'
16
16
  attribute :dns_name, :aliases => 'dnsName'
@@ -22,7 +22,7 @@ module Fog
22
22
  attribute :kernel_id, :aliases => 'kernelId'
23
23
  attribute :key_name, :aliases => 'keyName'
24
24
  attribute :created_at, :aliases => 'launchTime'
25
- attribute :monitoring
25
+ attribute :monitoring, :squash => 'state'
26
26
  attribute :product_codes, :aliases => 'productCodes'
27
27
  attribute :private_dns_name, :aliases => 'privateDnsName'
28
28
  attribute :private_ip_address, :aliases => 'privateIpAddress'
@@ -30,7 +30,7 @@ module Fog
30
30
  attribute :reason
31
31
  attribute :root_device_name, :aliases => 'rootDeviceName'
32
32
  attribute :root_device_type, :aliases => 'rootDeviceType'
33
- attribute :state, :aliases => 'instanceState'
33
+ attribute :state, :aliases => 'instanceState', :squash => 'name'
34
34
  attribute :state_reason, :aliases => 'stateReason'
35
35
  attribute :subnet_id, :aliases => 'subnetId'
36
36
  attribute :tags, :aliases => 'tagSet'
@@ -40,8 +40,8 @@ module Fog
40
40
  attr_writer :private_key, :private_key_path, :public_key, :public_key_path, :username
41
41
 
42
42
  def initialize(attributes={})
43
- @groups ||= ["default"] unless attributes[:subnet_id]
44
- @flavor_id ||= 'm1.small'
43
+ self.groups ||= ["default"] unless attributes[:subnet_id]
44
+ self.flavor_id ||= 'm1.small'
45
45
  super
46
46
  end
47
47
 
@@ -51,31 +51,22 @@ module Fog
51
51
  connection.addresses(:server => self)
52
52
  end
53
53
 
54
- remove_method :availability_zone=
55
- def availability_zone=(new_availability_zone)
56
- if new_availability_zone.is_a?(Hash)
57
- @availability_zone = new_availability_zone['availabilityZone']
58
- else
59
- @availability_zone = new_availability_zone
60
- end
61
- end
62
-
63
54
  def console_output
64
55
  requires :id
65
56
 
66
- connection.get_console_output(@id)
57
+ connection.get_console_output(id)
67
58
  end
68
59
 
69
60
  def destroy
70
61
  requires :id
71
62
 
72
- connection.terminate_instances(@id)
63
+ connection.terminate_instances(id)
73
64
  true
74
65
  end
75
66
 
76
67
  remove_method :flavor_id
77
68
  def flavor_id
78
- @flavor && @flavor.id || @flavor_id
69
+ @flavor && @flavor.id || attributes[:flavor_id]
79
70
  end
80
71
 
81
72
  def flavor=(new_flavor)
@@ -83,26 +74,17 @@ module Fog
83
74
  end
84
75
 
85
76
  def flavor
86
- @flavor ||= connection.flavors.all.detect {|flavor| flavor.id == @flavor_id}
77
+ @flavor ||= connection.flavors.all.detect {|flavor| flavor.id == flavor_id}
87
78
  end
88
79
 
89
80
  def key_pair
90
81
  requires :key_name
91
82
 
92
- connection.keypairs.all(@key_name).first
83
+ connection.keypairs.all(key_name).first
93
84
  end
94
85
 
95
86
  def key_pair=(new_keypair)
96
- @key_name = new_keypair && new_keypair.name
97
- end
98
-
99
- remove_method :monitoring=
100
- def monitoring=(new_monitoring)
101
- if new_monitoring.is_a?(Hash)
102
- @monitoring = new_monitoring['state']
103
- else
104
- @monitoring = new_monitoring
105
- end
87
+ key_name = new_keypair && new_keypair.name
106
88
  end
107
89
 
108
90
  def private_key_path
@@ -124,12 +106,12 @@ module Fog
124
106
  end
125
107
 
126
108
  def ready?
127
- @state == 'running'
109
+ state == 'running'
128
110
  end
129
111
 
130
112
  def reboot
131
113
  requires :id
132
- connection.reboot_instances(@id)
114
+ connection.reboot_instances(id)
133
115
  true
134
116
  end
135
117
 
@@ -191,13 +173,13 @@ module Fog
191
173
 
192
174
  def start
193
175
  requires :id
194
- connection.start_instances(@id)
176
+ connection.start_instances(id)
195
177
  true
196
178
  end
197
179
 
198
180
  def stop
199
181
  requires :id
200
- connection.stop_instances(@id)
182
+ connection.stop_instances(id)
201
183
  true
202
184
  end
203
185
 
@@ -210,17 +192,6 @@ module Fog
210
192
  connection.volumes(:server => self)
211
193
  end
212
194
 
213
- private
214
-
215
- remove_method :state=
216
- def state=(new_state)
217
- if new_state.is_a?(Hash)
218
- @state = new_state['name']
219
- else
220
- @state = new_state
221
- end
222
- end
223
-
224
195
  end
225
196
 
226
197
  end
@@ -9,21 +9,19 @@ module Fog
9
9
 
10
10
  attribute :filters
11
11
 
12
- attribute :server_id
13
-
14
12
  model Fog::AWS::Compute::Server
15
13
 
16
14
  def initialize(attributes)
17
- @filters ||= {}
15
+ self.filters ||= {}
18
16
  super
19
17
  end
20
18
 
21
- def all(filters = @filters)
19
+ def all(filters = self.filters)
22
20
  unless filters.is_a?(Hash)
23
21
  Formatador.display_line("[yellow][WARN] all with #{filters.class} param is deprecated, use all('instance-id' => []) instead[/] [light_black](#{caller.first})[/]")
24
22
  filters = {'instance-id' => [*filters]}
25
23
  end
26
- @filters = filters
24
+ self.filters = filters
27
25
  data = connection.describe_instances(filters).body
28
26
  load(
29
27
  data['reservationSet'].map do |reservation|
@@ -22,7 +22,7 @@ module Fog
22
22
  def destroy
23
23
  requires :id
24
24
 
25
- connection.delete_snapshot(@id)
25
+ connection.delete_snapshot(id)
26
26
  true
27
27
  end
28
28
 
@@ -34,7 +34,7 @@ module Fog
34
34
  raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
35
35
  requires :volume_id
36
36
 
37
- data = connection.create_snapshot(@volume_id, @description).body
37
+ data = connection.create_snapshot(volume_id, description).body
38
38
  new_attributes = data.reject {|key,value| key == 'requestId'}
39
39
  merge_attributes(new_attributes)
40
40
  true
@@ -42,13 +42,13 @@ module Fog
42
42
 
43
43
  def volume
44
44
  requires :id
45
- connection.describe_volumes(@volume_id)
45
+ connection.describe_volumes(volume_id)
46
46
  end
47
47
 
48
48
  private
49
49
 
50
50
  def volume=(new_volume)
51
- @volume_id = new_volume.volume_id
51
+ self.volume_id = new_volume.volume_id
52
52
  end
53
53
 
54
54
  end