module Motoko::Utils::PuppetDB

Public Class Methods

class_filter(klass) click to toggle source
# File lib/motoko/utils/puppet_db.rb, line 6
def self.class_filter(klass)
  operator = '='

  if klass =~ %r{\A/.*/\z}
    klass = klass[1..-2]
    operator = '~'
  end

  "certname in resources[certname] { type = 'Class' and title #{operator} '#{klass.split('::').map(&:capitalize).join('::')}' }"
end
fact_filter(fact) click to toggle source
# File lib/motoko/utils/puppet_db.rb, line 17
def self.fact_filter(fact)
  name, operator, value = fact.split(/([!<>]?=|[<>])/, 2)

  if operator == '=' && value =~ %r{\A/.*/\z}
    value = value[1..-2]
    operator = '~'
  end

  begin
    value = case value
            when 'true' then true
            when 'false' then false
            else Integer(value)
            end
  rescue ArgumentError
    value = "'#{value}'"
  end

  "certname in inventory[certname] { facts.#{name} #{operator} #{value} }"
end
identity_filter(identity) click to toggle source
# File lib/motoko/utils/puppet_db.rb, line 38
def self.identity_filter(identity)
  operator = '='

  if identity =~ %r{\A/.*/\z}
    identity = identity[1..-2]
    operator = '~'
  end

  "certname #{operator} '#{identity}'"
end