fog 0.3.31 → 0.3.32
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +3 -0
- data/.gitignore +10 -0
- data/Gemfile.lock +1 -4
- data/README.rdoc +29 -37
- data/Rakefile +5 -25
- data/bin/fog +1 -3
- data/examples/dns_methods.rb +389 -0
- data/examples/storage.rb +103 -0
- data/fog.gemspec +4 -778
- data/lib/fog.rb +5 -66
- data/lib/fog/aws.rb +3 -0
- data/lib/fog/aws/bin.rb +7 -2
- data/lib/fog/aws/cdn.rb +2 -2
- data/lib/fog/aws/compute.rb +2 -2
- data/lib/fog/aws/dns.rb +101 -0
- data/lib/fog/aws/elb.rb +2 -2
- data/lib/fog/aws/iam.rb +2 -2
- data/lib/fog/aws/models/compute/image.rb +1 -0
- data/lib/fog/aws/models/compute/server.rb +1 -1
- data/lib/fog/aws/models/compute/servers.rb +1 -13
- data/lib/fog/aws/parsers/compute/describe_images.rb +36 -34
- data/lib/fog/aws/parsers/dns/change_resource_record_sets.rb +26 -0
- data/lib/fog/aws/parsers/dns/create_hosted_zone.rb +55 -0
- data/lib/fog/aws/parsers/dns/delete_hosted_zone.rb +25 -0
- data/lib/fog/aws/parsers/dns/get_change.rb +26 -0
- data/lib/fog/aws/parsers/dns/get_hosted_zone.rb +43 -0
- data/lib/fog/aws/parsers/dns/list_hosted_zones.rb +35 -0
- data/lib/fog/aws/parsers/dns/list_resource_record_sets.rb +46 -0
- data/lib/fog/aws/requests/compute/describe_images.rb +1 -0
- data/lib/fog/aws/requests/dns/change_resource_record_sets.rb +90 -0
- data/lib/fog/aws/requests/dns/create_hosted_zone.rb +68 -0
- data/lib/fog/aws/requests/dns/delete_hosted_zone.rb +48 -0
- data/lib/fog/aws/requests/dns/get_change.rb +47 -0
- data/lib/fog/aws/requests/dns/get_hosted_zone.rb +51 -0
- data/lib/fog/aws/requests/dns/list_hosted_zones.rb +63 -0
- data/lib/fog/aws/requests/dns/list_resource_record_sets.rb +68 -0
- data/lib/fog/aws/requests/storage/get_object_url.rb +2 -2
- data/lib/fog/aws/requests/storage/put_object_url.rb +2 -2
- data/lib/fog/aws/requests/storage/sync_clock.rb +28 -0
- data/lib/fog/aws/simpledb.rb +2 -2
- data/lib/fog/aws/storage.rb +5 -3
- data/lib/fog/bluebox.rb +2 -0
- data/lib/fog/bluebox/compute.rb +2 -2
- data/lib/fog/brightbox.rb +2 -0
- data/lib/fog/brightbox/compute.rb +2 -2
- data/lib/fog/core.rb +21 -1
- data/lib/fog/core/bin.rb +3 -1
- data/lib/fog/core/compute.rb +1 -0
- data/lib/fog/core/credentials.rb +72 -50
- data/lib/fog/core/deprecation.rb +11 -5
- data/lib/fog/core/mock.rb +34 -0
- data/lib/fog/core/model.rb +9 -1
- data/lib/fog/core/service.rb +40 -26
- data/lib/fog/core/storage.rb +1 -0
- data/lib/fog/core/time.rb +21 -0
- data/lib/fog/core/wait_for.rb +17 -0
- data/lib/fog/go_grid.rb +2 -0
- data/lib/fog/go_grid/compute.rb +2 -2
- data/lib/fog/google.rb +2 -0
- data/lib/fog/google/requests/storage/get_bucket.rb +6 -5
- data/lib/fog/google/requests/storage/get_object_url.rb +4 -4
- data/lib/fog/google/requests/storage/put_object_url.rb +4 -4
- data/lib/fog/google/storage.rb +4 -3
- data/lib/fog/linode.rb +3 -0
- data/lib/fog/linode/bin.rb +5 -3
- data/lib/fog/linode/compute.rb +6 -2
- data/lib/fog/linode/dns.rb +80 -0
- data/lib/fog/linode/requests/dns/domain_create.rb +52 -0
- data/lib/fog/linode/requests/dns/domain_delete.rb +35 -0
- data/lib/fog/linode/requests/dns/domain_list.rb +50 -0
- data/lib/fog/linode/requests/dns/domain_resource_create.rb +53 -0
- data/lib/fog/linode/requests/dns/domain_resource_delete.rb +36 -0
- data/lib/fog/linode/requests/dns/domain_resource_list.rb +48 -0
- data/lib/fog/linode/requests/dns/domain_resource_update.rb +54 -0
- data/lib/fog/linode/requests/dns/domain_update.rb +48 -0
- data/lib/fog/local.rb +2 -0
- data/lib/fog/local/storage.rb +3 -3
- data/lib/fog/new_servers.rb +2 -0
- data/lib/fog/new_servers/compute.rb +2 -2
- data/lib/fog/rackspace.rb +2 -0
- data/lib/fog/rackspace/cdn.rb +2 -2
- data/lib/fog/rackspace/compute.rb +2 -2
- data/lib/fog/rackspace/storage.rb +2 -2
- data/lib/fog/slicehost.rb +3 -0
- data/lib/fog/slicehost/bin.rb +2 -0
- data/lib/fog/slicehost/compute.rb +2 -2
- data/lib/fog/slicehost/dns.rb +84 -0
- data/lib/fog/slicehost/parsers/dns/create_record.rb +26 -0
- data/lib/fog/slicehost/parsers/dns/create_zone.rb +26 -0
- data/lib/fog/slicehost/parsers/dns/get_record.rb +26 -0
- data/lib/fog/slicehost/parsers/dns/get_records.rb +30 -0
- data/lib/fog/slicehost/parsers/dns/get_zone.rb +26 -0
- data/lib/fog/slicehost/parsers/dns/get_zones.rb +30 -0
- data/lib/fog/slicehost/requests/compute/create_slice.rb +2 -2
- data/lib/fog/slicehost/requests/compute/delete_slice.rb +3 -17
- data/lib/fog/slicehost/requests/dns/create_record.rb +61 -0
- data/lib/fog/slicehost/requests/dns/create_zone.rb +54 -0
- data/lib/fog/slicehost/requests/dns/delete_record.rb +31 -0
- data/lib/fog/slicehost/requests/dns/delete_zone.rb +31 -0
- data/lib/fog/slicehost/requests/dns/get_record.rb +40 -0
- data/lib/fog/slicehost/requests/dns/get_records.rb +41 -0
- data/lib/fog/slicehost/requests/dns/get_zone.rb +40 -0
- data/lib/fog/slicehost/requests/dns/get_zones.rb +38 -0
- data/lib/fog/terremark.rb +2 -0
- data/lib/fog/terremark/ecloud.rb +2 -4
- data/lib/fog/vcloud.rb +4 -2
- data/lib/fog/vcloud/bin.rb +3 -1
- data/lib/fog/vcloud/mock_data_classes.rb +77 -11
- data/lib/fog/vcloud/terremark/ecloud.rb +22 -7
- data/lib/fog/vcloud/terremark/ecloud/models/backup_internet_service.rb +60 -0
- data/lib/fog/vcloud/terremark/ecloud/models/backup_internet_services.rb +36 -0
- data/lib/fog/vcloud/terremark/ecloud/models/internet_service.rb +28 -13
- data/lib/fog/vcloud/terremark/ecloud/models/internet_services.rb +2 -2
- data/lib/fog/vcloud/terremark/ecloud/models/ip.rb +1 -1
- data/lib/fog/vcloud/terremark/ecloud/models/network.rb +4 -1
- data/lib/fog/vcloud/terremark/ecloud/models/server.rb +5 -5
- data/lib/fog/vcloud/terremark/ecloud/models/vdc.rb +6 -2
- data/lib/fog/vcloud/terremark/ecloud/requests/add_backup_internet_service.rb +111 -0
- data/lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb +2 -4
- data/lib/fog/vcloud/terremark/ecloud/requests/add_node.rb +1 -3
- data/lib/fog/vcloud/terremark/ecloud/requests/configure_internet_service.rb +39 -27
- data/lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb +1 -2
- data/lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb +21 -6
- data/lib/fog/vcloud/terremark/ecloud/requests/delete_vapp.rb +2 -1
- data/lib/fog/vcloud/terremark/ecloud/requests/get_internet_services.rb +34 -17
- data/lib/fog/vcloud/terremark/ecloud/requests/get_network_extensions.rb +12 -10
- data/lib/fog/vcloud/terremark/ecloud/requests/get_network_ip.rb +15 -10
- data/lib/fog/vcloud/terremark/ecloud/requests/get_network_ips.rb +1 -12
- data/lib/fog/zerigo.rb +15 -0
- data/lib/fog/zerigo/bin.rb +25 -0
- data/lib/fog/zerigo/dns.rb +96 -0
- data/lib/fog/zerigo/parsers/dns/count_hosts.rb +24 -0
- data/lib/fog/zerigo/parsers/dns/count_zones.rb +24 -0
- data/lib/fog/zerigo/parsers/dns/create_host.rb +26 -0
- data/lib/fog/zerigo/parsers/dns/create_zone.rb +26 -0
- data/lib/fog/zerigo/parsers/dns/find_hosts.rb +30 -0
- data/lib/fog/zerigo/parsers/dns/get_host.rb +26 -0
- data/lib/fog/zerigo/parsers/dns/get_zone.rb +56 -0
- data/lib/fog/zerigo/parsers/dns/get_zone_stats.rb +26 -0
- data/lib/fog/zerigo/parsers/dns/list_hosts.rb +30 -0
- data/lib/fog/zerigo/parsers/dns/list_zones.rb +30 -0
- data/lib/fog/zerigo/requests/dns/count_hosts.rb +36 -0
- data/lib/fog/zerigo/requests/dns/count_zones.rb +36 -0
- data/lib/fog/zerigo/requests/dns/create_host.rb +70 -0
- data/lib/fog/zerigo/requests/dns/create_zone.rb +97 -0
- data/lib/fog/zerigo/requests/dns/delete_host.rb +32 -0
- data/lib/fog/zerigo/requests/dns/delete_zone.rb +33 -0
- data/lib/fog/zerigo/requests/dns/find_hosts.rb +63 -0
- data/lib/fog/zerigo/requests/dns/get_host.rb +47 -0
- data/lib/fog/zerigo/requests/dns/get_zone.rb +57 -0
- data/lib/fog/zerigo/requests/dns/get_zone_stats.rb +44 -0
- data/lib/fog/zerigo/requests/dns/list_hosts.rb +48 -0
- data/lib/fog/zerigo/requests/dns/list_zones.rb +53 -0
- data/lib/fog/zerigo/requests/dns/update_host.rb +60 -0
- data/lib/fog/zerigo/requests/dns/update_zone.rb +78 -0
- data/spec/spec_helper.rb +0 -5
- data/spec/vcloud/spec_helper.rb +3 -2
- data/spec/vcloud/terremark/ecloud/models/backup_internet_service_spec.rb +49 -0
- data/spec/vcloud/terremark/ecloud/models/backup_internet_services_spec.rb +29 -0
- data/spec/vcloud/terremark/ecloud/models/internet_service_spec.rb +32 -13
- data/spec/vcloud/terremark/ecloud/models/network_spec.rb +7 -4
- data/spec/vcloud/terremark/ecloud/models/server_spec.rb +20 -0
- data/spec/vcloud/terremark/ecloud/requests/add_backup_internet_service_spec.rb +60 -0
- data/spec/vcloud/terremark/ecloud/requests/configure_internet_service_spec.rb +3 -0
- data/spec/vcloud/terremark/ecloud/requests/configure_network_ip_spec.rb +55 -0
- data/spec/vcloud/terremark/ecloud/requests/delete_vapp_spec.rb +9 -0
- data/spec/vcloud/terremark/ecloud/requests/get_internet_services_spec.rb +60 -14
- data/spec/vcloud/terremark/ecloud/requests/get_network_ip_spec.rb +2 -0
- data/spec/vcloud/terremark/ecloud/requests/get_network_ips_spec.rb +3 -3
- data/tests/aws/requests/compute/image_tests.rb +15 -14
- data/tests/aws/requests/dns/dns_tests.rb +276 -0
- data/tests/brightbox/requests/compute/account_tests.rb +20 -9
- data/tests/brightbox/requests/compute/api_client_tests.rb +12 -4
- data/tests/brightbox/requests/compute/cloud_ip_tests.rb +20 -6
- data/tests/brightbox/requests/compute/image_tests.rb +9 -4
- data/tests/brightbox/requests/compute/interface_tests.rb +8 -2
- data/tests/brightbox/requests/compute/server_tests.rb +17 -5
- data/tests/brightbox/requests/compute/server_type_tests.rb +8 -4
- data/tests/brightbox/requests/compute/user_tests.rb +13 -5
- data/tests/brightbox/requests/compute/zone_tests.rb +8 -4
- data/tests/core/attribute_tests.rb +45 -0
- data/tests/helper.rb +0 -2
- data/tests/linode/requests/dns/dns_tests.rb +262 -0
- data/tests/rackspace/requests/compute/address_tests.rb +1 -1
- data/tests/rackspace/requests/compute/image_tests.rb +1 -1
- data/tests/slicehost/requests/dns_tests/dns_tests.rb +279 -0
- data/tests/zerigo/helper.rb +0 -0
- data/tests/zerigo/requests/dns/dns_tests.rb +374 -0
- metadata +280 -36
- data/spec/compact_progress_bar_formatter.rb +0 -195
- data/spec/core/attributes_spec.rb +0 -52
- data/spec/lorem.txt +0 -1
data/lib/fog.rb
CHANGED
@@ -1,80 +1,18 @@
|
|
1
|
-
require '
|
2
|
-
require 'base64'
|
3
|
-
require 'cgi'
|
4
|
-
require 'excon'
|
5
|
-
require 'formatador'
|
6
|
-
require 'time'
|
7
|
-
require 'named-parameters'
|
8
|
-
|
9
|
-
__DIR__ = File.dirname(__FILE__)
|
10
|
-
|
11
|
-
$LOAD_PATH.unshift __DIR__ unless
|
12
|
-
$LOAD_PATH.include?(__DIR__) ||
|
13
|
-
$LOAD_PATH.include?(File.expand_path(__DIR__))
|
14
|
-
|
15
|
-
require 'fog/core'
|
1
|
+
require File.join(File.dirname(__FILE__), 'fog', 'core')
|
16
2
|
|
17
3
|
module Fog
|
18
4
|
|
19
|
-
@mocking = false
|
20
|
-
|
21
5
|
unless const_defined?(:VERSION)
|
22
|
-
VERSION = '0.3.
|
23
|
-
end
|
24
|
-
|
25
|
-
module Mock
|
26
|
-
@delay = 1
|
27
|
-
def self.delay
|
28
|
-
@delay
|
29
|
-
end
|
30
|
-
|
31
|
-
def self.delay=(new_delay)
|
32
|
-
raise ArgumentError, "delay must be non-negative" unless new_delay >= 0
|
33
|
-
@delay = new_delay
|
34
|
-
end
|
35
|
-
|
36
|
-
def self.not_implemented
|
37
|
-
raise Fog::Errors::MockNotImplemented.new("Contributions welcome!")
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.bin
|
43
|
-
@bin ||= false
|
6
|
+
VERSION = '0.3.32'
|
44
7
|
end
|
45
8
|
|
46
|
-
def self.bin=(new_bin)
|
47
|
-
@bin = new_bin
|
48
|
-
end
|
49
|
-
|
50
|
-
def self.mock!
|
51
|
-
@mocking = true
|
52
|
-
end
|
53
|
-
|
54
|
-
def self.mocking?
|
55
|
-
!!@mocking
|
56
|
-
end
|
57
|
-
|
58
|
-
def self.wait_for(timeout=600, interval=1, &block)
|
59
|
-
duration = 0
|
60
|
-
start = Time.now
|
61
|
-
until yield || duration > timeout
|
62
|
-
sleep(interval)
|
63
|
-
duration = Time.now - start
|
64
|
-
end
|
65
|
-
if duration > timeout
|
66
|
-
false
|
67
|
-
else
|
68
|
-
{ :duration => duration }
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
9
|
end
|
73
10
|
|
74
11
|
require 'fog/aws'
|
75
12
|
require 'fog/bluebox'
|
76
13
|
require 'fog/brightbox'
|
77
14
|
require 'fog/go_grid'
|
15
|
+
require 'fog/google'
|
78
16
|
require 'fog/linode'
|
79
17
|
require 'fog/local'
|
80
18
|
require 'fog/new_servers'
|
@@ -82,4 +20,5 @@ require 'fog/rackspace'
|
|
82
20
|
require 'fog/slicehost'
|
83
21
|
require 'fog/terremark'
|
84
22
|
require 'fog/vcloud'
|
85
|
-
require 'fog/
|
23
|
+
require 'fog/zerigo'
|
24
|
+
|
data/lib/fog/aws.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
require 'nokogiri'
|
2
|
+
|
3
|
+
require File.join(File.dirname(__FILE__), 'core')
|
2
4
|
require 'fog/core/parser'
|
3
5
|
|
4
6
|
module Fog
|
@@ -9,6 +11,7 @@ module Fog
|
|
9
11
|
service_path 'fog/aws'
|
10
12
|
service 'cdn'
|
11
13
|
service 'compute'
|
14
|
+
service 'dns'
|
12
15
|
service 'ec2'
|
13
16
|
service 'elb'
|
14
17
|
service 'iam'
|
data/lib/fog/aws/bin.rb
CHANGED
@@ -7,6 +7,8 @@ class AWS < Fog::Bin
|
|
7
7
|
Fog::AWS::CDN
|
8
8
|
when :compute, :ec2
|
9
9
|
Fog::AWS::Compute
|
10
|
+
when :dns
|
11
|
+
Fog::AWS::DNS
|
10
12
|
when :elb
|
11
13
|
Fog::AWS::ELB
|
12
14
|
when :iam
|
@@ -15,7 +17,10 @@ class AWS < Fog::Bin
|
|
15
17
|
Fog::AWS::SimpleDB
|
16
18
|
when :eu_storage, :s3, :storage
|
17
19
|
Fog::AWS::Storage
|
18
|
-
else
|
20
|
+
else
|
21
|
+
# @todo Replace most instances of ArgumentError with NotImplementedError
|
22
|
+
# @todo For a list of widely supported Exceptions, see:
|
23
|
+
# => http://www.zenspider.com/Languages/Ruby/QuickRef.html#35
|
19
24
|
raise ArgumentError, "Unsupported #{self} service: #{key}"
|
20
25
|
end
|
21
26
|
end
|
@@ -46,7 +51,7 @@ class AWS < Fog::Bin
|
|
46
51
|
end
|
47
52
|
|
48
53
|
def services
|
49
|
-
[:cdn, :compute, :elb, :iam, :sdb, :storage]
|
54
|
+
[:cdn, :compute, :dns, :elb, :iam, :sdb, :storage]
|
50
55
|
end
|
51
56
|
|
52
57
|
end
|
data/lib/fog/aws/cdn.rb
CHANGED
@@ -2,8 +2,8 @@ module Fog
|
|
2
2
|
module AWS
|
3
3
|
class CDN < Fog::Service
|
4
4
|
|
5
|
-
requires :aws_access_key_id, :aws_secret_access_key
|
6
|
-
recognizes :host, :path, :port, :scheme, :version, :persistent
|
5
|
+
requires :aws_access_key_id, :aws_secret_access_key
|
6
|
+
recognizes :host, :path, :port, :scheme, :version, :persistent
|
7
7
|
|
8
8
|
model_path 'fog/aws/models/cdn'
|
9
9
|
|
data/lib/fog/aws/compute.rb
CHANGED
@@ -2,8 +2,8 @@ module Fog
|
|
2
2
|
module AWS
|
3
3
|
class Compute < Fog::Service
|
4
4
|
|
5
|
-
requires :aws_access_key_id, :aws_secret_access_key
|
6
|
-
recognizes :endpoint, :region, :host, :path, :port, :scheme, :persistent
|
5
|
+
requires :aws_access_key_id, :aws_secret_access_key
|
6
|
+
recognizes :endpoint, :region, :host, :path, :port, :scheme, :persistent
|
7
7
|
|
8
8
|
model_path 'fog/aws/models/compute'
|
9
9
|
model :address
|
data/lib/fog/aws/dns.rb
ADDED
@@ -0,0 +1,101 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class DNS < Fog::Service
|
4
|
+
|
5
|
+
requires :aws_access_key_id, :aws_secret_access_key
|
6
|
+
recognizes :host, :path, :port, :scheme, :version, :persistent
|
7
|
+
|
8
|
+
# model_path 'fog/aws/models/dns'
|
9
|
+
|
10
|
+
request_path 'fog/aws/requests/dns'
|
11
|
+
request :create_hosted_zone
|
12
|
+
request :get_hosted_zone
|
13
|
+
request :delete_hosted_zone
|
14
|
+
request :list_hosted_zones
|
15
|
+
request :change_resource_record_sets
|
16
|
+
request :list_resource_record_sets
|
17
|
+
request :get_change
|
18
|
+
|
19
|
+
class Mock
|
20
|
+
|
21
|
+
def self.data
|
22
|
+
@data ||= Hash.new do |hash, region|
|
23
|
+
hash[region] = Hash.new do |region_hash, key|
|
24
|
+
region_hash[key] = {
|
25
|
+
:buckets => {}
|
26
|
+
}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.reset_data(keys=data.keys)
|
32
|
+
for key in [*keys]
|
33
|
+
data.delete(key)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def initialize(options={})
|
38
|
+
require 'mime/types'
|
39
|
+
@aws_access_key_id = options[:aws_access_key_id]
|
40
|
+
@data = self.class.data[options[:region]][@aws_access_key_id]
|
41
|
+
end
|
42
|
+
|
43
|
+
def signature(params)
|
44
|
+
"foo"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
class Real
|
49
|
+
|
50
|
+
# Initialize connection to Route 53 DNS service
|
51
|
+
#
|
52
|
+
# ==== Notes
|
53
|
+
# options parameter must include values for :aws_access_key_id and
|
54
|
+
# :aws_secret_access_key in order to create a connection
|
55
|
+
#
|
56
|
+
# ==== Examples
|
57
|
+
# dns = Fog::AWS::DNS.new(
|
58
|
+
# :aws_access_key_id => your_aws_access_key_id,
|
59
|
+
# :aws_secret_access_key => your_aws_secret_access_key
|
60
|
+
# )
|
61
|
+
#
|
62
|
+
# ==== Parameters
|
63
|
+
# * options<~Hash> - config arguments for connection. Defaults to {}.
|
64
|
+
#
|
65
|
+
# ==== Returns
|
66
|
+
# * dns object with connection to aws.
|
67
|
+
def initialize(options={})
|
68
|
+
@aws_access_key_id = options[:aws_access_key_id]
|
69
|
+
@aws_secret_access_key = options[:aws_secret_access_key]
|
70
|
+
@hmac = Fog::HMAC.new('sha1', @aws_secret_access_key)
|
71
|
+
@host = options[:host] || 'route53.amazonaws.com'
|
72
|
+
@path = options[:path] || '/'
|
73
|
+
@port = options[:port] || 443
|
74
|
+
@scheme = options[:scheme] || 'https'
|
75
|
+
@version = options[:version] || '2010-10-01'
|
76
|
+
@connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", options[:persistent] || true)
|
77
|
+
end
|
78
|
+
|
79
|
+
def reload
|
80
|
+
@connection.reset
|
81
|
+
end
|
82
|
+
|
83
|
+
private
|
84
|
+
|
85
|
+
def request(params, &block)
|
86
|
+
params[:headers] ||= {}
|
87
|
+
params[:headers]['Date'] = Time.now.utc.strftime("%a, %d %b %Y %H:%M:%S +0000")
|
88
|
+
params[:headers]['X-Amzn-Authorization'] = "AWS3-HTTPS AWSAccessKeyId=#{@aws_access_key_id},Algorithm=HmacSHA1,Signature=#{signature(params)}"
|
89
|
+
params[:path] = "/#{@version}/#{params[:path]}"
|
90
|
+
@connection.request(params, &block)
|
91
|
+
end
|
92
|
+
|
93
|
+
def signature(params)
|
94
|
+
string_to_sign = params[:headers]['Date']
|
95
|
+
signed_string = @hmac.sign(string_to_sign)
|
96
|
+
signature = Base64.encode64(signed_string).chomp!
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
data/lib/fog/aws/elb.rb
CHANGED
@@ -2,8 +2,8 @@ module Fog
|
|
2
2
|
module AWS
|
3
3
|
class ELB < Fog::Service
|
4
4
|
|
5
|
-
requires :aws_access_key_id, :aws_secret_access_key
|
6
|
-
recognizes :region, :host, :path, :port, :scheme, :persistent
|
5
|
+
requires :aws_access_key_id, :aws_secret_access_key
|
6
|
+
recognizes :region, :host, :path, :port, :scheme, :persistent
|
7
7
|
|
8
8
|
request_path 'fog/aws/requests/elb'
|
9
9
|
request :create_load_balancer
|
data/lib/fog/aws/iam.rb
CHANGED
@@ -2,8 +2,8 @@ module Fog
|
|
2
2
|
module AWS
|
3
3
|
class IAM < Fog::Service
|
4
4
|
|
5
|
-
requires :aws_access_key_id, :aws_secret_access_key
|
6
|
-
recognizes :host, :path, :port, :scheme, :persistent
|
5
|
+
requires :aws_access_key_id, :aws_secret_access_key
|
6
|
+
recognizes :host, :path, :port, :scheme, :persistent
|
7
7
|
|
8
8
|
request_path 'fog/aws/requests/iam'
|
9
9
|
request :add_user_to_group
|
@@ -23,6 +23,7 @@ module Fog
|
|
23
23
|
attribute :root_device_type, :aliases => 'rootDeviceType'
|
24
24
|
attribute :root_device_name, :aliases => 'rootDeviceName'
|
25
25
|
attribute :tags, :aliases => 'tagSet'
|
26
|
+
attribute :name
|
26
27
|
|
27
28
|
def deregister(delete_snapshot = false)
|
28
29
|
connection.deregister_image(id)
|
@@ -98,19 +98,7 @@ module Fog
|
|
98
98
|
end
|
99
99
|
|
100
100
|
server.save
|
101
|
-
|
102
|
-
retries = 3
|
103
|
-
begin
|
104
|
-
server.wait_for { ready? }
|
105
|
-
rescue Fog::Errors::Error => error
|
106
|
-
sleep(1)
|
107
|
-
retries -= 1
|
108
|
-
if retries > 0
|
109
|
-
retry
|
110
|
-
else
|
111
|
-
raise error
|
112
|
-
end
|
113
|
-
end
|
101
|
+
server.wait_for { ready? }
|
114
102
|
server.setup(:key_data => [server.private_key])
|
115
103
|
server
|
116
104
|
end
|
@@ -15,8 +15,6 @@ module Fog
|
|
15
15
|
def start_element(name, attrs = [])
|
16
16
|
super
|
17
17
|
case name
|
18
|
-
when 'productCodes'
|
19
|
-
@in_product_codes = true
|
20
18
|
when 'blockDeviceMapping'
|
21
19
|
@in_block_device_mapping = true
|
22
20
|
when 'tagSet'
|
@@ -25,45 +23,49 @@ module Fog
|
|
25
23
|
end
|
26
24
|
|
27
25
|
def end_element(name)
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
26
|
+
if @in_tag_set
|
27
|
+
case name
|
28
|
+
when 'item'
|
29
|
+
@image['tagSet'][@tag['key']] = @tag['value']
|
30
|
+
@tag = {}
|
31
|
+
when 'key', 'value'
|
32
|
+
@tag[name] = @value
|
33
|
+
when 'tagSet'
|
34
|
+
@in_tag_set = false
|
35
|
+
end
|
36
|
+
elsif @in_block_device_mapping
|
37
|
+
case name
|
38
|
+
when 'blockDeviceMapping'
|
39
|
+
@in_block_device_mapping = false
|
40
|
+
when 'deviceName', 'virtualName', 'snapshotId', 'deleteOnTermination'
|
41
|
+
@block_device_mapping[name] = @value
|
42
|
+
when 'volumeSize'
|
43
|
+
@block_device_mapping[name] = @value.to_i
|
44
|
+
when 'item'
|
45
|
+
@image['blockDeviceMapping'] << @block_device_mapping
|
46
|
+
@block_device_mapping = {}
|
40
47
|
end
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
@
|
45
|
-
|
46
|
-
@
|
47
|
-
|
48
|
-
|
48
|
+
else
|
49
|
+
case name
|
50
|
+
when 'architecture', 'description', 'imageId', 'imageLocation', 'imageOwnerId', 'imageState', 'imageType', 'kernelId', 'name', 'platform', 'ramdiskId', 'rootDeviceType','rootDeviceName','virtualizationType'
|
51
|
+
@image[name] = @value
|
52
|
+
when 'isPublic'
|
53
|
+
if @value == 'true'
|
54
|
+
@image[name] = true
|
55
|
+
else
|
56
|
+
@image[name] = false
|
57
|
+
end
|
58
|
+
when 'item'
|
49
59
|
@response['imagesSet'] << @image
|
50
60
|
@image = { 'blockDeviceMapping' => [], 'productCodes' => [], 'tagSet' => {} }
|
61
|
+
when 'productCode'
|
62
|
+
@image['productCodes'] << @value
|
63
|
+
when 'requestId'
|
64
|
+
@response[name] = @value
|
51
65
|
end
|
52
|
-
when 'key', 'value'
|
53
|
-
@tag[name] = @value
|
54
|
-
when 'productCode'
|
55
|
-
@image['productCodes'] << @value
|
56
|
-
when 'productCodes'
|
57
|
-
@in_product_codes = false
|
58
|
-
when 'requestId'
|
59
|
-
@response[name] = @value
|
60
|
-
when 'volumeSize'
|
61
|
-
@block_device_mapping[name] = @value.to_i
|
62
66
|
end
|
63
67
|
end
|
64
|
-
|
65
68
|
end
|
66
|
-
|
67
69
|
end
|
68
70
|
end
|
69
71
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module DNS
|
5
|
+
|
6
|
+
class ChangeResourceRecordSets < Fog::Parsers::Base
|
7
|
+
|
8
|
+
def reset
|
9
|
+
@response = {}
|
10
|
+
end
|
11
|
+
|
12
|
+
def end_element(name)
|
13
|
+
case name
|
14
|
+
when 'Id'
|
15
|
+
@response[name] = @value.sub('/change/', '')
|
16
|
+
when 'Status', 'SubmittedAt'
|
17
|
+
@response[name] = @value
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module DNS
|
5
|
+
|
6
|
+
class CreateHostedZone < Fog::Parsers::Base
|
7
|
+
|
8
|
+
def reset
|
9
|
+
@hosted_zone = {}
|
10
|
+
@change_info = {}
|
11
|
+
@name_servers = []
|
12
|
+
@response = {}
|
13
|
+
@section = :hosted_zone
|
14
|
+
end
|
15
|
+
|
16
|
+
def end_element(name)
|
17
|
+
if @section == :hosted_zone
|
18
|
+
case name
|
19
|
+
when 'Id'
|
20
|
+
@hosted_zone[name]= @value.sub('/hostedzone/', '')
|
21
|
+
when 'Name', 'CallerReference', 'Comment'
|
22
|
+
@hosted_zone[name]= @value
|
23
|
+
when 'HostedZone'
|
24
|
+
@response['HostedZone'] = @hosted_zone
|
25
|
+
@hosted_zone = {}
|
26
|
+
@section = :change_info
|
27
|
+
end
|
28
|
+
elsif @section == :change_info
|
29
|
+
case name
|
30
|
+
when 'Id'
|
31
|
+
@change_info[name]= @value.sub('/change/', '')
|
32
|
+
when 'Status', 'SubmittedAt'
|
33
|
+
@change_info[name] = @value
|
34
|
+
when 'ChangeInfo'
|
35
|
+
@response['ChangeInfo'] = @change_info
|
36
|
+
@change_info = {}
|
37
|
+
@section = :name_servers
|
38
|
+
end
|
39
|
+
elsif @section == :name_servers
|
40
|
+
case name
|
41
|
+
when 'NameServer'
|
42
|
+
@name_servers << @value
|
43
|
+
when 'NameServers'
|
44
|
+
@response['NameServers'] = @name_servers
|
45
|
+
@name_servers = {}
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|