summaryrefslogtreecommitdiff
path: root/lib/puppet/type/vcsrepo.rb
diff options
context:
space:
mode:
authorTravis Fields <tfields@commercehub.com>2014-05-13 11:27:02 -0700
committerTravis Fields <tfields@commercehub.com>2014-05-13 13:17:14 -0700
commitcfcd03a7c59eaa6b81de8c767bbd91e6d278c0f2 (patch)
tree9c12b98a82ea0666d9ba8b5925b51a7e547f1896 /lib/puppet/type/vcsrepo.rb
parent46588aa62d444c5f0a538cccec357a80cd191b93 (diff)
Fix issue where force=>true was not destroying repository then recreating
Diffstat (limited to 'lib/puppet/type/vcsrepo.rb')
-rw-r--r--lib/puppet/type/vcsrepo.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb
index 1dab2b9..3dd7bc6 100644
--- a/lib/puppet/type/vcsrepo.rb
+++ b/lib/puppet/type/vcsrepo.rb
@@ -76,7 +76,7 @@ Puppet::Type.newtype(:vcsrepo) do
end
newvalue :latest, :required_features => [:reference_tracking] do
- if provider.exists?
+ if provider.exists? && !@resource.value(:force)
if provider.respond_to?(:update_references)
provider.update_references
end
@@ -97,6 +97,12 @@ Puppet::Type.newtype(:vcsrepo) do
prov = @resource.provider
if prov
if prov.working_copy_exists?
+ if @resource.value(:force)
+ notice "Deleting current repository before recloning"
+ prov.destroy
+ notice "Create repository from latest"
+ prov.create
+ end
(@should.include?(:latest) && prov.latest?) ? :latest : :present
elsif prov.class.feature?(:bare_repositories) and prov.bare_exists?
:bare