From f6b352a087068ef2dcc4f9233a34c26c739668a4 Mon Sep 17 00:00:00 2001
From: olegphenomenon
Date: Wed, 12 Jan 2022 13:40:01 +0200
Subject: [PATCH] updated nameserver letter
---
app/jobs/nameserver_record_validation_job.rb | 17 +++++++++--------
app/jobs/validate_dnssec_job.rb | 7 -------
app/mailers/contact_inform_mailer.rb | 3 ++-
app/models/nameserver.rb | 2 +-
app/services/contact_notification.rb | 4 ++--
.../notify_nameserver.html.erb | 4 ++++
.../nameserver_record_validation_job_test.rb | 2 +-
test/services/contact_notification_test.rb | 3 ++-
8 files changed, 21 insertions(+), 21 deletions(-)
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 @@ Lugupidamisega
Please check the name server settings of the domain or contact your registrar <%= @domain.registrar.name%> or your name server service provider to correct this information.
+Problem with nameserver <%= @nameserver %> - <%= @nameserver.failed_validation_reason %>"
+
Should 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