fog 0.3.31 → 0.3.32
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.
- 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
|
@@ -2,8 +2,8 @@ module Fog
|
|
|
2
2
|
module Rackspace
|
|
3
3
|
class Compute < Fog::Service
|
|
4
4
|
|
|
5
|
-
requires :rackspace_api_key, :rackspace_username
|
|
6
|
-
recognizes :rackspace_auth_url, :persistent
|
|
5
|
+
requires :rackspace_api_key, :rackspace_username
|
|
6
|
+
recognizes :rackspace_auth_url, :persistent
|
|
7
7
|
|
|
8
8
|
model_path 'fog/rackspace/models/compute'
|
|
9
9
|
model :flavor
|
|
@@ -2,8 +2,8 @@ module Fog
|
|
|
2
2
|
module Rackspace
|
|
3
3
|
class Storage < Fog::Service
|
|
4
4
|
|
|
5
|
-
requires :rackspace_api_key, :rackspace_username
|
|
6
|
-
recognizes :rackspace_auth_url, :persistent
|
|
5
|
+
requires :rackspace_api_key, :rackspace_username
|
|
6
|
+
recognizes :rackspace_auth_url, :persistent
|
|
7
7
|
|
|
8
8
|
model_path 'fog/rackspace/models/storage'
|
|
9
9
|
model :directory
|
data/lib/fog/slicehost.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
|
|
@@ -8,6 +10,7 @@ module Fog
|
|
|
8
10
|
|
|
9
11
|
service_path 'fog/slicehost'
|
|
10
12
|
service :compute
|
|
13
|
+
service :dns
|
|
11
14
|
|
|
12
15
|
def self.new(attributes = {})
|
|
13
16
|
location = caller.first
|
data/lib/fog/slicehost/bin.rb
CHANGED
|
@@ -2,8 +2,8 @@ module Fog
|
|
|
2
2
|
module Slicehost
|
|
3
3
|
class Compute < Fog::Service
|
|
4
4
|
|
|
5
|
-
requires :slicehost_password
|
|
6
|
-
recognizes :host, :port, :scheme, :persistent
|
|
5
|
+
requires :slicehost_password
|
|
6
|
+
recognizes :host, :port, :scheme, :persistent
|
|
7
7
|
|
|
8
8
|
model_path 'fog/slicehost/models/compute'
|
|
9
9
|
model :flavor
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Slicehost
|
|
3
|
+
class DNS < Fog::Service
|
|
4
|
+
|
|
5
|
+
requires :slicehost_password
|
|
6
|
+
recognizes :host, :port, :scheme, :persistent
|
|
7
|
+
|
|
8
|
+
model_path 'fog/slicehost/models/dns'
|
|
9
|
+
|
|
10
|
+
request_path 'fog/slicehost/requests/dns'
|
|
11
|
+
request :create_record
|
|
12
|
+
request :create_zone
|
|
13
|
+
request :delete_record
|
|
14
|
+
request :delete_zone
|
|
15
|
+
request :get_record
|
|
16
|
+
request :get_records
|
|
17
|
+
request :get_zone
|
|
18
|
+
request :get_zones
|
|
19
|
+
|
|
20
|
+
class Mock
|
|
21
|
+
|
|
22
|
+
def self.data
|
|
23
|
+
@data ||= Hash.new do |hash, key|
|
|
24
|
+
hash[key] = {}
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def self.reset_data(keys=data.keys)
|
|
29
|
+
for key in [*keys]
|
|
30
|
+
data.delete(key)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def initialize(options={})
|
|
35
|
+
@slicehost_password = options[:slicehost_password]
|
|
36
|
+
@data = self.class.data[@slicehost_password]
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
class Real
|
|
42
|
+
|
|
43
|
+
def initialize(options={})
|
|
44
|
+
@slicehost_password = options[:slicehost_password]
|
|
45
|
+
@host = options[:host] || "api.slicehost.com"
|
|
46
|
+
@port = options[:port] || 443
|
|
47
|
+
@scheme = options[:scheme] || 'https'
|
|
48
|
+
@connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", options[:persistent])
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def reload
|
|
52
|
+
@connection.reset
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def request(params)
|
|
56
|
+
params[:headers] ||= {}
|
|
57
|
+
params[:headers].merge!({
|
|
58
|
+
'Authorization' => "Basic #{Base64.encode64(@slicehost_password).delete("\r\n")}"
|
|
59
|
+
})
|
|
60
|
+
case params[:method]
|
|
61
|
+
when 'DELETE', 'GET', 'HEAD'
|
|
62
|
+
params[:headers]['Accept'] = 'application/xml'
|
|
63
|
+
when 'POST', 'PUT'
|
|
64
|
+
params[:headers]['Content-Type'] = 'application/xml'
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
begin
|
|
68
|
+
response = @connection.request(params.merge!({:host => @host}))
|
|
69
|
+
rescue Excon::Errors::HTTPStatusError => error
|
|
70
|
+
raise case error
|
|
71
|
+
when Excon::Errors::NotFound
|
|
72
|
+
Fog::Slicehost::DNS::NotFound.slurp(error)
|
|
73
|
+
else
|
|
74
|
+
error
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
response
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Parsers
|
|
3
|
+
module Slicehost
|
|
4
|
+
module DNS
|
|
5
|
+
|
|
6
|
+
class CreateRecord < Fog::Parsers::Base
|
|
7
|
+
|
|
8
|
+
def reset
|
|
9
|
+
@response = {}
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def end_element(name)
|
|
13
|
+
case name
|
|
14
|
+
when 'zone-id', 'ttl', 'id'
|
|
15
|
+
@response[name] = @value.to_i
|
|
16
|
+
when 'record-type', 'name', 'data', 'active', 'aux'
|
|
17
|
+
@response[name] = @value
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Parsers
|
|
3
|
+
module Slicehost
|
|
4
|
+
module DNS
|
|
5
|
+
|
|
6
|
+
class CreateZone < Fog::Parsers::Base
|
|
7
|
+
|
|
8
|
+
def reset
|
|
9
|
+
@response = {}
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def end_element(name)
|
|
13
|
+
case name
|
|
14
|
+
when 'ttl', 'id'
|
|
15
|
+
@response[name] = @value.to_i
|
|
16
|
+
when 'origin', 'active'
|
|
17
|
+
@response[name] = @value
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Parsers
|
|
3
|
+
module Slicehost
|
|
4
|
+
module DNS
|
|
5
|
+
|
|
6
|
+
class GetRecord < Fog::Parsers::Base
|
|
7
|
+
|
|
8
|
+
def reset
|
|
9
|
+
@response = { }
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def end_element(name)
|
|
13
|
+
case name
|
|
14
|
+
when 'zone-id', 'ttl'
|
|
15
|
+
@response[name] = @value.to_i
|
|
16
|
+
when 'record-type', 'name', 'data', 'active', 'aux'
|
|
17
|
+
@response[name] = @value
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Parsers
|
|
3
|
+
module Slicehost
|
|
4
|
+
module DNS
|
|
5
|
+
|
|
6
|
+
class GetRecords < Fog::Parsers::Base
|
|
7
|
+
|
|
8
|
+
def reset
|
|
9
|
+
@record = {}
|
|
10
|
+
@response = { 'records' => [] }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def end_element(name)
|
|
14
|
+
case name
|
|
15
|
+
when 'zone-id', 'ttl'
|
|
16
|
+
@record[name] = @value.to_i
|
|
17
|
+
when 'record-type', 'name', 'data', 'active', 'aux'
|
|
18
|
+
@record[name] = @value
|
|
19
|
+
when 'record'
|
|
20
|
+
@response['records'] << @record
|
|
21
|
+
@record = {}
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Parsers
|
|
3
|
+
module Slicehost
|
|
4
|
+
module DNS
|
|
5
|
+
|
|
6
|
+
class GetZone < Fog::Parsers::Base
|
|
7
|
+
|
|
8
|
+
def reset
|
|
9
|
+
@response = {}
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def end_element(name)
|
|
13
|
+
case name
|
|
14
|
+
when 'ttl', 'id'
|
|
15
|
+
@response[name] = @value.to_i
|
|
16
|
+
when 'origin', 'active'
|
|
17
|
+
@response[name] = @value
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Parsers
|
|
3
|
+
module Slicehost
|
|
4
|
+
module DNS
|
|
5
|
+
|
|
6
|
+
class GetZones < Fog::Parsers::Base
|
|
7
|
+
|
|
8
|
+
def reset
|
|
9
|
+
@zone = {}
|
|
10
|
+
@response = { 'zones' => [] }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def end_element(name)
|
|
14
|
+
case name
|
|
15
|
+
when 'ttl', 'id'
|
|
16
|
+
@zone[name] = @value.to_i
|
|
17
|
+
when 'active', 'origin'
|
|
18
|
+
@zone[name] = @value
|
|
19
|
+
when 'zone'
|
|
20
|
+
@response['zones'] << @zone
|
|
21
|
+
@zone = {}
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -5,7 +5,7 @@ module Fog
|
|
|
5
5
|
|
|
6
6
|
require 'fog/slicehost/parsers/compute/create_slice'
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# Create a new slice
|
|
9
9
|
# ==== Parameters
|
|
10
10
|
# * flavor_id<~Integer> - Id of flavor to create slice with
|
|
11
11
|
# * image_id<~Integer> - Id of image to create slice with
|
|
@@ -13,7 +13,7 @@ module Fog
|
|
|
13
13
|
#
|
|
14
14
|
# ==== Returns
|
|
15
15
|
# * response<~Excon::Response>:
|
|
16
|
-
# * body<~
|
|
16
|
+
# * body<~Hash>:
|
|
17
17
|
# * 'addresses'<~Array> - Ip addresses for the slice
|
|
18
18
|
# * 'backup-id'<~Integer> - Id of backup slice was booted from
|
|
19
19
|
# * 'bw-in'<~Integer> - Incoming bandwidth total for current billing cycle, in Gigabytes
|
|
@@ -3,26 +3,12 @@ module Fog
|
|
|
3
3
|
class Compute
|
|
4
4
|
class Real
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Delete a given slice
|
|
7
7
|
# ==== Parameters
|
|
8
|
-
# *
|
|
9
|
-
# * image_id<~Integer> - Id of image to create slice with
|
|
10
|
-
# * name<~String> - Name of slice
|
|
8
|
+
# * slice_id<~Integer> - Id of slice to delete
|
|
11
9
|
#
|
|
12
10
|
# ==== Returns
|
|
13
|
-
# * response<~Excon::Response>:
|
|
14
|
-
# * body<~Array>:
|
|
15
|
-
# * 'addresses'<~Array> - Ip addresses for the slice
|
|
16
|
-
# * 'backup-id'<~Integer> - Id of backup slice was booted from
|
|
17
|
-
# * 'bw-in'<~Integer> - Incoming bandwidth total for current billing cycle, in Gigabytes
|
|
18
|
-
# * 'bw-out'<~Integer> - Outgoing bandwidth total for current billing cycle, in Gigabytes
|
|
19
|
-
# * 'flavor-id'<~Integer> - Id of flavor slice was booted from
|
|
20
|
-
# * 'id'<~Integer> - Id of the slice
|
|
21
|
-
# * 'image-id'<~Integer> - Id of image slice was booted from
|
|
22
|
-
# * 'name'<~String> - Name of the slice
|
|
23
|
-
# * 'progress'<~Integer> - Progress of current action, in percentage
|
|
24
|
-
# * 'root-password'<~String> - Root password of slice
|
|
25
|
-
# * 'status'<~String> - Current status of the slice
|
|
11
|
+
# * response<~Excon::Response>: - HTTP status code is the return value
|
|
26
12
|
def delete_slice(slice_id)
|
|
27
13
|
request(
|
|
28
14
|
:expects => 200,
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Slicehost
|
|
3
|
+
class DNS
|
|
4
|
+
class Real
|
|
5
|
+
|
|
6
|
+
require 'fog/slicehost/parsers/dns/create_record'
|
|
7
|
+
|
|
8
|
+
# Create a new record in a DNS zone - or update an existing one
|
|
9
|
+
# ==== Parameters
|
|
10
|
+
# * record_type<~String> - type of DNS record to create (A, CNAME, etc)
|
|
11
|
+
# * zone_id<~Integer> - ID of the zone to update
|
|
12
|
+
# * name<~String> - host name this DNS record is for
|
|
13
|
+
# * data<~String> - data for the DNS record (ie for an A record, the IP address)
|
|
14
|
+
# * options<~Hash> - extra parameters that are not mandatory
|
|
15
|
+
# * ttl<~Integer> - time to live in seconds
|
|
16
|
+
# * active<~String> - whether this record is active or not ('Y' or 'N')
|
|
17
|
+
# * aux<~String> - extra data required by the record
|
|
18
|
+
# ==== Returns
|
|
19
|
+
# * response<~Excon::Response>:
|
|
20
|
+
# * body<~Hash>:
|
|
21
|
+
# * 'name'<~String> - as above
|
|
22
|
+
# * 'id'<~Integer> - Id of zone/domain - used in future API calls for this zone
|
|
23
|
+
# * 'ttl'<~Integer> - as above
|
|
24
|
+
# * 'data'<~String> - as above
|
|
25
|
+
# * 'active'<~String> - as above
|
|
26
|
+
# * 'aux'<~String> - as above
|
|
27
|
+
def create_record( record_type, zone_id, name, data, options = {})
|
|
28
|
+
|
|
29
|
+
optional_tags= ''
|
|
30
|
+
options.each { |option, value|
|
|
31
|
+
case option
|
|
32
|
+
when :ttl
|
|
33
|
+
optional_tags+= "<ttl type='integer'>#{value}</ttl>"
|
|
34
|
+
when :active
|
|
35
|
+
optional_tags+= "<active>#{value}</active>"
|
|
36
|
+
when :aux
|
|
37
|
+
optional_tags+= "<aux>#{value}</aux>"
|
|
38
|
+
end
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
request(
|
|
42
|
+
:body => %Q{<?xml version="1.0" encoding="UTF-8"?><record><record_type>#{record_type}</record_type><zone_id type="integer">#{zone_id}</zone_id><name>#{name}</name><data>#{data}</data>#{optional_tags}</record>},
|
|
43
|
+
:expects => 201,
|
|
44
|
+
:method => 'POST',
|
|
45
|
+
:parser => Fog::Parsers::Slicehost::DNS::CreateRecord.new,
|
|
46
|
+
:path => 'records.xml'
|
|
47
|
+
)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
class Mock
|
|
53
|
+
|
|
54
|
+
def create_record( record_type, zone_id, name, data)
|
|
55
|
+
Fog::Mock.not_implemented
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Slicehost
|
|
3
|
+
class DNS
|
|
4
|
+
class Real
|
|
5
|
+
|
|
6
|
+
require 'fog/slicehost/parsers/dns/create_zone'
|
|
7
|
+
|
|
8
|
+
# Create a new zone for Slicehost's DNS servers to serve/host
|
|
9
|
+
# ==== Parameters
|
|
10
|
+
# * origin<~String> - domain name to host (ie example.com)
|
|
11
|
+
# * options<~Hash> - optional paramaters
|
|
12
|
+
# * ttl<~Integer> - TimeToLive (ttl) for the domain, in seconds (> 60)
|
|
13
|
+
# * active<~String> - whether zone is active in Slicehost DNS server - 'Y' or 'N'
|
|
14
|
+
#
|
|
15
|
+
# ==== Returns
|
|
16
|
+
# * response<~Excon::Response>:
|
|
17
|
+
# * body<~Hash>:
|
|
18
|
+
# * 'origin'<~String> - as above
|
|
19
|
+
# * 'id'<~Integer> - Id of zone/domain - used in future API calls
|
|
20
|
+
# * 'ttl'<~Integer> - as above
|
|
21
|
+
# * 'active'<~String> - as above
|
|
22
|
+
def create_zone(origin, options = {})
|
|
23
|
+
|
|
24
|
+
optional_tags= ''
|
|
25
|
+
options.each { |option, value|
|
|
26
|
+
case option
|
|
27
|
+
when :ttl
|
|
28
|
+
optional_tags+= "<ttl type='interger'>#{value}</ttl>"
|
|
29
|
+
when :active
|
|
30
|
+
optional_tags+= "<active>#{value}</active>"
|
|
31
|
+
end
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
request(
|
|
35
|
+
:body => %Q{<?xml version="1.0" encoding="UTF-8"?><zone><origin>#{origin}</origin>#{optional_tags}</zone>},
|
|
36
|
+
:expects => 201,
|
|
37
|
+
:method => 'POST',
|
|
38
|
+
:parser => Fog::Parsers::Slicehost::DNS::CreateZone.new,
|
|
39
|
+
:path => 'zones.xml'
|
|
40
|
+
)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
class Mock
|
|
46
|
+
|
|
47
|
+
def create_zone(origin, ttl, active)
|
|
48
|
+
Fog::Mock.not_implemented
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|