summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet')
-rw-r--r--lib/puppet/type/package.rb23
-rwxr-xr-xlib/puppet/type/package/apt.rb1
-rwxr-xr-xlib/puppet/type/package/yum.rb2
3 files changed, 19 insertions, 7 deletions
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}