fluent/fluentd-ui

View on GitHub
app/controllers/concerns/setting_history_concern.rb

Summary

Maintainability
A
0 mins
Test Coverage
module SettingHistoryConcern
  extend ActiveSupport::Concern

  included do
    before_action :login_required
    before_action :find_fluentd
    before_action :find_backup_file, only: [:show, :reuse, :configtest]
  end

  def show
    current = @fluentd.agent.config
    target = @backup_file.content
    if target
      @sdiff = Diff::LCS.sdiff(current.split("\n").map(&:rstrip), target.split("\n").map(&:rstrip))
      @changed = @sdiff.any? { |context_change| context_change.changed? }
    end
  end

  def reuse
    @fluentd.agent.config_write @backup_file.content
    redirect_to daemon_setting_path, flash: { success: t('messages.config_successfully_copied',  brand: fluentd_ui_brand) }
  end

  def configtest
    @fluentd.config_file = @backup_file.file_path
    if @fluentd.agent.dryrun
      flash = { success: t('messages.dryrun_is_passed') }
    else
      flash = { danger: @fluentd.agent.log.tail(1).first }
    end
    redirect_back fallback_location: root_url, flash: flash
  end

end