Module: LogStash::PluginMixins::ECSCompatibilitySupport::LegacyAdapter

Defined in:
lib/logstash/plugin_mixins/ecs_compatibility_support.rb

Overview

Implements ‘ecs_compatibility` method backed by an `ecs_compatibility` config option accepting the literal `disabled` or a v-prefixed integer representing a major version of ECS (e.g., `v1`).

Defined Under Namespace

Modules: ArgumentValidator

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



49
50
51
52
# File 'lib/logstash/plugin_mixins/ecs_compatibility_support.rb', line 49

def self.included(base)
  base.extend(ArgumentValidator)
  base.config(:ecs_compatibility, :validate => :ecs_compatibility_argument, :default => 'disabled')
end

Instance Method Details

#ecs_compatibility:disabled, ...

Designed for use by plugins in a ‘case` statement, this method returns a `Symbol` representing the current ECS compatibility mode as configured at plugin initialization, or raises an exception if the mode has not yet been initialized.

Plugin implementations using this method MUST provide code-paths for:

- the major version(s) they explicitly support,
- ECS Compatibility being disabled, AND
- unknown versions (e.g., an else clause that raises an exception)

Returns:

  • (:disabled, :v1, Symbol)


66
67
68
69
70
71
72
# File 'lib/logstash/plugin_mixins/ecs_compatibility_support.rb', line 66

def ecs_compatibility
  fail('uninitialized') if @ecs_compatibility.nil?

  # NOTE: The @ecs_compatibility instance variable is an implementation detail of
  #       this `LegacyAdapter` and plugins MUST NOT rely in its presence or value.
  @ecs_compatibility
end