Skip to content

Commit 1eecdb6

Browse files
committed
Use structured facts to detect OS version
This is at least required for Arch Linux on Facter 4. It doesn't have the legacy facts operatingsystemmajrelease / operatingsystemrelease. https://tickets.puppetlabs.com/projects/FACT/issues/FACT-3114
1 parent 7e73e37 commit 1eecdb6

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

lib/rspec-puppet-facts.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,12 +149,15 @@ def on_supported_os_implementation(opts = {})
149149
os_facts_hash = {}
150150
received_facts.map do |facts|
151151
# Fix facter bug
152+
# Todo: refactor the whole block to rely on structured facts and use legacy facts as fallback
152153
if facts[:operatingsystem] == 'Ubuntu'
153154
operatingsystemmajrelease = facts[:operatingsystemrelease].split('.')[0..1].join('.')
154155
elsif facts[:operatingsystem] == 'OpenBSD'
155156
operatingsystemmajrelease = facts[:operatingsystemrelease]
156157
elsif facts[:operatingsystem] == 'windows' && facts[:operatingsystemrelease].start_with?('10.0.')
157158
operatingsystemmajrelease = '2016'
159+
elsif !facts.dig(:os, 'release', 'major').nil?
160+
operatingsystemmajrelease = facts[:os]['release']['major']
158161
else
159162
if facts[:operatingsystemmajrelease].nil?
160163
operatingsystemmajrelease = facts[:operatingsystemrelease].split('.')[0]

0 commit comments

Comments
 (0)