Prevent undefined method `split' for nil:NilClass with pe_foo_version facts
Without this patch the pe_major_version, pe_minor_version, and pe_patch_version facts directly depend on the pe_version fact in a manner that calls split directly on the return value. This is a problem because Fact values are not always guaranteed to return strings, or objects that respond to split. This patch is a defensive measure to ensure we're always calling the split method on a string object. If the Fact returns nil, this will be converted to an empty string responding to split.
This commit is contained in:
parent
ba70a3885a
commit
e68677976b
1 changed files with 9 additions and 3 deletions
|
@ -28,20 +28,26 @@ end
|
|||
Facter.add("pe_major_version") do
|
||||
confine :is_pe => true
|
||||
setcode do
|
||||
Facter.value(:pe_version).split('.')[0]
|
||||
if pe_version = Facter.value(:pe_version)
|
||||
pe_version.to_s.split('.')[0]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Facter.add("pe_minor_version") do
|
||||
confine :is_pe => true
|
||||
setcode do
|
||||
Facter.value(:pe_version).split('.')[1]
|
||||
if pe_version = Facter.value(:pe_version)
|
||||
pe_version.to_s.split('.')[1]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Facter.add("pe_patch_version") do
|
||||
confine :is_pe => true
|
||||
setcode do
|
||||
Facter.value(:pe_version).split('.')[2]
|
||||
if pe_version = Facter.value(:pe_version)
|
||||
pe_version.to_s.split('.')[2]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue