refactoring

This commit is contained in:
olegphenomenon 2021-09-20 16:07:06 +03:00
parent 419e5a587d
commit b7b0cf1335
3 changed files with 35 additions and 33 deletions

View file

@ -1,52 +1,54 @@
class ReplaceUpdToObjUpdProhibitedJob < ApplicationJob class ReplaceUpdToObjUpdProhibitedJob < ApplicationJob
def perform(mode, rollback = false) def perform(action:, rollback: false)
logger.info 'Ran ReplaceUpdToObjUpdProhibitedJob!' logger.info 'Ran ReplaceUpdToObjUpdProhibitedJob!'
start_adding_new_status_for_locked_domains(mode, rollback) start_adding_new_status_for_locked_domains(action: action, rollback: rollback)
end end
private private
def start_adding_new_status_for_locked_domains(mode, rollback) def start_adding_new_status_for_locked_domains(action:, rollback:)
count = 0 count = 0
Domain.all.find_in_batches do |domain_batches| Domain.all.find_in_batches do |domain_batches|
count += domain_batches.count count += domain_batches.count
logger.info "Proccesing #{count} domains of #{Domain.count}" logger.info "Proccesing #{count} domains of #{Domain.count}"
domain_batches.each do |domain| domain_batches.each do |domain|
if domain.locked_by_registrant? make_actions_with_statuses(domain: domain, action: action, rollback: rollback)
if rollback
domain = rollback_actions(mode, domain)
else
domain = add_actions(mode, domain)
end
domain.save!
end
end end
logger.info "Successfully proccesed #{count} domains of #{Domain.count}" logger.info "Successfully proccesed #{count} domains of #{Domain.count}"
end end
end end
def rollback_actions(mode, domain) private
if mode == 'add' and !domain.statuses.include? 'serverUpdateProhibited'
domain.statuses = domain.statuses + ['serverUpdateProhibited']
elsif mode == 'remove' and domain.statuses.include? 'serverObjUpdateProhibited'
domain.statuses = domain.statuses - ['serverObjUpdateProhibited']
end
domain def make_actions_with_statuses(domain:, action:, rollback:)
if domain.locked_by_registrant? && rollback
rollback_actions(action: action, domain: domain)
elsif domain.locked_by_registrant? && !rollback
add_actions(action: action, domain: domain)
end
end end
def add_actions(mode, domain) def rollback_actions(action:, domain:)
if mode == 'add' and !domain.statuses.include? 'serverObjUpdateProhibited' if action == :add && !domain.statuses.include?('serverUpdateProhibited')
domain.statuses = domain.statuses + ['serverObjUpdateProhibited'] domain.statuses = domain.statuses + ['serverUpdateProhibited']
elsif mode == 'remove' and domain.statuses.include? 'serverUpdateProhibited' domain.save!
domain.statuses = domain.statuses - ['serverUpdateProhibited'] elsif action == :remove && domain.statuses.include?('serverObjUpdateProhibited')
domain.statuses = domain.statuses - ['serverObjUpdateProhibited']
domain.save!
end end
end
domain def add_actions(action:, domain:)
if action == :add && !domain.statuses.include?('serverObjUpdateProhibited')
domain.statuses = domain.statuses + ['serverObjUpdateProhibited']
domain.save!
elsif action == :remove && domain.statuses.include?('serverUpdateProhibited')
domain.statuses = domain.statuses - ['serverUpdateProhibited']
domain.save!
end
end end
def logger def logger

View file

@ -8,7 +8,7 @@ namespace :locked_domains do
desc 'Add serverObjUpdateProhibited for locked domains' desc 'Add serverObjUpdateProhibited for locked domains'
task add_new_status: :environment do task add_new_status: :environment do
time = Benchmark.realtime do time = Benchmark.realtime do
ReplaceUpdToObjUpdProhibitedJob.perform_later('add') ReplaceUpdToObjUpdProhibitedJob.perform_later(action: :add)
end end
puts "Time is #{time.round(2)} for add serverObjUpdateProhibited status for locked domains" puts "Time is #{time.round(2)} for add serverObjUpdateProhibited status for locked domains"
end end
@ -16,7 +16,7 @@ namespace :locked_domains do
desc 'Remove serverUpdateProhibited from locked domains' desc 'Remove serverUpdateProhibited from locked domains'
task remove_old_status: :environment do task remove_old_status: :environment do
time = Benchmark.realtime do time = Benchmark.realtime do
ReplaceUpdToObjUpdProhibitedJob.perform_later('remove') ReplaceUpdToObjUpdProhibitedJob.perform_later(action: :remove)
end end
puts "Time is #{time.round(2)} for remove serverUpdateProhibited for locked domains" puts "Time is #{time.round(2)} for remove serverUpdateProhibited for locked domains"
end end
@ -27,7 +27,7 @@ namespace :locked_domains do
desc 'Rollback remove old serverUpdateProhibited for locked domains' desc 'Rollback remove old serverUpdateProhibited for locked domains'
task rollback_remove_old_status: :environment do task rollback_remove_old_status: :environment do
time = Benchmark.realtime do time = Benchmark.realtime do
ReplaceUpdToObjUpdProhibitedJob.perform_later('add', true) ReplaceUpdToObjUpdProhibitedJob.perform_later(action: :add, rollback: true)
end end
puts "Time is #{time.round(2)} for add serverObjUpdateProhibited status for locked domains" puts "Time is #{time.round(2)} for add serverObjUpdateProhibited status for locked domains"
end end
@ -35,7 +35,7 @@ namespace :locked_domains do
desc 'Rollback add new serverObjUpdateProhibited for locked domains' desc 'Rollback add new serverObjUpdateProhibited for locked domains'
task rollback_add_new_status: :environment do task rollback_add_new_status: :environment do
time = Benchmark.realtime do time = Benchmark.realtime do
ReplaceUpdToObjUpdProhibitedJob.perform_later('remove', true) ReplaceUpdToObjUpdProhibitedJob.perform_later(action: :remove, rollback: true)
end end
puts "Time is #{time.round(2)} for add serverObjUpdateProhibited status for locked domains" puts "Time is #{time.round(2)} for add serverObjUpdateProhibited status for locked domains"
end end

View file

@ -13,7 +13,7 @@ class ReplaceUpdToObjUpdProhibitedJobTest < ActiveSupport::TestCase
assert @domain.locked_by_registrant? assert @domain.locked_by_registrant?
perform_enqueued_jobs do perform_enqueued_jobs do
ReplaceUpdToObjUpdProhibitedJob.perform_later('add') ReplaceUpdToObjUpdProhibitedJob.perform_later(action: :add)
end end
@domain.reload @domain.reload
@ -32,7 +32,7 @@ class ReplaceUpdToObjUpdProhibitedJobTest < ActiveSupport::TestCase
assert @domain.statuses.include? "serverObjUpdateProhibited" assert @domain.statuses.include? "serverObjUpdateProhibited"
perform_enqueued_jobs do perform_enqueued_jobs do
ReplaceUpdToObjUpdProhibitedJob.perform_later('remove') ReplaceUpdToObjUpdProhibitedJob.perform_later(action: :remove)
end end
@domain.reload @domain.reload
@ -49,7 +49,7 @@ class ReplaceUpdToObjUpdProhibitedJobTest < ActiveSupport::TestCase
assert_not @domain.locked_by_registrant? assert_not @domain.locked_by_registrant?
perform_enqueued_jobs do perform_enqueued_jobs do
ReplaceUpdToObjUpdProhibitedJob.perform_later('add') ReplaceUpdToObjUpdProhibitedJob.perform_later(action: :add)
end end
assert_not @domain.statuses.include? "serverObjUpdateProhibited" assert_not @domain.statuses.include? "serverObjUpdateProhibited"
@ -64,7 +64,7 @@ class ReplaceUpdToObjUpdProhibitedJobTest < ActiveSupport::TestCase
assert_not @domain.locked_by_registrant? assert_not @domain.locked_by_registrant?
perform_enqueued_jobs do perform_enqueued_jobs do
ReplaceUpdToObjUpdProhibitedJob.perform_later('remove') ReplaceUpdToObjUpdProhibitedJob.perform_later(action: :remove)
end end
assert @domain.statuses.include? "serverUpdateProhibited" assert @domain.statuses.include? "serverUpdateProhibited"