Class: Fog::DNS::DNSimple::Real
- Inherits:
-
Object
- Object
- Fog::DNS::DNSimple::Real
- Defined in:
- lib/fog/dns/dnsimple.rb,
lib/fog/dns/requests/dnsimple/get_domain.rb,
lib/fog/dns/requests/dnsimple/get_record.rb,
lib/fog/dns/requests/dnsimple/list_domains.rb,
lib/fog/dns/requests/dnsimple/list_records.rb,
lib/fog/dns/requests/dnsimple/create_domain.rb,
lib/fog/dns/requests/dnsimple/create_record.rb,
lib/fog/dns/requests/dnsimple/delete_domain.rb,
lib/fog/dns/requests/dnsimple/delete_record.rb,
lib/fog/dns/requests/dnsimple/update_record.rb
Instance Method Summary collapse
-
#create_domain(name) ⇒ Object
Create a single domain in DNSimple in your account.
-
#create_record(domain, name, type, content, options = {}) ⇒ Object
Create a new host in the specified zone.
-
#delete_domain(name) ⇒ Object
Delete the given domain from your account.
-
#delete_record(domain, record_id) ⇒ Object
Delete the record with the given ID for the given domain.
-
#get_domain(id) ⇒ Object
Get the details for a specific domain in your account.
-
#get_record(domain, record_id) ⇒ Object
Gets record from given domain.
-
#initialize(options = {}) ⇒ Real
constructor
A new instance of Real.
-
#list_domains ⇒ Object
Get the details for a specific domain in your account.
-
#list_records(domain) ⇒ Object
Get the list of records for the specific domain.
- #reload ⇒ Object
- #request(params) ⇒ Object
-
#update_record(domain, record_id, options) ⇒ Object
Update the given record for the given domain.
Constructor Details
#initialize(options = {}) ⇒ Real
Returns a new instance of Real.
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/fog/dns/dnsimple.rb', line 54 def initialize(={}) require 'multi_json' @dnsimple_email = [:dnsimple_email] @dnsimple_password = [:dnsimple_password] if [:dnsimple_url] uri = URI.parse([:dnsimple_url]) [:host] = uri.host [:port] = uri.port [:scheme] = uri.scheme end @host = [:host] || "dnsimple.com" @port = [:port] || 443 @scheme = [:scheme] || 'https' @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", [:persistent]) end |
Instance Method Details
#create_domain(name) ⇒ Object
Create a single domain in DNSimple in your account.
Parameters
-
name<~String> - domain name to host (ie example.com)
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
‘name’<~String>
-
-
14 15 16 17 18 19 20 21 22 |
# File 'lib/fog/dns/requests/dnsimple/create_domain.rb', line 14 def create_domain(name) body = { "domain" => { "name" => name } } request( :body => MultiJson.encode(body), :expects => 201, :method => 'POST', :path => '/domains' ) end |
#create_record(domain, name, type, content, options = {}) ⇒ Object
Create a new host in the specified zone
Parameters
-
domain<~String>
-
name<~String>
-
type<~String>
-
content<~String>
-
options<~Hash> - optional
-
priority<~Integer>
-
ttl<~Integer>
-
Returns
-
response<~Excon::Response>:
-
body<~Hash>
-
name<~String>
-
ttl<~Integer>
-
created_at<~String>
-
special_type<~String>
-
updated_at<~String>
-
domain_id<~Integer>
-
id<~Integer>
-
content<~String>
-
record_type<~String>
-
prio<~Integer>
-
-
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/fog/dns/requests/dnsimple/create_record.rb', line 29 def create_record(domain, name, type, content, = {}) body = { "record" => { "name" => name, "record_type" => type, "content" => content } } body["record"].merge!() request( :body => MultiJson.encode(body), :expects => 201, :method => 'POST', :path => "/domains/#{domain}/records" ) end |
#delete_domain(name) ⇒ Object
Delete the given domain from your account. You may use either the domain ID or the domain name.
Please note that for domains which are registered with DNSimple this will not delete the domain from the registry.
Parameters
-
name<~String> - domain name or numeric ID
15 16 17 18 19 20 21 |
# File 'lib/fog/dns/requests/dnsimple/delete_domain.rb', line 15 def delete_domain(name) request( :expects => 200, :method => 'DELETE', :path => "/domains/#{name}" ) end |
#delete_record(domain, record_id) ⇒ Object
Delete the record with the given ID for the given domain.
Parameters
-
domain<~String>
-
record_id<~String>
11 12 13 14 15 16 |
# File 'lib/fog/dns/requests/dnsimple/delete_record.rb', line 11 def delete_record(domain, record_id) request( :expects => 200, :method => "DELETE", :path => "/domains/#{domain}/records/#{record_id}" ) end |
#get_domain(id) ⇒ Object
Get the details for a specific domain in your account. You may pass either the domain numeric ID or the domain name itself.
Parameters
-
id<~String> - domain name or numeric ID
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
‘domain’<~Hash>
-
‘name’<~String>
-
‘expires_at’<~String>
-
‘created_at’<~String>
-
‘registration_status’<~String>
-
‘updated_at’<~String>
-
‘registrant_id’<~Integer>
-
‘id’<~Integer>
-
‘user_id’<~Integer>
-
‘name_server_status’<~String>
-
-
-
26 27 28 29 30 31 32 |
# File 'lib/fog/dns/requests/dnsimple/get_domain.rb', line 26 def get_domain(id) request( :expects => 200, :method => "GET", :path => "/domains/#{id}" ) end |
#get_record(domain, record_id) ⇒ Object
Gets record from given domain.
Parameters
-
domain<~String>
-
record_id<~String>
Returns
-
response<~Excon::Response>:
-
record<~Hash>
-
name<~String>
-
ttl<~Integer>
-
created_at<~String>
-
special_type<~String>
-
updated_at<~String>
-
domain_id<~Integer>
-
id<~Integer>
-
content<~String>
-
record_type<~String>
-
prio<~Integer>
-
-
24 25 26 27 28 29 |
# File 'lib/fog/dns/requests/dnsimple/get_record.rb', line 24 def get_record(domain, record_id) request( :expects => 200, :method => "GET", :path => "/domains/#{domain}/records/#{record_id}" ) end |
#list_domains ⇒ Object
Get the details for a specific domain in your account. You may pass either the domain numeric ID or the domain name itself.
Parameters
-
id<~String> - domain name or numeric ID
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
‘domains’<~Array>
-
‘name’<~String>
-
‘expires_at’<~String>
-
‘created_at’<~String>
-
‘registration_status’<~String>
-
‘updated_at’<~String>
-
‘registrant_id’<~Integer>
-
‘id’<~Integer>
-
‘user_id’<~Integer>
-
‘name_server_status’<~String>
-
-
-
24 25 26 27 28 29 30 |
# File 'lib/fog/dns/requests/dnsimple/list_domains.rb', line 24 def list_domains request( :expects => 200, :method => 'GET', :path => '/domains' ) end |
#list_records(domain) ⇒ Object
Get the list of records for the specific domain.
Parameters
-
domain<~String>
Returns
-
response<~Excon::Response>:
-
records<Array~>
-
name<~String>
-
ttl<~Integer>
-
created_at<~String>
-
special_type<~String>
-
updated_at<~String>
-
domain_id<~Integer>
-
id<~Integer>
-
content<~String>
-
record_type<~String>
-
prio<~Integer>
-
-
23 24 25 26 27 |
# File 'lib/fog/dns/requests/dnsimple/list_records.rb', line 23 def list_records(domain) request( :expects => 200, :method => "GET", :path => "/domains/#{domain}/records" ) end |
#reload ⇒ Object
71 72 73 |
# File 'lib/fog/dns/dnsimple.rb', line 71 def reload @connection.reset end |
#request(params) ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/fog/dns/dnsimple.rb', line 75 def request(params) params[:headers] ||= {} key = "#{@dnsimple_email}:#{@dnsimple_password}" params[:headers].merge!({ "Authorization" => "Basic " + Base64.encode64(key).chomp, "Accept" => "application/json", "Content-Type" => "application/json" }) response = @connection.request(params.merge!({:host => @host})) unless response.body.empty? response.body = MultiJson.decode(response.body) end response end |
#update_record(domain, record_id, options) ⇒ Object
Update the given record for the given domain.
Parameters
-
domain<~String>
-
record_id<~String>
-
options<~Hash> - optional
-
type<~String>
-
content<~String>
-
priority<~Integer>
-
ttl<~Integer>
-
Returns
-
response<~Excon::Response>:
-
record<~Hash>
-
name<~String>
-
ttl<~Integer>
-
created_at<~String>
-
special_type<~String>
-
updated_at<~String>
-
domain_id<~Integer>
-
id<~Integer>
-
content<~String>
-
record_type<~String>
-
prio<~Integer>
-
-
29 30 31 32 33 34 35 36 37 |
# File 'lib/fog/dns/requests/dnsimple/update_record.rb', line 29 def update_record(domain, record_id, ) body = { "record" => } request( :body => MultiJson.encode(body), :expects => 200, :method => "PUT", :path => "/domains/#{domain}/records/#{record_id}" ) end |