Sha256: 16c1c6da03ba03dc14ddd89a2e38ca26b098f55ede9013372fa8317b66e3023d

Contents?: true

Size: 1.27 KB

Versions: 15

Compression:

Stored size: 1.27 KB

Contents

class Api::SettingsController < ApplicationController
  before_action :login_required
  before_action :find_fluentd
  before_action :set_config
  before_action :set_section, only: [:show, :update, :destroy]
  helper_method :element_id

  def index
    respond_to do |format|
      format.json
    end
  end

  def update
    coming = Fluent::Config::V1Parser.parse(params[:content], @fluentd.config_file)
    current = @section
    index = @config.elements.index current
    unless index
      render_404
      return
    end
    @config.elements[index] = coming.elements.first
    @config.write_to_file
    redirect_to api_setting_path(id: element_id(coming.elements.first))
  end

  def destroy
    unless @config.elements.index(@section)
      render_404
      return
    end
    @config.elements.delete @section
    @config.write_to_file
    head :no_content # 204
  end

  private

  def set_config
    @config = Fluentd::Setting::Config.new(@fluentd.config_file)
  end

  def set_section
    @section = @config.elements.find do |elm|
      element_id(elm) == params[:id]
    end
  end

  def element_id(element)
    index = @config.elements.index(element)
    "#{"%06d" % index}#{Digest::MD5.hexdigest(element.to_s)}"
  end

  def render_404
    render nothing: true, status: 404
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
fluentd-ui-1.0.1 app/controllers/api/settings_controller.rb
fluentd-ui-1.0.0 app/controllers/api/settings_controller.rb
fluentd-ui-1.0.0.beta.1 app/controllers/api/settings_controller.rb
fluentd-ui-1.0.0.alpha.3 app/controllers/api/settings_controller.rb
fluentd-ui-1.0.0.alpha.2 app/controllers/api/settings_controller.rb
fluentd-ui-1.0.0.alpha.1 app/controllers/api/settings_controller.rb
fluentd-ui-0.4.5 app/controllers/api/settings_controller.rb
fluentd-ui-0.4.4 app/controllers/api/settings_controller.rb
fluentd-ui-0.4.3 app/controllers/api/settings_controller.rb
fluentd-ui-0.4.2 app/controllers/api/settings_controller.rb
fluentd-ui-0.4.1 app/controllers/api/settings_controller.rb
fluentd-ui-0.4.0 app/controllers/api/settings_controller.rb
fluentd-ui-0.3.21 app/controllers/api/settings_controller.rb
fluentd-ui-0.3.20 app/controllers/api/settings_controller.rb
fluentd-ui-0.3.19 app/controllers/api/settings_controller.rb