app/models/fluentd/agent/local_common.rb in fluentd-ui-0.3.10 vs app/models/fluentd/agent/local_common.rb in fluentd-ui-0.3.11

- old
+ new

@@ -18,16 +18,18 @@ def config File.read(config_file) end def config_write(content) + backup_config File.open(config_file, "w") do |f| f.write content end end def config_append(content) + backup_config File.open(config_file, "a") do |f| f.write "\n" f.write content end end @@ -57,10 +59,41 @@ return unless File.exists?(pid_file) return if File.zero?(pid_file) File.read(pid_file).to_i rescue nil end + def backup_files + Dir.glob(File.join("#{config_backup_dir}", "*.conf")) + end + + def backup_files_in_old_order + backup_files.sort + end + + def backup_files_in_new_order + backup_files_in_old_order.reverse + end + private + + def backup_config + return unless File.exists? config_file + + FileUtils.cp config_file, File.join(config_backup_dir, "#{Time.zone.now.strftime('%Y%m%d_%H%M%S')}.conf") + + remove_over_backup_files + end + + def remove_over_backup_files + over_file_count = backup_files.size - ::Settings.max_backup_files_count + + return if over_file_count <= 0 + + backup_files_in_old_order.first(over_file_count).each do |file| + next unless File.exist? file + FileUtils.rm(file) + end + end def logged_errors(&block) return [] unless File.exist?(log_file) buf = [] io = File.open(log_file)