From 2ed7f467aa801c861cc24c5e590f09c874842f1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Fri, 14 Aug 2020 12:29:43 +0300 Subject: [PATCH] Create job for regenerating Subzone WHOIS entries --- app/jobs/regenerate_subzone_whoises_job.rb | 11 +++++++++++ .../jobs/regeneate_subzone_whoises_job_test.rb | 18 ++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 app/jobs/regenerate_subzone_whoises_job.rb create mode 100644 test/jobs/regeneate_subzone_whoises_job_test.rb diff --git a/app/jobs/regenerate_subzone_whoises_job.rb b/app/jobs/regenerate_subzone_whoises_job.rb new file mode 100644 index 000000000..280fa4088 --- /dev/null +++ b/app/jobs/regenerate_subzone_whoises_job.rb @@ -0,0 +1,11 @@ +class RegenerateSubzoneWhoisesJob < Que::Job + def run + subzones = DNS::Zone.all + + subzones.each do |zone| + next unless zone.subzone? + + UpdateWhoisRecordJob.enqueue zone.origin, 'zone' + end + end +end diff --git a/test/jobs/regeneate_subzone_whoises_job_test.rb b/test/jobs/regeneate_subzone_whoises_job_test.rb new file mode 100644 index 000000000..745c2392c --- /dev/null +++ b/test/jobs/regeneate_subzone_whoises_job_test.rb @@ -0,0 +1,18 @@ +require 'test_helper' + +class RegenerateSubzoneWhoisesJobTest < ActiveSupport::TestCase + def test_regenerates_whois_data_only_for_subzones + subzone = dns_zones(:one).dup + subzone.origin = 'subzone.test' + subzone.save + + Whois::Record.where(name: subzone.origin).destroy_all + Whois::Record.where(name: dns_zones(:one)).destroy_all + assert_nil Whois::Record.find_by(name: subzone.origin) + assert_nil Whois::Record.find_by(name: dns_zones(:one).origin) + + RegenerateSubzoneWhoisesJob.run + assert Whois::Record.find_by(name: subzone.origin) + assert_nil Whois::Record.find_by(name: dns_zones(:one).origin) + end +end