HomePhorge

(#12881) Fix cron type default name error on windows
2d8d9ceff863Unpublished

Unpublished Commit ยท Learn More

Repository Importing: This repository is still importing.

Description

(#12881) Fix cron type default name error on windows

On windows I ran into this error with the cron type:

err: Failed to apply catalog: undefined method 'name' for nil:NilClass

Without this patch, the problem appears to be that the cron type name
parameter defaults to the following block:

defaultto { Etc.getpwuid(Process.uid).name || "root" }

On windows Etc.getpwuid(Process.uid) returns nil. This patch fixes
the problem by binding the object returned by
Etc.getpwuid(Process.uid) to a variable. We then check if the
variable responds to the name method, and only send a message to name
if so. Otherwise, we return "root"

The included spec test will fail if there is a regression in the desired
behavior. The expected failure looks like:

Failures:

  1) Puppet::Type::Cron should default to user => root if Etc.getpwuid(Process.uid) returns nil (#12357)
     Failure/Error: entry = described_class.new(:name => "test_entry", :ensure => :present)
     NoMethodError:
       undefined method `name' for nil:NilClass
     # ./lib/puppet/type/cron.rb:359:in `default'
     # ./lib/puppet/type.rb:540:in `set_default'
     # ./lib/puppet/type.rb:1834:in `set_parameters'
     # ./lib/puppet/type.rb:1833:in `each'
     # ./lib/puppet/type.rb:1833:in `set_parameters'
     # ./lib/puppet/type.rb:1797:in `initialize'
     # ./spec/unit/type/cron_spec.rb:474:in `new'
     # ./spec/unit/type/cron_spec.rb:474

Details

Provenance
Jeff McCune <jeff@puppetlabs.com>Authored on
vanmeeuwenPushed on Jun 2 2015, 2:22 PM
Parents
rPU5f0f26942858: Updating CHANGELOG and lib/puppet.rb for 2.7.12rc1
Branches
Unknown
Tags
Unknown

Event Timeline

Jeff McCune <jeff@puppetlabs.com> committed rPU2d8d9ceff863: (#12881) Fix cron type default name error on windows (authored by Jeff McCune <jeff@puppetlabs.com>).Feb 29 2012, 9:20 PM