From 2b190756260346931b8f9a0dda8afc0c815710d6 Mon Sep 17 00:00:00 2001 From: Reid Vandewiele Date: Sun, 20 Oct 2013 22:19:34 -0700 Subject: Add autorequire for Package['git'] If the git package is being managed, it stands to reason that the git package should be installed before trying to potentially manage git repositories using vcsrepo resources. This commit adds an autorequire to the vcsrepo type that reflects the above premise. --- lib/puppet/type/vcsrepo.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib/puppet/type/vcsrepo.rb') diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb index 8225721..ad90ced 100644 --- a/lib/puppet/type/vcsrepo.rb +++ b/lib/puppet/type/vcsrepo.rb @@ -191,4 +191,8 @@ Puppet::Type.newtype(:vcsrepo) do desc "The value to be used for the CVS_RSH environment variable." end + autorequire(:package) do + ['git', 'git-core'] + end + end -- cgit v1.2.3 From 0ea16bba47cf177dc17fa14f20d54d0091a09865 Mon Sep 17 00:00:00 2001 From: Felipe Reyes Date: Thu, 2 Jan 2014 18:13:40 -0300 Subject: Add the option to shallow clones with git The new parameter used to indicate that you want a shallow clone is `:depth` --- lib/puppet/type/vcsrepo.rb | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib/puppet/type/vcsrepo.rb') diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb index ad90ced..1dab2b9 100644 --- a/lib/puppet/type/vcsrepo.rb +++ b/lib/puppet/type/vcsrepo.rb @@ -37,6 +37,9 @@ Puppet::Type.newtype(:vcsrepo) do feature :cvs_rsh, "The provider understands the CVS_RSH environment variable" + feature :depth, + "The provider can do shallow clones" + ensurable do attr_accessor :latest @@ -191,6 +194,10 @@ Puppet::Type.newtype(:vcsrepo) do desc "The value to be used for the CVS_RSH environment variable." end + newparam :depth, :required_features => [:depth] do + desc "The value to be used to do a shallow clone." + end + autorequire(:package) do ['git', 'git-core'] end -- cgit v1.2.3 From cfcd03a7c59eaa6b81de8c767bbd91e6d278c0f2 Mon Sep 17 00:00:00 2001 From: Travis Fields Date: Tue, 13 May 2014 11:27:02 -0700 Subject: Fix issue where force=>true was not destroying repository then recreating --- lib/puppet/type/vcsrepo.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'lib/puppet/type/vcsrepo.rb') 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 -- cgit v1.2.3 From 17c91e7ab8f89453c926b432e5ff82335d280e90 Mon Sep 17 00:00:00 2001 From: Peter Souter Date: Mon, 2 Jun 2014 23:03:19 +0100 Subject: (MODULES-1014) Adding noop mode option --- lib/puppet/type/vcsrepo.rb | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'lib/puppet/type/vcsrepo.rb') diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb index 3dd7bc6..0e4450b 100644 --- a/lib/puppet/type/vcsrepo.rb +++ b/lib/puppet/type/vcsrepo.rb @@ -98,10 +98,15 @@ Puppet::Type.newtype(:vcsrepo) do 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 + if noop? + notice "Noop Mode - Would have deleted repository" + notice "Noop Mode - Would have created repository from latest" + else + notice "Deleting current repository before recloning" + prov.destroy + notice "Create repository from latest" + prov.create + end end (@should.include?(:latest) && prov.latest?) ? :latest : :present elsif prov.class.feature?(:bare_repositories) and prov.bare_exists? @@ -208,4 +213,12 @@ Puppet::Type.newtype(:vcsrepo) do ['git', 'git-core'] end + def noop? + if defined?(@noop) + @noop + else + Puppet[:noop] + end + end + end -- cgit v1.2.3 From d2bb24e33860090a7051ce9ef6dfbb695cf23447 Mon Sep 17 00:00:00 2001 From: Paul Allen Date: Wed, 11 Jun 2014 22:32:21 +0100 Subject: Basic Perforce provider Supports sync and client create/update --- lib/puppet/type/vcsrepo.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'lib/puppet/type/vcsrepo.rb') diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb index 0e4450b..ad964c5 100644 --- a/lib/puppet/type/vcsrepo.rb +++ b/lib/puppet/type/vcsrepo.rb @@ -40,6 +40,9 @@ Puppet::Type.newtype(:vcsrepo) do feature :depth, "The provider can do shallow clones" + feature :p4_config, + "The provider understands Perforce Configuration" + ensurable do attr_accessor :latest @@ -209,6 +212,22 @@ Puppet::Type.newtype(:vcsrepo) do desc "The value to be used to do a shallow clone." end + newparam :p4port, :required_features => [:p4_config] do + desc "The Perforce P4PORT environment." + end + + newparam :p4user, :required_features => [:p4_config] do + desc "The Perforce P4USER environment." + end + + newparam :p4client, :required_features => [:p4_config] do + desc "The Perforce P4CLIENT environment." + end + + newparam :p4charset, :required_features => [:p4_config] do + desc "The Perforce P4CHARSET environment." + end + autorequire(:package) do ['git', 'git-core'] end -- cgit v1.2.3 From 8256eff1800e1377c7cf2b961ef63074a2ede0d4 Mon Sep 17 00:00:00 2001 From: Paul Allen Date: Mon, 16 Jun 2014 17:04:52 +0100 Subject: Add support for passing password/ticket MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Uses param ‘p4passwd’ to set P4PASSWD environment to pass a valid ticket or password. --- lib/puppet/type/vcsrepo.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib/puppet/type/vcsrepo.rb') diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb index ad964c5..649789a 100644 --- a/lib/puppet/type/vcsrepo.rb +++ b/lib/puppet/type/vcsrepo.rb @@ -227,6 +227,10 @@ Puppet::Type.newtype(:vcsrepo) do newparam :p4charset, :required_features => [:p4_config] do desc "The Perforce P4CHARSET environment." end + + newparam :p4passwd, :required_features => [:p4_config] do + desc "The Perforce P4PASSWD environment." + end autorequire(:package) do ['git', 'git-core'] -- cgit v1.2.3 From 319f9fbe1954fd172da638f3ccd76e58c3ec8c7f Mon Sep 17 00:00:00 2001 From: Paul Allen Date: Mon, 23 Jun 2014 15:51:28 +0100 Subject: Added support for p4config. - Removed p4port, p4client, p4user to keep name space clean. - Changed notify to Puppet.debug - Updated markdown and examples - Updated unit tests --- lib/puppet/type/vcsrepo.rb | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) (limited to 'lib/puppet/type/vcsrepo.rb') diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb index 649789a..7ada022 100644 --- a/lib/puppet/type/vcsrepo.rb +++ b/lib/puppet/type/vcsrepo.rb @@ -40,7 +40,7 @@ Puppet::Type.newtype(:vcsrepo) do feature :depth, "The provider can do shallow clones" - feature :p4_config, + feature :p4config, "The provider understands Perforce Configuration" ensurable do @@ -212,26 +212,10 @@ Puppet::Type.newtype(:vcsrepo) do desc "The value to be used to do a shallow clone." end - newparam :p4port, :required_features => [:p4_config] do - desc "The Perforce P4PORT environment." - end - - newparam :p4user, :required_features => [:p4_config] do - desc "The Perforce P4USER environment." - end - - newparam :p4client, :required_features => [:p4_config] do - desc "The Perforce P4CLIENT environment." + newparam :p4config, :required_features => [:p4config] do + desc "The Perforce P4CONFIG environment." end - newparam :p4charset, :required_features => [:p4_config] do - desc "The Perforce P4CHARSET environment." - end - - newparam :p4passwd, :required_features => [:p4_config] do - desc "The Perforce P4PASSWD environment." - end - autorequire(:package) do ['git', 'git-core'] end -- cgit v1.2.3 From 818f5298b6be3b1a25e997ba84eae237d9051be9 Mon Sep 17 00:00:00 2001 From: Hunter Haugen Date: Fri, 20 Jun 2014 13:48:02 -0700 Subject: Update noop to work --- lib/puppet/type/vcsrepo.rb | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'lib/puppet/type/vcsrepo.rb') diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb index 0e4450b..42767ab 100644 --- a/lib/puppet/type/vcsrepo.rb +++ b/lib/puppet/type/vcsrepo.rb @@ -98,9 +98,8 @@ Puppet::Type.newtype(:vcsrepo) do if prov if prov.working_copy_exists? if @resource.value(:force) - if noop? - notice "Noop Mode - Would have deleted repository" - notice "Noop Mode - Would have created repository from latest" + if noop + notice "Noop Mode - Would have deleted repository and re-created from latest" else notice "Deleting current repository before recloning" prov.destroy @@ -212,13 +211,4 @@ Puppet::Type.newtype(:vcsrepo) do autorequire(:package) do ['git', 'git-core'] end - - def noop? - if defined?(@noop) - @noop - else - Puppet[:noop] - end - end - end -- cgit v1.2.3 From 56f25d57dfa26de618416e9bdd4a853296ffcbc1 Mon Sep 17 00:00:00 2001 From: Morgan Haskel Date: Fri, 26 Dec 2014 15:27:20 -0800 Subject: MODULES-1596 - Repository repeatedly destroyed/created with force The `retrieve` method was calling `create` and `destroy` on every run with `force => true`. Retrieve should not be making any changes to the system, so removed that code, and updated `working_copy_exists` to make sure that the directory not only contains a `.git` directory, but also if `source` is specified it also matches `#{path}/.git/config` so that it will overwrite a git repo with a different source. Updated tests to not check for the old broken behavior. Added a regression test. --- lib/puppet/type/vcsrepo.rb | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'lib/puppet/type/vcsrepo.rb') diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb index f678389..b8836d4 100644 --- a/lib/puppet/type/vcsrepo.rb +++ b/lib/puppet/type/vcsrepo.rb @@ -100,16 +100,6 @@ Puppet::Type.newtype(:vcsrepo) do prov = @resource.provider if prov if prov.working_copy_exists? - if @resource.value(:force) - if noop - notice "Noop Mode - Would have deleted repository and re-created from latest" - else - notice "Deleting current repository before recloning" - prov.destroy - notice "Create repository from latest" - prov.create - end - end (@should.include?(:latest) && prov.latest?) ? :latest : :present elsif prov.class.feature?(:bare_repositories) and prov.bare_exists? :bare -- cgit v1.2.3 From dfe5f9cc316a43793da2cb1c4adbc66503907460 Mon Sep 17 00:00:00 2001 From: dduvnjak Date: Sun, 18 Jan 2015 10:49:03 +0100 Subject: Add submodules feature to git provider --- lib/puppet/type/vcsrepo.rb | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'lib/puppet/type/vcsrepo.rb') diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb index f678389..3f34c57 100644 --- a/lib/puppet/type/vcsrepo.rb +++ b/lib/puppet/type/vcsrepo.rb @@ -43,6 +43,9 @@ Puppet::Type.newtype(:vcsrepo) do feature :p4config, "The provider understands Perforce Configuration" + feature :submodules, + "The repository contains submodules which can be optionally initialized" + ensurable do attr_accessor :latest @@ -215,6 +218,12 @@ Puppet::Type.newtype(:vcsrepo) do desc "The Perforce P4CONFIG environment." end + newparam :submodules, :required_features => [:submodules] do + desc "Initialize and update each submodule in the repository." + newvalues(:true, :false) + defaultto true + end + autorequire(:package) do ['git', 'git-core'] end -- cgit v1.2.3 From 28f8646e4669bacf7a87ffc8694715333355cd32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?W=C5=82odzimierz=20Gajda?= Date: Wed, 22 Oct 2014 10:02:29 +0200 Subject: Use branch parameter --- lib/puppet/type/vcsrepo.rb | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib/puppet/type/vcsrepo.rb') diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb index 3bf4029..fdcf9ab 100644 --- a/lib/puppet/type/vcsrepo.rb +++ b/lib/puppet/type/vcsrepo.rb @@ -40,6 +40,9 @@ Puppet::Type.newtype(:vcsrepo) do feature :depth, "The provider can do shallow clones" + feature :branch, + "The name of the branch" + feature :p4config, "The provider understands Perforce Configuration" @@ -204,6 +207,10 @@ Puppet::Type.newtype(:vcsrepo) do desc "The value to be used to do a shallow clone." end + newparam :branch, :required_features => [:branch] do + desc "The name of the branch to clone." + end + newparam :p4config, :required_features => [:p4config] do desc "The Perforce P4CONFIG environment." end -- cgit v1.2.3 From 7fdfa1b4047e134053f6df95f414cb3fc44796cd Mon Sep 17 00:00:00 2001 From: Daniel DiSisto Date: Fri, 6 Mar 2015 17:01:38 +1100 Subject: (MODULES-1551) Add support for SVN conflict handling --- lib/puppet/type/vcsrepo.rb | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib/puppet/type/vcsrepo.rb') diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb index 3bf4029..52eace8 100644 --- a/lib/puppet/type/vcsrepo.rb +++ b/lib/puppet/type/vcsrepo.rb @@ -46,6 +46,9 @@ Puppet::Type.newtype(:vcsrepo) do feature :submodules, "The repository contains submodules which can be optionally initialized" + feature :conflict, + "The provider supports automatic conflict resolution" + ensurable do attr_accessor :latest @@ -214,6 +217,10 @@ Puppet::Type.newtype(:vcsrepo) do defaultto true end + newparam :conflict do + desc "The action to take if conflicts exist between repository and working copy" + end + autorequire(:package) do ['git', 'git-core'] end -- cgit v1.2.3 From 6b01539dfee074b798f7e96cb228a42ae6a42c8b Mon Sep 17 00:00:00 2001 From: Matthias Pigulla Date: Sat, 15 Aug 2015 15:45:39 +0200 Subject: Autorequire Package['mercurial'] Along the lines of 2b190756260346931b8f9a0dda8afc0c815710d6, if the Mercurial package is being managed, it stands to reason that the Mercurial package should be installed before trying to potentially manage Mercurial repositories using vcsrepo resources. This commit adds an autorequire to the vcsrepo type that reflects the above premise. --- lib/puppet/type/vcsrepo.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/puppet/type/vcsrepo.rb') diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb index e5dfbb5..ed5d55a 100644 --- a/lib/puppet/type/vcsrepo.rb +++ b/lib/puppet/type/vcsrepo.rb @@ -229,6 +229,6 @@ Puppet::Type.newtype(:vcsrepo) do end autorequire(:package) do - ['git', 'git-core'] + ['git', 'git-core', 'mercurial'] end end -- cgit v1.2.3 From 7758331f503a9198921362761079cbfd941c625e Mon Sep 17 00:00:00 2001 From: monai Date: Wed, 9 Sep 2015 19:20:58 +0300 Subject: Add feature depth and param trust_server_cert to svn added param trust server cert updated depth feature updated README.markdown trust_server_cert is not feature trust_server_cert default value should be false add test for depth and trust_server_cert --- lib/puppet/type/vcsrepo.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'lib/puppet/type/vcsrepo.rb') diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb index e5dfbb5..dfc2ec8 100644 --- a/lib/puppet/type/vcsrepo.rb +++ b/lib/puppet/type/vcsrepo.rb @@ -38,7 +38,7 @@ Puppet::Type.newtype(:vcsrepo) do "The provider understands the CVS_RSH environment variable" feature :depth, - "The provider can do shallow clones" + "The provider can do shallow clones or set scope limit" feature :branch, "The name of the branch" @@ -227,6 +227,12 @@ Puppet::Type.newtype(:vcsrepo) do newparam :conflict do desc "The action to take if conflicts exist between repository and working copy" end + + newparam :trust_server_cert do + desc "Trust server certificate" + newvalues(:true, :false) + defaultto false + end autorequire(:package) do ['git', 'git-core'] -- cgit v1.2.3 From bf0f40ae4efa9095ca9a877acefdb781e1fbf1cd Mon Sep 17 00:00:00 2001 From: Hunter Haugen Date: Thu, 15 Oct 2015 10:42:01 -0700 Subject: Fix :false to be default value false is not a valid value; only :false is. --- lib/puppet/type/vcsrepo.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/puppet/type/vcsrepo.rb') diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb index da1dcde..290bdad 100644 --- a/lib/puppet/type/vcsrepo.rb +++ b/lib/puppet/type/vcsrepo.rb @@ -231,7 +231,7 @@ Puppet::Type.newtype(:vcsrepo) do newparam :trust_server_cert do desc "Trust server certificate" newvalues(:true, :false) - defaultto false + defaultto :false end autorequire(:package) do -- cgit v1.2.3 From b8f25cea95317a4b2a622e2799f1aa7ba159bdca Mon Sep 17 00:00:00 2001 From: "Strech (Sergey Fedorov)" Date: Tue, 22 Dec 2015 23:02:26 +0100 Subject: Add mirror option for git cloning Example: vcsrepo { '/path/to/repo': ensure => mirror, provider => git, source => 'git://example.com/repo.git', } --- lib/puppet/type/vcsrepo.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'lib/puppet/type/vcsrepo.rb') diff --git a/lib/puppet/type/vcsrepo.rb b/lib/puppet/type/vcsrepo.rb index 290bdad..e2ef0b7 100644 --- a/lib/puppet/type/vcsrepo.rb +++ b/lib/puppet/type/vcsrepo.rb @@ -69,6 +69,8 @@ Puppet::Type.newtype(:vcsrepo) do end when :bare return is == :bare + when :mirror + return is == :mirror end end @@ -83,6 +85,12 @@ Puppet::Type.newtype(:vcsrepo) do end end + newvalue :mirror, :required_features => [:bare_repositories] do + if !provider.exists? + provider.create + end + end + newvalue :absent do provider.destroy end @@ -227,7 +235,7 @@ Puppet::Type.newtype(:vcsrepo) do newparam :conflict do desc "The action to take if conflicts exist between repository and working copy" end - + newparam :trust_server_cert do desc "Trust server certificate" newvalues(:true, :false) -- cgit v1.2.3