Module: Fluentd::Setting::Plugin::ClassMethods

Defined in:
app/models/concerns/fluentd/setting/plugin.rb

Instance Method Summary collapse

Instance Method Details

#create_driver(config) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 69

def create_driver(config)
  case plugin_type
  when "input"
    if plugin_class.class_variable_defined?(:@@pos_file_paths)
      plugin_class.class_variable_set(:@@pos_file_paths, {})
    end
    Fluent::Test::Driver::Input.new(plugin_class).configure(config)
  when "output"
    if Fluent::Plugin::FileBuffer.class_variable_defined?(:@@buffer_paths)
      Fluent::Plugin::FileBuffer.class_variable_set(:@@buffer_paths, {})
    end
    Fluent::Test::Driver::Output.new(plugin_class).configure(config)
  when "filter"
    Fluent::Test::Driver::Filter.new(plugin_class).configure(config)
  when "parser"
    Fluent::Test::Driver::Parser.new(plugin_class).configure(config)
  when "formatter"
    FLuent::Test::Driver::Formatter.new(plugin_class).configure(config)
  else
    nil
  end
end

#load_plugin_configObject



48
49
50
51
52
53
54
55
56
57
58
59
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 48

def load_plugin_config
  dumped_config = {}
  plugin_class.ancestors.reverse_each do |klass|
    next unless klass.respond_to?(:dump_config_definition)
    dumped_config_definition = klass.dump_config_definition
    dumped_config[klass.name] = dumped_config_definition unless dumped_config_definition.empty?
  end
  self.config_definition = dumped_config
  dumped_config.each do |name, config|
    yield name, config
  end
end

#plugin_classObject



65
66
67
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 65

def plugin_class
  @plugin_class ||= plugin_instance.class
end

#plugin_helpersObject



92
93
94
95
96
97
98
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 92

def plugin_helpers
  @plugin_helpers ||= if plugin_instance.respond_to?(:plugin_helpers)
                        plugin_instance.plugin_helpers
                      else
                        []
                      end
end

#plugin_instanceObject



61
62
63
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 61

def plugin_instance
  @plugin_instance ||= Fluent::Plugin.__send__("new_#{plugin_type}", plugin_name)
end

#register_plugin(type, name) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 26

def register_plugin(type, name)
  self.plugin_type = type
  self.plugin_name = name

  if ["filter", "output"].include?(type)
    include Fluentd::Setting::Pattern
  end

  self.load_plugin_config do |_name, params|
    params.each do |param_name, definition|
      if definition[:section]
        parse_section(param_name, definition)
        if %i(buffer storage parse format).include?(param_name)
          attribute("#{param_name}_type", :string)
        end
      else
        config_param(param_name, definition[:type], **definition.except(:type))
      end
    end
  end
end

#section?Boolean

Returns:

  • (Boolean)


100
101
102
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 100

def section?
  false
end