added support for changing upstream repo url
authorMatthew Slowe <M.Slowe@kent.ac.uk>
Tue, 2 Jul 2013 14:59:12 +0000 (15:59 +0100)
committerAaron Stone <aaron@serendipity.cx>
Thu, 25 Jul 2013 20:57:42 +0000 (13:57 -0700)
added checks that the URL of the WC matches the URL from the manifest

changed from using "update" to "switch"

lib/puppet/provider/vcsrepo/svn.rb

index 3132c36..9de0812 100644 (file)
@@ -40,7 +40,7 @@ Puppet::Type.type(:vcsrepo).provide(:svn, :parent => Puppet::Provider::Vcsrepo)
 
   def latest?
     at_path do
-      self.revision >= self.latest
+      (self.revision >= self.latest) and (@resource.value(:source) == self.sourceurl)
     end
   end
 
@@ -70,6 +70,13 @@ Puppet::Type.type(:vcsrepo).provide(:svn, :parent => Puppet::Provider::Vcsrepo)
     end
   end
 
+  def sourceurl
+    args = buildargs.push('info')
+    at_path do
+      svn(*args)[/^URL:\s+(\S+)/m, 1]
+    end
+  end
+
   def revision
     args = buildargs.push('info')
     at_path do
@@ -78,7 +85,7 @@ Puppet::Type.type(:vcsrepo).provide(:svn, :parent => Puppet::Provider::Vcsrepo)
   end
 
   def revision=(desired)
-    args = buildargs.push('update', '-r', desired)
+    args = buildargs.push('switch', '-r', desired, @resource.value(:source))
     at_path do
       svn(*args)
     end