Configuration rename long_term in long_term_interval

This commit is contained in:
Colin Darie 2018-08-01 12:30:48 +02:00
parent 2a634d8dda
commit afcc72ca07
No known key found for this signature in database
GPG Key ID: 4FB865FDBCA4BCC4
4 changed files with 14 additions and 22 deletions

View File

@ -28,14 +28,14 @@ module CheckProcessor
def resolve_expire_long_term
scope
.where("DATE(domain_expires_at) >= DATE_ADD(CURDATE(), INTERVAL ? DAY)",
configuration.long_term)
configuration.long_term_interval)
.where("DATEDIFF(domain_expires_at, CURDATE()) MOD ? = 0",
configuration.long_term_frequency)
end
def resolve_expire_short_term
scope.where("DATE(domain_expires_at) < DATE_ADD(CURDATE(), INTERVAL ? DAY)",
configuration.long_term)
configuration.long_term_interval)
end
def resolve_unknown_expiry
@ -71,12 +71,6 @@ module CheckProcessor
private
def default_configuration
config = Rails.configuration.chexpire.fetch(configuration_key, {})
OpenStruct.new(
interval: config.fetch("interval") { 0.00 },
long_term: config.fetch("long_term") { 60 },
long_term_frequency: config.fetch("long_term_frequency") { 10 },
)
Rails.configuration.chexpire.fetch(configuration_key)
end
end

View File

@ -1,5 +1,5 @@
module Notifier
Configuration = Struct.new(:interval, :failure_days)
Configuration = Struct.new(:interval, :consecutive_failures)
class Processor
attr_reader :configuration
@ -24,9 +24,7 @@ module Notifier
end
def process_recurrent_failures
resolver.resolve_check_failed.find_each do |notification|
next unless should_notify_for_recurrent_failures?(notification)
resolver.resolve_check_failed(configuration.consecutive_failures).find_each do |notification|
notifier_channel_for(notification).notify(:recurrent_failures, notification)
sleep configuration.interval
@ -40,17 +38,12 @@ module Notifier
Configuration.new(
config.fetch("interval") { 0.00 },
config.fetch("failures_days") { 3 },
config.fetch("consecutive_failures") { 3 },
)
end
def notifier_channel_for(notification)
channels.fetch(notification.channel.to_sym)
end
def should_notify_for_recurrent_failures?(_notification)
true
# TODO: dependent of logs consecutive failures
end
end
end

View File

@ -109,8 +109,8 @@ class CheckProcessorTest < ActiveSupport::TestCase
create_list(:check, 3, :expires_next_week)
configuration = Minitest::Mock.new
2.times do configuration.expect(:long_term, 60) end
configuration.expect(:long_term_frequency, 10)
2.times do configuration.expect(:long_term_interval, 300) end
configuration.expect(:long_term_frequency, 4)
3.times do
configuration.expect(:interval, 0.000001)

View File

@ -23,7 +23,9 @@ module Notifier
test "#process_recurrent_failures respects the interval configuration between sends" do
create_list(:notification, 3, :email, check: build(:check, :last_runs_failed))
test_interval_respected(:process_recurrent_failures, 3)
test_interval_respected(:process_recurrent_failures, 3) do |configuration|
configuration.expect(:consecutive_failures, 4)
end
end
private
@ -34,6 +36,9 @@ module Notifier
count_expected.times do
configuration.expect(:interval, 0.000001)
end
yield configuration if block_given?
processor = Processor.new(configuration)
mock = Minitest::Mock.new