require_relative "./stub_daemon"
module ConfigHistories
module DaemonHaveSomeConfigHistories
extend ActiveSupport::Concern
include ::StubDaemon
included do
def daemon
@daemon ||= stub_daemon(variant: "fluentd_gem")
end
setup do
config_contents = <<-CONFIG.strip_heredoc
@type forward
port 24224
CONFIG
new_config = <<-CONFIG.strip_heredoc
@type http
port 8899
CONFIG
three_hours_ago = Time.zone.now - 3.hours
Timecop.freeze(three_hours_ago)
FileUtils.rm_rf(daemon.agent.config_backup_dir)
7.times do |i|
backup_time = three_hours_ago - (i+1).hours
FileUtils.touch(File.join(daemon.agent.config_backup_dir, "#{backup_time.strftime("%Y%m%d_%H%M%S")}.conf"))
end
Timecop.freeze(three_hours_ago + 1.hours)
daemon.agent.config_write(config_contents)
Timecop.freeze(three_hours_ago + 2.hours)
daemon.agent.config_write(new_config)
Timecop.freeze(three_hours_ago + 3.hours)
end
teardown do
FileUtils.rm_rf(daemon.agent.config_backup_dir)
Timecop.return
end
end
end
module DaemonHadBeenStartedOnce
extend ActiveSupport::Concern
included do
setup do
@backup_content = "Running backup file content"
File.open(daemon.agent.running_config_backup_file, "w") do |file|
file.write(@backup_content)
end
end
teardown do
FileUtils.rm_rf(daemon.agent.config_backup_dir)
end
end
end
end