fog 0.3.22 → 0.3.23

Sign up to get free protection for your applications and to get access to all the features.
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