diff options
-rw-r--r-- | CHANGELOG | 7 | ||||
-rw-r--r-- | lib/puppet/type/package.rb | 23 | ||||
-rwxr-xr-x | lib/puppet/type/package/apt.rb | 1 | ||||
-rwxr-xr-x | lib/puppet/type/package/yum.rb | 2 |
4 files changed, 26 insertions, 7 deletions
@@ -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} |