Module: Fluent::Auditify::Plugin

Included in:
PluginManager
Defined in:
lib/fluent/auditify/plugin.rb,
lib/fluent/auditify/plugin/base.rb,
lib/fluent/auditify/plugin/conf.rb,
lib/fluent/auditify/plugin/conf_in_tcp.rb,
lib/fluent/auditify/plugin/conf_in_udp.rb,
lib/fluent/auditify/plugin/conf_in_exec.rb,
lib/fluent/auditify/plugin/conf_in_http.rb,
lib/fluent/auditify/plugin/conf_in_tail.rb,
lib/fluent/auditify/plugin/conf_in_unix.rb,
lib/fluent/auditify/plugin/conf_v1dupid.rb,
lib/fluent/auditify/plugin/conf_out_copy.rb,
lib/fluent/auditify/plugin/conf_out_exec.rb,
lib/fluent/auditify/plugin/conf_out_file.rb,
lib/fluent/auditify/plugin/conf_out_http.rb,
lib/fluent/auditify/plugin/conf_out_null.rb,
lib/fluent/auditify/plugin/conf_in_sample.rb,
lib/fluent/auditify/plugin/conf_in_syslog.rb,
lib/fluent/auditify/plugin/conf_in_forward.rb,
lib/fluent/auditify/plugin/conf_out_buffer.rb,
lib/fluent/auditify/plugin/conf_out_stdout.rb,
lib/fluent/auditify/plugin/conf_buffer_file.rb,
lib/fluent/auditify/plugin/conf_filter_grep.rb,
lib/fluent/auditify/plugin/conf_out_forward.rb,
lib/fluent/auditify/plugin/conf_out_relabel.rb,
lib/fluent/auditify/plugin/conf_plugin_type.rb,
lib/fluent/auditify/plugin/conf_mask_secrets.rb,
lib/fluent/auditify/plugin/conf_buffer_memory.rb,
lib/fluent/auditify/plugin/conf_filter_parser.rb,
lib/fluent/auditify/plugin/conf_filter_stdout.rb,
lib/fluent/auditify/plugin/conf_plugin_params.rb,
lib/fluent/auditify/plugin/conf_out_roundrobin.rb,
lib/fluent/auditify/plugin/conf_out_exec_filter.rb,
lib/fluent/auditify/plugin/conf_in_monitor_agent.rb,
lib/fluent/auditify/plugin/conf_buffer_file_single.rb,
lib/fluent/auditify/plugin/conf_out_secondary_file.rb,
lib/fluent/auditify/plugin/conf_out_rewrite_tag_filter.rb,
lib/fluent/auditify/plugin/conf_filter_record_transformer.rb

Defined Under Namespace

Classes: Base, Conf, ConfBufferFile, ConfBufferFileSingle, ConfBufferMemory, ConfFilterGrep, ConfFilterParser, ConfFilterRecordTransformer, ConfFilterStdout, ConfInExec, ConfInForward, ConfInHttp, ConfInMonitorAgent, ConfInSample, ConfInSyslog, ConfInTail, ConfInTcp, ConfInUdp, ConfInUnix, ConfOutBuffer, ConfOutCopy, ConfOutExec, ConfOutExecFilter, ConfOutFile, ConfOutForward, ConfOutHttp, ConfOutNull, ConfOutRelabel, ConfOutRewriteTagFilter, ConfOutRoundrobin, ConfOutSecondaryFile, ConfOutStdout, ConfPluginParams, ConfPluginType, MaskSecrets, V1DuplicatedId

Constant Summary collapse

DEFAULT_PLUGIN_PATH =

e.g. PATH_TO_...lib/fluent/auditify/plugin

File.expand_path('../plugin', __FILE__)
FLUENT_AUDITIFY_LIB_PATH =

e.g. PATH_TO_...lib/fluent/auditify

File.dirname(DEFAULT_PLUGIN_PATH)
CONF_REGISTRY =
Registry.new(:conf, 'fluent/auditify/conf_')
REGISTRIES =
[CONF_REGISTRY]
CHARGES =
[]
ARTIFACT =
[]

Class Method Summary collapse

Class Method Details

.artifactObject



60
61
62
# File 'lib/fluent/auditify/plugin.rb', line 60

def self.artifact
  ARTIFACT.pop
end

.chargesObject



22
23
24
# File 'lib/fluent/auditify/plugin.rb', line 22

def self.charges
  CHARGES
end

.discardObject



30
31
32
# File 'lib/fluent/auditify/plugin.rb', line 30

def self.discard
  CHARGES.pop(CHARGES.size)
end

.guilty(level, message, options = {}) ⇒ Object



52
53
54
# File 'lib/fluent/auditify/plugin.rb', line 52

def self.guilty(level, message, options={})
  CHARGES.push([level, message, options])
end

.polish(object) ⇒ Object



56
57
58
# File 'lib/fluent/auditify/plugin.rb', line 56

def self.polish(object)
  ARTIFACT.push(object)
end

.register_conf(plugin_name, plugin_klass) ⇒ Object

This method will be executed when require it



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/fluent/auditify/plugin.rb', line 35

def self.register_conf(plugin_name, plugin_klass)
  caller_with_location = caller_locations(1, 1).first
  if caller_with_location.path.include?('/lib/fluent/auditify/plugin')
    gem_name = File.basename(File.dirname(caller_with_location.path.sub('/lib/fluent/auditify/plugin', '')))
    plugin_name = "#{plugin_name}@#{gem_name}"
  else
    raise Fluent::ConfigError, "Fluent Auditify plugin must be installed as gem: <#{plugin_name}>."
  end

  if !plugin_klass.is_a?(Class) and
    !([:supported_platform?, :parse].all? { |v| plugin_klass.respond_to?(v) })
    raise Fluent::ConfigError, "Invalid Fluent Auditify plugin implementation as 'conf' plugin: <#{plugin_name}>."
  end

  CONF_REGISTRY.register(:conf, plugin_name, plugin_klass)
end

.registriesObject



26
27
28
# File 'lib/fluent/auditify/plugin.rb', line 26

def self.registries
  REGISTRIES
end