class Fog::DNS::Softlayer::Mock
The Mock
Service allows you to run a fake instance of the Service which makes no real connections.
Attributes
default_domain[RW]
Public Class Methods
new(args)
click to toggle source
Calls superclass method
Fog::Softlayer::Compute::Shared::new
# File lib/fog/softlayer/dns.rb, line 49 def initialize(args) @softlayer_domains = [] super(args) end
Public Instance Methods
create_domain(opts)
click to toggle source
# File lib/fog/softlayer/requests/dns/create_domain.rb, line 12 def create_domain(opts) response = Excon::Response.new updated_at = Time.now domain_id = Fog::Mock.random_numbers(7) body = { :id => domain_id, :name => opts["name"], :serial => updated_at.strftime("%Y%m%d")+"00", :updated_at => updated_at, :resourceRecords => [ { "data"=>"ns1."+opts["name"]+".", "domainId"=>domain_id, "expire"=>604800, "host"=>"@", "id"=>Fog::Mock.random_numbers(8), "minimum"=>3600, "mxPriority"=>nil, "refresh"=>3600, "responsiblePerson"=>"admin."+opts["name"]+".", "retry"=>300, "ttl"=>86400, "type"=>"SOA", }, { "data"=>"ns1.softlayer.com.", "domainId"=>domain_id, "expire"=>nil, "host"=>"@", "id"=>Fog::Mock.random_numbers(8), "minimum"=>nil, "mxPriority"=>nil, "refresh"=>nil, "retry"=>nil, "ttl"=>86400, "type"=>"NS", }, { "data"=>"ns2.softlayer.com.", "domainId"=>domain_id, "expire"=>nil, "host"=>"@", "id"=>Fog::Mock.random_numbers(8), "minimum"=>nil, "mxPriority"=>nil, "refresh"=>nil, "retry"=>nil, "ttl"=>86400, "type"=>"NS", } ] } response.body = body @softlayer_domains << body response.status = 200 response end
create_record(opts)
click to toggle source
# File lib/fog/softlayer/requests/dns/create_record.rb, line 12 def create_record(opts) new_record = { "id" => Fog::Mock.random_numbers(8), "data" => opts[:data], "domainId" => opts[:domainId], "host" => opts[:host], "type" => opts[:type], "minimum" => nil, "expire" => nil, "mxPriority" => nil, "refresh" => nil, "responsiblePerson" => nil, "retry" => nil, "ttl" => nil, } @softlayer_domains.each do |domain| if domain[:id].to_i == opts[:domainId] domain[:serial] = domain[:serial].to_i + 1 domain[:resourceRecords] << new_record response = Excon::Response.new response.body = new_record response.status = 200 return response end end raise Excon::Errors::NotFound end
delete_domain(id)
click to toggle source
# File lib/fog/softlayer/requests/dns/delete_domain.rb, line 12 def delete_domain(id) @softlayer_domains.each do |domain| if domain[:id].to_i == id @softlayer_domains.delete(domain) response = Excon::Response.new response.body = true response.status = 200 return response end end raise Excon::Errors::NotFound end
delete_record(id)
click to toggle source
# File lib/fog/softlayer/requests/dns/delete_record.rb, line 12 def delete_record(id) # Get the domain @domain = @softlayer_domains.each do |domain| domain[:resourceRecords].each do |record| if record["id"] == id domain[:serial] = domain[:serial] + 1 domain[:resourceRecords].delete(record) end end end response = Excon::Response.new response.body = true response.status = 200 response end
get_domain(id)
click to toggle source
# File lib/fog/softlayer/requests/dns/get_domain.rb, line 12 def get_domain(id) @softlayer_domains.each do |domain| if domain[:id].to_i == id response = Excon::Response.new response.body = domain response.status = 200 return response end end raise Excon::Errors::NotFound end
get_domain_by_name(name)
click to toggle source
# File lib/fog/softlayer/requests/dns/get_domain_by_name.rb, line 12 def get_domain_by_name(name) @softlayer_domains.each do |domain| if domain[:name] == name response = Excon::Response.new response.body = [ domain ] response.status = 200 return response end end response = Excon::Response.new response.body = [ ] response.status = 200 return response end
get_domains()
click to toggle source
# File lib/fog/softlayer/requests/dns/get_domains.rb, line 12 def get_domains response = Excon::Response.new response.body = @softlayer_domains response.status = 200 return response end
get_record(id)
click to toggle source
# File lib/fog/softlayer/requests/dns/get_record.rb, line 12 def get_record(id) # Get the record @softlayer_domains.each do |domain| domain[:resourceRecords].each do |record| if record["id"].to_i == id.to_i response = Excon::Response.new response.body = record response.status = 200 return response end end end raise Excon::Errors::NotFound end
get_records(domain_id)
click to toggle source
# File lib/fog/softlayer/requests/dns/get_records.rb, line 12 def get_records(domain_id) @softlayer_domains.each do |domain| if domain[:id].to_i == domain_id response = Excon::Response.new response.body = domain[:resourceRecords] response.status = 200 return response end end raise Excon::Errors::NotFound end
update_record(record_id, opts)
click to toggle source
# File lib/fog/softlayer/requests/dns/update_record.rb, line 12 def update_record(record_id, opts) # Get the domain @domain = @softlayer_domains.each do |domain| if domain[:id].to_i == opts[:domainId] domain end end # Get the record @domain.first[:resourceRecords].each do |record| if record["id"].to_i == record_id.to_i @domain.first[:serial] = (@domain.first[:serial] + 1) @record = record end end # Update the data # ps: Separated the update to make easier future refator @record["data"] = opts[:data] @record["host"] = opts[:host] @record["type"] = opts[:type] response = Excon::Response.new response.body = @domain response.status = 200 return response end