summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet')
-rw-r--r--lib/puppet/config.rb4
-rw-r--r--lib/puppet/parser/interpreter.rb15
-rw-r--r--lib/puppet/server/master.rb10
-rwxr-xr-xlib/puppet/type/package/yum.rb30
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/