BBlack has submitted this change and it was merged.

Change subject: fix git::clone umask issues T87843
......................................................................


fix git::clone umask issues T87843

Change-Id: Ifb3935d6ac310114d724ac6366255e583785c6f8
---
M manifests/role/zuul.pp
M modules/geowiki/manifests/private_data.pp
M modules/git/manifests/clone.pp
3 files changed, 21 insertions(+), 2 deletions(-)

Approvals:
  Krinkle: Looks good to me, but someone else must approve
  BBlack: Verified; Looks good to me, approved



diff --git a/manifests/role/zuul.pp b/manifests/role/zuul.pp
index 355fcd5..6e2e028 100644
--- a/manifests/role/zuul.pp
+++ b/manifests/role/zuul.pp
@@ -115,6 +115,7 @@
         owner     => zuul,
         group     => zuul,
         mode      => '0775',
+        umask     => '002',
         origin    => 'https://gerrit.wikimedia.org/r/p/integration/config.git',
         branch    => 
$role::zuul::configuration::server[$::realm]['config_git_branch'],
     }
diff --git a/modules/geowiki/manifests/private_data.pp 
b/modules/geowiki/manifests/private_data.pp
index 8e1dc01..25f30a1 100644
--- a/modules/geowiki/manifests/private_data.pp
+++ b/modules/geowiki/manifests/private_data.pp
@@ -38,6 +38,7 @@
         owner     => $::geowiki::params::user,
         group     => 'www-data',
         mode      => 0750,
+        umask     => 027,
         require   => File[$::geowiki::params::private_data_bare_path],
     }
 }
diff --git a/modules/git/manifests/clone.pp b/modules/git/manifests/clone.pp
index 8340494..76cbd62 100644
--- a/modules/git/manifests/clone.pp
+++ b/modules/git/manifests/clone.pp
@@ -22,6 +22,8 @@
 # $+recurse_submodules:: If true, git
 # $+shared+:: Enable git's core.sharedRepository=group setting for sharing the
 # repository between serveral users, default: false
+# $+umask+:: umask value that git operations should run under,
+#            default 002 if shared, 022 otherwise.
 # $+mode+:: Permission mode of $directory, default: 2755 if shared, 0755 
otherwise
 # $+ssh+:: SSH command/wrapper to use when checking out, default: ''
 # $+timeout+:: Time out in seconds for the exec command, default: 300
@@ -54,6 +56,7 @@
     $timeout='300',
     $depth='full',
     $recurse_submodules=false,
+    $umask=undef,
     $mode=undef) {
 
     $gerrit_url_format = 'https://gerrit.wikimedia.org/r/p/%s.git'
@@ -72,6 +75,17 @@
         fail('Shared repositories must leave "mode" unspecified or set to 
277?, specified as octal.')
     } else {
         $file_mode = $mode
+    }
+
+    if $umask == undef {
+        $git_umask = $shared ? {
+            true    => '002',
+            default => '022',
+        }
+    } elsif $shared and $umask !~ /^00\d$/ {
+        fail('Shared repositories must leave "umask" unspecified or set to 
00?, specified as octal.')
+    } else {
+        $git_umask = $umask
     }
 
     case $ensure {
@@ -109,11 +123,11 @@
 
             if $shared {
                 $shared_arg = '-c core.sharedRepository=group'
-                $git = 'umask 002; /usr/bin/git'
             } else {
                 $shared_arg = ''
-                $git = '/usr/bin/git'
             }
+
+            $git = '/usr/bin/git'
 
             # set PATH for following execs
             Exec { path => '/usr/bin:/bin' }
@@ -127,6 +141,7 @@
                 creates     => "${directory}/.git/config",
                 user        => $owner,
                 group       => $group,
+                umask       => $git_umask,
                 timeout     => $timeout,
                 require     => Package['git-core'],
             }
@@ -153,6 +168,7 @@
                     unless    => "${git} fetch && /usr/bin/git diff --quiet 
remotes/origin/HEAD",
                     user      => $owner,
                     group     => $group,
+                    umask     => $git_umask,
                     require   => Exec["git_clone_${title}"],
                 }
                 # If we want submodules up to date, then we need
@@ -167,6 +183,7 @@
                         refreshonly => true,
                         user        => $owner,
                         group       => $group,
+                        umask       => $git_umask,
                         subscribe   => Exec["git_pull_${title}"],
                     }
                 }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ifb3935d6ac310114d724ac6366255e583785c6f8
Gerrit-PatchSet: 3
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: BBlack <[email protected]>
Gerrit-Reviewer: BBlack <[email protected]>
Gerrit-Reviewer: BryanDavis <[email protected]>
Gerrit-Reviewer: Hashar <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to