Class: Fog::DNS::Softlayer::Mock
- Inherits:
-
Object
- Object
- Fog::DNS::Softlayer::Mock
- Includes:
- Softlayer::Compute::Shared
- Defined in:
- lib/fog/softlayer/dns.rb,
lib/fog/softlayer/requests/dns/get_domain.rb,
lib/fog/softlayer/requests/dns/get_record.rb,
lib/fog/softlayer/requests/dns/get_domains.rb,
lib/fog/softlayer/requests/dns/get_records.rb,
lib/fog/softlayer/requests/dns/create_domain.rb,
lib/fog/softlayer/requests/dns/create_record.rb,
lib/fog/softlayer/requests/dns/delete_domain.rb,
lib/fog/softlayer/requests/dns/delete_record.rb,
lib/fog/softlayer/requests/dns/update_record.rb,
lib/fog/softlayer/requests/dns/get_domain_by_name.rb
Overview
The Mock Service allows you to run a fake instance of the Service which makes no real connections.
Instance Attribute Summary collapse
-
#default_domain ⇒ Object
Returns the value of attribute default_domain.
Instance Method Summary collapse
- #create_domain(opts) ⇒ Object
- #create_record(opts) ⇒ Object
- #delete_domain(id) ⇒ Object
- #delete_record(id) ⇒ Object
- #get_domain(id) ⇒ Object
- #get_domain_by_name(name) ⇒ Object
- #get_domains ⇒ Object
- #get_record(id) ⇒ Object
- #get_records(domain_id) ⇒ Object
-
#initialize(args) ⇒ Mock
constructor
A new instance of Mock.
- #update_record(record_id, opts) ⇒ Object
Methods included from Softlayer::Compute::Shared
Constructor Details
#initialize(args) ⇒ Mock
Returns a new instance of Mock.
49 50 51 52 |
# File 'lib/fog/softlayer/dns.rb', line 49 def initialize(args) @softlayer_domains = [] super(args) end |
Instance Attribute Details
#default_domain ⇒ Object
Returns the value of attribute default_domain.
46 47 48 |
# File 'lib/fog/softlayer/dns.rb', line 46 def default_domain @default_domain end |
Instance Method Details
#create_domain(opts) ⇒ Object
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# 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) ⇒ Object
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 |
# 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) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 |
# 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) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# 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) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 |
# 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) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# 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 ⇒ Object
12 13 14 15 16 17 |
# 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) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# 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) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 |
# 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) ⇒ Object
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 |
# 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 |