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,52 @@
1
+ module Fog
2
+ module Linode
3
+ class DNS
4
+ class Real
5
+
6
+ # Creates a domain record
7
+ #
8
+ # ==== Parameters
9
+ # * domain<~String>: The zone's name. Note, if master zone, SOA_email is required and if slave
10
+ # master_ips is/are required
11
+ # * type<~String>: master or slave
12
+ # * options<~Hash>
13
+ # * description<~String> Currently undisplayed
14
+ # * SOA_email<~String> Required when type=master
15
+ # * refresh_sec<~Integer> numeric, default: '0'
16
+ # * retry_sec<~Integer> numeric, default: '0'
17
+ # * expire_sec<~Integer> numeric, default: '0'
18
+ # * ttl_sec<~String> numeric, default: '0'
19
+ # * status<~Integer> 0, 1, or 2 (disabled, active, edit mode), default: 1
20
+ # * master_ips<~String> When type=slave, the zone's master DNS servers list, semicolon separated
21
+ #
22
+ # ==== Returns
23
+ # * response<~Excon::Response>:
24
+ # * body<~Hash>:
25
+ # * DATA<~Hash>:
26
+ # * 'DomainID'<~Integer>: domain ID
27
+ def domain_create( domain, type, options = {})
28
+
29
+ query= {}
30
+ request(
31
+ :expects => 200,
32
+ :method => 'GET',
33
+ :query => {
34
+ :api_action => 'domain.create',
35
+ :domain => domain,
36
+ :type => type
37
+ }.merge!( options)
38
+ )
39
+ end
40
+
41
+ end
42
+
43
+ class Mock
44
+
45
+ def domain_create( domain, type, options ={})
46
+ Fog::Mock.not_implemented
47
+ end
48
+
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,35 @@
1
+ module Fog
2
+ module Linode
3
+ class DNS
4
+ class Real
5
+
6
+ # Delete the given domain from the list Linode hosts
7
+ #
8
+ # ==== Parameters
9
+ # * domain_id<~Integer>: id of domain to delete
10
+ #
11
+ # ==== Returns
12
+ # * response<~Excon::Response>:
13
+ # * body<~Hash>:
14
+ # * DATA<~Hash>:
15
+ # TODO: docs
16
+ def domain_delete(domain_id)
17
+ request(
18
+ :expects => 200,
19
+ :method => 'GET',
20
+ :query => { :api_action => 'domain.delete', :domainId => domain_id }
21
+ )
22
+ end
23
+
24
+ end
25
+
26
+ class Mock
27
+
28
+ def domain_delete(domain_id)
29
+ Fog::Mock.not_implemented
30
+ end
31
+
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,50 @@
1
+ module Fog
2
+ module Linode
3
+ class DNS
4
+ class Real
5
+
6
+ # List of domains (you have access to)
7
+ #
8
+ # ==== Parameters
9
+ # * domain_id<~Integer>: limit the list to the domain ID specified
10
+ #
11
+ # ==== Returns
12
+ # * response<~Excon::Response>:
13
+ # * body<~Array>:
14
+ # * DATA<~Array>
15
+ # * 'DOMAINID'<~Interger>
16
+ # * 'SOA_EMAIL'<~String>
17
+ # * 'DESCRIPTION'<~String>
18
+ # * 'TTL_SEC'<~String>
19
+ # * 'EXPIRE_SEC'<~Integer>
20
+ # * 'RETRY_SEC'<~Integer>
21
+ # * 'DOMAIN'<~String>
22
+ # * 'STATUS'<~Integer>
23
+ # * 'MASTER_IPS'<~String>
24
+ # * 'REFRESH_SEC'<~Integer>
25
+ # * 'TYPE'<~String>
26
+ def domain_list(domain_id = nil)
27
+ options = {}
28
+ if domain_id
29
+ options.merge!(:domainId => domain_id)
30
+ end
31
+
32
+ request(
33
+ :expects => 200,
34
+ :method => 'GET',
35
+ :query => { :api_action => 'domain.list' }.merge!(options)
36
+ )
37
+ end
38
+
39
+ end
40
+
41
+ class Mock
42
+
43
+ def domain_list(domain_id = nil)
44
+ Fog::Mock.not_implemented
45
+ end
46
+
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,53 @@
1
+ module Fog
2
+ module Linode
3
+ class DNS
4
+ class Real
5
+
6
+ # Creates a resource record in a domain
7
+ #
8
+ # ==== Parameters
9
+ # * domain_id<~Integer>: limit the list to the domain ID specified
10
+ # * type<~String>: One of: NS, MX, A, AAAA, CNAME, TXT, or SRV
11
+ # * options<~Hash>
12
+ # * name<~String>: The hostname or FQDN. When Type=MX the subdomain to delegate to the
13
+ # Target MX server
14
+ # * targe<~String> When Type=MX the hostname. When Type=CNAME the target of the alias.
15
+ # When Type=TXT the value of the record. When Type=A or AAAA the token
16
+ # of '[remote_addr]' will be substituted with the IP address of the request.
17
+ # * priority<~Integer>: priority for MX and SRV records, 0-255 - default: 10
18
+ # * weight<~Integer>: default: 5
19
+ # * port<~Integer>: default: 80
20
+ # * protocol<~String>: The protocol to append to an SRV record. Ignored on other record
21
+ # types. default: udp
22
+ # * ttl_sec<~Integer>: note, Linode will round the input to set values (300, 3600, 7200, etc)
23
+ # ==== Returns
24
+ # * response<~Excon::Response>:
25
+ # * body<~Hash>:
26
+ # * DATA<~Hash>:
27
+ # * 'ResourceID'<~Integer>: ID of the resource record created
28
+ def domain_resource_create( domain_id, type, options = {})
29
+
30
+ query= {}
31
+ request(
32
+ :expects => 200,
33
+ :method => 'GET',
34
+ :query => {
35
+ :api_action => 'domain.resource.create',
36
+ :domainID => domain_id,
37
+ :type => type
38
+ }.merge!( options)
39
+ )
40
+ end
41
+
42
+ end
43
+
44
+ class Mock
45
+
46
+ def domain_resource_create( domain_id, type, options = {})
47
+ Fog::Mock.not_implemented
48
+ end
49
+
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,36 @@
1
+ module Fog
2
+ module Linode
3
+ class DNS
4
+ class Real
5
+
6
+ # Delete the given resource from a domain
7
+ #
8
+ # ==== Parameters
9
+ # * domain_id<~Integer>: id of domain resource belongs to
10
+ # * resource_id<~Integer>: id of resouce to delete
11
+ #
12
+ # ==== Returns
13
+ # * response<~Excon::Response>:
14
+ # * body<~Hash>:
15
+ # * DATA<~Hash>:
16
+ # * resource_id<~Integer>: resource id that was deleted
17
+ def domain_resource_delete(domain_id, resource_id)
18
+ request(
19
+ :expects => 200,
20
+ :method => 'GET',
21
+ :query => { :api_action => 'domain.resource.delete', :domainId => domain_id, :resourceID => resource_id }
22
+ )
23
+ end
24
+
25
+ end
26
+
27
+ class Mock
28
+
29
+ def domain_resource_delete(domain_id, resource_id)
30
+ Fog::Mock.not_implemented
31
+ end
32
+
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,48 @@
1
+ module Fog
2
+ module Linode
3
+ class DNS
4
+ class Real
5
+
6
+ # List of resource records for a domain
7
+ #
8
+ # ==== Parameters
9
+ # * domain_id<~Integer>: limit the list to the domain ID specified
10
+ # * resource_id<~Integer>: optional. use if want only a specific resource record
11
+ #
12
+ # ==== Returns
13
+ # * response<~Excon::Response>:
14
+ # * body<~Array>:
15
+ # * DATA<~Array>
16
+ # * 'PROTOCOL'<~String>: for SRV records. default is UDP
17
+ # * 'TTL_SEC'<~Interger>:
18
+ # * 'PRIORITY'<~Interger>: for MX and SRV records
19
+ # * 'TYPE'<~String>: One of: NS, MX, A, AAAA, CNAME, TXT, or SRV
20
+ # * 'TARGET'<~String>: When Type=MX the hostname. When Type=CNAME the target of the alias.
21
+ # When Type=TXT the value of the record. When Type=A or AAAA the token
22
+ # of '[remote_addr]' will be substituted with the IP address of the request.
23
+ # * 'WEIGHT'<~Interger>:
24
+ # * 'RESOURCEID'<~Interger>: ID of the resource record
25
+ # * 'PORT'<~Interger>:
26
+ # * 'DOMAINID'<~Interger>: ID of the domain that this record belongs to
27
+ # * 'NAME'<~Interger>: The hostname or FQDN. When Type=MX, the subdomain to delegate to
28
+ def domain_resource_list(domain_id, resource_id = nil)
29
+
30
+ request(
31
+ :expects => 200,
32
+ :method => 'GET',
33
+ :query => { :api_action => 'domain.resource.list', :domainID => domain_id, :resourceID => resource_id }
34
+ )
35
+ end
36
+
37
+ end
38
+
39
+ class Mock
40
+
41
+ def domain_resource_list(domain_id, resource_id = nil)
42
+ Fog::Mock.not_implemented
43
+ end
44
+
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,54 @@
1
+ module Fog
2
+ module Linode
3
+ class DNS
4
+ class Real
5
+
6
+ # Updates a resource record in a domain
7
+ #
8
+ # ==== Parameters
9
+ # * domain_id<~Integer>: limit the list to the domain ID specified
10
+ # * resource_id<~Integer>: id of resouce to delete
11
+ # * options<~Hash>
12
+ # * type<~String>: One of: NS, MX, A, AAAA, CNAME, TXT, or SRV
13
+ # * name<~String>: The hostname or FQDN. When Type=MX the subdomain to delegate to the
14
+ # Target MX server
15
+ # * target<~String> When Type=MX the hostname. When Type=CNAME the target of the alias.
16
+ # When Type=TXT the value of the record. When Type=A or AAAA the token
17
+ # of '[remote_addr]' will be substituted with the IP address of the request.
18
+ # * priority<~Integer>: priority for MX and SRV records, 0-255 - default: 10
19
+ # * weight<~Integer>: default: 5
20
+ # * port<~Integer>: default: 80
21
+ # * protocol<~String>: The protocol to append to an SRV record. Ignored on other record
22
+ # types. default: udp
23
+ # * ttl_sec<~Integer>: note, Linode will round the input to set values (300, 3600, 7200, etc)
24
+ # ==== Returns
25
+ # * response<~Excon::Response>:
26
+ # * body<~Hash>:
27
+ # * DATA<~Hash>:
28
+ # * 'ResourceID'<~Integer>: ID of the resource record updated
29
+ def domain_resource_update( domain_id, resource_id, options = {})
30
+
31
+ query= {}
32
+ request(
33
+ :expects => 200,
34
+ :method => 'GET',
35
+ :query => {
36
+ :api_action => 'domain.resource.update',
37
+ :domainID => domain_id,
38
+ :resourceID => resource_id,
39
+ }.merge!( options)
40
+ )
41
+ end
42
+
43
+ end
44
+
45
+ class Mock
46
+
47
+ def domain_resource_update( domain_id, resource_id, options = {})
48
+ Fog::Mock.not_implemented
49
+ end
50
+
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,48 @@
1
+ module Fog
2
+ module Linode
3
+ class DNS
4
+ class Real
5
+
6
+ # Update a domain record
7
+ #
8
+ # ==== Parameters
9
+ # * domain_id<~Integer>: The ID to identify the zone
10
+ # * options<~Hash>
11
+ # * domain<~String>: The zone's name.
12
+ # * type<~String>: master or slave
13
+ # * description<~String> Currently undisplayed
14
+ # * SOA_email<~String> Required when type=master
15
+ # * refresh_sec<~Integer> numeric, default: '0'
16
+ # * retry_sec<~Integer> numeric, default: '0'
17
+ # * expire_sec<~Integer> numeric, default: '0'
18
+ # * ttl_sec<~String> numeric, default: '0'
19
+ # * status<~Integer> 0, 1, or 2 (disabled, active, edit mode), default: 1
20
+ # * master_ips<~String> When type=slave, the zone's master DNS servers list, semicolon separated
21
+ #
22
+ # ==== Returns
23
+ # * response<~Excon::Response>:
24
+ # * body<~Hash>:
25
+ # * DATA<~Hash>:
26
+ # * 'DomainID'<~Integer>: domain ID
27
+ def domain_update( domain_id, options = {})
28
+
29
+ request(
30
+ :expects => 200,
31
+ :method => 'GET',
32
+ :query => { :api_action => 'domain.update', :domainId => domain_id }.merge!(options)
33
+ )
34
+
35
+ end
36
+
37
+ end
38
+
39
+ class Mock
40
+
41
+ def domain_update(datacenter_id, payment_term, plan_id)
42
+ Fog::Mock.not_implemented
43
+ end
44
+
45
+ end
46
+ end
47
+ end
48
+ end
@@ -1,3 +1,5 @@
1
+ require File.join(File.dirname(__FILE__), 'core')
2
+
1
3
  module Fog
2
4
  module Local
3
5
 
@@ -2,7 +2,7 @@ module Fog
2
2
  module Local
3
3
  class Storage < Fog::Service
4
4
 
5
- requires :local_root, &inject_parameter_specs
5
+ requires :local_root
6
6
 
7
7
  model_path 'fog/local/models/storage'
8
8
  collection :directories
@@ -33,8 +33,8 @@ module Fog
33
33
  @local_root
34
34
  end
35
35
 
36
- def path(partial)
37
- partial
36
+ def path_to(partial)
37
+ ::File.join(@local_root, partial)
38
38
  end
39
39
  end
40
40
 
@@ -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
@@ -4,8 +4,8 @@ module Fog
4
4
  module NewServers
5
5
  class Compute < Fog::Service
6
6
 
7
- requires :new_servers_password, :new_servers_username, &inject_parameter_specs
8
- recognizes :host, :port, :scheme, :persistent, &inject_parameter_specs
7
+ requires :new_servers_password, :new_servers_username
8
+ recognizes :host, :port, :scheme, :persistent
9
9
 
10
10
  model_path 'fog/new_servers/models/compute'
11
11
 
@@ -1,3 +1,5 @@
1
+ require File.join(File.dirname(__FILE__), 'core')
2
+
1
3
  module Fog
2
4
  module Rackspace
3
5
 
@@ -2,8 +2,8 @@ module Fog
2
2
  module Rackspace
3
3
  class CDN < Fog::Service
4
4
 
5
- requires :rackspace_api_key, :rackspace_username, &inject_parameter_specs
6
- recognizes :rackspace_auth_url, :persistent, &inject_parameter_specs
5
+ requires :rackspace_api_key, :rackspace_username
6
+ recognizes :rackspace_auth_url, :persistent
7
7
 
8
8
  model_path 'fog/rackspace/models/cdn'
9
9