Sha256: c30480cad0e5ccff20ce5b46f1517cac72e3336d806c5f6f456c8477ccb99b1b

Contents?: true

Size: 1.63 KB

Versions: 68

Compression:

Stored size: 1.63 KB

Contents

require 'puppet/indirector'
require 'puppet/util/instrumentation'
require 'puppet/util/instrumentation/data'

class Puppet::Util::Instrumentation::Listener
  include Puppet::Util
  include Puppet::Util::Warnings
  extend Puppet::Indirector

  indirects :instrumentation_listener, :terminus_class => :local

  attr_reader :pattern, :listener
  attr_accessor :enabled

  def initialize(listener, pattern = nil, enabled = false)
    @pattern = pattern.is_a?(Symbol) ? pattern.to_s : pattern
    raise "Listener isn't a correct listener (it doesn't provide the notify method)" unless listener.respond_to?(:notify)
    @listener = listener
    @enabled = enabled
  end

  def notify(label, event, data)
    listener.notify(label, event, data)
  rescue => e
    warnonce("Error during instrumentation notification: #{e}")
  end

  def listen_to?(label)
    enabled? and (!@pattern || @pattern === label.to_s)
  end

  def enabled?
    !!@enabled
  end

  def name
    @listener.name.to_s
  end

  def data
    { :data => @listener.data }
  end

  def to_data_hash
    {
      :name => name,
      :pattern => pattern,
      :enabled => enabled?
    }
  end

  def to_pson_data_hash
    {
      :document_type => "Puppet::Util::Instrumentation::Listener",
      :data => to_data_hash,
    }
  end

  def to_pson(*args)
    to_pson_data_hash.to_pson(*args)
  end

  def self.from_data_hash(data)
    result = Puppet::Util::Instrumentation[data["name"]]
    self.new(result.listener, result.pattern, data["enabled"])
  end

  def self.from_pson(data)
    Puppet.deprecation_warning("from_pson is being removed in favour of from_data_hash.")
    self.from_data_hash(data)
  end
end

Version data entries

68 entries across 68 versions & 2 rubygems

Version Path
puppet-retrospec-0.12.2 vendor/gems/puppet-3.7.3/lib/puppet/util/instrumentation/listener.rb
puppet-3.8.7 lib/puppet/util/instrumentation/listener.rb
puppet-3.8.7-x86-mingw32 lib/puppet/util/instrumentation/listener.rb
puppet-3.8.7-x64-mingw32 lib/puppet/util/instrumentation/listener.rb
puppet-3.8.6 lib/puppet/util/instrumentation/listener.rb
puppet-3.8.6-x86-mingw32 lib/puppet/util/instrumentation/listener.rb
puppet-retrospec-0.12.1 vendor/gems/puppet-3.7.3/lib/puppet/util/instrumentation/listener.rb
puppet-3.8.6-x64-mingw32 lib/puppet/util/instrumentation/listener.rb
puppet-retrospec-0.12.0 vendor/gems/puppet-3.7.3/lib/puppet/util/instrumentation/listener.rb
puppet-3.8.5 lib/puppet/util/instrumentation/listener.rb
puppet-3.8.5-x86-mingw32 lib/puppet/util/instrumentation/listener.rb
puppet-3.8.5-x64-mingw32 lib/puppet/util/instrumentation/listener.rb
puppet-3.8.4 lib/puppet/util/instrumentation/listener.rb
puppet-3.8.4-x86-mingw32 lib/puppet/util/instrumentation/listener.rb
puppet-3.8.4-x64-mingw32 lib/puppet/util/instrumentation/listener.rb
puppet-retrospec-0.11.0 vendor/gems/puppet-3.7.3/lib/puppet/util/instrumentation/listener.rb
puppet-retrospec-0.10.0 vendor/gems/puppet-3.7.3/lib/puppet/util/instrumentation/listener.rb
puppet-retrospec-0.9.1 vendor/gems/puppet-3.7.3/lib/puppet/util/instrumentation/listener.rb
puppet-retrospec-0.9.0 vendor/gems/puppet-3.7.3/lib/puppet/util/instrumentation/listener.rb
puppet-retrospec-0.8.1 vendor/gems/puppet-3.7.3/lib/puppet/util/instrumentation/listener.rb