Class: Fog::DNS::Rackspace::Real
- Inherits:
-
Object
- Object
- Fog::DNS::Rackspace::Real
- Defined in:
- lib/fog/rackspace/dns.rb,
lib/fog/rackspace/requests/dns/callback.rb,
lib/fog/rackspace/requests/dns/add_records.rb,
lib/fog/rackspace/requests/dns/list_domains.rb,
lib/fog/rackspace/requests/dns/list_records.rb,
lib/fog/rackspace/requests/dns/modify_domain.rb,
lib/fog/rackspace/requests/dns/modify_record.rb,
lib/fog/rackspace/requests/dns/remove_domain.rb,
lib/fog/rackspace/requests/dns/remove_record.rb,
lib/fog/rackspace/requests/dns/create_domains.rb,
lib/fog/rackspace/requests/dns/remove_domains.rb,
lib/fog/rackspace/requests/dns/remove_records.rb,
lib/fog/rackspace/requests/dns/list_subdomains.rb,
lib/fog/rackspace/requests/dns/list_domain_details.rb,
lib/fog/rackspace/requests/dns/list_record_details.rb
Instance Method Summary collapse
- #add_records(domain_id, records) ⇒ Object
- #callback(job_id, show_details = true) ⇒ Object
- #create_domains(domains) ⇒ Object
-
#initialize(options = {}) ⇒ Real
constructor
A new instance of Real.
- #list_domain_details(domain_id, options = {}) ⇒ Object
- #list_domains(options = {}) ⇒ Object
- #list_record_details(domain_id, record_id) ⇒ Object
- #list_records(domain_id, options = {}) ⇒ Object
- #list_subdomains(domain_id, options = {}) ⇒ Object
- #modify_domain(domain_id, options = {}) ⇒ Object
- #modify_record(domain_id, record_id, options = {}) ⇒ Object
- #remove_domain(domain_id, options = {}) ⇒ Object
- #remove_domains(domain_ids, options = {}) ⇒ Object
- #remove_record(domain_id, record_id) ⇒ Object
- #remove_records(domain_id, record_ids) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Real
Returns a new instance of Real.
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/fog/rackspace/dns.rb', line 67 def initialize(={}) require 'multi_json' @rackspace_api_key = [:rackspace_api_key] @rackspace_username = [:rackspace_username] @rackspace_auth_url = [:rackspace_auth_url] @connection_options = [:connection_options] || {} uri = URI.parse([:rackspace_dns_endpoint] || US_ENDPOINT) @auth_token, @account_id = *authenticate @persistent = [:persistent] || false @path = "#{uri.path}/#{@account_id}" @connection_options[:headers] ||= {} @connection_options[:headers].merge!({ 'Content-Type' => 'application/json', 'X-Auth-Token' => @auth_token }) @connection = Fog::Connection.new(uri.to_s, @persistent, @connection_options) end |
Instance Method Details
#add_records(domain_id, records) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/fog/rackspace/requests/dns/add_records.rb', line 5 def add_records(domain_id, records) validate_path_fragment :domain_id, domain_id data = { 'records' => records.collect do |record| record_data = { 'name' => record[:name], 'type' => record[:type], 'data' => record[:data] } if record.has_key? :priority record_data['priority'] = record[:priority] end record_data end } request( :expects => 202, :method => 'POST', :path => "domains/#{domain_id}/records", :body => MultiJson.encode(data) ) end |
#callback(job_id, show_details = true) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/fog/rackspace/requests/dns/callback.rb', line 5 def callback(job_id, show_details=true) validate_path_fragment :job_id, job_id request( :expects => [200, 202, 204], :method => 'GET', :path => "status/#{job_id}", :query => "showDetails=#{show_details}" ) end |
#create_domains(domains) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/fog/rackspace/requests/dns/create_domains.rb', line 5 def create_domains(domains) data = { 'domains' => [] } domains.each do |domain| domain_data = { 'name' => domain[:name], 'emailAddress' => domain[:email] } if domain.has_key? :records domain_data['recordsList'] = { 'records' => domain[:records].collect do |record| record_data = { 'ttl' => record[:ttl], 'data' => record[:data], 'name' => record[:name], 'type' => record[:type], } if record.has_key? :priority record_data.merge!({'priority' => record[:priority]}) else record_data end end } end data['domains'] << domain_data end request( :expects => 202, :method => 'POST', :path => 'domains', :body => MultiJson.encode(data) ) end |
#list_domain_details(domain_id, options = {}) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/fog/rackspace/requests/dns/list_domain_details.rb', line 5 def list_domain_details(domain_id, ={}) validate_path_fragment :domain_id, domain_id path = "domains/#{domain_id}" query_data = {} if .has_key? :show_records query_data['showRecords'] = [:show_records] end if .has_key? :show_subdomains query_data['showSubdomains'] = [:show_subdomains] end if !query_data.empty? path = path + '?' + array_to_query_string(query_data) end request( :expects => 200, :method => 'GET', :path => path ) end |
#list_domains(options = {}) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/fog/rackspace/requests/dns/list_domains.rb', line 5 def list_domains(={}) path = 'domains' if !.empty? path = path + '?' + array_to_query_string() end request( :expects => 200, :method => 'GET', :path => path ) end |
#list_record_details(domain_id, record_id) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/fog/rackspace/requests/dns/list_record_details.rb', line 5 def list_record_details(domain_id, record_id) validate_path_fragment :domain_id, domain_id validate_path_fragment :record_id, record_id path = "domains/#{domain_id}/records/#{record_id}" request( :expects => 200, :method => 'GET', :path => path ) end |
#list_records(domain_id, options = {}) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/fog/rackspace/requests/dns/list_records.rb', line 5 def list_records(domain_id, ={}) validate_path_fragment :domain_id, domain_id path = "domains/#{domain_id}/records" if !.empty? path = path + '?' + array_to_query_string() end request( :expects => 200, :method => 'GET', :path => path ) end |
#list_subdomains(domain_id, options = {}) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/fog/rackspace/requests/dns/list_subdomains.rb', line 5 def list_subdomains(domain_id, ={}) validate_path_fragment :domain_id, domain_id path = "domains/#{domain_id}/subdomains" if !.empty? path = path + '?' + array_to_query_string() end request( :expects => 200, :method => 'GET', :path => path ) end |
#modify_domain(domain_id, options = {}) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/fog/rackspace/requests/dns/modify_domain.rb', line 5 def modify_domain(domain_id, ={}) validate_path_fragment :domain_id, domain_id path = "domains/#{domain_id}" data = {} if .has_key? :ttl data['ttl'] = [:ttl] end if .has_key? :comment data['comment'] = [:comment] end if .has_key? :email data['emailAddress'] = [:email] end if data.empty? return end request( :expects => [202, 204], :method => 'PUT', :path => path, :body => MultiJson.encode(data) ) end |
#modify_record(domain_id, record_id, options = {}) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/fog/rackspace/requests/dns/modify_record.rb', line 5 def modify_record(domain_id, record_id, ={}) validate_path_fragment :domain_id, domain_id validate_path_fragment :record_id, record_id path = "domains/#{domain_id}/records/#{record_id}" data = {} if .has_key? :ttl data['ttl'] = [:ttl] end if .has_key? :name data['name'] = [:name] end if .has_key? :data data['data'] = [:data] end if data.empty? return end request( :expects => [202, 204], :method => 'PUT', :path => path, :body => MultiJson.encode(data) ) end |
#remove_domain(domain_id, options = {}) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/fog/rackspace/requests/dns/remove_domain.rb', line 5 def remove_domain(domain_id, ={}) validate_path_fragment :domain_id, domain_id path = "domains/#{domain_id}" query_data = {} if .has_key? :delete_subdomains query_data['deleteSubdomains'] = [:delete_subdomains].to_s end if !query_data.empty? path = path + '?' + array_to_query_string(query_data) end request( :expects => [202, 204], :method => 'DELETE', :path => path ) end |
#remove_domains(domain_ids, options = {}) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/fog/rackspace/requests/dns/remove_domains.rb', line 5 def remove_domains(domain_ids, ={}) path = "domains?" + domain_ids.collect { |domain_id| "id=#{domain_id}" }.join('&') query_data = {} if .has_key? :delete_subdomains query_data['deleteSubdomains'] = [:delete_subdomains] end if !query_data.empty? path = path + '&' + array_to_query_string(query_data) end request( :expects => [202, 204], :method => 'DELETE', :path => path ) end |
#remove_record(domain_id, record_id) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/fog/rackspace/requests/dns/remove_record.rb', line 5 def remove_record(domain_id, record_id) validate_path_fragment :domain_id, domain_id validate_path_fragment :record_id, record_id path = "domains/#{domain_id}/records/#{record_id}" request( :expects => [202, 204], :method => 'DELETE', :path => path ) end |
#remove_records(domain_id, record_ids) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/fog/rackspace/requests/dns/remove_records.rb', line 5 def remove_records(domain_id, record_ids) validate_path_fragment :domain_id, domain_id path = "domains/#{domain_id}/records?" + record_ids.collect { |record_id| "id=#{record_id}" }.join('&') request( :expects => [202, 204], :method => 'DELETE', :path => path ) end |