summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-03-06 19:30:20 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-03-06 19:30:20 +0000
commitb76004a6feaf101fd0fe9b880f1eb19df850821c (patch)
tree804ae814871b97141c12a103b1de765c4caa2294
parent3c07deb230072ac75c95a1f6806d7c5c1f6af655 (diff)
downloadpuppet-b76004a6feaf101fd0fe9b880f1eb19df850821c.tar.gz
puppet-b76004a6feaf101fd0fe9b880f1eb19df850821c.tar.xz
puppet-b76004a6feaf101fd0fe9b880f1eb19df850821c.zip
Fixing yum listing bug, and caching the "latest" value so it is not asked for so many times; this fixes #90.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@985 980ebf18-57e1-0310-9a29-db15c13687c0
-rw-r--r--CHANGELOG7
-rw-r--r--lib/puppet/type/package.rb23
-rwxr-xr-xlib/puppet/type/package/apt.rb1
-rwxr-xr-xlib/puppet/type/package/yum.rb2
4 files changed, 26 insertions, 7 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 4320e530a..f4fb9c0dd 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,10 @@
+0.14.0
+ Added some ability to selectively manage symlinks when doing file management
+ Many bug fixes
+ Variables can now be used as the test values in case statements and selectors
+ Bumping a minor release number because 0.13.4 introduced a protocol
+ incompatibility and should have had a minor rev bump
+
0.13.6
Many, many small bug fixes
FreeBSD user/group support has been added
diff --git a/lib/puppet/type/package.rb b/lib/puppet/type/package.rb
index ab16cd86d..9cf7902f5 100644
--- a/lib/puppet/type/package.rb
+++ b/lib/puppet/type/package.rb
@@ -139,6 +139,9 @@ module Puppet
# funky definitions of 'in sync'.
def insync?
@should ||= []
+
+ @latest = nil unless defined? @latest
+ @lateststamp ||= (Time.now.to_i - 1000)
# Iterate across all of the should values, and see how they
# turn out.
@should.each { |should|
@@ -155,16 +158,24 @@ module Puppet
)
end
- begin
- latest = @parent.latest
- rescue => detail
- self.fail "Could not get latest version: %s" % detail
+ # Don't run 'latest' more than about every 5 minutes
+ if @latest and ((Time.now.to_i - @lateststamp) / 60) < 5
+ #self.debug "Skipping latest check"
+ else
+ self.warning "latest: %s, stamp: %s" %
+ [@latest.inspect, (Time.now.to_i - @lateststamp) / 60]
+ begin
+ @latest = @parent.latest
+ @lateststamp = Time.now.to_i
+ rescue => detail
+ self.fail "Could not get latest version: %s" % detail
+ end
end
case @is
- when latest:
+ when @latest:
return true
when :present:
- if @parent[:version] == latest
+ if @parent[:version] == @latest
return true
end
else
diff --git a/lib/puppet/type/package/apt.rb b/lib/puppet/type/package/apt.rb
index c959503ae..f35abf8ec 100755
--- a/lib/puppet/type/package/apt.rb
+++ b/lib/puppet/type/package/apt.rb
@@ -30,6 +30,7 @@ module Puppet
# What's the latest package version available?
def latest
cmd = "apt-cache showpkg %s" % self[:name]
+ self.info "Executing %s" % cmd.inspect
output = %x{#{cmd} 2>&1}
unless $? == 0
diff --git a/lib/puppet/type/package/yum.rb b/lib/puppet/type/package/yum.rb
index bc1ef9bbe..653c3eb01 100755
--- a/lib/puppet/type/package/yum.rb
+++ b/lib/puppet/type/package/yum.rb
@@ -15,7 +15,7 @@ module Puppet
# What's the latest package version available?
def latest
- cmd = "yum list updates %s" % self[:name]
+ cmd = "yum list %s" % self[:name]
self.info "Executing %s" % cmd.inspect
output = %x{#{cmd} 2>&1}