Issue #2382 has been updated by Ryan Hutchison.

Luke Kanies wrote:
> At this point I'm comfortable accepting the patch to portupgrade, but not to 
> the package type.  We can look at that patch for the next release, but I 
> think we're too late in the cycle to apply it in this release.

Thanks for taking the time to consider this.  If you quickly glance at the 
package type patch, you will notice that it fixes a very critical part of the 
logic.

Previously it would make a call to 'provider.update' regardless if the package 
existed or not.  I simply made it more logical (if the package is absent - 
install it .. otherwise - update it.)
----------------------------------------
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: Ryan Hutchison
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to