Module: RspecPuppetFacts

Defined in:
lib/rspec-puppet-facts.rb,
lib/rspec-puppet-facts/version.rb

Defined Under Namespace

Modules: Version

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.get_meta_supported_osObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



66
67
68
69
70
71
72
# File 'lib/rspec-puppet-facts.rb', line 66

def self.get_meta_supported_os
   = 
  if ['operatingsystem_support'].nil?
    fail StandardError, "Unknown operatingsystem support"
  end
  ['operatingsystem_support']
end

.get_metadataObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



75
76
77
78
79
80
# File 'lib/rspec-puppet-facts.rb', line 75

def self.
  if ! File.file?('metadata.json')
    fail StandardError, "Can't find metadata.json... dunno why"
  end
  JSON.parse(File.read('metadata.json'))
end

.meta_supported_osObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



61
62
63
# File 'lib/rspec-puppet-facts.rb', line 61

def self.meta_supported_os
  @meta_supported_os ||= get_meta_supported_os
end

Instance Method Details

#on_supported_os(opts = {}) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/rspec-puppet-facts.rb', line 9

def on_supported_os( opts = {} )
  opts[:hardwaremodels] ||= ['x86_64']
  opts[:supported_os] ||= RspecPuppetFacts.meta_supported_os

  filter = []
  opts[:supported_os].map do |os_sup|
    if os_sup['operatingsystemrelease']
      os_sup['operatingsystemrelease'].map do |operatingsystemmajrelease|
        opts[:hardwaremodels].each do |hardwaremodel|

          if os_sup['operatingsystem'] =~ /BSD/
            hardwaremodel = 'amd64'
          elsif os_sup['operatingsystem'] =~ /Solaris/
            hardwaremodel = 'i86pc'
          elsif os_sup['operatingsystem'] =~ /windows/
            hardwaremodel = 'x64'
          end

          filter << {
            :facterversion          => "/^#{Facter.version[0..2]}/",
            :operatingsystem        => os_sup['operatingsystem'],
            :operatingsystemrelease => "/^#{operatingsystemmajrelease.split(" ")[0]}/",
            :hardwaremodel          => hardwaremodel,
          }
        end
      end
    else
      opts[:hardwaremodels].each do |hardwaremodel|
        filter << {
          :facterversion   => "/^#{Facter.version[0..2]}/",
          :operatingsystem => os_sup['operatingsystem'],
          :hardwaremodel   => hardwaremodel,
        }
      end
    end
  end

  h = {}
  FacterDB::get_facts(filter).map do |facts|
    facts.merge!({
      :mco_version   => MCollective::VERSION,
      :puppetversion => Puppet.version,
      :rubysitedir   => RbConfig::CONFIG["sitelibdir"],
      :rubyversion   => RUBY_VERSION,
    })
    facts[:augeasversion] = Augeas.open(nil, nil, Augeas::NO_MODL_AUTOLOAD).get('/augeas/version') if Puppet.features.augeas?
    h["#{facts[:operatingsystem].downcase}-#{facts[:operatingsystemrelease].split('.')[0]}-#{facts[:hardwaremodel]}"] = facts
  end
  h
end