pe_version.rb 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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. puppet_ver = Facter.value('puppetversion')
  14. if !puppet_ver.nil?
  15. pe_ver = puppet_ver.match(%r{Puppet Enterprise (\d+\.\d+\.\d+)})
  16. pe_ver[1] if pe_ver
  17. else
  18. nil
  19. end
  20. end
  21. end
  22. Facter.add('is_pe') do
  23. setcode do
  24. if Facter.value(:pe_version).to_s.empty?
  25. false
  26. else
  27. true
  28. end
  29. end
  30. end
  31. Facter.add('pe_major_version') do
  32. confine :is_pe => true
  33. setcode do
  34. pe_version = Facter.value(:pe_version)
  35. if pe_version
  36. pe_version.to_s.split('.')[0]
  37. end
  38. end
  39. end
  40. Facter.add('pe_minor_version') do
  41. confine :is_pe => true
  42. setcode do
  43. pe_version = Facter.value(:pe_version)
  44. if pe_version
  45. pe_version.to_s.split('.')[1]
  46. end
  47. end
  48. end
  49. Facter.add('pe_patch_version') do
  50. confine :is_pe => true
  51. setcode do
  52. pe_version = Facter.value(:pe_version)
  53. if pe_version
  54. pe_version.to_s.split('.')[2]
  55. end
  56. end
  57. end