diff options
author | Nibalizer <krum.spencer@gmail.com> | 2011-08-18 10:56:51 -0700 |
---|---|---|
committer | Nibalizer <krum.spencer@gmail.com> | 2011-08-18 10:56:51 -0700 |
commit | 18d4cf890c01e756c05cdf4e40972a4b0b229d66 (patch) | |
tree | 9c3d9eb4e1079ee4984b789e57c8c5f171d876cf | |
parent | 2477a2ed69d3f3443b5d941ae9484d000eb36dbb (diff) | |
parent | d84d3e29c9e3f1d9771e5df5ab659e16513a9a06 (diff) |
Merge pull request #6 from justintime/svn-basic-auth
Adding basic_auth feature and adding --non-interactive to all svn command
-rw-r--r-- | lib/puppet/provider/vcsrepo/svn.rb | 25 | ||||
-rw-r--r-- | lib/puppet/type/vcsrepo.rb | 11 |
2 files changed, 29 insertions, 7 deletions
diff --git a/lib/puppet/provider/vcsrepo/svn.rb b/lib/puppet/provider/vcsrepo/svn.rb index 28f1167..5590a71 100644 --- a/lib/puppet/provider/vcsrepo/svn.rb +++ b/lib/puppet/provider/vcsrepo/svn.rb @@ -7,7 +7,7 @@ Puppet::Type.type(:vcsrepo).provide(:svn, :parent => Puppet::Provider::Vcsrepo) :svnadmin => 'svnadmin' defaultfor :svn => :exists - has_features :filesystem_types, :reference_tracking + has_features :filesystem_types, :reference_tracking, :basic_auth def create if !@resource.value(:source) @@ -41,30 +41,43 @@ Puppet::Type.type(:vcsrepo).provide(:svn, :parent => Puppet::Provider::Vcsrepo) end end end + + def buildargs + args = ['--non-interactive'] + if @resource.value(:basic_auth_username) && @resource.value(:basic_auth_password) + args.push('--username', @resource.value(:basic_auth_username)) + args.push('--password', @resource.value(:basic_auth_password)) + args.push('--no-auth-cache') + end + return args + end def latest + args = buildargs.push('info', '-r', 'HEAD') at_path do - svn('info', '-r', 'HEAD')[/^Revision:\s+(\d+)/m, 1] + svn(*args)[/^Revision:\s+(\d+)/m, 1] end end def revision + args = buildargs.push('info') at_path do - svn('info')[/^Revision:\s+(\d+)/m, 1] + svn(*args)[/^Revision:\s+(\d+)/m, 1] end end def revision=(desired) + args = buildargs.push('update', '-r', desired) at_path do - svn('update', '-r', desired) + svn(*args) end update_owner end private - def checkout_repository(source, path, revision = nil) - args = ['checkout'] + def checkout_repository(source, path, revision) + args = buildargs.push('checkout') if revision args.push('-r', revision) end diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb index 6b35779..9bf8311 100644 --- a/lib/puppet/type/vcsrepo.rb +++ b/lib/puppet/type/vcsrepo.rb @@ -5,7 +5,8 @@ Puppet::Type.newtype(:vcsrepo) do feature :gzip_compression, "The provider supports explicit GZip compression levels" - + feature :basic_auth, + "The provider supports HTTP Basic Authentication" feature :bare_repositories, "The provider differentiates between bare repositories and those with working copies", @@ -136,6 +137,14 @@ Puppet::Type.newtype(:vcsrepo) do end end + newparam :basic_auth_username, :required_features => [:basic_auth] do + desc "HTTP Basic Auth username" + end + + newparam :basic_auth_password, :required_features => [:basic_auth] do + desc "HTTP Basic Auth password" + end + newparam :identity, :required_features => [:ssh_identity] do desc "SSH identity file" end |