104: def self.get_macosx_version_major
105: return @macosx_version_major if defined?(@macosx_version_major)
106: begin
107:
108: Facter.loadfacts
109:
110: if Facter.value(:macosx_productversion_major)
111: product_version_major = Facter.value(:macosx_productversion_major)
112: else
113:
114: Puppet.warning("DEPRECATION WARNING: Future versions of the directoryservice provider will require Facter 1.5.5 or newer.")
115: product_version = Facter.value(:macosx_productversion)
116: fail("Could not determine OS X version from Facter") if product_version.nil?
117: product_version_major = product_version.scan(/(\d+)\.(\d+)./).join(".")
118: end
119: fail("#{product_version_major} is not supported by the directoryservice provider") if %w{10.0 10.1 10.2 10.3}.include?(product_version_major)
120: @macosx_version_major = product_version_major
121: return @macosx_version_major
122: rescue Puppet::ExecutionFailure => detail
123: fail("Could not determine OS X version: #{detail}")
124: end
125: end