Sha256: e8d84f91072b2b893c6239f60797d03401aaeae4580db002dfa267d2a248aa8f

Contents?: true

Size: 857 Bytes

Versions: 2

Compression:

Stored size: 857 Bytes

Contents

require 'rspec-system'
require 'rspec-system/helper'
require 'rspec-system/result'

module RSpecSystem::Helpers
  # Helper object behind RSpecSystemPuppet::Helpers#facter
  class Facter < RSpecSystem::Helper
    name 'facter'
    properties :stdout, :stderr, :exit_code, :facts

    def initialize(opts, clr, &block)
      # Defaults etc.
      opts = {
        :puppet => false,
      }.merge(opts)

      super(opts, clr, &block)
    end

    # Gathers new results by executing the resource action
    #
    # @return [RSpecSystem::Result] raw execution results
    def execute
      node = opts[:node]
      
      cmd = "facter --yaml"
      cmd += " --puppet" if opts[:puppet]
      
      sh = shell :c => cmd, :n => node

      rd = sh.to_hash
      rd[:facts] = begin
        YAML::load(sh.stdout)
      rescue
      end

      rd
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rspec-system-puppet-2.2.1 lib/rspec-system-puppet/helpers/facter.rb
rspec-system-puppet-2.2.0 lib/rspec-system-puppet/helpers/facter.rb