diff --git a/app/interactions/actions/domain_create.rb b/app/interactions/actions/domain_create.rb index c95f194dc..531632f48 100644 --- a/app/interactions/actions/domain_create.rb +++ b/app/interactions/actions/domain_create.rb @@ -34,11 +34,18 @@ module Actions end def parse_nameserver_hash(nameserver) - result = Domains::NameserverValidator.run(hostname: nameserver[:hostname]) + name = params[:name].strip.downcase + result = Domains::NameserverValidator.run(domain_name: name, nameserver_address: nameserver[:hostname]) return true if result[:result] - domain.add_epp_error('2303', nil, result[:reason], 'Problem with nameserver: ') + if result[:reason] == 'exception' + reason = result[:error_info] + else + reason = result[:reason] + end + + domain.add_epp_error('2303', nil, reason, 'Problem with nameserver: ') end def check_contact_duplications diff --git a/app/interactions/actions/domain_update.rb b/app/interactions/actions/domain_update.rb index 080f98e75..2fdbd72c0 100644 --- a/app/interactions/actions/domain_update.rb +++ b/app/interactions/actions/domain_update.rb @@ -42,11 +42,18 @@ module Actions def parse_nameserver_hash(nameserver) return false unless nameserver[:action] == "add" - result = Domains::NameserverValidator.run(hostname: nameserver[:hostname]) + name = params[:domain].strip.downcase + result = Domains::NameserverValidator.run(domain_name: name, nameserver_address: nameserver[:hostname]) return true if result[:result] - domain.add_epp_error('2303', nil, result[:reason], 'Problem with nameserver: ') + if result[:reason] == 'exception' + reason = result[:error_info] + else + reason = result[:reason] + end + + domain.add_epp_error('2303', nil, reason, 'Problem with nameserver: ') end def check_for_same_contacts(contacts, contact_type) diff --git a/app/interactions/domains/nameserver_validator.rb b/app/interactions/domains/nameserver_validator.rb index 30bc575d2..f2efb90dd 100644 --- a/app/interactions/domains/nameserver_validator.rb +++ b/app/interactions/domains/nameserver_validator.rb @@ -4,8 +4,8 @@ module Domains extend self - def run(hostname:, nameserver_address:) - validate(hostname: hostname, nameserver_address: nameserver_address) + def run(domain_name:, nameserver_address:) + validate(hostname: domain_name, nameserver_address: nameserver_address) end private diff --git a/app/jobs/nameserver_record_validation_job.rb b/app/jobs/nameserver_record_validation_job.rb index b650557ad..6cb1647ac 100644 --- a/app/jobs/nameserver_record_validation_job.rb +++ b/app/jobs/nameserver_record_validation_job.rb @@ -8,7 +8,7 @@ class NameserverRecordValidationJob < ApplicationJob def perform(domain_name: nil, nameserver_address: nil) if nameserver_address.nil? Nameserver.all.map do |nameserver| - result = Domains::NameserverValidator.run(hostname: nameserver.domain.name, nameserver_address: nameserver.hostname) + result = Domains::NameserverValidator.run(domain_name: nameserver.domain.name, nameserver_address: nameserver.hostname) if result[:result] true @@ -18,7 +18,7 @@ class NameserverRecordValidationJob < ApplicationJob end end else - result = Domains::NameserverValidator.run(hostname: domain_name, nameserver_address: nameserver_address) + result = Domains::NameserverValidator.run(domain_name: domain_name, nameserver_address: nameserver_address) return parse_result(result, nameserver_address) unless result[:result] true