fluentd-ui/app/models/fluentd/setting/out_s3.rb
uu59 3c7786f262 Refactor plugin setting
Adding support for some plugins was hard.
After this commit, easy to add a plugin that has commonly
setting style.

Before:
- Add model, controller, and views for it.

After:
- Add model and controller. view is shared.
2014-11-04 14:29:31 +09:00

55 lines
1.8 KiB
Ruby

class Fluentd
module Setting
class OutS3
include ActiveModel::Model
include Common
KEYS = [
:match,
:aws_key_id, :aws_sec_key, :s3_bucket, :s3_endpoint, :path,
# :reduced_redundancy, :check_apikey_on_start, :command_parameter, # not configurable?
:format, :include_time_key, :time_key, :delimiter, :label_delimiter, :add_newline, :output_tag, :output_time,
:time_slice_format, :time_slice_wait, :time_format, :utc, :store_as, :proxy_uri, :use_ssl,
:buffer_type, :buffer_queue_limit, :buffer_chunk_limit, :flush_interval,
:retry_wait, :retry_limit, :max_retry_wait, :num_threads,
].freeze
attr_accessor(*KEYS)
choice :format, %w(out_file json ltsv single_value)
choice :store_as, %w(gzip lzo lzma2 json txt)
choice :buffer_type, %w(memory file)
booleans :include_time_key, :add_newline, :use_ssl, :output_tag, :output_time
flags :utc
validates :match, presence: true
validates :s3_bucket, presence: true
def self.initial_params
{
s3_endpoint: "s3-us-west-1.amazonaws.com",
output_tag: true,
output_time: true,
use_ssl: true,
}
end
def common_options
[
:match, :aws_key_id, :aws_sec_key,
:s3_endpoint, :s3_bucket, :use_ssl, :path,
]
end
def advanced_options
[
:format, :output_tag, :output_time, :include_time_key, :time_key, :delimiter, :label_delimiter,
:utc, :time_slice_format, :time_slice_wait, :store_as, :proxy_uri,
:buffer_type, :buffer_queue_limit, :buffer_chunk_limit, :flush_interval,
:retry_wait, :retry_limit, :max_retry_wait, :num_threads,
]
end
end
end
end