summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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
-rwxr-xr-xtest/language/functions.rb1
-rw-r--r--test/server/master.rb11
-rwxr-xr-xtest/types/host.rb1
-rwxr-xr-xtest/types/sshkey.rb1
8 files changed, 30 insertions, 43 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/
diff --git a/test/language/functions.rb b/test/language/functions.rb
index 1ee7ccf8e..d931470fc 100755
--- a/test/language/functions.rb
+++ b/test/language/functions.rb
@@ -224,6 +224,7 @@ class TestLangFunctions < Test::Unit::TestCase
assert_equal("original text\n", fileobj["content"],
"Template did not work")
+ Puppet[:filetimeout] = 0
# Have to sleep because one second is the fs's time granularity.
sleep(1)
diff --git a/test/server/master.rb b/test/server/master.rb
index e3f065087..18e23311c 100644
--- a/test/server/master.rb
+++ b/test/server/master.rb
@@ -102,6 +102,8 @@ class TestMaster < Test::Unit::TestCase
end
def test_filereread
+ # Start with a normal setting
+ Puppet[:filetimeout] = 15
manifest = mktestmanifest()
file2 = @createdfile + "2"
@@ -113,8 +115,7 @@ class TestMaster < Test::Unit::TestCase
master = Puppet::Server::Master.new(
:Manifest => manifest,
:UseNodes => false,
- :Local => true,
- :FileTimeout => 15
+ :Local => true
)
}
assert_nothing_raised() {
@@ -153,10 +154,8 @@ class TestMaster < Test::Unit::TestCase
assert_equal(parse1, master.freshness, "Master did not wait through timeout")
assert(client.fresh?, "Client is not up to date")
- assert_nothing_raised("Could not resent the file timeout") {
- master.filetimeout = 0
- }
- assert_equal(0, master.filetimeout)
+ # Then eliminate it
+ Puppet[:filetimeout] = 0
# Now make sure the master does reparse
#Puppet.notice "%s vs %s" % [parse1, master.freshness]
diff --git a/test/types/host.rb b/test/types/host.rb
index b842c1cfb..2e5121451 100755
--- a/test/types/host.rb
+++ b/test/types/host.rb
@@ -21,6 +21,7 @@ class TestHost < Test::Unit::TestCase
end
def teardown
+ Puppet::FileType.filetype(:ram).clear
@hosttype.filetype = @oldhosttype
Puppet.type(:file).clear
super
diff --git a/test/types/sshkey.rb b/test/types/sshkey.rb
index 5186d06cc..ff9adc336 100755
--- a/test/types/sshkey.rb
+++ b/test/types/sshkey.rb
@@ -22,6 +22,7 @@ class TestSSHKey < Test::Unit::TestCase
end
def teardown
+ Puppet::FileType.filetype(:ram).clear
@sshtype.filetype = @oldfiletype
Puppet.type(:file).clear
super