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.
Files changed (192) hide show
  1. data/.document +3 -0
  2. data/.gitignore +10 -0
  3. data/Gemfile.lock +1 -4
  4. data/README.rdoc +29 -37
  5. data/Rakefile +5 -25
  6. data/bin/fog +1 -3
  7. data/examples/dns_methods.rb +389 -0
  8. data/examples/storage.rb +103 -0
  9. data/fog.gemspec +4 -778
  10. data/lib/fog.rb +5 -66
  11. data/lib/fog/aws.rb +3 -0
  12. data/lib/fog/aws/bin.rb +7 -2
  13. data/lib/fog/aws/cdn.rb +2 -2
  14. data/lib/fog/aws/compute.rb +2 -2
  15. data/lib/fog/aws/dns.rb +101 -0
  16. data/lib/fog/aws/elb.rb +2 -2
  17. data/lib/fog/aws/iam.rb +2 -2
  18. data/lib/fog/aws/models/compute/image.rb +1 -0
  19. data/lib/fog/aws/models/compute/server.rb +1 -1
  20. data/lib/fog/aws/models/compute/servers.rb +1 -13
  21. data/lib/fog/aws/parsers/compute/describe_images.rb +36 -34
  22. data/lib/fog/aws/parsers/dns/change_resource_record_sets.rb +26 -0
  23. data/lib/fog/aws/parsers/dns/create_hosted_zone.rb +55 -0
  24. data/lib/fog/aws/parsers/dns/delete_hosted_zone.rb +25 -0
  25. data/lib/fog/aws/parsers/dns/get_change.rb +26 -0
  26. data/lib/fog/aws/parsers/dns/get_hosted_zone.rb +43 -0
  27. data/lib/fog/aws/parsers/dns/list_hosted_zones.rb +35 -0
  28. data/lib/fog/aws/parsers/dns/list_resource_record_sets.rb +46 -0
  29. data/lib/fog/aws/requests/compute/describe_images.rb +1 -0
  30. data/lib/fog/aws/requests/dns/change_resource_record_sets.rb +90 -0
  31. data/lib/fog/aws/requests/dns/create_hosted_zone.rb +68 -0
  32. data/lib/fog/aws/requests/dns/delete_hosted_zone.rb +48 -0
  33. data/lib/fog/aws/requests/dns/get_change.rb +47 -0
  34. data/lib/fog/aws/requests/dns/get_hosted_zone.rb +51 -0
  35. data/lib/fog/aws/requests/dns/list_hosted_zones.rb +63 -0
  36. data/lib/fog/aws/requests/dns/list_resource_record_sets.rb +68 -0
  37. data/lib/fog/aws/requests/storage/get_object_url.rb +2 -2
  38. data/lib/fog/aws/requests/storage/put_object_url.rb +2 -2
  39. data/lib/fog/aws/requests/storage/sync_clock.rb +28 -0
  40. data/lib/fog/aws/simpledb.rb +2 -2
  41. data/lib/fog/aws/storage.rb +5 -3
  42. data/lib/fog/bluebox.rb +2 -0
  43. data/lib/fog/bluebox/compute.rb +2 -2
  44. data/lib/fog/brightbox.rb +2 -0
  45. data/lib/fog/brightbox/compute.rb +2 -2
  46. data/lib/fog/core.rb +21 -1
  47. data/lib/fog/core/bin.rb +3 -1
  48. data/lib/fog/core/compute.rb +1 -0
  49. data/lib/fog/core/credentials.rb +72 -50
  50. data/lib/fog/core/deprecation.rb +11 -5
  51. data/lib/fog/core/mock.rb +34 -0
  52. data/lib/fog/core/model.rb +9 -1
  53. data/lib/fog/core/service.rb +40 -26
  54. data/lib/fog/core/storage.rb +1 -0
  55. data/lib/fog/core/time.rb +21 -0
  56. data/lib/fog/core/wait_for.rb +17 -0
  57. data/lib/fog/go_grid.rb +2 -0
  58. data/lib/fog/go_grid/compute.rb +2 -2
  59. data/lib/fog/google.rb +2 -0
  60. data/lib/fog/google/requests/storage/get_bucket.rb +6 -5
  61. data/lib/fog/google/requests/storage/get_object_url.rb +4 -4
  62. data/lib/fog/google/requests/storage/put_object_url.rb +4 -4
  63. data/lib/fog/google/storage.rb +4 -3
  64. data/lib/fog/linode.rb +3 -0
  65. data/lib/fog/linode/bin.rb +5 -3
  66. data/lib/fog/linode/compute.rb +6 -2
  67. data/lib/fog/linode/dns.rb +80 -0
  68. data/lib/fog/linode/requests/dns/domain_create.rb +52 -0
  69. data/lib/fog/linode/requests/dns/domain_delete.rb +35 -0
  70. data/lib/fog/linode/requests/dns/domain_list.rb +50 -0
  71. data/lib/fog/linode/requests/dns/domain_resource_create.rb +53 -0
  72. data/lib/fog/linode/requests/dns/domain_resource_delete.rb +36 -0
  73. data/lib/fog/linode/requests/dns/domain_resource_list.rb +48 -0
  74. data/lib/fog/linode/requests/dns/domain_resource_update.rb +54 -0
  75. data/lib/fog/linode/requests/dns/domain_update.rb +48 -0
  76. data/lib/fog/local.rb +2 -0
  77. data/lib/fog/local/storage.rb +3 -3
  78. data/lib/fog/new_servers.rb +2 -0
  79. data/lib/fog/new_servers/compute.rb +2 -2
  80. data/lib/fog/rackspace.rb +2 -0
  81. data/lib/fog/rackspace/cdn.rb +2 -2
  82. data/lib/fog/rackspace/compute.rb +2 -2
  83. data/lib/fog/rackspace/storage.rb +2 -2
  84. data/lib/fog/slicehost.rb +3 -0
  85. data/lib/fog/slicehost/bin.rb +2 -0
  86. data/lib/fog/slicehost/compute.rb +2 -2
  87. data/lib/fog/slicehost/dns.rb +84 -0
  88. data/lib/fog/slicehost/parsers/dns/create_record.rb +26 -0
  89. data/lib/fog/slicehost/parsers/dns/create_zone.rb +26 -0
  90. data/lib/fog/slicehost/parsers/dns/get_record.rb +26 -0
  91. data/lib/fog/slicehost/parsers/dns/get_records.rb +30 -0
  92. data/lib/fog/slicehost/parsers/dns/get_zone.rb +26 -0
  93. data/lib/fog/slicehost/parsers/dns/get_zones.rb +30 -0
  94. data/lib/fog/slicehost/requests/compute/create_slice.rb +2 -2
  95. data/lib/fog/slicehost/requests/compute/delete_slice.rb +3 -17
  96. data/lib/fog/slicehost/requests/dns/create_record.rb +61 -0
  97. data/lib/fog/slicehost/requests/dns/create_zone.rb +54 -0
  98. data/lib/fog/slicehost/requests/dns/delete_record.rb +31 -0
  99. data/lib/fog/slicehost/requests/dns/delete_zone.rb +31 -0
  100. data/lib/fog/slicehost/requests/dns/get_record.rb +40 -0
  101. data/lib/fog/slicehost/requests/dns/get_records.rb +41 -0
  102. data/lib/fog/slicehost/requests/dns/get_zone.rb +40 -0
  103. data/lib/fog/slicehost/requests/dns/get_zones.rb +38 -0
  104. data/lib/fog/terremark.rb +2 -0
  105. data/lib/fog/terremark/ecloud.rb +2 -4
  106. data/lib/fog/vcloud.rb +4 -2
  107. data/lib/fog/vcloud/bin.rb +3 -1
  108. data/lib/fog/vcloud/mock_data_classes.rb +77 -11
  109. data/lib/fog/vcloud/terremark/ecloud.rb +22 -7
  110. data/lib/fog/vcloud/terremark/ecloud/models/backup_internet_service.rb +60 -0
  111. data/lib/fog/vcloud/terremark/ecloud/models/backup_internet_services.rb +36 -0
  112. data/lib/fog/vcloud/terremark/ecloud/models/internet_service.rb +28 -13
  113. data/lib/fog/vcloud/terremark/ecloud/models/internet_services.rb +2 -2
  114. data/lib/fog/vcloud/terremark/ecloud/models/ip.rb +1 -1
  115. data/lib/fog/vcloud/terremark/ecloud/models/network.rb +4 -1
  116. data/lib/fog/vcloud/terremark/ecloud/models/server.rb +5 -5
  117. data/lib/fog/vcloud/terremark/ecloud/models/vdc.rb +6 -2
  118. data/lib/fog/vcloud/terremark/ecloud/requests/add_backup_internet_service.rb +111 -0
  119. data/lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb +2 -4
  120. data/lib/fog/vcloud/terremark/ecloud/requests/add_node.rb +1 -3
  121. data/lib/fog/vcloud/terremark/ecloud/requests/configure_internet_service.rb +39 -27
  122. data/lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb +1 -2
  123. data/lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb +21 -6
  124. data/lib/fog/vcloud/terremark/ecloud/requests/delete_vapp.rb +2 -1
  125. data/lib/fog/vcloud/terremark/ecloud/requests/get_internet_services.rb +34 -17
  126. data/lib/fog/vcloud/terremark/ecloud/requests/get_network_extensions.rb +12 -10
  127. data/lib/fog/vcloud/terremark/ecloud/requests/get_network_ip.rb +15 -10
  128. data/lib/fog/vcloud/terremark/ecloud/requests/get_network_ips.rb +1 -12
  129. data/lib/fog/zerigo.rb +15 -0
  130. data/lib/fog/zerigo/bin.rb +25 -0
  131. data/lib/fog/zerigo/dns.rb +96 -0
  132. data/lib/fog/zerigo/parsers/dns/count_hosts.rb +24 -0
  133. data/lib/fog/zerigo/parsers/dns/count_zones.rb +24 -0
  134. data/lib/fog/zerigo/parsers/dns/create_host.rb +26 -0
  135. data/lib/fog/zerigo/parsers/dns/create_zone.rb +26 -0
  136. data/lib/fog/zerigo/parsers/dns/find_hosts.rb +30 -0
  137. data/lib/fog/zerigo/parsers/dns/get_host.rb +26 -0
  138. data/lib/fog/zerigo/parsers/dns/get_zone.rb +56 -0
  139. data/lib/fog/zerigo/parsers/dns/get_zone_stats.rb +26 -0
  140. data/lib/fog/zerigo/parsers/dns/list_hosts.rb +30 -0
  141. data/lib/fog/zerigo/parsers/dns/list_zones.rb +30 -0
  142. data/lib/fog/zerigo/requests/dns/count_hosts.rb +36 -0
  143. data/lib/fog/zerigo/requests/dns/count_zones.rb +36 -0
  144. data/lib/fog/zerigo/requests/dns/create_host.rb +70 -0
  145. data/lib/fog/zerigo/requests/dns/create_zone.rb +97 -0
  146. data/lib/fog/zerigo/requests/dns/delete_host.rb +32 -0
  147. data/lib/fog/zerigo/requests/dns/delete_zone.rb +33 -0
  148. data/lib/fog/zerigo/requests/dns/find_hosts.rb +63 -0
  149. data/lib/fog/zerigo/requests/dns/get_host.rb +47 -0
  150. data/lib/fog/zerigo/requests/dns/get_zone.rb +57 -0
  151. data/lib/fog/zerigo/requests/dns/get_zone_stats.rb +44 -0
  152. data/lib/fog/zerigo/requests/dns/list_hosts.rb +48 -0
  153. data/lib/fog/zerigo/requests/dns/list_zones.rb +53 -0
  154. data/lib/fog/zerigo/requests/dns/update_host.rb +60 -0
  155. data/lib/fog/zerigo/requests/dns/update_zone.rb +78 -0
  156. data/spec/spec_helper.rb +0 -5
  157. data/spec/vcloud/spec_helper.rb +3 -2
  158. data/spec/vcloud/terremark/ecloud/models/backup_internet_service_spec.rb +49 -0
  159. data/spec/vcloud/terremark/ecloud/models/backup_internet_services_spec.rb +29 -0
  160. data/spec/vcloud/terremark/ecloud/models/internet_service_spec.rb +32 -13
  161. data/spec/vcloud/terremark/ecloud/models/network_spec.rb +7 -4
  162. data/spec/vcloud/terremark/ecloud/models/server_spec.rb +20 -0
  163. data/spec/vcloud/terremark/ecloud/requests/add_backup_internet_service_spec.rb +60 -0
  164. data/spec/vcloud/terremark/ecloud/requests/configure_internet_service_spec.rb +3 -0
  165. data/spec/vcloud/terremark/ecloud/requests/configure_network_ip_spec.rb +55 -0
  166. data/spec/vcloud/terremark/ecloud/requests/delete_vapp_spec.rb +9 -0
  167. data/spec/vcloud/terremark/ecloud/requests/get_internet_services_spec.rb +60 -14
  168. data/spec/vcloud/terremark/ecloud/requests/get_network_ip_spec.rb +2 -0
  169. data/spec/vcloud/terremark/ecloud/requests/get_network_ips_spec.rb +3 -3
  170. data/tests/aws/requests/compute/image_tests.rb +15 -14
  171. data/tests/aws/requests/dns/dns_tests.rb +276 -0
  172. data/tests/brightbox/requests/compute/account_tests.rb +20 -9
  173. data/tests/brightbox/requests/compute/api_client_tests.rb +12 -4
  174. data/tests/brightbox/requests/compute/cloud_ip_tests.rb +20 -6
  175. data/tests/brightbox/requests/compute/image_tests.rb +9 -4
  176. data/tests/brightbox/requests/compute/interface_tests.rb +8 -2
  177. data/tests/brightbox/requests/compute/server_tests.rb +17 -5
  178. data/tests/brightbox/requests/compute/server_type_tests.rb +8 -4
  179. data/tests/brightbox/requests/compute/user_tests.rb +13 -5
  180. data/tests/brightbox/requests/compute/zone_tests.rb +8 -4
  181. data/tests/core/attribute_tests.rb +45 -0
  182. data/tests/helper.rb +0 -2
  183. data/tests/linode/requests/dns/dns_tests.rb +262 -0
  184. data/tests/rackspace/requests/compute/address_tests.rb +1 -1
  185. data/tests/rackspace/requests/compute/image_tests.rb +1 -1
  186. data/tests/slicehost/requests/dns_tests/dns_tests.rb +279 -0
  187. data/tests/zerigo/helper.rb +0 -0
  188. data/tests/zerigo/requests/dns/dns_tests.rb +374 -0
  189. metadata +280 -36
  190. data/spec/compact_progress_bar_formatter.rb +0 -195
  191. data/spec/core/attributes_spec.rb +0 -52
  192. data/spec/lorem.txt +0 -1
@@ -0,0 +1,32 @@
1
+ module Fog
2
+ module Zerigo
3
+ class DNS
4
+ class Real
5
+
6
+ # Delete a host record
7
+ #
8
+ # ==== Parameters
9
+ # * host_id<~Integer> - Id of host record to delete
10
+ # ==== Returns
11
+ # * response<~Excon::Response>:
12
+ # * 'status'<~Integer> - 200 indicates success
13
+ def delete_host(host_id)
14
+ request(
15
+ :expects => 200,
16
+ :method => 'DELETE',
17
+ :path => "/api/1.1/hosts/#{host_id}.xml"
18
+ )
19
+ end
20
+
21
+ end
22
+
23
+ class Mock
24
+
25
+ def delete_host(host_id)
26
+ Fog::Mock.not_implemented
27
+ end
28
+
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,33 @@
1
+ module Fog
2
+ module Zerigo
3
+ class DNS
4
+ class Real
5
+
6
+ # Delete a zone from Zerigo
7
+ #
8
+ # ==== Parameters
9
+ # * zone_id<~Integer> - Id of zone to delete
10
+ # ==== Returns
11
+ # * response<~Excon::Response>:
12
+ # * 'status'<~Integer> - 200 indicates success
13
+
14
+ def delete_zone(zone_id)
15
+ request(
16
+ :expects => 200,
17
+ :method => 'DELETE',
18
+ :path => "/api/1.1/zones/#{zone_id}.xml"
19
+ )
20
+ end
21
+
22
+ end
23
+
24
+ class Mock
25
+
26
+ def delete_zone(zone_id)
27
+ Fog::Mock.not_implemented
28
+ end
29
+
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,63 @@
1
+ module Fog
2
+ module Zerigo
3
+ class DNS
4
+ class Real
5
+
6
+ require 'fog/zerigo/parsers/dns/find_hosts'
7
+
8
+ # Get list of all the host records that match the FQDN. If desired, can limit
9
+ # search to a specific zone
10
+ #
11
+ #
12
+ # ==== Parameters
13
+ # * fqdn<~String> - domain to look for
14
+ # * zone_id<~Integer> - if want to limit search to specific zone
15
+ # ==== Returns
16
+ # * response<~Excon::Response>:
17
+ # * body<~Hash>:
18
+ # * 'hosts'<~Hash>
19
+ # * 'created-at'<~String>
20
+ # * 'data'<~String>
21
+ # * 'fqdn'<~String>
22
+ # * 'host-type'<~String>
23
+ # * 'hostname'<~String>
24
+ # * 'id'<~Integer>
25
+ # * 'notes'<~String>
26
+ # * 'priority'<~Integer>
27
+ # * 'ttl'<~Integer>
28
+ # * 'updated-at'<~String>
29
+ # * 'zone-id'<~String>
30
+ # * 'status'<~Integer> - 200 indicated success
31
+ #
32
+ def find_hosts( fqdn, zone_id = nil)
33
+ if zone_id.nil?
34
+ #look for matching host across all zones
35
+ request(
36
+ :expects => 200,
37
+ :method => 'GET',
38
+ :parser => Fog::Parsers::Zerigo::DNS::FindHosts.new,
39
+ :path => "/api/1.1/hosts.xml?fqdn=#{fqdn}"
40
+ )
41
+ else
42
+ #look for hosts in a specific zone
43
+ request(
44
+ :expects => 200,
45
+ :method => 'GET',
46
+ :parser => Fog::Parsers::Zerigo::DNS::FindHosts.new,
47
+ :path => "/api/1.1/zones/#{zone_id}/hosts.xml?fqdn=#{fqdn}"
48
+ )
49
+ end
50
+ end
51
+
52
+ end
53
+
54
+ class Mock
55
+
56
+ def find_hosts( fqdn, zone_id = nil)
57
+ Fog::Mock.not_implemented
58
+ end
59
+
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,47 @@
1
+ module Fog
2
+ module Zerigo
3
+ class DNS
4
+ class Real
5
+
6
+ require 'fog/zerigo/parsers/dns/get_host'
7
+
8
+ # get details about a given host record
9
+ #
10
+ # ==== Parameters
11
+ # * host_id<~Integer> - ID of the host record to retrieve
12
+ # ==== Returns
13
+ # * response<~Excon::Response>:
14
+ # * body<~Hash>:
15
+ # * 'created-at'<~String>
16
+ # * 'data'<~String>
17
+ # * 'fqdn'<~String>
18
+ # * 'host-type'<~String>
19
+ # * 'hostname'<~String>
20
+ # * 'id'<~Integer>
21
+ # * 'notes'<~String>
22
+ # * 'priority'<~Integer>
23
+ # * 'ttl'<~Integer>
24
+ # * 'updated-at'<~String>
25
+ # * 'zone-id'<~String>
26
+ # * 'status'<~Integer> - 200 indicates success
27
+ def get_host( host_id)
28
+ request(
29
+ :expects => 200,
30
+ :method => 'GET',
31
+ :parser => Fog::Parsers::Zerigo::DNS::GetHost.new,
32
+ :path => "/api/1.1/hosts/#{host_id}.xml"
33
+ )
34
+ end
35
+
36
+ end
37
+
38
+ class Mock
39
+
40
+ def get_host( host_id)
41
+ Fog::Mock.not_implemented
42
+ end
43
+
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,57 @@
1
+ module Fog
2
+ module Zerigo
3
+ class DNS
4
+ class Real
5
+
6
+ require 'fog/zerigo/parsers/dns/get_zone'
7
+
8
+ # Get details of a DNS zone. The response is similar to list_zones, with the
9
+ # addition of hosts-count and possibly hosts.
10
+ #
11
+ # ==== Parameters
12
+ # * zone<~String> - Either the zone ID or the zone name (ie sample-domain.com)
13
+ #
14
+ # ==== Returns
15
+ # * response<~Excon::Response>:
16
+ # * body<~Hash>:
17
+ # * 'default-ttl'<~Integer>
18
+ # * 'id'<~Integer>
19
+ # * 'nx-ttl'<~Integer>
20
+ # * 'hosts-count'<~Integer>
21
+ # * 'created-at'<~String>
22
+ # * 'custom-nameservers'<~String>
23
+ # * 'custom-ns'<~String>
24
+ # * 'domain'<~String>
25
+ # * 'hostmaster'<~String>
26
+ # * 'notes'<~String>
27
+ # * 'ns1'<~String>
28
+ # * 'ns-type'<~String>
29
+ # * 'slave-nameservers'<~String>
30
+ # * 'tag-list'<~String>
31
+ # * 'updated-at'<~String>
32
+ # * 'hosts'<~Array> - a list of all host records. For the format of host info, see get_host()
33
+ # * 'axfr-ips'<~String>
34
+ # * 'restrict-axfr'<~String>
35
+ # * 'status'<~Integer> - 200 indicates success
36
+
37
+ def get_zone(zone)
38
+ request(
39
+ :expects => 200,
40
+ :method => 'GET',
41
+ :parser => Fog::Parsers::Zerigo::DNS::GetZone.new,
42
+ :path => "/api/1.1/zones/#{zone}.xml"
43
+ )
44
+ end
45
+
46
+ end
47
+
48
+ class Mock
49
+
50
+ def get_zone(zone)
51
+ Fog::Mock.not_implemented
52
+ end
53
+
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,44 @@
1
+ module Fog
2
+ module Zerigo
3
+ class DNS
4
+ class Real
5
+
6
+ require 'fog/zerigo/parsers/dns/get_zone_stats'
7
+
8
+ # returns current traffic statistics about this zone. Queries is measured from the
9
+ # beginning of the current period through the time of the API call.
10
+ #
11
+ # ==== Parameters
12
+ # * zone_id<~Integer> - the zone ID
13
+ #
14
+ # ==== Returns
15
+ # * response<~Excon::Response>:
16
+ # * body<~Hash>:
17
+ # * 'domain'<~String> - domain name (ie example.com)
18
+ # * 'id'<~Integer> - Id of the zone
19
+ # * 'period-being'<~String> - date in following format 2010-07-01
20
+ # * 'period-end'<~String> - date
21
+ # * 'queries'<~Integer> - # of queries for the zone during period
22
+ # * 'status'<~Integer> - 200 indicates success
23
+
24
+ def get_zone_stats(zone_id)
25
+ request(
26
+ :expects => 200,
27
+ :method => 'GET',
28
+ :parser => Fog::Parsers::Zerigo::DNS::GetZoneStats.new,
29
+ :path => "/api/1.1/zones/#{zone_id}/stats.xml"
30
+ )
31
+ end
32
+
33
+ end
34
+
35
+ class Mock
36
+
37
+ def get_zone_stats(zone_id)
38
+ Fog::Mock.not_implemented
39
+ end
40
+
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,48 @@
1
+ module Fog
2
+ module Zerigo
3
+ class DNS
4
+ class Real
5
+
6
+ require 'fog/zerigo/parsers/dns/list_hosts'
7
+
8
+ # Get list of all DNS zones hosted on Slicehost (for this account)
9
+ #
10
+ # ==== Parameters
11
+ # * zone_id<~Integer> - the zone ID of the zone from which to get the host records for
12
+ # ==== Returns
13
+ # * response<~Excon::Response>:
14
+ # * body<~Hash>:
15
+ # * 'hosts'<~Array>
16
+ # * 'created-at'<~String>
17
+ # * 'data'<~String>
18
+ # * 'fqdn'<~String>
19
+ # * 'host-type'<~String>
20
+ # * 'hostname'<~String>
21
+ # * 'id'<~Integer>
22
+ # * 'notes'<~String>
23
+ # * 'priority'<~Integer>
24
+ # * 'ttl'<~Integer>
25
+ # * 'updated-at'<~String>
26
+ # * 'zone-id'<~String>
27
+ # * 'status'<~Integer> - 200 indicates success
28
+ def list_hosts( zone_id)
29
+ request(
30
+ :expects => 200,
31
+ :method => 'GET',
32
+ :parser => Fog::Parsers::Zerigo::DNS::ListHosts.new,
33
+ :path => "/api/1.1/zones/#{zone_id}/hosts.xml"
34
+ )
35
+ end
36
+
37
+ end
38
+
39
+ class Mock
40
+
41
+ def list_hosts( zone_id)
42
+ Fog::Mock.not_implemented
43
+ end
44
+
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,53 @@
1
+ module Fog
2
+ module Zerigo
3
+ class DNS
4
+ class Real
5
+
6
+ require 'fog/zerigo/parsers/dns/list_zones'
7
+
8
+ # Get list of all DNS zones hosted on Slicehost (for this account)
9
+ #
10
+ # ==== Returns
11
+ # * response<~Excon::Response>:
12
+ # * body<~Hash>:
13
+ # * 'zones'<~Array>
14
+ # * 'default-ttl'<~Integer>
15
+ # * 'id'<~Integer>
16
+ # * 'nx-ttl'<~Integer>
17
+ # * 'hosts-count'<~Integer>
18
+ # * 'created-at'<~String>
19
+ # * 'custom-nameservers'<~String>
20
+ # * 'custom-ns'<~String>
21
+ # * 'domain'<~String>
22
+ # * 'hostmaster'<~String>
23
+ # * 'notes'<~String>
24
+ # * 'ns1'<~String>
25
+ # * 'ns-type'<~String>
26
+ # * 'slave-nameservers'<~String>
27
+ # * 'tag-list'<~String>
28
+ # * 'updated-at'<~String>
29
+ # * 'hosts'<~String>
30
+ # * 'axfr-ips'<~String>
31
+ # * 'restrict-axfr'<~String>
32
+ # * 'status'<~Integer> - 200 indicates success
33
+ def list_zones
34
+ request(
35
+ :expects => 200,
36
+ :method => 'GET',
37
+ :parser => Fog::Parsers::Zerigo::DNS::ListZones.new,
38
+ :path => '/api/1.1/zones.xml'
39
+ )
40
+ end
41
+
42
+ end
43
+
44
+ class Mock
45
+
46
+ def list_zones
47
+ Fog::Mock.not_implemented
48
+ end
49
+
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,60 @@
1
+ module Fog
2
+ module Zerigo
3
+ class DNS
4
+ class Real
5
+
6
+ # Update a host record
7
+ #
8
+ # ==== Parameters
9
+ # * host_id<~Integer> - host ID of the record to update
10
+ # * options<~Hash> - optional paramaters
11
+ # * host_type<~String>
12
+ # * data<~String>
13
+ # * hostname<~String> - Note: normally this is set/required!!
14
+ # * notes<~String>
15
+ # * priority<~Integer> - Note: required for MX or SRV records
16
+ # * ttl<~Integer>
17
+ # ==== Returns
18
+ # * response<~Excon::Response>:
19
+ # * 'status'<~Integer> - 200 for success
20
+ #
21
+ def update_host( host_id, options = {})
22
+
23
+ optional_tags= ''
24
+ options.each { |option, value|
25
+ case option
26
+ when :host_type
27
+ optional_tags+= "<host-type>#{host_type}</host-type>"
28
+ when :data
29
+ optional_tags+= "<data>#{data}</data>"
30
+ when :hostname
31
+ optional_tags+= "<hostname>#{value}</hostname>"
32
+ when :notes
33
+ optional_tags+= "<notes>#{value}</notes>"
34
+ when :priority
35
+ optional_tags+= "<priority>#{value}</priority>"
36
+ when :ttl
37
+ optional_tags+= "<ttl>#{value}</ttl>"
38
+ end
39
+ }
40
+
41
+ request(
42
+ :body => %Q{<?xml version="1.0" encoding="UTF-8"?><host>#{optional_tags}</host>},
43
+ :expects => 200,
44
+ :method => 'PUT',
45
+ :path => "/api/1.1/hosts/#{host_id}.xml"
46
+ )
47
+ end
48
+
49
+ end
50
+
51
+ class Mock
52
+
53
+ def update_host( host_id, options = {})
54
+ Fog::Mock.not_implemented
55
+ end
56
+
57
+ end
58
+ end
59
+ end
60
+ end