I opened a ticket for this issue.
http://projects.reductivelabs.com/issues/3136

That is puppet-mysql uses a type it defines in its module provider.
But load_plugin is applied on the list of files sorted alphabetically
by the agent code.
Thus puppet/type is loaded after puppet/provider.

I workaround this by building the files array with puppet://plugins/puppet/type
added first.


>From 5b9a2f91c34ef043023927a5d8a38b027be3f3b1 Mon Sep 17 00:00:00 2001
From: Alban Browaeys <[email protected]>
Date: Mon, 1 Feb 2010 18:48:09 +0100
Subject: [PATCH] Load the plugins type first.

Fix providers which require a type defined in the same module.

Signed-off-by: Alban Browaeys <[email protected]>
---
 lib/puppet/configurer/downloader.rb |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/lib/puppet/configurer/downloader.rb b/lib/puppet/
configurer/downloader.rb
index 7409fca..19861f0 100644
--- a/lib/puppet/configurer/downloader.rb
+++ b/lib/puppet/configurer/downloader.rb
@@ -30,8 +30,23 @@ class Puppet::Configurer::Downloader
         begin
             Timeout.timeout(self.class.timeout) do
                 catalog.apply do |trans|
-                    trans.changed?.find_all do |resource|
+                    changes = trans.changed?
+                    changes.find_all do |resource|
                         yield resource if block_given?
+                       source = resource[:source][0]
+                        token = source.slice("puppet://puppet/plugins/
puppet/type")
+                        if token.nil?
+                             next
+                        end
+                        files << resource[:path]
+                    end
+                    changes.find_all do |resource|
+                        yield resource if block_given?
+                       source = resource[:source][0]
+                        token = source.slice("puppet://puppet/plugins/
puppet/type")
+                        if not token.nil?
+                             next
+                        end
                         files << resource[:path]
                     end
                 end
--
1.6.6.1

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" 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-dev?hl=en.

Reply via email to