diff options
| author | Max Martin <max@puppetlabs.com> | 2011-04-27 13:25:35 -0700 |
|---|---|---|
| committer | Max Martin <max@puppetlabs.com> | 2011-04-27 13:25:35 -0700 |
| commit | 1b12b55b6a2d3581f9643bf09d55727ba1213580 (patch) | |
| tree | 9b264a5c82bea7fae868467166e1c647b72d5a53 /lib/puppet/provider | |
| parent | ced9f553772d6fb786e620fada1c23427bd269bf (diff) | |
| parent | 361d6a3a6917fd9515a2180590fb671024132da7 (diff) | |
| download | puppet-1b12b55b6a2d3581f9643bf09d55727ba1213580.tar.gz puppet-1b12b55b6a2d3581f9643bf09d55727ba1213580.tar.xz puppet-1b12b55b6a2d3581f9643bf09d55727ba1213580.zip | |
Merge branch '2.6.next' into 2.7.next
* 2.6.next:
(#3420) Nagios "name" attribute does not output correctly
(#4487) When setting environment on a host, ensure it is a string.
add test for ticket 7101
(#6487) Add some testing for OS X version support in DirectoryService provider
(#6487) Directoryservice provider will fail in future OS releases
Diffstat (limited to 'lib/puppet/provider')
| -rw-r--r-- | lib/puppet/provider/naginator.rb | 10 | ||||
| -rw-r--r-- | lib/puppet/provider/nameservice/directoryservice.rb | 19 |
2 files changed, 20 insertions, 9 deletions
diff --git a/lib/puppet/provider/naginator.rb b/lib/puppet/provider/naginator.rb index 5c610fb31..17cc24086 100644 --- a/lib/puppet/provider/naginator.rb +++ b/lib/puppet/provider/naginator.rb @@ -30,7 +30,15 @@ class Puppet::Provider::Naginator < Puppet::Provider::ParsedFile end def self.to_file(records) - header + records.collect { |record| record.to_s }.join("\n").gsub("_naginator_name", NAME_STRING) + header + records.collect { |record| + # Remap the TYPE_name or _naginator_name params to the + # name if the record is a template (register == 0) + if record.to_s =~ /register\s+0/ + record.to_s.sub("_naginator_name", "name").sub(record.type.to_s + "_name", "name") + else + record.to_s.sub("_naginator_name", NAME_STRING) + end + }.join("\n") end def self.skip_record?(record) diff --git a/lib/puppet/provider/nameservice/directoryservice.rb b/lib/puppet/provider/nameservice/directoryservice.rb index c1139a679..35ac8d76a 100644 --- a/lib/puppet/provider/nameservice/directoryservice.rb +++ b/lib/puppet/provider/nameservice/directoryservice.rb @@ -221,11 +221,12 @@ class DirectoryService < Puppet::Provider::NameService # have a lot of choice. Ultimately this should all be done using Ruby # to access the DirectoryService APIs directly, but that's simply not # feasible for a while yet. - case self.get_macosx_version_major - when "10.4" - dscl_plist = self.parse_dscl_url_data(dscl_output) - when "10.5", "10.6" + if self.get_macosx_version_major > "10.4" dscl_plist = self.parse_dscl_plist_data(dscl_output) + elsif self.get_macosx_version_major == "10.4" + dscl_plist = self.parse_dscl_url_data(dscl_output) + else + fail("Puppet does not support OS X versions < 10.4") end self.generate_attribute_hash(dscl_plist, *type_properties) @@ -243,12 +244,14 @@ class DirectoryService < Puppet::Provider::NameService # different format for the -url output with objects with spaces in # their values. *sigh*. Use -url for 10.4 in the hope this can be # deprecated one day, and use -plist for 10.5 and higher. - case self.get_macosx_version_major - when "10.4" - command_vector = [ command(:dscl), "-url", "." ] - when "10.5", "10.6" + if self.get_macosx_version_major > "10.4" command_vector = [ command(:dscl), "-plist", "." ] + elsif self.get_macosx_version_major == "10.4" + command_vector = [ command(:dscl), "-url", "." ] + else + fail("Puppet does not support OS X versions < 10.4") end + # JJM: The actual action to perform. See "man dscl" # Common actiosn: -create, -delete, -merge, -append, -passwd command_vector << ds_action |
