When ensure => latest, svn didn't update.
svn provider now gets the latest revision from the repo, rather than the checkout Test with revision => <some value> as well now when ensure => latest, only refresh dependent resources if the repo is actually updated Tidied up debug messages
This commit is contained in:
parent
6112583f15
commit
dd31bce565
|
@ -27,6 +27,22 @@ Puppet::Type.type(:vcsrepo).provide(:svn, :parent => Puppet::Provider::Vcsrepo)
|
|||
FileUtils.rm_rf(@resource.value(:path))
|
||||
end
|
||||
|
||||
def latest?
|
||||
at_path do
|
||||
if self.revision < self.latest then
|
||||
return false
|
||||
else
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def latest
|
||||
at_path do
|
||||
svn('info', '-r', 'HEAD')[/^Revision:\s+(\d+)/m, 1]
|
||||
end
|
||||
end
|
||||
|
||||
def revision
|
||||
at_path do
|
||||
svn('info')[/^Revision:\s+(\d+)/m, 1]
|
||||
|
|
|
@ -19,6 +19,24 @@ Puppet::Type.newtype(:vcsrepo) do
|
|||
over time (eg, some VCS tags and branch names)"
|
||||
|
||||
ensurable do
|
||||
attr_accessor :latest
|
||||
|
||||
def insync?(is)
|
||||
@should ||= []
|
||||
|
||||
case should
|
||||
when :present
|
||||
return true unless [:absent, :purged, :held].include?(is)
|
||||
when :latest
|
||||
if provider.latest?
|
||||
return true
|
||||
else
|
||||
self.debug "%s repo revision is %s, latest is %s" %
|
||||
[@resource.name, provider.revision, provider.latest]
|
||||
return false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
newvalue :present do
|
||||
provider.create
|
||||
|
@ -37,7 +55,11 @@ Puppet::Type.newtype(:vcsrepo) do
|
|||
if provider.respond_to?(:update_references)
|
||||
provider.update_references
|
||||
end
|
||||
reference = resource.value(:revision) || provider.revision
|
||||
if provider.respond_to?(:latest?)
|
||||
reference = provider.latest || provider.revision
|
||||
else
|
||||
reference = resource.value(:revision) || provider.revision
|
||||
end
|
||||
notice "Updating to latest '#{reference}' revision"
|
||||
provider.revision = reference
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue