Module: PuppetFacts
- Defined in:
- lib/puppet_facts.rb,
lib/puppet_facts/version.rb
Defined Under Namespace
Modules: Version
Class Method Summary collapse
- .get_meta_supported_platforms ⇒ Object
- .get_pe_facts_paths ⇒ Object
- .get_pe_platform_facts ⇒ Object
- .get_pe_platforms ⇒ Object
- .get_pe_versions ⇒ Object
- .meta_supported_platforms ⇒ Object
- .meta_to_facts(input) ⇒ Object
- .pe_facts_paths ⇒ Object
- .pe_platform_facts ⇒ Object
- .pe_platforms ⇒ Object
-
.pe_versions ⇒ Object
Returns array of PE versions.
Instance Method Summary collapse
-
#available_pe_platforms(pe_version) ⇒ Object
Returns array of PE platforms for given PE version.
- #available_pe_versions ⇒ Object
- #on_pe_supported_platforms ⇒ Object
- #set_pe_supported_platforms(metadata_format_hash) ⇒ Object
Class Method Details
.get_meta_supported_platforms ⇒ Object
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'lib/puppet_facts.rb', line 121 def self. if ! File.file?('metadata.json') fail StandardError, "Can't find metadata.json... dunno why" end = JSON.parse(File.read('metadata.json')) if .nil? or ['operatingsystem_support'].nil? fail StandardError, "Unknown operatingsystem support" end os_sup = ['operatingsystem_support'] os_sup.collect do |os_rel| os = (os_rel['operatingsystem']) #os = meta_to_facts[os_sup['operatingsystem']] os_rel['operatingsystemrelease'].collect do |release| rel = (release) [ "#{os}-#{rel}-i386", "#{os}-#{rel}-x86_64" ] end end.flatten end |
.get_pe_facts_paths ⇒ Object
72 73 74 75 76 |
# File 'lib/puppet_facts.rb', line 72 def self.get_pe_facts_paths @pe_dirs.collect do |dir| Dir[File.join(dir,"*")] end.flatten end |
.get_pe_platform_facts ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/puppet_facts.rb', line 81 def self.get_pe_platform_facts pe_facts_paths.inject({}) do |memo,file| pe_platform = File.basename(file.gsub(/\.facts/, '')) pe_version = File.basename(File.dirname(file)) memo[pe_version] = Hash.new unless memo[pe_version] memo[pe_version][pe_platform] = Hash.new File.read(file).each_line do |line| key, value = line.split(' => ') memo[pe_version][pe_platform][key.to_sym] = value.chomp unless value.nil? end memo end end |
.get_pe_platforms ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/puppet_facts.rb', line 56 def self.get_pe_platforms @pe_dirs.inject({}) do |memo,pe_dir| pe_version = File.basename(pe_dir) if Dir[File.join(@proj_root,pe_version,"*")].empty? fail(StandardError, "Puppet facts missing for #{pe_version}") end memo[pe_version] = Dir[File.join(@proj_root,pe_version,"*")].collect do |facts| File.basename(facts.gsub(/\.facts/, '')) end memo end end |
.get_pe_versions ⇒ Object
47 48 49 50 51 |
# File 'lib/puppet_facts.rb', line 47 def self.get_pe_versions @pe_dirs.collect do |dir| File.basename(dir) end end |
.meta_supported_platforms ⇒ Object
95 96 97 |
# File 'lib/puppet_facts.rb', line 95 def self. ||= end |
.meta_to_facts(input) ⇒ Object
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/puppet_facts.rb', line 99 def self.(input) = { 'RedHat' => 'redhat', 'CentOS' => 'centos', 'Ubuntu' => 'ubuntu', 'OracleLinux' => 'oracle', 'SLES' => 'sles', 'Scientific' => 'scientific', 'Debian' => 'debian', '14.04' => '1404', '12.04' => '1204', '10.04' => '1004', '11 SP1' => '11', } ans = [input] if ans ans else input end end |
.pe_facts_paths ⇒ Object
69 70 71 |
# File 'lib/puppet_facts.rb', line 69 def self.pe_facts_paths @pe_facts_paths ||= get_pe_facts_paths end |
.pe_platform_facts ⇒ Object
78 79 80 |
# File 'lib/puppet_facts.rb', line 78 def self.pe_platform_facts @pe_platform_facts ||= get_pe_platform_facts end |
.pe_platforms ⇒ Object
53 54 55 |
# File 'lib/puppet_facts.rb', line 53 def self.pe_platforms @pe_platforms ||= get_pe_platforms end |
.pe_versions ⇒ Object
Returns array of PE versions
44 45 46 |
# File 'lib/puppet_facts.rb', line 44 def self.pe_versions @pe_versions ||= get_pe_versions end |
Instance Method Details
#available_pe_platforms(pe_version) ⇒ Object
Returns array of PE platforms for given PE version
14 15 16 |
# File 'lib/puppet_facts.rb', line 14 def available_pe_platforms(pe_version) PuppetFacts.pe_platforms[pe_version] end |
#available_pe_versions ⇒ Object
9 10 11 |
# File 'lib/puppet_facts.rb', line 9 def available_pe_versions PuppetFacts.pe_versions end |
#on_pe_supported_platforms ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/puppet_facts.rb', line 18 def on_pe_supported_platforms # This should filter based on set_pe_supported_platforms facts = PuppetFacts.pe_platform_facts sup_facts = Hash.new #TODO how do we compare against this? # "name": "pe", # "version_requirement": "3.2.x" # "version_requirement": ">= 3.2.0 < 3.4.0" facts.each do |pe_ver,platforms| sup_facts[pe_ver] = platforms.select do |platform, facts| PuppetFacts..include?(platform) end end sup_facts end |
#set_pe_supported_platforms(metadata_format_hash) ⇒ Object
5 6 7 |
# File 'lib/puppet_facts.rb', line 5 def set_pe_supported_platforms() PuppetFacts.pe_supported_platforms end |