Giuseppe Lavagetto has submitted this change and it was merged.

Change subject: role::deployment::server: create $base_path variable
......................................................................


role::deployment::server: create $base_path variable

We reference /srv/deployment in so many places that, in fact, we should
probably make it a global hiera variable. But for now this is good enough.

Change-Id: Ife7c7a6dbfe4c06bfac26f1158d75ed64b001faa
---
M modules/role/manifests/deployment/server.pp
M modules/scap/lib/puppet/provider/scap_source/default.rb
M modules/scap/lib/puppet/type/scap_source.rb
M modules/scap/manifests/source.pp
M modules/scap/spec/types/scap_source_spec.rb
5 files changed, 24 insertions(+), 7 deletions(-)

Approvals:
  Giuseppe Lavagetto: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/modules/role/manifests/deployment/server.pp 
b/modules/role/manifests/deployment/server.pp
index 11a16cc..48b115b 100644
--- a/modules/role/manifests/deployment/server.pp
+++ b/modules/role/manifests/deployment/server.pp
@@ -4,7 +4,7 @@
 ) {
 
     include standard
-
+    $base_path = '/srv/deployment'
     include role::deployment::mediawiki
 
     ## Scap Config ##
@@ -14,6 +14,10 @@
     create_resources('keyholder::agent', hiera('scap::keyholder_agents', {}))
 
     # Create an instance of scap_source for each of the key specs in hiera.
+    Scap::Source {
+        base_path => $base_path,
+    }
+
     create_resources('scap::source', hiera('scap::sources', {}))
     ## End scap config ###
 
diff --git a/modules/scap/lib/puppet/provider/scap_source/default.rb 
b/modules/scap/lib/puppet/provider/scap_source/default.rb
index e833758..700c18a 100644
--- a/modules/scap/lib/puppet/provider/scap_source/default.rb
+++ b/modules/scap/lib/puppet/provider/scap_source/default.rb
@@ -30,8 +30,6 @@
 
   has_command(:git, '/usr/bin/git')
 
-  BASE_PATH = '/srv/deployment'
-
   # Shortand for the repo name
   def repo
     resource[:repository]
@@ -67,9 +65,9 @@
   end
 
   def target_path
-    path = File.expand_path(File.join(BASE_PATH, repo_path))
+    path = File.expand_path(File.join(resource[:base_path], repo_path))
 
-    unless path.start_with?(BASE_PATH)
+    unless path.start_with?(resource[:base_path])
       raise Puppet::Error, "Target path '#{path}' is invalid."
     end
     path
@@ -151,7 +149,7 @@
     FileUtils.remove_entry_secure(dir, :force => true)
     loop do
       dir, _ = File.split(dir)
-      break if BASE_PATH.include?(dir)
+      break if resource[:base_path].include?(dir)
       begin
         Dir.delete(dir)
       rescue Errno::ENOTEMPTY
diff --git a/modules/scap/lib/puppet/type/scap_source.rb 
b/modules/scap/lib/puppet/type/scap_source.rb
index 45e9c1e..e5c062b 100644
--- a/modules/scap/lib/puppet/type/scap_source.rb
+++ b/modules/scap/lib/puppet/type/scap_source.rb
@@ -153,4 +153,9 @@
     newvalues(:gerrit, :phabricator)
     defaultto :gerrit
   end
+
+  newparam(:base_path) do
+    desc "The base path for deploying the repositories"
+    defaultto '/srv/deployment'
+  end
 end
diff --git a/modules/scap/manifests/source.pp b/modules/scap/manifests/source.pp
index e36ef90..c6585f3 100644
--- a/modules/scap/manifests/source.pp
+++ b/modules/scap/manifests/source.pp
@@ -41,6 +41,10 @@
 #   Group owner of cloned repository.
 #   Default: wikidev
 #
+# [*base_path*]
+#   Base path for deployments.
+#   Default: /srv/deployment
+#
 # == Usage
 #
 #   # Clones the 'repo/without/external/scap' repsitory into
@@ -77,11 +81,13 @@
     # how to bootstrap itself properly without trebuchet.
     $owner                = 'trebuchet',
     $group                = 'wikidev',
+    $base_path            = '/srv/deployment'
 ) {
     scap_source { $title:
         repository      => $repository,
         scap_repository => $scap_repository,
         owner           => $owner,
         group           => $group,
+        base_path       => $base_path,
     }
 }
diff --git a/modules/scap/spec/types/scap_source_spec.rb 
b/modules/scap/spec/types/scap_source_spec.rb
index f87ec1f..de4fcba 100644
--- a/modules/scap/spec/types/scap_source_spec.rb
+++ b/modules/scap/spec/types/scap_source_spec.rb
@@ -4,7 +4,7 @@
 
 describe resource_class do
   describe 'when validating attributes' do
-    [:scap_repository, :origin, :owner, :group].each do |param|
+    [:scap_repository, :origin, :owner, :group, :base_path].each do |param|
       it "should have a #{param} parameter" do
         expect(described_class.attrtype(param)).to eq(:param)
       end
@@ -39,5 +39,9 @@
     it "origin should be gerrit" do
       expect(subject[:origin]).to eq(:gerrit)
     end
+
+    it "base_path should be /srv/deployment" do
+      expect(subject[:base_path]).to eq('/srv/deployment')
+    end
   end
 end

-- 
To view, visit https://gerrit.wikimedia.org/r/314511
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ife7c7a6dbfe4c06bfac26f1158d75ed64b001faa
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Giuseppe Lavagetto <[email protected]>
Gerrit-Reviewer: Giuseppe Lavagetto <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to