diff options
author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-07-21 23:12:51 +0000 |
---|---|---|
committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-07-21 23:12:51 +0000 |
commit | b42eaee1a7e8dd1ef7a7daad5d0b03aba6113d00 (patch) | |
tree | 45a3eba8dad449b525af4a0a9602318b62d17190 /lib/puppet | |
parent | 9e61510ac96cc53b2fbc58efa969499eb0c0c11f (diff) | |
download | puppet-b42eaee1a7e8dd1ef7a7daad5d0b03aba6113d00.tar.gz puppet-b42eaee1a7e8dd1ef7a7daad5d0b03aba6113d00.tar.xz puppet-b42eaee1a7e8dd1ef7a7daad5d0b03aba6113d00.zip |
First round of bugfixes in preparation for 0.18.4
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1421 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet')
-rw-r--r-- | lib/puppet/config.rb | 4 | ||||
-rw-r--r-- | lib/puppet/parser/interpreter.rb | 15 | ||||
-rw-r--r-- | lib/puppet/server/master.rb | 10 | ||||
-rwxr-xr-x | lib/puppet/type/package/yum.rb | 30 |
4 files changed, 22 insertions, 37 deletions
diff --git a/lib/puppet/config.rb b/lib/puppet/config.rb index c697545ce..c5da14880 100644 --- a/lib/puppet/config.rb +++ b/lib/puppet/config.rb @@ -348,7 +348,9 @@ class Config def reparse if defined? @file and @file.changed? Puppet.notice "Reparsing %s" % @file.file - parse(@file) + @@sync.synchronize do + parse(@file) + end reuse() end end diff --git a/lib/puppet/parser/interpreter.rb b/lib/puppet/parser/interpreter.rb index 012d7a82a..246bdce5b 100644 --- a/lib/puppet/parser/interpreter.rb +++ b/lib/puppet/parser/interpreter.rb @@ -52,7 +52,7 @@ module Puppet requires ActiveRecord from Ruby on Rails."] ) - attr_accessor :ast, :filetimeout + attr_accessor :ast class << self attr_writer :ldap @@ -88,7 +88,6 @@ module Puppet elsif ! @file = hash[:Manifest] raise Puppet::DevError, "You must provide code or a manifest" end - @filetimeout = hash[:ParseCheck] || 15 @lastchecked = 0 @@ -388,15 +387,9 @@ module Puppet # Check if the parser should reparse. if @file if defined? @parser - # Only check the files every 15 seconds or so, not on - # every single connection - if (Time.now - @lastchecked).to_i >= @filetimeout.to_i - unless @parser.reparse? - @lastchecked = Time.now - return false - end - else - return + unless @parser.reparse? + @lastchecked = Time.now + return false end end diff --git a/lib/puppet/server/master.rb b/lib/puppet/server/master.rb index 1c5715a60..72f7e7abf 100644 --- a/lib/puppet/server/master.rb +++ b/lib/puppet/server/master.rb @@ -36,14 +36,6 @@ class Server end end - def filetimeout - @interpreter.filetimeout - end - - def filetimeout=(int) - @interpreter.filetimeout = int - end - # Tell a client whether there's a fresh config for it def freshness(client = nil, clientip = nil) if defined? @interpreter @@ -77,8 +69,6 @@ class Server @ca = nil end - args[:ParseCheck] = hash[:FileTimeout] || 15 - Puppet.debug("Creating interpreter") if hash.include?(:UseNodes) diff --git a/lib/puppet/type/package/yum.rb b/lib/puppet/type/package/yum.rb index a1336cd9b..fa214c7d6 100755 --- a/lib/puppet/type/package/yum.rb +++ b/lib/puppet/type/package/yum.rb @@ -1,32 +1,32 @@ module Puppet Puppet.type(:package).newpkgtype(:yum, :rpm) do + include Puppet::Util # Install a package using 'yum'. def install cmd = "yum -y install %s" % self[:name] - self.info "Executing %s" % cmd.inspect - output = %x{#{cmd} 2>&1} + begin + output = execute(cmd) + rescue Puppet::ExecutionFailure => detail + raise Puppet::PackageError.new(detail) + end - unless $? == 0 - raise Puppet::PackageError.new(output) - else - @states[:ensure].retrieve - if @states[:ensure].is == :absent - raise Puppet::PackageError.new( - "Could not find package %s" % self.name - ) - end + @states[:ensure].retrieve + if @states[:ensure].is == :absent + raise Puppet::PackageError.new( + "Could not find package %s" % self.name + ) end end # What's the latest package version available? def latest cmd = "yum list available %s" % self[:name] - self.info "Executing %s" % cmd.inspect - output = %x{#{cmd} 2>&1} - unless $? == 0 - raise Puppet::PackageError.new(output) + begin + output = execute(cmd) + rescue Puppet::ExecutionFailure => detail + raise Puppet::PackageError.new(detail) end if output =~ /#{self[:name]}\S+\s+(\S+)\s/ |