diff options
Diffstat (limited to 'lib/chef/provider/cron.rb')
-rw-r--r-- | lib/chef/provider/cron.rb | 76 |
1 files changed, 38 insertions, 38 deletions
diff --git a/lib/chef/provider/cron.rb b/lib/chef/provider/cron.rb index 35e5bb874c..f22367b461 100644 --- a/lib/chef/provider/cron.rb +++ b/lib/chef/provider/cron.rb @@ -48,15 +48,15 @@ class Chef def load_current_resource crontab_lines = [] - @current_resource = Chef::Resource::Cron.new(@new_resource.name) - @current_resource.user(@new_resource.user) + @current_resource = Chef::Resource::Cron.new(new_resource.name) + current_resource.user(new_resource.user) @cron_exists = false if crontab = read_crontab cron_found = false crontab.each_line do |line| case line.chomp - when "# Chef Name: #{@new_resource.name}" - Chef::Log.debug("Found cron '#{@new_resource.name}'") + when "# Chef Name: #{new_resource.name}" + Chef::Log.debug("Found cron '#{new_resource.name}'") cron_found = true @cron_exists = true next @@ -65,18 +65,18 @@ class Chef next when SPECIAL_PATTERN if cron_found - @current_resource.time($2.to_sym) - @current_resource.command($3) + current_resource.time($2.to_sym) + current_resource.command($3) cron_found = false end when CRON_PATTERN if cron_found - @current_resource.minute($1) - @current_resource.hour($2) - @current_resource.day($3) - @current_resource.month($4) - @current_resource.weekday($5) - @current_resource.command($6) + current_resource.minute($1) + current_resource.hour($2) + current_resource.day($3) + current_resource.month($4) + current_resource.weekday($5) + current_resource.command($6) cron_found = false end next @@ -85,18 +85,18 @@ class Chef next end end - Chef::Log.debug("Cron '#{@new_resource.name}' not found") unless @cron_exists + Chef::Log.debug("Cron '#{new_resource.name}' not found") unless @cron_exists else - Chef::Log.debug("Cron empty for '#{@new_resource.user}'") + Chef::Log.debug("Cron empty for '#{new_resource.user}'") @cron_empty = true end - @current_resource + current_resource end def cron_different? CRON_ATTRIBUTES.any? do |cron_var| - @new_resource.send(cron_var) != @current_resource.send(cron_var) + new_resource.send(cron_var) != current_resource.send(cron_var) end end @@ -109,12 +109,12 @@ class Chef if @cron_exists unless cron_different? - Chef::Log.debug("Skipping existing cron entry '#{@new_resource.name}'") + Chef::Log.debug("Skipping existing cron entry '#{new_resource.name}'") return end read_crontab.each_line do |line| case line.chomp - when "# Chef Name: #{@new_resource.name}" + when "# Chef Name: #{new_resource.name}" cron_found = true next when ENV_PATTERN @@ -144,18 +144,18 @@ class Chef # Handle edge case where the Chef comment is the last line in the current crontab crontab << newcron if cron_found - converge_by("update crontab entry for #{@new_resource}") do + converge_by("update crontab entry for #{new_resource}") do write_crontab crontab - Chef::Log.info("#{@new_resource} updated crontab entry") + Chef::Log.info("#{new_resource} updated crontab entry") end else crontab = read_crontab unless @cron_empty crontab << newcron - converge_by("add crontab entry for #{@new_resource}") do + converge_by("add crontab entry for #{new_resource}") do write_crontab crontab - Chef::Log.info("#{@new_resource} added crontab entry") + Chef::Log.info("#{new_resource} added crontab entry") end end end @@ -166,7 +166,7 @@ class Chef cron_found = false read_crontab.each_line do |line| case line.chomp - when "# Chef Name: #{@new_resource.name}" + when "# Chef Name: #{new_resource.name}" cron_found = true next when ENV_PATTERN @@ -187,10 +187,10 @@ class Chef end crontab << line end - description = cron_found ? "remove #{@new_resource.name} from crontab" : "save unmodified crontab" + description = cron_found ? "remove #{new_resource.name} from crontab" : "save unmodified crontab" converge_by(description) do write_crontab crontab - Chef::Log.info("#{@new_resource} deleted crontab entry") + Chef::Log.info("#{new_resource} deleted crontab entry") end end end @@ -199,26 +199,26 @@ class Chef def set_environment_var(attr_name, attr_value) if %w{MAILTO PATH SHELL HOME}.include?(attr_name) - @current_resource.send(attr_name.downcase.to_sym, attr_value.gsub(/^"|"$/, "")) + current_resource.send(attr_name.downcase.to_sym, attr_value.gsub(/^"|"$/, "")) else - @current_resource.environment(@current_resource.environment.merge(attr_name => attr_value)) + current_resource.environment(current_resource.environment.merge(attr_name => attr_value)) end end def read_crontab crontab = nil - status = popen4("crontab -l -u #{@new_resource.user}") do |pid, stdin, stdout, stderr| + status = popen4("crontab -l -u #{new_resource.user}") do |pid, stdin, stdout, stderr| crontab = stdout.read end if status.exitstatus > 1 - raise Chef::Exceptions::Cron, "Error determining state of #{@new_resource.name}, exit: #{status.exitstatus}" + raise Chef::Exceptions::Cron, "Error determining state of #{new_resource.name}, exit: #{status.exitstatus}" end crontab end def write_crontab(crontab) write_exception = false - status = popen4("crontab -u #{@new_resource.user} -", :waitlast => true) do |pid, stdin, stdout, stderr| + status = popen4("crontab -u #{new_resource.user} -", :waitlast => true) do |pid, stdin, stdout, stderr| begin stdin.write crontab rescue Errno::EPIPE => e @@ -228,7 +228,7 @@ class Chef end end if status.exitstatus > 0 || write_exception - raise Chef::Exceptions::Cron, "Error updating state of #{@new_resource.name}, exit: #{status.exitstatus}" + raise Chef::Exceptions::Cron, "Error updating state of #{new_resource.name}, exit: #{status.exitstatus}" end end @@ -236,23 +236,23 @@ class Chef newcron = "" newcron << "# Chef Name: #{new_resource.name}\n" [ :mailto, :path, :shell, :home ].each do |v| - newcron << "#{v.to_s.upcase}=\"#{@new_resource.send(v)}\"\n" if @new_resource.send(v) + newcron << "#{v.to_s.upcase}=\"#{new_resource.send(v)}\"\n" if new_resource.send(v) end - @new_resource.environment.each do |name, value| + new_resource.environment.each do |name, value| newcron << "#{name}=#{value}\n" end - if @new_resource.time - newcron << "@#{@new_resource.time} #{@new_resource.command}\n" + if new_resource.time + newcron << "@#{new_resource.time} #{new_resource.command}\n" else - newcron << "#{@new_resource.minute} #{@new_resource.hour} #{@new_resource.day} #{@new_resource.month} #{@new_resource.weekday} #{@new_resource.command}\n" + newcron << "#{new_resource.minute} #{new_resource.hour} #{new_resource.day} #{new_resource.month} #{new_resource.weekday} #{new_resource.command}\n" end newcron end def weekday_in_crontab - weekday_in_crontab = WEEKDAY_SYMBOLS.index(@new_resource.weekday) + weekday_in_crontab = WEEKDAY_SYMBOLS.index(new_resource.weekday) if weekday_in_crontab.nil? - @new_resource.weekday + new_resource.weekday else weekday_in_crontab.to_s end |