Issue #2382 has been updated by Luke Kanies. Status changed from Unreviewed to Needs design decision
I can definitely see the reason for the change to the port provider, but this is a potentially large change in behaviour for the package type. Apparently every other package provider that supports upgrading will install a missing app or upgrade an existing app; will portupgrade not do this? I'm concerned that making this change would require that we modify many other providers, also. At the least, have you tested this on other platforms? ---------------------------------------- Feature #2382: package provider ports: portupgrade does not work http://projects.reductivelabs.com/issues/2382 Author: Ryan Hutchison Status: Needs design decision Priority: Normal Assigned to: Category: package Target version: Complexity: Trivial Affected version: 0.24.8 Keywords: In puppet/provider/package/ports.rb the command passes argument -N which prevents installed ports from being upgraded. * Modified type 'packages.rb'. > * latest now calls install when port is absent and update when port exists, > but is not the latest version. * Modified package provider 'ports.rb'. > * update now runs portupgrade with -M BATCH=yes instead of calling install. > * install runs as normal. Patch: <pre> --- puppet/provider/package/ports.rb 2009-07-01 14:22:00.000000000 -0400 +++ puppet-patched/provider/package/ports.rb 2009-07-01 14:25:45.000000000 -0400 @@ -91,7 +91,13 @@ Puppet::Type.type(:package).provide :por end def update - install() + # -M: yes, we're a batch, so don't ask any questions + cmd = %w{-M BATCH=yes} << @resource[:name] + + output = portupgrade(*cmd) + if output =~ /\*\* No such / + raise Puppet::ExecutionFailure, "Could not find package %s" % @resource[:name] + end end end --- puppet/type/package.rb 2009-07-01 14:22:01.000000000 -0400 +++ puppet-patched/type/package.rb 2009-07-01 14:25:22.000000000 -0400 @@ -68,15 +68,20 @@ module Puppet # in the "install" method. So, check the current state now, # to compare against later. current = self.retrieve - begin - provider.update - rescue => detail - self.fail "Could not update: %s" % detail - end if current == :absent + begin + provider.install + rescue => detail + self.fail "Could not install: %s" % detail + end :package_installed else + begin + provider.update + rescue => detail + self.fail "Could not update: %s" % detail + end :package_changed end end </pre>> -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://reductivelabs.com/redmine/my/account --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en -~----------~----~----~----~------~----~------~--~---
