Due to the glob pattern used, we are trying to import manifests twice.
Since it isn't possible (see #4205), it is not possible to use a pattern
in an import statement.
This patch makes sure manifests are returned only once.

Signed-off-by: Brice Figureau <[email protected]>
---
 lib/puppet/parser/files.rb     |    2 +-
 spec/unit/parser/files_spec.rb |    6 ++++++
 2 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/lib/puppet/parser/files.rb b/lib/puppet/parser/files.rb
index 7497434..e492cfb 100644
--- a/lib/puppet/parser/files.rb
+++ b/lib/puppet/parser/files.rb
@@ -24,7 +24,7 @@ module Puppet::Parser::Files
       # Than that would be a "no."
     end
     abspat = File::expand_path(start, cwd)
-    [nil, Dir.glob(abspat + (File.extname(abspat).empty? ? '{,.pp,.rb}' : '' 
)).reject { |f| FileTest.directory?(f) }]
+    [nil, Dir.glob(abspat + (File.extname(abspat).empty? ? '{,.pp,.rb}' : '' 
)).reject { |f| FileTest.directory?(f) }.uniq]
   end
 
   # Find the concrete file denoted by +file+. If +file+ is absolute,
diff --git a/spec/unit/parser/files_spec.rb b/spec/unit/parser/files_spec.rb
index d1b5491..fcfbfa6 100644
--- a/spec/unit/parser/files_spec.rb
+++ b/spec/unit/parser/files_spec.rb
@@ -173,6 +173,12 @@ describe Puppet::Parser::Files do
       FileTest.expects(:directory?).with(dir).returns(true)
       Puppet::Parser::Files.find_manifests(pattern)[1].should == [file]
     end
+
+    it "should return files once only" do
+      pattern = @basepath + "/fully/qualified/pattern/*"
+      Dir.expects(:glob).with(pattern+'{,.pp,.rb}').returns(%w{one two one})
+      Puppet::Parser::Files.find_manifests(pattern)[1].should == %w{one two}
+    end
   end
 
   describe "when searching for manifests in a found module" do
-- 
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