fog 0.0.56 → 0.0.57

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 (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
@@ -1,8 +1,9 @@
1
- unless Fog.mocking?
1
+ module Fog
2
+ module AWS
3
+ module EC2
4
+ class Real
2
5
 
3
- module Fog
4
- module AWS
5
- class EC2
6
+ require 'fog/aws/parsers/ec2/basic'
6
7
 
7
8
  # Delete an EBS volume
8
9
  #
@@ -15,26 +16,21 @@ unless Fog.mocking?
15
16
  # * 'requestId'<~String> - Id of request
16
17
  # * 'return'<~Boolean> - success?
17
18
  def delete_volume(volume_id)
18
- request({
19
- 'Action' => 'DeleteVolume',
20
- 'VolumeId' => volume_id
21
- }, Fog::Parsers::AWS::EC2::Basic.new)
19
+ request(
20
+ 'Action' => 'DeleteVolume',
21
+ 'VolumeId' => volume_id,
22
+ :parser => Fog::Parsers::AWS::EC2::Basic.new
23
+ )
22
24
  end
23
25
 
24
26
  end
25
- end
26
- end
27
27
 
28
- else
29
-
30
- module Fog
31
- module AWS
32
- class EC2
28
+ class Mock
33
29
 
34
30
  def delete_volume(volume_id)
35
31
  response = Excon::Response.new
36
- if volume = Fog::AWS::EC2.data[:volumes][volume_id]
37
- Fog::AWS::EC2.data[:deleted_at][volume_id] = Time.now
32
+ if volume = @data[:volumes][volume_id]
33
+ @data[:deleted_at][volume_id] = Time.now
38
34
  volume['status'] = 'deleting'
39
35
  response.status = 200
40
36
  response.body = {
@@ -51,5 +47,4 @@ else
51
47
  end
52
48
  end
53
49
  end
54
-
55
50
  end
@@ -1,8 +1,9 @@
1
- unless Fog.mocking?
1
+ module Fog
2
+ module AWS
3
+ module EC2
4
+ class Real
2
5
 
3
- module Fog
4
- module AWS
5
- class EC2
6
+ require 'fog/aws/parsers/ec2/describe_addresses'
6
7
 
7
8
  # Describe all or specified IP addresses.
8
9
  #
@@ -19,27 +20,22 @@ unless Fog.mocking?
19
20
  def describe_addresses(public_ip = [])
20
21
  params = AWS.indexed_param('PublicIp', public_ip)
21
22
  request({
22
- 'Action' => 'DescribeAddresses'
23
- }.merge!(params), Fog::Parsers::AWS::EC2::DescribeAddresses.new)
23
+ 'Action' => 'DescribeAddresses',
24
+ :parser => Fog::Parsers::AWS::EC2::DescribeAddresses.new
25
+ }.merge!(params))
24
26
  end
25
27
 
26
28
  end
27
- end
28
- end
29
29
 
30
- else
31
-
32
- module Fog
33
- module AWS
34
- class EC2
30
+ class Mock
35
31
 
36
32
  def describe_addresses(public_ip = [])
37
33
  response = Excon::Response.new
38
34
  public_ip = [*public_ip]
39
35
  if public_ip != []
40
- addresses_set = Fog::AWS::EC2.data[:addresses].reject {|key, value| !public_ip.include?(key)}.values
36
+ addresses_set = @data[:addresses].reject {|key, value| !public_ip.include?(key)}.values
41
37
  else
42
- addresses_set = Fog::AWS::EC2.data[:addresses].values
38
+ addresses_set = @data[:addresses].values
43
39
  end
44
40
  if public_ip.length == 0 || public_ip.length == addresses_set.length
45
41
  response.status = 200
@@ -57,5 +53,4 @@ else
57
53
  end
58
54
  end
59
55
  end
60
-
61
56
  end
@@ -1,8 +1,9 @@
1
- unless Fog.mocking?
1
+ module Fog
2
+ module AWS
3
+ module EC2
4
+ class Real
2
5
 
3
- module Fog
4
- module AWS
5
- class EC2
6
+ require 'fog/aws/parsers/ec2/describe_availability_zones'
6
7
 
7
8
  # Describe all or specified availability zones
8
9
  #
@@ -20,19 +21,14 @@ unless Fog.mocking?
20
21
  def describe_availability_zones(zone_name = [])
21
22
  params = AWS.indexed_param('ZoneName', zone_name)
22
23
  request({
23
- 'Action' => 'DescribeAvailabilityZones'
24
- }.merge!(params), Fog::Parsers::AWS::EC2::DescribeAvailabilityZones.new)
24
+ 'Action' => 'DescribeAvailabilityZones',
25
+ :parser => Fog::Parsers::AWS::EC2::DescribeAvailabilityZones.new
26
+ }.merge!(params))
25
27
  end
26
28
 
27
29
  end
28
- end
29
- end
30
30
 
31
- else
32
-
33
- module Fog
34
- module AWS
35
- class EC2
31
+ class Mock
36
32
 
37
33
  def describe_availability_zones(zone_name = [])
38
34
  response = Excon::Response.new
@@ -60,5 +56,4 @@ else
60
56
  end
61
57
  end
62
58
  end
63
-
64
59
  end
@@ -1,8 +1,9 @@
1
- unless Fog.mocking?
1
+ module Fog
2
+ module AWS
3
+ module EC2
4
+ class Real
2
5
 
3
- module Fog
4
- module AWS
5
- class EC2
6
+ require 'fog/aws/parsers/ec2/describe_images'
6
7
 
7
8
  # Describe all or specified images.
8
9
  #
@@ -34,19 +35,14 @@ unless Fog.mocking?
34
35
  options.merge!(AWS.indexed_param('ImageId', image_id))
35
36
  end
36
37
  request({
37
- 'Action' => 'DescribeImages'
38
- }.merge!(options), Fog::Parsers::AWS::EC2::DescribeImages.new)
38
+ 'Action' => 'DescribeImages',
39
+ :parser => Fog::Parsers::AWS::EC2::DescribeImages.new
40
+ }.merge!(options))
39
41
  end
40
42
 
41
43
  end
42
- end
43
- end
44
44
 
45
- else
46
-
47
- module Fog
48
- module AWS
49
- class EC2
45
+ class Mock
50
46
 
51
47
  def describe_images(options = {})
52
48
  response = Excon::Response.new
@@ -67,5 +63,4 @@ else
67
63
  end
68
64
  end
69
65
  end
70
-
71
66
  end
@@ -1,8 +1,9 @@
1
- unless Fog.mocking?
1
+ module Fog
2
+ module AWS
3
+ module EC2
4
+ class Real
2
5
 
3
- module Fog
4
- module AWS
5
- class EC2
6
+ require 'fog/aws/parsers/ec2/describe_instances'
6
7
 
7
8
  # Describe all or specified instances
8
9
  #
@@ -52,31 +53,26 @@ unless Fog.mocking?
52
53
  def describe_instances(instance_id = [])
53
54
  params = AWS.indexed_param('InstanceId', instance_id)
54
55
  request({
55
- 'Action' => 'DescribeInstances'
56
- }.merge!(params), Fog::Parsers::AWS::EC2::DescribeInstances.new)
56
+ 'Action' => 'DescribeInstances',
57
+ :parser => Fog::Parsers::AWS::EC2::DescribeInstances.new
58
+ }.merge!(params))
57
59
  end
58
60
 
59
61
  end
60
- end
61
- end
62
62
 
63
- else
64
-
65
- module Fog
66
- module AWS
67
- class EC2
63
+ class Mock
68
64
 
69
65
  def describe_instances(instance_id = {})
70
66
  response = Excon::Response.new
71
67
  instance_id = [*instance_id]
72
68
  if instance_id != []
73
- instance_set = Fog::AWS::EC2.data[:instances].reject {|key,value| !instance_id.include?(key)}.values
69
+ instance_set = @data[:instances].reject {|key,value| !instance_id.include?(key)}.values
74
70
  else
75
- instance_set = Fog::AWS::EC2.data[:instances].values
71
+ instance_set = @data[:instances].values
76
72
  end
77
73
 
78
74
  instance_set.each do |instance|
79
- case instance['instanceState']
75
+ case instance['instanceState']['name']
80
76
  when 'pending'
81
77
  if Time.now - instance['launchTime'] > 2
82
78
  instance['instanceState'] = { :code => 16, :name => 'running' }
@@ -84,13 +80,13 @@ else
84
80
  when 'rebooting'
85
81
  instance['instanceState'] = { :code => 16, :name => 'running' }
86
82
  when 'shutting-down'
87
- if Time.now - Fog::AWS::EC2.data[:deleted_at][instance['instanceId']] > 2
83
+ if Time.now - @data[:deleted_at][instance['instanceId']] > 2
88
84
  instance['instanceState'] = { :code => 16, :name => 'terminating' }
89
85
  end
90
86
  when 'terminating'
91
- if Time.now - Fog::AWS::EC2.data[:deleted_at][instance['instanceId']] > 4
92
- Fog::AWS::EC2.data[:deleted_at].delete(instance['instanceId'])
93
- Fog::AWS::EC2.data[:instances].delete(instance['instanceId'])
87
+ if Time.now - @data[:deleted_at][instance['instanceId']] > 4
88
+ @data[:deleted_at].delete(instance['instanceId'])
89
+ @data[:instances].delete(instance['instanceId'])
94
90
  end
95
91
  end
96
92
  end
@@ -106,7 +102,7 @@ else
106
102
  'ownerId' => instance['ownerId'],
107
103
  'reservationId' => instance['reservationId']
108
104
  }
109
- reservation_set[instance['reservationId']]['instancesSet'] << instance.reject{|key,value| !['amiLaunchIndex', 'dnsName', 'imageId', 'instanceId', 'instanceState', 'instanceType', 'kernelId', 'keyName', 'launchTime', 'monitoring', 'placement', 'privateDnsName', 'productCodes', 'ramdiskId', 'reason'].include?(key)}
105
+ reservation_set[instance['reservationId']]['instancesSet'] << instance.reject{|key,value| !['amiLaunchIndex', 'blockDeviceMapping', 'dnsName', 'imageId', 'instanceId', 'instanceState', 'instanceType', 'kernelId', 'keyName', 'launchTime', 'monitoring', 'placement', 'privateDnsName', 'productCodes', 'ramdiskId', 'reason', 'rootDeviceType'].include?(key)}
110
106
  end
111
107
 
112
108
  response.body = {
@@ -123,5 +119,4 @@ else
123
119
  end
124
120
  end
125
121
  end
126
-
127
122
  end
@@ -1,8 +1,9 @@
1
- unless Fog.mocking?
1
+ module Fog
2
+ module AWS
3
+ module EC2
4
+ class Real
2
5
 
3
- module Fog
4
- module AWS
5
- class EC2
6
+ require 'fog/aws/parsers/ec2/describe_key_pairs'
6
7
 
7
8
  # Describe all or specified key pairs
8
9
  #
@@ -19,27 +20,22 @@ unless Fog.mocking?
19
20
  def describe_key_pairs(key_name = [])
20
21
  params = AWS.indexed_param('KeyName', key_name)
21
22
  request({
22
- 'Action' => 'DescribeKeyPairs'
23
- }.merge!(params), Fog::Parsers::AWS::EC2::DescribeKeyPairs.new)
23
+ 'Action' => 'DescribeKeyPairs',
24
+ :parser => Fog::Parsers::AWS::EC2::DescribeKeyPairs.new
25
+ }.merge!(params))
24
26
  end
25
27
 
26
28
  end
27
- end
28
- end
29
29
 
30
- else
31
-
32
- module Fog
33
- module AWS
34
- class EC2
30
+ class Mock
35
31
 
36
32
  def describe_key_pairs(key_name = [])
37
33
  response = Excon::Response.new
38
34
  key_name = [*key_name]
39
35
  if key_name != []
40
- key_set = Fog::AWS::EC2.data[:key_pairs].reject {|key, value| !key_name.include?(key)}.values
36
+ key_set = @data[:key_pairs].reject {|key, value| !key_name.include?(key)}.values
41
37
  else
42
- key_set = Fog::AWS::EC2.data[:key_pairs].values
38
+ key_set = @data[:key_pairs].values
43
39
  end
44
40
  if key_name.length == 0 || key_name.length == key_set.length
45
41
  response.status = 200
@@ -59,5 +55,4 @@ else
59
55
  end
60
56
  end
61
57
  end
62
-
63
58
  end
@@ -1,8 +1,9 @@
1
- unless Fog.mocking?
1
+ module Fog
2
+ module AWS
3
+ module EC2
4
+ class Real
2
5
 
3
- module Fog
4
- module AWS
5
- class EC2
6
+ require 'fog/aws/parsers/ec2/describe_regions'
6
7
 
7
8
  # Describe all or specified regions
8
9
  #
@@ -19,19 +20,14 @@ unless Fog.mocking?
19
20
  def describe_regions(region_name = [])
20
21
  params = AWS.indexed_param('RegionName', region_name)
21
22
  request({
22
- 'Action' => 'DescribeRegions'
23
- }.merge!(params), Fog::Parsers::AWS::EC2::DescribeRegions.new)
23
+ 'Action' => 'DescribeRegions',
24
+ :parser => Fog::Parsers::AWS::EC2::DescribeRegions.new
25
+ }.merge!(params))
24
26
  end
25
27
 
26
28
  end
27
- end
28
- end
29
29
 
30
- else
31
-
32
- module Fog
33
- module AWS
34
- class EC2
30
+ class Mock
35
31
 
36
32
  def describe_regions(region_name = [])
37
33
  response = Excon::Response.new
@@ -57,5 +53,4 @@ else
57
53
  end
58
54
  end
59
55
  end
60
-
61
56
  end
@@ -1,8 +1,9 @@
1
- unless Fog.mocking?
1
+ module Fog
2
+ module AWS
3
+ module EC2
4
+ class Real
2
5
 
3
- module Fog
4
- module AWS
5
- class EC2
6
+ require 'fog/aws/parsers/ec2/describe_reserved_instances'
6
7
 
7
8
  # Describe all or specified reserved instances
8
9
  #
@@ -27,19 +28,14 @@ unless Fog.mocking?
27
28
  def describe_reserved_instances(reserved_instances_id = [])
28
29
  params = AWS.indexed_param('ReservedInstancesId', reserved_instances_id)
29
30
  request({
30
- 'Action' => 'DescribeReservedInstances'
31
- }.merge!(params), Fog::Parsers::AWS::EC2::DescribeReservedInstances.new)
31
+ 'Action' => 'DescribeReservedInstances',
32
+ :parser => Fog::Parsers::AWS::EC2::DescribeReservedInstances.new
33
+ }.merge!(params))
32
34
  end
33
35
 
34
36
  end
35
- end
36
- end
37
37
 
38
- else
39
-
40
- module Fog
41
- module AWS
42
- class EC2
38
+ class Mock
43
39
 
44
40
  def describe_reserved_instances(reserved_instances_id = {})
45
41
  raise MockNotImplemented.new("Contributions welcome!")
@@ -48,5 +44,4 @@ else
48
44
  end
49
45
  end
50
46
  end
51
-
52
47
  end
@@ -1,8 +1,9 @@
1
- unless Fog.mocking?
1
+ module Fog
2
+ module AWS
3
+ module EC2
4
+ class Real
2
5
 
3
- module Fog
4
- module AWS
5
- class EC2
6
+ require 'fog/aws/parsers/ec2/describe_security_groups'
6
7
 
7
8
  # Describe all or specified security groups
8
9
  #
@@ -29,27 +30,22 @@ unless Fog.mocking?
29
30
  def describe_security_groups(group_name = [])
30
31
  params = AWS.indexed_param('GroupName', group_name)
31
32
  request({
32
- 'Action' => 'DescribeSecurityGroups',
33
- }.merge!(params), Fog::Parsers::AWS::EC2::DescribeSecurityGroups.new)
33
+ 'Action' => 'DescribeSecurityGroups',
34
+ :parser => Fog::Parsers::AWS::EC2::DescribeSecurityGroups.new
35
+ }.merge!(params))
34
36
  end
35
37
 
36
38
  end
37
- end
38
- end
39
39
 
40
- else
41
-
42
- module Fog
43
- module AWS
44
- class EC2
40
+ class Mock
45
41
 
46
42
  def describe_security_groups(group_name = [])
47
43
  response = Excon::Response.new
48
44
  group_name = [*group_name]
49
45
  if group_name != []
50
- security_group_info = Fog::AWS::EC2.data[:security_groups].reject {|key, value| !group_name.include?(key)}.values
46
+ security_group_info = @data[:security_groups].reject {|key, value| !group_name.include?(key)}.values
51
47
  else
52
- security_group_info = Fog::AWS::EC2.data[:security_groups].values
48
+ security_group_info = @data[:security_groups].values
53
49
  end
54
50
  if group_name.length == 0 || group_name.length == security_group_info.length
55
51
  response.status = 200
@@ -67,5 +63,4 @@ else
67
63
  end
68
64
  end
69
65
  end
70
-
71
66
  end