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
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Parsers
|
|
3
|
+
module Zerigo
|
|
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 'default-ttl', 'id', 'nx-ttl', 'hosts-count'
|
|
15
|
+
@response[name] = @value.to_i
|
|
16
|
+
when 'created-at', 'custom-nameservers', 'custom-ns', 'domain', 'hostmaster', 'notes', 'ns1', 'ns-type', 'slave-nameservers', 'tag-list', 'updated-at', 'hosts', 'axfr-ips', 'restrict-axfr'
|
|
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 Zerigo
|
|
4
|
+
module DNS
|
|
5
|
+
|
|
6
|
+
class FindHosts < Fog::Parsers::Base
|
|
7
|
+
|
|
8
|
+
def reset
|
|
9
|
+
@host = {}
|
|
10
|
+
@response = { 'hosts' => [] }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def end_element(name)
|
|
14
|
+
case name
|
|
15
|
+
when 'id', 'priority', 'ttl', 'zone-id'
|
|
16
|
+
@host[name] = @value.to_i
|
|
17
|
+
when 'data', 'fqdn', 'host-type', 'hostname', 'notes', 'zone-id', 'created-at', 'updated-at'
|
|
18
|
+
@host[name] = @value
|
|
19
|
+
when 'host'
|
|
20
|
+
@response['hosts'] << @host
|
|
21
|
+
@host = {}
|
|
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 Zerigo
|
|
4
|
+
module DNS
|
|
5
|
+
|
|
6
|
+
class GetHost < Fog::Parsers::Base
|
|
7
|
+
|
|
8
|
+
def reset
|
|
9
|
+
@response = {}
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def end_element(name)
|
|
13
|
+
case name
|
|
14
|
+
when 'id', 'priority', 'ttl', 'zone-id'
|
|
15
|
+
@response[name] = @value.to_i
|
|
16
|
+
when 'data', 'fqdn', 'host-type', 'hostname', 'notes', 'zone-id', 'created-at', 'updated-at'
|
|
17
|
+
@response[name] = @value
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Parsers
|
|
3
|
+
module Zerigo
|
|
4
|
+
module DNS
|
|
5
|
+
|
|
6
|
+
class GetZone < Fog::Parsers::Base
|
|
7
|
+
|
|
8
|
+
def reset
|
|
9
|
+
@host = {}
|
|
10
|
+
@hosts = []
|
|
11
|
+
@response = {}
|
|
12
|
+
@in_hosts = false
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def start_element(name, attrs = [])
|
|
16
|
+
super(name, attrs)
|
|
17
|
+
#look out for start of <hosts> section
|
|
18
|
+
#needed as some of the tags have the same name as the parent <zone> section
|
|
19
|
+
if name == 'hosts'
|
|
20
|
+
@in_hosts= true
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def end_element(name)
|
|
25
|
+
if (@in_hosts)
|
|
26
|
+
#in hosts part of response
|
|
27
|
+
case name
|
|
28
|
+
when 'id', 'priority', 'ttl', 'zone-id'
|
|
29
|
+
@host[name] = @value.to_i
|
|
30
|
+
when 'data', 'fqdn', 'host-type', 'hostname', 'notes', 'zone-id', 'created-at', 'updated-at'
|
|
31
|
+
@host[name] = @value
|
|
32
|
+
when 'host'
|
|
33
|
+
@hosts << @host
|
|
34
|
+
@host = {}
|
|
35
|
+
when 'hosts'
|
|
36
|
+
@response[name] = @hosts
|
|
37
|
+
@in_hosts = false
|
|
38
|
+
end
|
|
39
|
+
else
|
|
40
|
+
#in zone part of data
|
|
41
|
+
case name
|
|
42
|
+
when 'default-ttl', 'id', 'nx-ttl', 'hosts-count'
|
|
43
|
+
@response[name] = @value.to_i
|
|
44
|
+
when 'created-at', 'custom-nameservers', 'custom-ns', 'domain', 'hostmaster', 'notes', 'ns1', 'ns-type', 'slave-nameservers', 'tag-list', 'updated-at', 'hosts', 'axfr-ips', 'restrict-axfr'
|
|
45
|
+
@response[name] = @value
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Parsers
|
|
3
|
+
module Zerigo
|
|
4
|
+
module DNS
|
|
5
|
+
|
|
6
|
+
class GetZoneStats < Fog::Parsers::Base
|
|
7
|
+
|
|
8
|
+
def reset
|
|
9
|
+
@response = {}
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def end_element(name)
|
|
13
|
+
case name
|
|
14
|
+
when 'id', 'queries'
|
|
15
|
+
@response[name] = @value.to_i
|
|
16
|
+
when 'domain', 'period-begin', 'period-end'
|
|
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 Zerigo
|
|
4
|
+
module DNS
|
|
5
|
+
|
|
6
|
+
class ListHosts < Fog::Parsers::Base
|
|
7
|
+
|
|
8
|
+
def reset
|
|
9
|
+
@host = {}
|
|
10
|
+
@response = { 'hosts' => [] }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def end_element(name)
|
|
14
|
+
case name
|
|
15
|
+
when 'id', 'priority', 'ttl', 'zone-id'
|
|
16
|
+
@host[name] = @value.to_i
|
|
17
|
+
when 'data', 'fqdn', 'host-type', 'hostname', 'notes', 'zone-id', 'created-at', 'updated-at'
|
|
18
|
+
@host[name] = @value
|
|
19
|
+
when 'host'
|
|
20
|
+
@response['hosts'] << @host
|
|
21
|
+
@host = {}
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Parsers
|
|
3
|
+
module Zerigo
|
|
4
|
+
module DNS
|
|
5
|
+
|
|
6
|
+
class ListZones < 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 'default-ttl', 'id', 'nx-ttl', 'hosts-count'
|
|
16
|
+
@zone[name] = @value.to_i
|
|
17
|
+
when 'created-at', 'custom-nameservers', 'custom-ns', 'domain', 'hostmaster', 'notes', 'ns1', 'ns-type', 'slave-nameservers', 'tag-list', 'updated-at', 'hosts', 'axfr-ips', 'restrict-axfr'
|
|
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
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Zerigo
|
|
3
|
+
class DNS
|
|
4
|
+
class Real
|
|
5
|
+
|
|
6
|
+
require 'fog/zerigo/parsers/dns/count_hosts'
|
|
7
|
+
|
|
8
|
+
# total number of hosts available for the specified zone. It is the same value as provided
|
|
9
|
+
# in the X-Query-Count header in the list_hosts API method
|
|
10
|
+
#
|
|
11
|
+
# ==== Returns
|
|
12
|
+
# * response<~Excon::Response>:
|
|
13
|
+
# * body<~Hash>
|
|
14
|
+
# * 'count'<~Integer>
|
|
15
|
+
# * 'status'<~Integer> - 200 indicates success
|
|
16
|
+
def count_hosts( zone_id)
|
|
17
|
+
request(
|
|
18
|
+
:expects => 200,
|
|
19
|
+
:method => 'GET',
|
|
20
|
+
:parser => Fog::Parsers::Zerigo::DNS::CountHosts.new,
|
|
21
|
+
:path => "/api/1.1/zones/#{zone_id}/hosts/count.xml"
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
class Mock
|
|
28
|
+
|
|
29
|
+
def count_hosts( zone_id)
|
|
30
|
+
Fog::Mock.not_implemented
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Zerigo
|
|
3
|
+
class DNS
|
|
4
|
+
class Real
|
|
5
|
+
|
|
6
|
+
require 'fog/zerigo/parsers/dns/count_zones'
|
|
7
|
+
|
|
8
|
+
# Total number of zones hosted Zerigo for this account. It is the same value as provided
|
|
9
|
+
# in the X-Query-Count header in the list_zones API method
|
|
10
|
+
#
|
|
11
|
+
# ==== Returns
|
|
12
|
+
# * response<~Excon::Response>:
|
|
13
|
+
# * body<~Hash>
|
|
14
|
+
# * 'count'<~Integer>
|
|
15
|
+
# * 'status'<~Integer> - 200 indicates success
|
|
16
|
+
def count_zones()
|
|
17
|
+
request(
|
|
18
|
+
:expects => 200,
|
|
19
|
+
:method => 'GET',
|
|
20
|
+
:parser => Fog::Parsers::Zerigo::DNS::CountZones.new,
|
|
21
|
+
:path => "/api/1.1/zones/count.xml"
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
class Mock
|
|
28
|
+
|
|
29
|
+
def count_zones()
|
|
30
|
+
Fog::Mock.not_implemented
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Zerigo
|
|
3
|
+
class DNS
|
|
4
|
+
class Real
|
|
5
|
+
|
|
6
|
+
require 'fog/zerigo/parsers/dns/create_host'
|
|
7
|
+
|
|
8
|
+
# Create a new host in the specified zone
|
|
9
|
+
#
|
|
10
|
+
# ==== Parameters
|
|
11
|
+
# * zone_id<~Integer>
|
|
12
|
+
# * host_type<~String>
|
|
13
|
+
# * data<~String>
|
|
14
|
+
# * options<~Hash> - optional paramaters
|
|
15
|
+
# * hostname<~String> - Note: normally this is set/required!!
|
|
16
|
+
# * notes<~String>
|
|
17
|
+
# * priority<~Integer> - Note: required for MX or SRV records
|
|
18
|
+
# * ttl<~Integer>
|
|
19
|
+
# ==== Returns
|
|
20
|
+
# * response<~Excon::Response>:
|
|
21
|
+
# * body<~Hash>
|
|
22
|
+
# * 'created-at'<~String>
|
|
23
|
+
# * 'data'<~String>
|
|
24
|
+
# * 'fqdn'<~String>
|
|
25
|
+
# * 'host-type'<~String>
|
|
26
|
+
# * 'hostname'<~String>
|
|
27
|
+
# * 'id'<~Integer>
|
|
28
|
+
# * 'notes'<~String>
|
|
29
|
+
# * 'priority'<~Integer>
|
|
30
|
+
# * 'ttl'<~Integer>
|
|
31
|
+
# * 'updated-at'<~String>
|
|
32
|
+
# * 'zone-id'<~String>
|
|
33
|
+
# * 'status'<~Integer> - 201 if successful
|
|
34
|
+
def create_host( zone_id, host_type, data, options = {} )
|
|
35
|
+
|
|
36
|
+
optional_tags= ''
|
|
37
|
+
options.each { |option, value|
|
|
38
|
+
case option
|
|
39
|
+
when :hostname
|
|
40
|
+
optional_tags+= "<hostname>#{value}</hostname>"
|
|
41
|
+
when :notes
|
|
42
|
+
optional_tags+= "<notes>#{value}</notes>"
|
|
43
|
+
when :priority
|
|
44
|
+
optional_tags+= "<priority>#{value}</priority>"
|
|
45
|
+
when :ttl
|
|
46
|
+
optional_tags+= "<ttl>#{value}</ttl>"
|
|
47
|
+
end
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
request(
|
|
51
|
+
:body => %Q{<?xml version="1.0" encoding="UTF-8"?><host><host-type>#{host_type}</host-type><data>#{data}</data>#{optional_tags}</host>},
|
|
52
|
+
:expects => 201,
|
|
53
|
+
:method => 'POST',
|
|
54
|
+
:parser => Fog::Parsers::Zerigo::DNS::CreateHost.new,
|
|
55
|
+
:path => "/api/1.1/zones/#{zone_id}/hosts.xml"
|
|
56
|
+
)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
class Mock
|
|
62
|
+
|
|
63
|
+
def create_host( zone_id, host_type, data, options = {})
|
|
64
|
+
Fog::Mock.not_implemented
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Zerigo
|
|
3
|
+
class DNS
|
|
4
|
+
class Real
|
|
5
|
+
|
|
6
|
+
require 'fog/zerigo/parsers/dns/create_zone'
|
|
7
|
+
|
|
8
|
+
# Create a new zone for Zerigo's DNS servers to serve/host
|
|
9
|
+
# ==== Parameters
|
|
10
|
+
#
|
|
11
|
+
# * domain<~String>
|
|
12
|
+
# * default_ttl<~Integer>
|
|
13
|
+
# * ns_type<~String>
|
|
14
|
+
# * options<~Hash> - optional paramaters
|
|
15
|
+
# * ns1<~String> - required if ns_type == sec
|
|
16
|
+
# * nx_ttl<~Integer> -
|
|
17
|
+
# * slave_nameservers<~String> - required if ns_type == pri
|
|
18
|
+
# * axfr_ips<~String> - comma-separated list of IPs or IP blocks allowed to perform AXFRs
|
|
19
|
+
# * custom_nameservers<~String> - comma-separated list of custom nameservers
|
|
20
|
+
# * custom_ns<~String> - indicates if vanity (custom) nameservers are enabled for this domain
|
|
21
|
+
# * hostmaster<~String> - email of the DNS administrator or hostmaster
|
|
22
|
+
# * notes<~String> - notes about the domain
|
|
23
|
+
# * restrict_axfr<~String> - indicates if AXFR transfers should be restricted to IPs in axfr-ips
|
|
24
|
+
# * tag_list<~String> - List of all tags associated with this domain
|
|
25
|
+
#
|
|
26
|
+
# ==== Returns
|
|
27
|
+
# * response<~Excon::Response>:
|
|
28
|
+
# * body<~Hash>:
|
|
29
|
+
# * 'id'<~Integer> - zone ID to use for future calls
|
|
30
|
+
# * 'default-ttl'<~Integer>
|
|
31
|
+
# * 'nx-ttl'<~Integer>
|
|
32
|
+
# * 'hosts-count'<~Integer>
|
|
33
|
+
# * 'created-at'<~String>
|
|
34
|
+
# * 'custom-nameservers'<~String>
|
|
35
|
+
# * 'custom-ns'<~String>
|
|
36
|
+
# * 'domain'<~String>
|
|
37
|
+
# * 'hostmaster'<~String>
|
|
38
|
+
# * 'notes'<~String>
|
|
39
|
+
# * 'ns1'<~String>
|
|
40
|
+
# * 'ns-type'<~String>
|
|
41
|
+
# * 'slave-nameservers'<~String>
|
|
42
|
+
# * 'tag-list'<~String>
|
|
43
|
+
# * 'updated-at'<~String>
|
|
44
|
+
# * 'hosts'<~String>
|
|
45
|
+
# * 'axfr-ips'<~String>
|
|
46
|
+
# * 'restrict-axfr'<~String>
|
|
47
|
+
# * 'status'<~Integer> - 201 if successful
|
|
48
|
+
|
|
49
|
+
def create_zone( domain, default_ttl, ns_type, options = {})
|
|
50
|
+
|
|
51
|
+
optional_tags= ''
|
|
52
|
+
options.each { |option, value|
|
|
53
|
+
case option
|
|
54
|
+
when :ns1
|
|
55
|
+
optional_tags+= "<ns1>#{value}</ns1>"
|
|
56
|
+
when :nx_ttl
|
|
57
|
+
optional_tags+= "<nx-ttl type='interger'>#{value}</nx-ttl>"
|
|
58
|
+
when :slave_nameservers
|
|
59
|
+
optional_tags+= "<slave-nameservers>#{value}</slave-nameservers>"
|
|
60
|
+
when :axfr_ips
|
|
61
|
+
optional_tags+= "<axfr-ips>#{value}</axfr-ips>"
|
|
62
|
+
when :custom_nameservers
|
|
63
|
+
optional_tags+= "<custom-nameservers>#{value}</custom-nameservers>"
|
|
64
|
+
when :custom_ns
|
|
65
|
+
optional_tags+= "<custom-ns>#{value}</custom-ns>"
|
|
66
|
+
when :hostmaster
|
|
67
|
+
optional_tags+= "<hostmaster>#{value}</hostmaster>"
|
|
68
|
+
when :notes
|
|
69
|
+
optional_tags+= "<notes>#{value}</notes>"
|
|
70
|
+
when :restrict_axfr
|
|
71
|
+
optional_tags+= "<restrict-axfr>#{value}</restrict-axfr>"
|
|
72
|
+
when :tag_list
|
|
73
|
+
optional_tags+= "<tag-list>#{value}</tag-list>"
|
|
74
|
+
end
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
request(
|
|
78
|
+
:body => %Q{<?xml version="1.0" encoding="UTF-8"?><zone><domain>#{domain}</domain><default-ttl type="integer">#{default_ttl}</default-ttl><ns-type>#{ns_type}</ns-type>#{optional_tags}</zone>},
|
|
79
|
+
:expects => 201,
|
|
80
|
+
:method => 'POST',
|
|
81
|
+
:parser => Fog::Parsers::Zerigo::DNS::CreateZone.new,
|
|
82
|
+
:path => '/api/1.1/zones.xml'
|
|
83
|
+
)
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
class Mock
|
|
89
|
+
|
|
90
|
+
def create_zone(domain, default_ttl, ns_type, options = {})
|
|
91
|
+
Fog::Mock.not_implemented
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|