diff options
author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-06-18 21:56:11 +0000 |
---|---|---|
committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-06-18 21:56:11 +0000 |
commit | 01420acae6d02a54dcc1f1a823fac2b73e8353dc (patch) | |
tree | fd40e59673befbb6f47e1c0f3f03e698b86a5963 /lib | |
parent | fa39488560cac2d71461931ab4174387234137ea (diff) | |
download | puppet-01420acae6d02a54dcc1f1a823fac2b73e8353dc.tar.gz puppet-01420acae6d02a54dcc1f1a823fac2b73e8353dc.tar.xz puppet-01420acae6d02a54dcc1f1a823fac2b73e8353dc.zip |
Adding tracing to prefetch failures, and Fixing the environment support in the cron type (#669).
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2621 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib')
-rwxr-xr-x | lib/puppet/provider/cron/crontab.rb | 14 | ||||
-rw-r--r-- | lib/puppet/transaction.rb | 3 | ||||
-rwxr-xr-x | lib/puppet/type/cron.rb | 18 |
3 files changed, 25 insertions, 10 deletions
diff --git a/lib/puppet/provider/cron/crontab.rb b/lib/puppet/provider/cron/crontab.rb index 23fa9201c..7599b1bdf 100755 --- a/lib/puppet/provider/cron/crontab.rb +++ b/lib/puppet/provider/cron/crontab.rb @@ -62,7 +62,7 @@ Puppet::Type.type(:cron).provide(:crontab, if details[:name] str = "# Puppet Name: %s\n" % details[:name] end - if details[:environment] and details[:environment] != :absent + if details[:environment] and details[:environment] != :absent and details[:environment] != [:absent] details[:environment].each do |env| str += env + "\n" end @@ -84,10 +84,9 @@ Puppet::Type.type(:cron).provide(:crontab, end # See if we can match the hash against an existing cron job. - def self.match(hash) - resource_type.find_all { |obj| - obj.value(:user) == hash[:user] and obj.value(:command) == hash[:command] - }.each do |obj| + def self.match(hash, resources) + resources.each do |name, obj| + p hash # we now have a cron job whose command exactly matches # let's see if the other fields match @@ -152,10 +151,7 @@ Puppet::Type.type(:cron).provide(:crontab, record[:name] = name name = nil end - unless envs.empty? - record[:environment] = envs - envs = [] - end + record[:environment] = envs end }.reject { |record| record[:skip] } end diff --git a/lib/puppet/transaction.rb b/lib/puppet/transaction.rb index bb756740d..d0997d4df 100644 --- a/lib/puppet/transaction.rb +++ b/lib/puppet/transaction.rb @@ -487,6 +487,9 @@ class Transaction begin provider.prefetch(resources) rescue => detail + if Puppet[:trace] + puts detail.backtrace + end Puppet.err "Could not prefetch % provider %s: %s" % [resources[0].class.name, provider.name, detail] end end diff --git a/lib/puppet/type/cron.rb b/lib/puppet/type/cron.rb index ff0ef8f7d..debf8c85f 100755 --- a/lib/puppet/type/cron.rb +++ b/lib/puppet/type/cron.rb @@ -287,7 +287,7 @@ Puppet::Type.newtype(:cron) do the crontab, e.g., ``PATH=/bin:/usr/bin:/usr/sbin``." validate do |value| - unless value =~ /^\s*(\w+)\s*=\s*(.+)\s*$/ + unless value =~ /^\s*(\w+)\s*=\s*(.+)\s*$/ or value == :absent or value == "absent" raise ArgumentError, "Invalid environment setting %s" % value.inspect end @@ -301,9 +301,25 @@ Puppet::Type.newtype(:cron) do end end + def is_to_s(newvalue) + if newvalue + newvalue.join(",") + else + nil + end + end + def should @should end + + def should_to_s(newvalue = @should) + if newvalue + newvalue.join(",") + else + nil + end + end end newparam(:name) do |