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
@@ -36,7 +36,7 @@ module Fog
36
36
  def destroy
37
37
  requires :id
38
38
 
39
- connection.grid_server_delete(@id)
39
+ connection.grid_server_delete(id)
40
40
  true
41
41
  end
42
42
 
@@ -48,7 +48,7 @@ module Fog
48
48
  raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
49
49
  requires :server_id
50
50
 
51
- data = connection.grid_server_add(@server_id, 'name' => name)
51
+ data = connection.grid_server_add(server_id, 'name' => name)
52
52
  merge_attributes(data.body['image'])
53
53
  true
54
54
  end
@@ -24,13 +24,13 @@ module Fog
24
24
 
25
25
  def destroy
26
26
  requires :id
27
- connection.grid_server_destroy(@id)
27
+ connection.grid_server_destroy(id)
28
28
  true
29
29
  end
30
30
 
31
31
  def image
32
32
  requires :image_id
33
- connection.grid_image_get(@image_id)
33
+ connection.grid_image_get(image_id)
34
34
  end
35
35
 
36
36
  def ready?
@@ -25,7 +25,7 @@ module Fog
25
25
  directory = new(:key => data['Name'])
26
26
  options = {}
27
27
  for k, v in data
28
- if ['Delimiter', 'IsTruncated', 'Marker', 'MaxKeys', 'Prefix'].include?(k)
28
+ if ['CommonPrefixes', 'Delimiter', 'IsTruncated', 'Marker', 'MaxKeys', 'Prefix'].include?(k)
29
29
  options[k] = v
30
30
  end
31
31
  end
@@ -11,7 +11,6 @@ module Fog
11
11
 
12
12
  identity :key, :aliases => 'Key'
13
13
 
14
- attr_writer :body
15
14
  attribute :cache_control, :aliases => 'Cache-Control'
16
15
  attribute :content_disposition, :aliases => 'Content-Disposition'
17
16
  attribute :content_encoding, :aliases => 'Content-Encoding'
@@ -33,20 +32,24 @@ module Fog
33
32
  end
34
33
 
35
34
  def body
36
- @body ||= if last_modified && (file = collection.get(identity))
35
+ attributes[:body] ||= if last_modified && (file = collection.get(identity))
37
36
  file.body
38
37
  else
39
38
  ''
40
39
  end
41
40
  end
42
41
 
42
+ def body=(new_body)
43
+ attributes[:body] = new_body
44
+ end
45
+
43
46
  def directory
44
47
  @directory
45
48
  end
46
49
 
47
50
  def copy(target_directory_key, target_file_key)
48
51
  requires :directory, :key
49
- connection.copy_object(directory.key, @key, target_directory_key, target_file_key)
52
+ connection.copy_object(directory.key, key, target_directory_key, target_file_key)
50
53
  target_directory = connection.directories.new(:key => target_directory_key)
51
54
  target_directory.files.get(target_file_key)
52
55
  end
@@ -54,7 +57,7 @@ module Fog
54
57
  def destroy
55
58
  requires :directory, :key
56
59
  begin
57
- connection.delete_object(directory.key, @key)
60
+ connection.delete_object(directory.key, key)
58
61
  rescue Excon::Errors::NotFound
59
62
  end
60
63
  true
@@ -63,7 +66,7 @@ module Fog
63
66
  remove_method :owner=
64
67
  def owner=(new_owner)
65
68
  if new_owner
66
- @owner = {
69
+ attributes[:owner] = {
67
70
  :display_name => new_owner['DisplayName'],
68
71
  :id => new_owner['ID']
69
72
  }
@@ -105,7 +108,7 @@ module Fog
105
108
  options['Content-Type'] = content_type if content_type
106
109
  options['Expires'] = expires if expires
107
110
 
108
- data = connection.put_object(directory.key, @key, @body, options)
111
+ data = connection.put_object(directory.key, key, body, options)
109
112
  merge_attributes(data.headers)
110
113
  if body.is_a?(String)
111
114
  self.content_length = body.size
@@ -7,22 +7,23 @@ module Fog
7
7
 
8
8
  class Files < Fog::Collection
9
9
 
10
- attribute :delimiter, :aliases => 'Delimiter'
10
+ attribute :common_prefixes, :aliases => 'CommonPrefixes'
11
+ attribute :delimiter, :aliases => 'Delimiter'
11
12
  attribute :directory
12
- attribute :is_truncated, :aliases => 'IsTruncated'
13
- attribute :marker, :aliases => 'Marker'
14
- attribute :max_keys, :aliases => ['MaxKeys', 'max-keys']
15
- attribute :prefix, :aliases => 'Prefix'
13
+ attribute :is_truncated, :aliases => 'IsTruncated'
14
+ attribute :marker, :aliases => 'Marker'
15
+ attribute :max_keys, :aliases => ['MaxKeys', 'max-keys']
16
+ attribute :prefix, :aliases => 'Prefix'
16
17
 
17
18
  model Fog::Google::Storage::File
18
19
 
19
20
  def all(options = {})
20
21
  requires :directory
21
22
  options = {
22
- 'delimiter' => @delimiter,
23
- 'marker' => @marker,
24
- 'max-keys' => @max_keys,
25
- 'prefix' => @prefix
23
+ 'delimiter' => delimiter,
24
+ 'marker' => marker,
25
+ 'max-keys' => max_keys,
26
+ 'prefix' => prefix
26
27
  }.merge!(options)
27
28
  options = options.reject {|key,value| value.nil? || value.to_s.empty?}
28
29
  merge_attributes(options)
@@ -7,11 +7,21 @@ module Fog
7
7
 
8
8
  def reset
9
9
  @object = { 'Owner' => {} }
10
- @response = { 'Contents' => [] }
10
+ @response = { 'Contents' => [], 'CommonPrefixes' => [] }
11
+ end
12
+
13
+ def start_element(name, attrs = [])
14
+ super
15
+ case name
16
+ when 'CommonPrefixes'
17
+ @in_common_prefixes = true
18
+ end
11
19
  end
12
20
 
13
21
  def end_element(name)
14
22
  case name
23
+ when 'CommonPrefixes'
24
+ @in_common_prefixes = false
15
25
  when 'Contents'
16
26
  @response['Contents'] << @object
17
27
  @object = { 'Owner' => {} }
@@ -27,13 +37,19 @@ module Fog
27
37
  end
28
38
  when 'LastModified'
29
39
  @object['LastModified'] = Time.parse(@value)
30
- when 'Marker', 'Name', 'Prefix'
40
+ when 'Marker', 'Name'
31
41
  @response[name] = @value
32
42
  when 'MaxKeys'
33
43
  @response['MaxKeys'] = @value.to_i
44
+ when 'Prefix'
45
+ if @in_common_prefixes
46
+ @response['CommonPrefixes'] << @value
47
+ else
48
+ @response[name] = @value
49
+ end
34
50
  when 'Size'
35
51
  @object['Size'] = @value.to_i
36
- when 'Delimeter', 'Key', 'StorageClass'
52
+ when 'Delimiter', 'Key', 'StorageClass'
37
53
  @object[name] = @value
38
54
  end
39
55
  end
@@ -27,6 +27,7 @@ module Fog
27
27
  # * 'MaxKeys'<~Integer> - Maximum number of keys specified for query
28
28
  # * 'Name'<~String> - Name of the bucket
29
29
  # * 'Prefix'<~String> - Prefix specified for query
30
+ # * 'CommonPrefixes'<~Array> - Array of strings for common prefixes
30
31
  # * 'Contents'<~Array>:
31
32
  # * 'ETag'<~String>: Etag of object
32
33
  # * 'Key'<~String>: Name of object
@@ -8,19 +8,22 @@ module Fog
8
8
 
9
9
  identity :key, :aliases => 'Key'
10
10
 
11
- attr_writer :body
12
11
  attribute :content_length, :aliases => 'Content-Length'
13
12
  # attribute :content_type, :aliases => 'Content-Type'
14
13
  attribute :last_modified, :aliases => 'Last-Modified'
15
14
 
16
15
  def body
17
- @body ||= if last_modified
16
+ attributes[:body] ||= if last_modified
18
17
  collection.get(identity).body
19
18
  else
20
19
  ''
21
20
  end
22
21
  end
23
22
 
23
+ def body=(new_body)
24
+ attributes[:body] = new_body
25
+ end
26
+
24
27
  def directory
25
28
  @directory
26
29
  end
@@ -18,13 +18,13 @@ module Fog
18
18
  def server=(new_server)
19
19
  requires :id
20
20
 
21
- @server_id = new_server.id
21
+ self.server_id = new_server.id
22
22
  end
23
23
 
24
24
  def destroy
25
25
  requires :id
26
26
 
27
- connection.delete_image(@id)
27
+ connection.delete_image(id)
28
28
  true
29
29
  end
30
30
 
@@ -36,7 +36,7 @@ module Fog
36
36
  raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
37
37
  requires :server_id
38
38
 
39
- data = connection.create_image(@server_id, 'name' => name)
39
+ data = connection.create_image(server_id, 'name' => name)
40
40
  merge_attributes(data.body['image'])
41
41
  true
42
42
  end
@@ -22,24 +22,24 @@ module Fog
22
22
  attr_writer :private_key, :private_key_path, :public_key, :public_key_path, :username
23
23
 
24
24
  def initialize(attributes={})
25
- @flavor_id ||= 1
25
+ self.flavor_id ||= 1
26
26
  super
27
27
  end
28
28
 
29
29
  def destroy
30
30
  requires :id
31
- connection.delete_server(@id)
31
+ connection.delete_server(id)
32
32
  true
33
33
  end
34
34
 
35
35
  def flavor
36
36
  requires :flavor_id
37
- connection.flavors.get(@flavor_id)
37
+ connection.flavors.get(flavor_id)
38
38
  end
39
39
 
40
40
  def image
41
41
  requires :image_id
42
- connection.images.get(@image_id)
42
+ connection.images.get(image_id)
43
43
  end
44
44
 
45
45
  def images
@@ -66,12 +66,12 @@ module Fog
66
66
  end
67
67
 
68
68
  def ready?
69
- @status == 'ACTIVE'
69
+ status == 'ACTIVE'
70
70
  end
71
71
 
72
72
  def reboot(type = 'SOFT')
73
73
  requires :id
74
- connection.reboot_server(@id, type)
74
+ connection.reboot_server(id, type)
75
75
  true
76
76
  end
77
77
 
@@ -79,12 +79,12 @@ module Fog
79
79
  raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
80
80
  requires :flavor_id, :image_id, :name
81
81
  options = {
82
- 'metadata' => @metadata,
83
- 'name' => @name,
84
- 'personality' => @personality
82
+ 'metadata' => metadata,
83
+ 'name' => name,
84
+ 'personality' => personality
85
85
  }
86
86
  options = options.reject {|key, value| value.nil?}
87
- data = connection.create_server(@flavor_id, @image_id, options)
87
+ data = connection.create_server(flavor_id, image_id, options)
88
88
  merge_attributes(data.body['server'])
89
89
  true
90
90
  end
@@ -8,33 +8,36 @@ module Fog
8
8
 
9
9
  identity :key, :aliases => 'name'
10
10
 
11
- attr_writer :body
12
11
  attribute :content_length, :aliases => ['bytes', 'Content-Length'], :type => :integer
13
12
  attribute :content_type, :aliases => ['content_type', 'Content-Type']
14
13
  attribute :etag, :aliases => ['hash', 'Etag']
15
14
  attribute :last_modified, :aliases => ['last_modified', 'Last-Modified'], :type => :time
16
15
 
17
16
  def body
18
- @body ||= if last_modified
17
+ attributes[:body] ||= if last_modified
19
18
  collection.get(identity).body
20
19
  else
21
20
  ''
22
21
  end
23
22
  end
24
23
 
24
+ def body=(new_body)
25
+ attributes[:body] = new_body
26
+ end
27
+
25
28
  def directory
26
29
  @directory
27
30
  end
28
31
 
29
32
  def destroy
30
33
  requires :directory, :key
31
- connection.delete_object(directory.key, @key)
34
+ connection.delete_object(directory.key, key)
32
35
  true
33
36
  end
34
37
 
35
38
  def owner=(new_owner)
36
39
  if new_owner
37
- @owner = {
40
+ attributes[:owner] = {
38
41
  :display_name => new_owner['DisplayName'],
39
42
  :id => new_owner['ID']
40
43
  }
@@ -54,7 +57,7 @@ module Fog
54
57
 
55
58
  def save(options = {})
56
59
  requires :body, :directory, :key
57
- data = connection.put_object(directory.key, @key, @body, options)
60
+ data = connection.put_object(directory.key, key, body, options)
58
61
  merge_attributes(data.headers)
59
62
  if body.is_a?(String)
60
63
  self.content_length = body.size
@@ -18,10 +18,10 @@ module Fog
18
18
  def all(options = {})
19
19
  requires :directory
20
20
  options = {
21
- 'limit' => @limit,
22
- 'marker' => @marker,
23
- 'path' => @path,
24
- 'prefix' => @prefix
21
+ 'limit' => limit,
22
+ 'marker' => marker,
23
+ 'path' => path,
24
+ 'prefix' => prefix
25
25
  }.merge!(options)
26
26
  merge_attributes(options)
27
27
  parent = directory.collection.get(
@@ -23,24 +23,24 @@ module Fog
23
23
  attr_writer :private_key, :private_key_path, :public_key, :public_key_path, :username
24
24
 
25
25
  def initialize(attributes={})
26
- @flavor_id ||= 1
26
+ self.flavor_id ||= 1
27
27
  super
28
28
  end
29
29
 
30
30
  def destroy
31
31
  requires :id
32
- connection.delete_slice(@id)
32
+ connection.delete_slice(id)
33
33
  true
34
34
  end
35
35
 
36
36
  def flavor
37
37
  requires :flavor_id
38
- connection.flavors.get(@flavor_id)
38
+ connection.flavors.get(flavor_id)
39
39
  end
40
40
 
41
41
  def image
42
42
  requires :image_id
43
- connection.images.get(@image_id)
43
+ connection.images.get(image_id)
44
44
  end
45
45
 
46
46
  def private_key_path
@@ -62,12 +62,12 @@ module Fog
62
62
  end
63
63
 
64
64
  def ready?
65
- @status == 'active'
65
+ status == 'active'
66
66
  end
67
67
 
68
68
  def reboot(type = 'SOFT')
69
69
  requires :id
70
- connection.reboot_slice(@id, type)
70
+ connection.reboot_slice(id, type)
71
71
  true
72
72
  end
73
73
 
@@ -75,7 +75,7 @@ module Fog
75
75
  raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
76
76
  requires :flavor_id, :image_id, :name
77
77
 
78
- data = connection.create_slice(@flavor_id, @image_id, @name)
78
+ data = connection.create_slice(flavor_id, image_id, name)
79
79
  merge_attributes(data.body)
80
80
  true
81
81
  end
@@ -12,14 +12,14 @@ module Fog
12
12
 
13
13
  def destroy
14
14
  requires :id
15
- connection.delete_public_ip(@id)
15
+ connection.delete_public_ip(id)
16
16
  true
17
17
  end
18
18
 
19
19
  private
20
20
 
21
21
  def href=(new_href)
22
- @id = new_href.split('/').last.to_i
22
+ self.id = new_href.split('/').last.to_i
23
23
  end
24
24
 
25
25
  end
@@ -17,13 +17,13 @@ module Fog
17
17
 
18
18
  def ips
19
19
  #Until there is a real model for these ?
20
- connection.get_network_ips(@id).body['IpAddresses']
20
+ connection.get_network_ips(id).body['IpAddresses']
21
21
  end
22
22
 
23
23
  private
24
24
 
25
25
  def href=(new_href)
26
- @id = new_href.split('/').last.to_i
26
+ self.id = new_href.split('/').last.to_i
27
27
  end
28
28
 
29
29
  def type=(new_type); end