Fix (#10751) by adding a new "module" parameter for the CVS provider
authorMatthias Pigulla <mp@webfactory.de>
Fri, 11 Nov 2011 18:08:57 +0000 (19:08 +0100)
committerMatthias Pigulla <mp@webfactory.de>
Fri, 11 Nov 2011 18:27:12 +0000 (19:27 +0100)
lib/puppet/provider/vcsrepo/cvs.rb
lib/puppet/type/vcsrepo.rb

index fbe2eae..b4245bf 100644 (file)
@@ -5,7 +5,7 @@ Puppet::Type.type(:vcsrepo).provide(:cvs, :parent => Puppet::Provider::Vcsrepo)
 
   commands   :cvs => 'cvs'
   defaultfor :cvs => :exists
-  has_features :gzip_compression, :reference_tracking
+  has_features :gzip_compression, :reference_tracking, :modules
   
   def create
     if !@resource.value(:source)
@@ -72,7 +72,9 @@ Puppet::Type.type(:vcsrepo).provide(:cvs, :parent => Puppet::Provider::Vcsrepo)
   # When the source:
   # * Starts with ':' (eg, :pserver:...)
   def module_name
-    if (source = @resource.value(:source))
+    if (m = @resource.value(:module))
+      m
+    elsif (source = @resource.value(:source))
       source[0, 1] == ':' ? File.basename(source) : '.'
     end
   end
index 9bf8311..655549a 100644 (file)
@@ -22,6 +22,9 @@ Puppet::Type.newtype(:vcsrepo) do
   feature :ssh_identity,
           "The provider supports a configurable SSH identity file"
 
+  feature :modules,
+          "The repository contains modules that can be chosen of"
+
   ensurable do
     attr_accessor :latest
 
@@ -148,4 +151,8 @@ Puppet::Type.newtype(:vcsrepo) do
   newparam :identity, :required_features => [:ssh_identity] do
     desc "SSH identity file"
   end
+  
+  newparam :module, :required_features => [:modules] do
+    desc "The repository module to manage"
+  end
 end