Hashar has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/56382


Change subject: package-builder learned 'cowbuilder'
......................................................................

package-builder learned 'cowbuilder'

cowbuilder is a wrapper for pbuilder which save us the need to
uncompress a base image.  That makes build a bit faster.

I thought about copy pasting the existing pbuilder class, but since both
commands are very similar, I have made the class more generic and
renamed it to 'builder'. Simply pass the 'type' you want and you should
be fine.

Change-Id: Ie0c9e0109b7752ec6059d67675fd1dd56c124bd3
---
M manifests/misc/package-builder.pp
1 file changed, 29 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/82/56382/1

diff --git a/manifests/misc/package-builder.pp 
b/manifests/misc/package-builder.pp
index 823e549..2f9a51b 100644
--- a/manifests/misc/package-builder.pp
+++ b/manifests/misc/package-builder.pp
@@ -33,12 +33,28 @@
                }
        }
 
-       class pbuilder($dists=["hardy", "lucid", "precise"], 
$defaultdist="lucid") {
+       class builder($type='pbuilder', $dists=["hardy", "lucid", "precise"], 
$defaultdist="lucid") {
+               case $type {
+                       cowbuilder: {
+                               $base_option = '--basepath'
+                               $build_cmd   = 'cowbuilder'
+                               $file_ext    = 'cow'
+                               $packages    = [ 'cowbuilder' ]
+                       }
+                       pbuilder: {
+                               $base_option = '--basetgz'
+                               $build_cmd   = 'cowbuilder'
+                               $file_ext    = 'tgz'
+                               $packages    = [ 'pbuilder' ]
+                       }
+                       default: { fail('Only builder types supported are 
pbuilder and cowbuilder') }
+               }
+
                class packages {
-                       package { "pbuilder": ensure => latest }
+                       package { $packages: ensure => latest }
                }
                
-               define image{
+               define image {
                        require packages
 
                        $pbuilder_root = "/var/cache/pbuilder"
@@ -46,9 +62,9 @@
                        $othermirror = "--othermirror 'deb 
http://apt.wikimedia.org/wikimedia ${title}-wikimedia main universe' 
--othermirror 'deb-src http://apt.wikimedia.org/wikimedia ${title}-wikimedia 
main universe'"
                        $components = "--components 'main universe'"
 
-                       exec { "pbuilder --create --distribution ${title}":
-                               command => "pbuilder --create --distribution 
${title} --basetgz ${pbuilder_root}/${title}.tgz ${components} ${othermirror}",
-                               creates => "${pbuilder_root}/${title}.tgz",
+                       exec { "$build_cmd --create --distribution ${title}":
+                               command => "$build_cmd --create --distribution 
${title} ${base_option} ${pbuilder_root}/${title}.${file_ext} ${components} 
${othermirror}",
+                               creates => 
"${pbuilder_root}/${title}.${file_ext}",
                                path => "/bin:/sbin:/usr/bin:/usr/sbin",
                                timeout => 600
                        }
@@ -56,11 +72,15 @@
 
                image { $dists: }
 
-               file { "/var/cache/pbuilder/base.tgz":
+               file { "/var/cache/pbuilder/base.${file_ext}":
                        require => Image[$defaultdist],
-                       ensure => "/var/cache/pbuilder/${defaultdist}.tgz"
+                       ensure => 
"/var/cache/pbuilder/${defaultdist}.${file_ext}"
                }
        }
 
-       include packages, defaults, pbuilder
+       include packages, defaults
+
+       class { 'builder': type => 'cowbuilder' }
+       class { 'builder': type => 'pbuilder' }
+
 }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie0c9e0109b7752ec6059d67675fd1dd56c124bd3
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Hashar <[email protected]>

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

Reply via email to