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
@@ -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