fog 0.1.8 → 0.1.9

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 (128) hide show
  1. data/Gemfile +2 -2
  2. data/Gemfile.lock +5 -5
  3. data/README.rdoc +29 -29
  4. data/fog.gemspec +24 -2
  5. data/lib/fog.rb +4 -15
  6. data/lib/fog/aws.rb +2 -2
  7. data/lib/fog/aws/ec2.rb +64 -101
  8. data/lib/fog/aws/elb.rb +19 -27
  9. data/lib/fog/aws/models/ec2/addresses.rb +1 -9
  10. data/lib/fog/aws/models/ec2/flavors.rb +1 -7
  11. data/lib/fog/aws/models/ec2/images.rb +1 -7
  12. data/lib/fog/aws/models/ec2/key_pairs.rb +1 -7
  13. data/lib/fog/aws/models/ec2/security_groups.rb +1 -7
  14. data/lib/fog/aws/models/ec2/servers.rb +1 -7
  15. data/lib/fog/aws/models/ec2/snapshots.rb +1 -9
  16. data/lib/fog/aws/models/ec2/volumes.rb +1 -9
  17. data/lib/fog/aws/models/s3/directories.rb +1 -7
  18. data/lib/fog/aws/models/s3/file.rb +5 -0
  19. data/lib/fog/aws/requests/ec2/allocate_address.rb +2 -0
  20. data/lib/fog/aws/requests/ec2/attach_volume.rb +2 -0
  21. data/lib/fog/aws/requests/ec2/create_key_pair.rb +2 -0
  22. data/lib/fog/aws/requests/ec2/create_snapshot.rb +2 -0
  23. data/lib/fog/aws/requests/ec2/create_volume.rb +2 -0
  24. data/lib/fog/aws/requests/ec2/describe_addresses.rb +2 -0
  25. data/lib/fog/aws/requests/ec2/describe_availability_zones.rb +2 -0
  26. data/lib/fog/aws/requests/ec2/describe_images.rb +2 -0
  27. data/lib/fog/aws/requests/ec2/describe_instances.rb +2 -0
  28. data/lib/fog/aws/requests/ec2/describe_key_pairs.rb +2 -0
  29. data/lib/fog/aws/requests/ec2/describe_regions.rb +2 -0
  30. data/lib/fog/aws/requests/ec2/describe_reserved_instances.rb +2 -0
  31. data/lib/fog/aws/requests/ec2/describe_security_groups.rb +2 -0
  32. data/lib/fog/aws/requests/ec2/describe_snapshots.rb +2 -0
  33. data/lib/fog/aws/requests/ec2/describe_volumes.rb +2 -0
  34. data/lib/fog/aws/requests/ec2/detach_volume.rb +2 -0
  35. data/lib/fog/aws/requests/ec2/get_console_output.rb +2 -0
  36. data/lib/fog/aws/requests/ec2/run_instances.rb +2 -0
  37. data/lib/fog/aws/requests/ec2/terminate_instances.rb +2 -0
  38. data/lib/fog/aws/requests/elb/create_load_balancer.rb +2 -0
  39. data/lib/fog/aws/requests/elb/delete_load_balancer.rb +2 -0
  40. data/lib/fog/aws/requests/elb/deregister_instances_from_load_balancer.rb +2 -0
  41. data/lib/fog/aws/requests/elb/describe_instance_health.rb +2 -0
  42. data/lib/fog/aws/requests/elb/describe_load_balancers.rb +2 -0
  43. data/lib/fog/aws/requests/elb/disable_availability_zones_for_load_balancer.rb +2 -0
  44. data/lib/fog/aws/requests/elb/enable_availability_zones_for_load_balancer.rb +2 -0
  45. data/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb +2 -0
  46. data/lib/fog/aws/requests/s3/copy_object.rb +2 -0
  47. data/lib/fog/aws/requests/s3/get_bucket.rb +2 -0
  48. data/lib/fog/aws/requests/s3/get_bucket_acl.rb +2 -0
  49. data/lib/fog/aws/requests/s3/get_bucket_location.rb +2 -0
  50. data/lib/fog/aws/requests/s3/get_bucket_logging.rb +2 -0
  51. data/lib/fog/aws/requests/s3/get_bucket_object_versions.rb +2 -0
  52. data/lib/fog/aws/requests/s3/get_bucket_versioning.rb +2 -0
  53. data/lib/fog/aws/requests/s3/get_object_acl.rb +2 -0
  54. data/lib/fog/aws/requests/s3/get_request_payment.rb +2 -0
  55. data/lib/fog/aws/requests/s3/get_service.rb +2 -0
  56. data/lib/fog/aws/requests/s3/put_object.rb +2 -2
  57. data/lib/fog/aws/requests/simpledb/domain_metadata.rb +2 -0
  58. data/lib/fog/aws/requests/simpledb/get_attributes.rb +2 -0
  59. data/lib/fog/aws/requests/simpledb/list_domains.rb +2 -0
  60. data/lib/fog/aws/requests/simpledb/select.rb +2 -0
  61. data/lib/fog/aws/s3.rb +68 -85
  62. data/lib/fog/aws/simpledb.rb +15 -29
  63. data/lib/fog/bluebox.rb +23 -40
  64. data/lib/fog/bluebox/models/flavors.rb +1 -7
  65. data/lib/fog/bluebox/models/images.rb +1 -9
  66. data/lib/fog/bluebox/models/servers.rb +1 -7
  67. data/lib/fog/credentials.rb +2 -0
  68. data/lib/fog/errors.rb +20 -0
  69. data/lib/fog/hmac.rb +48 -0
  70. data/lib/fog/local.rb +9 -22
  71. data/lib/fog/local/models/directories.rb +1 -7
  72. data/lib/fog/rackspace.rb +2 -6
  73. data/lib/fog/rackspace/files.rb +46 -48
  74. data/lib/fog/rackspace/models/files/directories.rb +1 -7
  75. data/lib/fog/rackspace/models/servers/flavors.rb +1 -7
  76. data/lib/fog/rackspace/models/servers/images.rb +1 -9
  77. data/lib/fog/rackspace/models/servers/server.rb +37 -1
  78. data/lib/fog/rackspace/models/servers/servers.rb +8 -7
  79. data/lib/fog/rackspace/requests/files/put_object.rb +1 -1
  80. data/lib/fog/rackspace/servers.rb +33 -45
  81. data/lib/fog/service.rb +82 -0
  82. data/lib/fog/slicehost.rb +28 -42
  83. data/lib/fog/slicehost/models/flavors.rb +1 -7
  84. data/lib/fog/slicehost/models/images.rb +1 -9
  85. data/lib/fog/slicehost/models/servers.rb +1 -7
  86. data/lib/fog/ssh.rb +1 -1
  87. data/lib/fog/vcloud.rb +20 -3
  88. data/lib/fog/vcloud/collection.rb +25 -5
  89. data/lib/fog/vcloud/model.rb +4 -0
  90. data/lib/fog/vcloud/parsers/get_organization.rb +2 -2
  91. data/lib/fog/vcloud/parsers/get_vdc.rb +2 -2
  92. data/lib/fog/vcloud/parsers/get_versions.rb +1 -1
  93. data/lib/fog/vcloud/parsers/login.rb +2 -2
  94. data/lib/fog/vcloud/parsers/network.rb +53 -0
  95. data/lib/fog/vcloud/requests/get_network.rb +54 -0
  96. data/lib/fog/vcloud/requests/get_organization.rb +1 -2
  97. data/lib/fog/vcloud/terremark/ecloud.rb +17 -4
  98. data/lib/fog/vcloud/terremark/ecloud/models/internet_service.rb +35 -0
  99. data/lib/fog/vcloud/terremark/ecloud/models/internet_services.rb +9 -9
  100. data/lib/fog/vcloud/terremark/ecloud/models/ip.rb +18 -0
  101. data/lib/fog/vcloud/terremark/ecloud/models/ips.rb +36 -0
  102. data/lib/fog/vcloud/terremark/ecloud/models/network.rb +32 -0
  103. data/lib/fog/vcloud/terremark/ecloud/models/networks.rb +38 -0
  104. data/lib/fog/vcloud/terremark/ecloud/models/public_ip.rb +3 -1
  105. data/lib/fog/vcloud/terremark/ecloud/models/public_ips.rb +1 -1
  106. data/lib/fog/vcloud/terremark/ecloud/models/vdc.rb +9 -0
  107. data/lib/fog/vcloud/terremark/ecloud/models/vdcs.rb +2 -0
  108. data/lib/fog/vcloud/terremark/ecloud/parsers/network.rb +28 -0
  109. data/lib/fog/vcloud/terremark/ecloud/parsers/network_ips.rb +31 -0
  110. data/lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb +10 -7
  111. data/lib/fog/vcloud/terremark/ecloud/requests/configure_internet_service.rb +99 -0
  112. data/lib/fog/vcloud/terremark/ecloud/requests/get_network.rb +54 -0
  113. data/lib/fog/vcloud/terremark/ecloud/requests/get_network_ips.rb +51 -0
  114. data/spec/aws/models/s3/file_spec.rb +15 -0
  115. data/spec/vcloud/requests/get_network_spec.rb +55 -0
  116. data/spec/vcloud/spec_helper.rb +1 -0
  117. data/spec/vcloud/terremark/ecloud/models/internet_service_spec.rb +15 -0
  118. data/spec/vcloud/terremark/ecloud/models/ip_spec.rb +35 -0
  119. data/spec/vcloud/terremark/ecloud/models/ips_spec.rb +28 -0
  120. data/spec/vcloud/terremark/ecloud/models/network_spec.rb +65 -0
  121. data/spec/vcloud/terremark/ecloud/models/networks_spec.rb +26 -0
  122. data/spec/vcloud/terremark/ecloud/models/public_ip_spec.rb +0 -2
  123. data/spec/vcloud/terremark/ecloud/requests/configure_internet_service_spec.rb +44 -0
  124. data/spec/vcloud/terremark/ecloud/requests/get_network_ips_spec.rb +54 -0
  125. data/spec/vcloud/terremark/ecloud/requests/get_network_spec.rb +63 -0
  126. data/tests/aws/requests/ec2/volume_tests.rb +2 -2
  127. data/tests/helper.rb +2 -0
  128. metadata +25 -3
@@ -1,39 +1,31 @@
1
1
  module Fog
2
2
  module AWS
3
3
  module ELB
4
+ extend Fog::Service
4
5
 
5
- def self.new(options={})
6
+ requires :aws_access_key_id, :aws_secret_access_key
6
7
 
7
- unless @required
8
- require 'fog/aws/parsers/elb/create_load_balancer'
9
- require 'fog/aws/parsers/elb/delete_load_balancer'
10
- require 'fog/aws/parsers/elb/deregister_instances_from_load_balancer'
11
- require 'fog/aws/parsers/elb/describe_instance_health'
12
- require 'fog/aws/parsers/elb/describe_load_balancers'
13
- require 'fog/aws/parsers/elb/disable_availability_zones_for_load_balancer'
14
- require 'fog/aws/parsers/elb/enable_availability_zones_for_load_balancer'
15
- require 'fog/aws/parsers/elb/register_instances_with_load_balancer'
16
- require 'fog/aws/requests/elb/create_load_balancer'
17
- require 'fog/aws/requests/elb/delete_load_balancer'
18
- require 'fog/aws/requests/elb/deregister_instances_from_load_balancer'
19
- require 'fog/aws/requests/elb/describe_instance_health'
20
- require 'fog/aws/requests/elb/describe_load_balancers'
21
- require 'fog/aws/requests/elb/disable_availability_zones_for_load_balancer'
22
- require 'fog/aws/requests/elb/enable_availability_zones_for_load_balancer'
23
- require 'fog/aws/requests/elb/register_instances_with_load_balancer'
24
- @required = true
25
- end
8
+ request_path 'fog/aws/requests/elb'
9
+ request 'create_load_balancer'
10
+ request 'delete_load_balancer'
11
+ request 'deregister_instances_from_load_balancer'
12
+ request 'describe_instance_health'
13
+ request 'describe_load_balancers'
14
+ request 'disable_availability_zones_for_load_balancer'
15
+ request 'enable_availability_zones_for_load_balancer'
16
+ request 'register_instances_with_load_balancer'
26
17
 
27
- unless options[:aws_access_key_id]
28
- raise ArgumentError.new('aws_access_key_id is required to access elb')
29
- end
30
- unless options[:aws_secret_access_key]
31
- raise ArgumentError.new('aws_secret_access_key is required to access elb')
18
+ class Mock
19
+ include Collections
20
+
21
+ def initialize(options={})
22
+ Fog::Mock.not_implemented
32
23
  end
33
- Fog::AWS::ELB::Real.new(options)
24
+
34
25
  end
35
26
 
36
27
  class Real
28
+ include Collections
37
29
 
38
30
  # Initialize connection to ELB
39
31
  #
@@ -56,7 +48,7 @@ module Fog
56
48
  def initialize(options={})
57
49
  @aws_access_key_id = options[:aws_access_key_id]
58
50
  @aws_secret_access_key = options[:aws_secret_access_key]
59
- @hmac = HMAC::SHA256.new(@aws_secret_access_key)
51
+ @hmac = Fog::HMAC.new('sha256', @aws_secret_access_key)
60
52
  @host = options[:host] || case options[:region]
61
53
  when 'ap-southeast-1'
62
54
  'elasticloadbalancing.ap-southeast-1.amazonaws.com'
@@ -5,15 +5,7 @@ module Fog
5
5
  module AWS
6
6
  module EC2
7
7
 
8
- class Mock
9
- def addresses(attributes = {})
10
- Fog::AWS::EC2::Addresses.new({
11
- :connection => self
12
- }.merge!(attributes))
13
- end
14
- end
15
-
16
- class Real
8
+ module Collections
17
9
  def addresses(attributes = {})
18
10
  Fog::AWS::EC2::Addresses.new({
19
11
  :connection => self
@@ -5,13 +5,7 @@ module Fog
5
5
  module AWS
6
6
  module EC2
7
7
 
8
- class Mock
9
- def flavors
10
- Fog::AWS::EC2::Flavors.new(:connection => self)
11
- end
12
- end
13
-
14
- class Real
8
+ module Collections
15
9
  def flavors
16
10
  Fog::AWS::EC2::Flavors.new(:connection => self)
17
11
  end
@@ -5,13 +5,7 @@ module Fog
5
5
  module AWS
6
6
  module EC2
7
7
 
8
- class Mock
9
- def images
10
- Fog::AWS::EC2::Images.new(:connection => self)
11
- end
12
- end
13
-
14
- class Real
8
+ module Collections
15
9
  def images
16
10
  Fog::AWS::EC2::Images.new(:connection => self)
17
11
  end
@@ -5,13 +5,7 @@ module Fog
5
5
  module AWS
6
6
  module EC2
7
7
 
8
- class Mock
9
- def key_pairs
10
- Fog::AWS::EC2::KeyPairs.new(:connection => self)
11
- end
12
- end
13
-
14
- class Real
8
+ module Collections
15
9
  def key_pairs
16
10
  Fog::AWS::EC2::KeyPairs.new(:connection => self)
17
11
  end
@@ -5,13 +5,7 @@ module Fog
5
5
  module AWS
6
6
  module EC2
7
7
 
8
- class Mock
9
- def security_groups
10
- Fog::AWS::EC2::SecurityGroups.new(:connection => self)
11
- end
12
- end
13
-
14
- class Real
8
+ module Collections
15
9
  def security_groups
16
10
  Fog::AWS::EC2::SecurityGroups.new(:connection => self)
17
11
  end
@@ -5,13 +5,7 @@ module Fog
5
5
  module AWS
6
6
  module EC2
7
7
 
8
- class Mock
9
- def servers
10
- Fog::AWS::EC2::Servers.new(:connection => self)
11
- end
12
- end
13
-
14
- class Real
8
+ module Collections
15
9
  def servers
16
10
  Fog::AWS::EC2::Servers.new(:connection => self)
17
11
  end
@@ -5,15 +5,7 @@ module Fog
5
5
  module AWS
6
6
  module EC2
7
7
 
8
- class Mock
9
- def snapshots(attributes = {})
10
- Fog::AWS::EC2::Snapshots.new({
11
- :connection => self
12
- }.merge!(attributes))
13
- end
14
- end
15
-
16
- class Real
8
+ module Collections
17
9
  def snapshots(attributes = {})
18
10
  Fog::AWS::EC2::Snapshots.new({
19
11
  :connection => self
@@ -5,15 +5,7 @@ module Fog
5
5
  module AWS
6
6
  module EC2
7
7
 
8
- class Mock
9
- def volumes(attributes = {})
10
- Fog::AWS::EC2::Volumes.new({
11
- :connection => self
12
- }.merge!(attributes))
13
- end
14
- end
15
-
16
- class Real
8
+ module Collections
17
9
  def volumes(attributes = {})
18
10
  Fog::AWS::EC2::Volumes.new({
19
11
  :connection => self
@@ -5,13 +5,7 @@ module Fog
5
5
  module AWS
6
6
  module S3
7
7
 
8
- class Real
9
- def directories
10
- Fog::AWS::S3::Directories.new(:connection => self)
11
- end
12
- end
13
-
14
- class Mock
8
+ module Collections
15
9
  def directories
16
10
  Fog::AWS::S3::Directories.new(:connection => self)
17
11
  end
@@ -66,6 +66,11 @@ module Fog
66
66
  true
67
67
  end
68
68
 
69
+ def url(expires)
70
+ requires :key
71
+ collection.get_url(key, expires)
72
+ end
73
+
69
74
  private
70
75
 
71
76
  def directory=(new_directory)
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/allocate_address'
7
+
6
8
  # Acquire an elastic IP address.
7
9
  #
8
10
  # ==== Returns
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/attach_volume'
7
+
6
8
  # Attach an Amazon EBS volume with a running instance, exposing as specified device
7
9
  #
8
10
  # ==== Parameters
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/create_key_pair'
7
+
6
8
  # Create a new key pair
7
9
  #
8
10
  # ==== Parameters
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/create_snapshot'
7
+
6
8
  # Create a snapshot of an EBS volume and store it in S3
7
9
  #
8
10
  # ==== Parameters
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/create_volume'
7
+
6
8
  # Create an EBS volume
7
9
  #
8
10
  # ==== Parameters
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/describe_addresses'
7
+
6
8
  # Describe all or specified IP addresses.
7
9
  #
8
10
  # ==== Parameters
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/describe_availability_zones'
7
+
6
8
  # Describe all or specified availability zones
7
9
  #
8
10
  # ==== Params
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/describe_images'
7
+
6
8
  # Describe all or specified images.
7
9
  #
8
10
  # ==== Params
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/describe_instances'
7
+
6
8
  # Describe all or specified instances
7
9
  #
8
10
  # ==== Parameters
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/describe_key_pairs'
7
+
6
8
  # Describe all or specified key pairs
7
9
  #
8
10
  # ==== Parameters
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/describe_regions'
7
+
6
8
  # Describe all or specified regions
7
9
  #
8
10
  # ==== Params
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/describe_reserved_instances'
7
+
6
8
  # Describe all or specified reserved instances
7
9
  #
8
10
  # ==== Parameters
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/describe_security_groups'
7
+
6
8
  # Describe all or specified security groups
7
9
  #
8
10
  # ==== Parameters
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/describe_snapshots'
7
+
6
8
  # Describe all or specified snapshots
7
9
  #
8
10
  # ==== Parameters
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/describe_volumes'
7
+
6
8
  # Describe all or specified volumes.
7
9
  #
8
10
  # ==== Parameters
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/detach_volume'
7
+
6
8
  # Detach an Amazon EBS volume from a running instance
7
9
  #
8
10
  # ==== Parameters
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/get_console_output'
7
+
6
8
  # Retrieve console output for specified instance
7
9
  #
8
10
  # ==== Parameters
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/run_instances'
7
+
6
8
  # Launch specified instances
7
9
  #
8
10
  # ==== Parameters
@@ -3,6 +3,8 @@ module Fog
3
3
  module EC2
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/ec2/terminate_instances'
7
+
6
8
  # Terminate specified instances
7
9
  #
8
10
  # ==== Parameters
@@ -3,6 +3,8 @@ module Fog
3
3
  module ELB
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/elb/create_load_balancer'
7
+
6
8
  # Create a new Elastic Load Balancer
7
9
  #
8
10
  # ==== Parameters
@@ -3,6 +3,8 @@ module Fog
3
3
  module ELB
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/elb/delete_load_balancer'
7
+
6
8
  # Delete an existing Elastic Load Balancer
7
9
  #
8
10
  # Note that this API call, as defined by Amazon, is idempotent.
@@ -3,6 +3,8 @@ module Fog
3
3
  module ELB
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/elb/deregister_instances_from_load_balancer'
7
+
6
8
  # Deregister an instance from an existing ELB
7
9
  #
8
10
  # ==== Parameters
@@ -3,6 +3,8 @@ module Fog
3
3
  module ELB
4
4
  class Real
5
5
 
6
+ require 'fog/aws/parsers/elb/describe_instance_health'
7
+
6
8
  # Get health status for one or more instances on an existing ELB
7
9
  #
8
10
  # ==== Parameters