mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
add support for linode domain.list method
linode has a full API to support managed DNS. Have the 1st call, domain.list working method also support option parameter to narrow results to a single domain
This commit is contained in:
parent
0b5e0d9e19
commit
909d062d89
3 changed files with 110 additions and 0 deletions
|
@ -13,10 +13,22 @@ module Fog
|
||||||
request :avail_kernels
|
request :avail_kernels
|
||||||
request :avail_linodeplans
|
request :avail_linodeplans
|
||||||
request :avail_stackscripts
|
request :avail_stackscripts
|
||||||
|
request :domain_create
|
||||||
|
# request :domain_delete
|
||||||
|
request :domain_list
|
||||||
|
# request :domain_update
|
||||||
|
# request :domain_resource_create
|
||||||
|
# request :domain_resource_delete
|
||||||
|
# request :domain_resource_list
|
||||||
|
# request :domain_resource_update
|
||||||
|
# request :linode_boot
|
||||||
request :linode_create
|
request :linode_create
|
||||||
request :linode_delete
|
request :linode_delete
|
||||||
request :linode_list
|
request :linode_list
|
||||||
request :linode_reboot
|
request :linode_reboot
|
||||||
|
# request :linode_resize
|
||||||
|
# request :linode_shutdown
|
||||||
|
# request :linode_update
|
||||||
|
|
||||||
class Mock
|
class Mock
|
||||||
|
|
||||||
|
|
48
lib/fog/linode/requests/compute/domain_create.rb
Normal file
48
lib/fog/linode/requests/compute/domain_create.rb
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
module Fog
|
||||||
|
module Linode
|
||||||
|
class Compute
|
||||||
|
class Real
|
||||||
|
|
||||||
|
# Creates a domain record
|
||||||
|
#
|
||||||
|
# ==== Parameters
|
||||||
|
# * domain<~String>: The zone's name
|
||||||
|
# * type<~String>: master or slave
|
||||||
|
# * options<~Hash>
|
||||||
|
# * description<~String> Currently undisplayed
|
||||||
|
# * SOA_email<~String> Required when type=master
|
||||||
|
# * refresh_sec<~Integer> numeric, default: '0'
|
||||||
|
# * retry_sec<~Integer> numeric, default: '0'
|
||||||
|
# * expire_sec<~Integer> numeric, default: '0'
|
||||||
|
# * ttl_sec<~String> numeric, default: '0'
|
||||||
|
# * status<~Integer> 0, 1, or 2 (disabled, active, edit mode), default: 1
|
||||||
|
# * master_ips<~String> When type=slave, the zone's master DNS servers list, semicolon separated
|
||||||
|
#
|
||||||
|
# ==== Returns
|
||||||
|
# * response<~Excon::Response>:
|
||||||
|
# * body<~Array>:
|
||||||
|
# TODO: docs
|
||||||
|
def domain_create( domain, type, options)
|
||||||
|
request(
|
||||||
|
:expects => 200,
|
||||||
|
:method => 'GET',
|
||||||
|
:query => {
|
||||||
|
:api_action => 'domain.create',
|
||||||
|
:domain => domain,
|
||||||
|
:type => type
|
||||||
|
}
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
class Mock
|
||||||
|
|
||||||
|
def linode_create(datacenter_id, payment_term, plan_id)
|
||||||
|
Fog::Mock.not_implemented
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
50
lib/fog/linode/requests/compute/domain_list.rb
Normal file
50
lib/fog/linode/requests/compute/domain_list.rb
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
module Fog
|
||||||
|
module Linode
|
||||||
|
class Compute
|
||||||
|
class Real
|
||||||
|
|
||||||
|
# List of domains (you have access to)
|
||||||
|
#
|
||||||
|
# ==== Parameters
|
||||||
|
# * domain_id<~Integer>: limit the list to the domain ID specified
|
||||||
|
#
|
||||||
|
# ==== Returns
|
||||||
|
# * response<~Excon::Response>:
|
||||||
|
# * body<~Array>:
|
||||||
|
# * DATA<~Array>
|
||||||
|
# * 'DOMAINID'<~Interger>
|
||||||
|
# * 'SOA_EMAIL'<~String>
|
||||||
|
# * 'DESCRIPTION'<~String>
|
||||||
|
# * 'TTL_SEC'<~String>
|
||||||
|
# * 'EXPIRE_SEC'<~Integer>
|
||||||
|
# * 'RETRY_SEC'<~Integer>
|
||||||
|
# * 'DOMAIN'<~String>
|
||||||
|
# * 'STATUS'<~Integer>
|
||||||
|
# * 'MASTER_IPS'<~String>
|
||||||
|
# * 'REFRESH_SEC'<~Integer>
|
||||||
|
# * 'TYPE'<~String>
|
||||||
|
def domain_list(domain_id = nil)
|
||||||
|
options = {}
|
||||||
|
if domain_id
|
||||||
|
options.merge!(:domainId => domain_id)
|
||||||
|
end
|
||||||
|
|
||||||
|
request(
|
||||||
|
:expects => 200,
|
||||||
|
:method => 'GET',
|
||||||
|
:query => { :api_action => 'domain.list' }.merge!(options)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
class Mock
|
||||||
|
|
||||||
|
def avail_kernels(options={})
|
||||||
|
Fog::Mock.not_implemented
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Add table
Reference in a new issue