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