Fix (#10440) by making all commands optional
authorMatthias Pigulla <mp@webfactory.de>
Thu, 6 Oct 2011 21:35:41 +0000 (23:35 +0200)
committerMatthias Pigulla <mp@webfactory.de>
Wed, 2 Nov 2011 23:44:18 +0000 (00:44 +0100)
This will work around the issue in http://projects.puppetlabs.com/issues/6907, as the agent run will no longer fail if one of the commands is not installed.

This gives you enough time to install the necessary packages through Puppet (make sure you get the dependencies right), as the agent won't fail unless you really start accessing the repository.

lib/puppet/provider/vcsrepo/bzr.rb
lib/puppet/provider/vcsrepo/cvs.rb
lib/puppet/provider/vcsrepo/git.rb
lib/puppet/provider/vcsrepo/hg.rb
lib/puppet/provider/vcsrepo/svn.rb

index a060562..35226d1 100644 (file)
@@ -3,7 +3,7 @@ require File.join(File.dirname(__FILE__), '..', 'vcsrepo')
 Puppet::Type.type(:vcsrepo).provide(:bzr, :parent => Puppet::Provider::Vcsrepo) do
   desc "Supports Bazaar repositories"
 
-  commands   :bzr => 'bzr'
+  optional_commands   :bzr => 'bzr'
   defaultfor :bzr => :exists
   has_features :reference_tracking
 
index e82c23a..1e5ce80 100644 (file)
@@ -3,7 +3,7 @@ require File.join(File.dirname(__FILE__), '..', 'vcsrepo')
 Puppet::Type.type(:vcsrepo).provide(:cvs, :parent => Puppet::Provider::Vcsrepo) do
   desc "Supports CVS repositories/workspaces"
 
-  commands   :cvs => 'cvs'
+  optional_commands   :cvs => 'cvs'
   defaultfor :cvs => :exists
   has_features :gzip_compression, :reference_tracking
   
index 6756fc0..51e48a9 100644 (file)
@@ -4,7 +4,7 @@ Puppet::Type.type(:vcsrepo).provide(:git, :parent => Puppet::Provider::Vcsrepo)
   desc "Supports Git repositories"
 
   ##TODO modify the commands below so that the su - is included
-  commands :git => 'git'
+  optional_commands :git => 'git'
   defaultfor :git => :exists
   has_features :bare_repositories, :reference_tracking, :ssh_identity
 
index f967586..54205c2 100644 (file)
@@ -3,7 +3,7 @@ require File.join(File.dirname(__FILE__), '..', 'vcsrepo')
 Puppet::Type.type(:vcsrepo).provide(:hg, :parent => Puppet::Provider::Vcsrepo) do
   desc "Supports Mercurial repositories"
 
-  commands   :hg => 'hg'
+  optional_commands   :hg => 'hg'
   defaultfor :hg => :exists
   has_features :reference_tracking
 
index 6ec4612..bd420b5 100644 (file)
@@ -3,7 +3,7 @@ require File.join(File.dirname(__FILE__), '..', 'vcsrepo')
 Puppet::Type.type(:vcsrepo).provide(:svn, :parent => Puppet::Provider::Vcsrepo) do
   desc "Supports Subversion repositories"
 
-  commands :svn      => 'svn',
+  optional_commands :svn      => 'svn',
            :svnadmin => 'svnadmin'
 
   defaultfor :svn => :exists