pe_version.rb 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. # Fact: is_pe, pe_version, pe_major_version, pe_minor_version, pe_patch_version
  2. #
  3. # Purpose: Return various facts about the PE state of the system
  4. #
  5. # Resolution: Uses a regex match against puppetversion to determine whether the
  6. # machine has Puppet Enterprise installed, and what version (overall, major,
  7. # minor, patch) is installed.
  8. #
  9. # Caveats:
  10. #
  11. Facter.add("pe_version") do
  12. setcode do
  13. pe_ver = Facter.value("puppetversion").match(/Puppet Enterprise (\d+\.\d+\.\d+)/)
  14. pe_ver[1] if pe_ver
  15. end
  16. end
  17. Facter.add("is_pe") do
  18. setcode do
  19. if Facter.value(:pe_version).to_s.empty? then
  20. false
  21. else
  22. true
  23. end
  24. end
  25. end
  26. Facter.add("pe_major_version") do
  27. confine :is_pe => true
  28. setcode do
  29. if pe_version = Facter.value(:pe_version)
  30. pe_version.to_s.split('.')[0]
  31. end
  32. end
  33. end
  34. Facter.add("pe_minor_version") do
  35. confine :is_pe => true
  36. setcode do
  37. if pe_version = Facter.value(:pe_version)
  38. pe_version.to_s.split('.')[1]
  39. end
  40. end
  41. end
  42. Facter.add("pe_patch_version") do
  43. confine :is_pe => true
  44. setcode do
  45. if pe_version = Facter.value(:pe_version)
  46. pe_version.to_s.split('.')[2]
  47. end
  48. end
  49. end