diff --git a/app/jobs/nameserver_record_validation_job.rb b/app/jobs/nameserver_record_validation_job.rb index d4c9b194d..9271d94d7 100644 --- a/app/jobs/nameserver_record_validation_job.rb +++ b/app/jobs/nameserver_record_validation_job.rb @@ -12,7 +12,7 @@ class NameserverRecordValidationJob < ApplicationJob domains.each do |domain| domain.nameservers.each do |nameserver| - next if nameserver.nameserver_failed_validation? || nameserver.validated? + next if nameserver.failed_validation? || nameserver.validated? result = NameserverValidator.run(domain_name: domain.name, nameserver: nameserver) @@ -38,7 +38,7 @@ class NameserverRecordValidationJob < ApplicationJob return logger.info 'Domain not has nameservers' if domain.nameservers.empty? domain.nameservers.each do |nameserver| - next if nameserver.nameserver_failed_validation? + next if nameserver.failed_validation? result = NameserverValidator.run(domain_name: domain.name, nameserver: nameserver) @@ -73,6 +73,8 @@ class NameserverRecordValidationJob < ApplicationJob nameserver.failed_validation_reason = reason nameserver.save + + failed_log(text: reason, nameserver: nameserver, domain: nameserver.domain) if nameserver.failed_validation? end def parse_result(result, nameserver) @@ -95,25 +97,24 @@ class NameserverRecordValidationJob < ApplicationJob end logger.info text - failed_log(text: text, nameserver: nameserver, domain: domain) add_nameserver_to_failed(nameserver: nameserver, reason: text) - false end def failed_log(text:, nameserver:, domain:) - inform_to_tech_contact(domain: domain, text: text) + inform_to_tech_contact(domain: domain, nameserver: nameserver, text: text) inform_to_registrar(text: text, nameserver: nameserver) false end - def inform_to_tech_contact(domain:, text: nil) - ContactNotification.notify_tech_contact(domain: domain, reason: 'nameserver') + def inform_to_tech_contact(domain:, nameserver:, text: nil) + ContactNotification.notify_tech_contact(domain: domain, nameserver: nameserver, reason: 'nameserver') end def inform_to_registrar(nameserver:, text: nil) - text = "Host record #{nameserver.hostname} of a domain #{nameserver.domain} is invalid. Please fix or contact the registrant." + text = "Host record #{nameserver.hostname} of a domain #{nameserver.domain} is invalid. + Please fix or contact the registrant. Problem with nameserver #{nameserver} - #{nameserver.failed_validation_reason}" logger.info text ContactNotification.notify_registrar(domain: nameserver.domain, text: text) end diff --git a/app/jobs/validate_dnssec_job.rb b/app/jobs/validate_dnssec_job.rb index 3277914f1..b5357bead 100644 --- a/app/jobs/validate_dnssec_job.rb +++ b/app/jobs/validate_dnssec_job.rb @@ -133,13 +133,6 @@ class ValidateDnssecJob < ApplicationJob resolver end - def log_templates - { - "true" => "validated successfully", - "false" => "validated fail" - } - end - def logger @logger ||= Rails.logger end diff --git a/app/mailers/contact_inform_mailer.rb b/app/mailers/contact_inform_mailer.rb index 7423da791..bf5037cbf 100644 --- a/app/mailers/contact_inform_mailer.rb +++ b/app/mailers/contact_inform_mailer.rb @@ -10,9 +10,10 @@ class ContactInformMailer < ApplicationMailer mail(to: contact.email, subject: subject) end - def notify_nameserver(contact:, domain:) + def notify_nameserver(contact:, domain:, nameserver:) @contact = contact @domain = domain + @nameserver = nameserver subject = "Domeeni #{@domain.name} nimeserveri kirjed ei ole korrektsed / The host records of the domain #{@domain.name} are invalid" mail(to: contact.email, subject: subject) diff --git a/app/models/nameserver.rb b/app/models/nameserver.rb index 20d4656c6..ababd84cf 100644 --- a/app/models/nameserver.rb +++ b/app/models/nameserver.rb @@ -55,7 +55,7 @@ class Nameserver < ApplicationRecord } end - def nameserver_failed_validation? + def failed_validation? return false if validation_counter.nil? validation_counter >= NameserverValidator::VALID_NAMESERVER_COUNT_THRESHOLD diff --git a/app/services/contact_notification.rb b/app/services/contact_notification.rb index 16765d65d..e9b00c575 100644 --- a/app/services/contact_notification.rb +++ b/app/services/contact_notification.rb @@ -5,7 +5,7 @@ module ContactNotification domain.registrar.notifications.create(text: text) end - def notify_tech_contact(domain:, reason: nil) + def notify_tech_contact(domain:, nameserver: nil, reason: nil) case reason when 'dnssec' domain.tech_contacts.each do |tech| @@ -17,7 +17,7 @@ module ContactNotification domain.tech_contacts.each do |tech| contact = Contact.find(tech.id) - ContactInformMailer.notify_nameserver(contact: contact, domain: domain).deliver_now + ContactInformMailer.notify_nameserver(contact: contact, domain: domain, nameserver: nameserver).deliver_now end end end diff --git a/app/views/mailers/contact_inform_mailer/notify_nameserver.html.erb b/app/views/mailers/contact_inform_mailer/notify_nameserver.html.erb index ce6b968a0..c9df4f6f0 100644 --- a/app/views/mailers/contact_inform_mailer/notify_nameserver.html.erb +++ b/app/views/mailers/contact_inform_mailer/notify_nameserver.html.erb @@ -6,6 +6,8 @@ Eesti Interneti Sihtasutusele (EIS) juhib tähelepanu, et domeeni <%= @domain.na Andmete parandamiseks vaadake palun üle domeeni nimeserverite seaditused või pöörduge palun oma registripidaja <%= @domain.registrar.name%> või nimeserveri teenuse pakkuja poole.
+Viga nimesereriga <%= @nameserver %> - <%= @nameserver.failed_validation_reason %> +Lisaküsimuste korral võtke palun ühendust oma registripidajaga:
@@ -30,6 +32,8 @@ LugupidamisegaShould you have additional questions, please contact your registrar:
diff --git a/test/jobs/nameserver_record_validation_job_test.rb b/test/jobs/nameserver_record_validation_job_test.rb index a8d625ca1..1f39c6d33 100644 --- a/test/jobs/nameserver_record_validation_job_test.rb +++ b/test/jobs/nameserver_record_validation_job_test.rb @@ -93,6 +93,6 @@ class NameserverRecordValidationJobTest < ActiveSupport::TestCase assert @nameserver.validation_counter, 1 assert @nameserver.failed_validation_reason.include? "Serial number for nameserver hostname **#{@nameserver.hostname}** doesn't present. SOA validation failed." - assert @nameserver.nameserver_failed_validation? + assert @nameserver.failed_validation? end end diff --git a/test/services/contact_notification_test.rb b/test/services/contact_notification_test.rb index 0e75fb548..ec3d975e6 100644 --- a/test/services/contact_notification_test.rb +++ b/test/services/contact_notification_test.rb @@ -4,6 +4,7 @@ class ContactNotificationTest < ActionMailer::TestCase setup do @domain = domains(:shop) + @nameserver = nameservers(:shop_ns1) @text = 'text' end @@ -14,7 +15,7 @@ class ContactNotificationTest < ActionMailer::TestCase end def test_notify_tech_contacts_that_nameserver_is_broken - ContactNotification.notify_tech_contact(domain: @domain, reason: 'nameserver') + ContactNotification.notify_tech_contact(domain: @domain, reason: 'nameserver', nameserver: @nameserver) assert_equal @domain.tech_contacts.count, 2 assert_emails 2 end