class Ohai::DSL::Plugin::VersionVII

Attributes

source[R]
version[R]

Public Class Methods

collect_data(platform = :default, *other_platforms, &block) click to toggle source
# File lib/ohai/dsl/plugin/versionvii.rb, line 69
def self.collect_data(platform = :default, *other_platforms, &block)
  [platform, other_platforms].flatten.each do |plat|
    if data_collector.has_key?(plat)
      raise Ohai::Exceptions::IllegalPluginDefinition, "collect_data already defined on platform #{plat}"
    else
      data_collector[plat] = block
    end
  end
end
data_collector() click to toggle source
# File lib/ohai/dsl/plugin/versionvii.rb, line 53
def self.data_collector
  @data_collector ||= Mash.new
end
depends(*attrs) click to toggle source
# File lib/ohai/dsl/plugin/versionvii.rb, line 63
def self.depends(*attrs)
  attrs.each do |attr|
    depends_attrs << attr unless depends_attrs.include?(attr)
  end
end
depends_attrs() click to toggle source
# File lib/ohai/dsl/plugin/versionvii.rb, line 49
def self.depends_attrs
  @depends_attrs ||= []
end
new(data) click to toggle source
Calls superclass method Ohai::DSL::Plugin.new
# File lib/ohai/dsl/plugin/versionvii.rb, line 27
def initialize(data)
  super(data)
  @source = self.class.sources
  @version = :version7
end
provides(*attrs) click to toggle source
# File lib/ohai/dsl/plugin/versionvii.rb, line 57
def self.provides(*attrs)
  attrs.each do |attr|
    provides_attrs << attr unless provides_attrs.include?(attr)
  end
end
provides_attrs() click to toggle source
# File lib/ohai/dsl/plugin/versionvii.rb, line 45
def self.provides_attrs
  @provides_attrs ||= []
end
sources() click to toggle source
# File lib/ohai/dsl/plugin/versionvii.rb, line 41
def self.sources
  @source_list ||= []
end
version() click to toggle source
# File lib/ohai/dsl/plugin/versionvii.rb, line 37
def self.version
  :version7
end

Public Instance Methods

configuration(option, *options) click to toggle source
# File lib/ohai/dsl/plugin/versionvii.rb, line 104
def configuration(option, *options)
  return nil if plugin_config.nil? || !plugin_config.key?(option)
  value = plugin_config[option]
  options.each do |opt|
    return nil unless value.key?(opt)
    value = value[opt]
  end
  value
end
dependencies() click to toggle source
# File lib/ohai/dsl/plugin/versionvii.rb, line 79
def dependencies
  self.class.depends_attrs
end
name() click to toggle source
# File lib/ohai/dsl/plugin/versionvii.rb, line 33
def name
  self.class.name.split("Ohai::NamedPlugin::")[1].to_sym
end
provides(*paths) click to toggle source
# File lib/ohai/dsl/plugin/versionvii.rb, line 96
def provides(*paths)
  Ohai::Log.warn("[UNSUPPORTED OPERATION] \'provides\' is no longer supported in a \'collect_data\' context. Please specify \'provides\' before collecting plugin data. Ignoring command \'provides #{paths.join(", ")}")
end
require_plugin(*args) click to toggle source
# File lib/ohai/dsl/plugin/versionvii.rb, line 100
def require_plugin(*args)
  Ohai::Log.warn("[UNSUPPORTED OPERATION] \'require_plugin\' is no longer supported. Please use \'depends\' instead.\nIgnoring plugin(s) #{args.join(", ")}")
end
run_plugin() click to toggle source
# File lib/ohai/dsl/plugin/versionvii.rb, line 83
def run_plugin
  collector = self.class.data_collector
  platform = collect_os

  if collector.has_key?(platform)
    instance_eval(&collector[platform])
  elsif collector.has_key?(:default)
    instance_eval(&collector[:default])
  else
    Ohai::Log.debug("Plugin #{name}: No data to collect. Skipping...")
  end
end

Private Instance Methods

fetch_plugin_config() click to toggle source
# File lib/ohai/dsl/plugin/versionvii.rb, line 120
def fetch_plugin_config
  # DMI => ["DMI"]
  # Memory => ["", "Memory"]
  # NetworkListeners => ["", "Network", "", "Listeners"]
  # SSHHostKey => ["SSH", "Host", "", "Key"]
  parts = name.to_s.split(/([A-Z][a-z]+)/)
  # ["DMI"] => ["DMI"]
  # ["", "Memory"] => ["Memory"]
  # ["", "Network", "", "Listeners"] => ["Network", "Listeners"]
  # ["SSH", "Host", "", "Key"] => ["SSH", "Host", "Key"]
  parts.delete_if { |part| part.empty? }
  # ["DMI"] => :dmi
  # ["Memory"] => :memory
  # ["Network", "Listeners"] => :network_listeners
  # ["SSH", "Host", "Key"] => :ssh_host_key
  snake_case_name = parts.map { |part| part.downcase }.join("_").to_sym

  # Plugin names in config hashes are auto-vivified, so we check with
  # key? to avoid falsely instantiating a configuration hash.
  if Ohai.config[:plugin].key?(snake_case_name)
    Ohai.config[:plugin][snake_case_name]
  else
    nil
  end
end
plugin_config() click to toggle source
# File lib/ohai/dsl/plugin/versionvii.rb, line 116
def plugin_config
  @plugin_config ||= fetch_plugin_config
end