jenkins-bot has submitted this change and it was merged.

Change subject: Add 'git' module; re-organize accordingly
......................................................................


Add 'git' module; re-organize accordingly

This takes the Puppet manifests for git-cloning mediawiki/core and
refactors them to be more generally useful.

Also refactors wikimedia apt source setup to use a template.

Change-Id: I4c475126acb69de5f78af3f490dc50aa12e193a0
---
M puppet/manifests/site.pp
A puppet/modules/git/manifests/clone.pp
A puppet/modules/git/manifests/init.pp
D puppet/modules/mediawiki/manifests/git.pp
M puppet/modules/mediawiki/manifests/init.pp
M puppet/modules/mediawiki/manifests/phpsh.pp
D puppet/modules/misc/manifests/apt.pp
D puppet/modules/misc/manifests/apt/wikimedia.pp
M puppet/modules/misc/manifests/init.pp
A puppet/modules/misc/manifests/wikimedia.pp
A puppet/modules/misc/templates/wikimedia.list.erb
11 files changed, 85 insertions(+), 68 deletions(-)

Approvals:
  Ori.livneh: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/puppet/manifests/site.pp b/puppet/manifests/site.pp
index 170deb1..dc3175d 100644
--- a/puppet/manifests/site.pp
+++ b/puppet/manifests/site.pp
@@ -32,4 +32,5 @@
 
 class { 'memcached': }
 class { 'misc': }
+class { 'git': }
 class { 'mediawiki': }
diff --git a/puppet/modules/git/manifests/clone.pp 
b/puppet/modules/git/manifests/clone.pp
new file mode 100644
index 0000000..ca9de0e
--- /dev/null
+++ b/puppet/modules/git/manifests/clone.pp
@@ -0,0 +1,17 @@
+define git::clone($directory, $remote=undef) {
+
+       include git
+
+       $url = $remote ? {
+               undef   => sprintf($git::urlformat, $title),
+               default => $remote,
+       }
+
+       exec { "git clone ${title}":
+               command   => "git clone ${options} ${url} ${directory}",
+               creates   => "${directory}/.git/refs/remotes",
+               require   => Package['git'],
+               logoutput => true,
+               timeout   => 0,
+       }
+}
diff --git a/puppet/modules/git/manifests/init.pp 
b/puppet/modules/git/manifests/init.pp
new file mode 100644
index 0000000..81e02a1
--- /dev/null
+++ b/puppet/modules/git/manifests/init.pp
@@ -0,0 +1,36 @@
+class git {
+
+       # When a git::clone resource does not declare a 'remote' parameter,
+       # a remote URL is constructed by interpolating the title of the
+       # resource into the format string below.
+       #
+       # This provides some syntactic sugar for cloning Gerrit
+       # repositories. e.g.:
+       #
+       # git::clone { 'mediawiki/extensions/Math':
+       #     directory => '/vagrant/mediawiki/extensions/Math',
+       # }
+       #
+       $urlformat = 'https://gerrit.wikimedia.org/r/p/%s.git'
+
+       exec { 'git-core ppa':
+               command => 'add-apt-repository --yes ppa:git-core/ppa',
+               notify  => Exec['apt-get update'],
+               creates => '/etc/apt/sources.list.d/git-core-ppa-precise.list',
+               before  => Package['git'],
+       }
+
+       package { 'git':
+               ensure  => latest,
+               require => Exec['git-core ppa'],
+       }
+
+       exec { 'pip install git-review':
+               unless  => 'which git-review',
+               require => Package['python-pip', 'git'],
+       }
+
+       exec { 'apt-get update':
+               refreshonly => true,
+       }
+}
diff --git a/puppet/modules/mediawiki/manifests/git.pp 
b/puppet/modules/mediawiki/manifests/git.pp
deleted file mode 100644
index 2d0a742..0000000
--- a/puppet/modules/mediawiki/manifests/git.pp
+++ /dev/null
@@ -1,35 +0,0 @@
-# Clone MediaWiki via Git
-class mediawiki::git(
-       $remote = 'https://gerrit.wikimedia.org/r/p/mediawiki/core.git',
-       $shallow = false
-) {
-
-       $git_extra_args = $shallow ? {
-               true    => '--depth=1',
-               default => '',
-       }
-
-       exec { 'add-git-core-ppa':
-               command => 'add-apt-repository --yes ppa:git-core/ppa && 
apt-get update',
-               creates => '/etc/apt/sources.list.d/git-core-ppa-precise.list',
-               before  => Package['git'],
-       }
-
-       package { 'git':
-               ensure => latest,
-               before => Exec['git-clone-mediawiki'],
-       }
-
-       exec { 'git-clone-mediawiki':
-               creates   => '/vagrant/mediawiki/.git/refs/remotes',
-               command   => "git clone ${git_extra_args} ${remote} 
/vagrant/mediawiki",
-               timeout   => 0,
-               logoutput => true,
-       }
-
-       exec { 'install-git-review':
-               command => 'pip install git-review',
-               unless  => 'which git-review',
-               require => Package['python-pip', 'git'],
-       }
-}
diff --git a/puppet/modules/mediawiki/manifests/init.pp 
b/puppet/modules/mediawiki/manifests/init.pp
index 1fc3186..56b4980 100644
--- a/puppet/modules/mediawiki/manifests/init.pp
+++ b/puppet/modules/mediawiki/manifests/init.pp
@@ -9,19 +9,22 @@
        $server = 'http://127.0.0.1:8080',
 ) {
 
+       class { 'php': }
+       class { 'phpsh': }
        class { 'mysql':
                dbname   => $dbname,
                password => $pass,
        }
-       class { 'git':
-               shallow => true,
-       }
-       class { 'php': }
-       class { 'phpsh': }
 
        apache::site { 'default':
                ensure => absent,
        }
+
+       git::clone { 'mediawiki':
+               remote    => 
'https://gerrit.wikimedia.org/r/p/mediawiki/core.git',
+               directory => '/vagrant/mediawiki',
+       }
+
 
        file { '/etc/apache2/sites-enabled/000-default':
                ensure  => absent,
@@ -34,7 +37,7 @@
        # delete it.
        exec { 'check-settings':
                command => 'rm /vagrant/mediawiki/LocalSettings.php 2>/dev/null 
|| true',
-               require => [ Package['php5'], Exec['git-clone-mediawiki'], 
Service['mysql'] ],
+               require => [ Package['php5'], Git::Clone['mediawiki'], 
Service['mysql'] ],
                unless  => 'php /vagrant/mediawiki/maintenance/eval.php 
<<<"wfGetDB(-1)" &>/dev/null',
                before  => Exec['mediawiki-setup'],
        }
@@ -45,7 +48,7 @@
        }
 
        exec { 'mediawiki-setup':
-               require     => Exec['set-mysql-password', 
'git-clone-mediawiki'],
+               require     => [ Exec['set-mysql-password'], 
Git::Clone['mediawiki'] ],
                creates     => '/vagrant/mediawiki/LocalSettings.php',
                cwd         => '/vagrant/mediawiki/maintenance/',
                command     => "php install.php ${wiki} ${admin} --pass ${pass} 
--dbname ${dbname} --dbuser ${dbuser} --dbpass ${dbpass} --server ${server} 
--scriptpath '/w'",
diff --git a/puppet/modules/mediawiki/manifests/phpsh.pp 
b/puppet/modules/mediawiki/manifests/phpsh.pp
index 02ca095..d3c97dd 100644
--- a/puppet/modules/mediawiki/manifests/phpsh.pp
+++ b/puppet/modules/mediawiki/manifests/phpsh.pp
@@ -33,7 +33,7 @@
        }
 
        exec { 'generate-ctags':
-               require => [ Package['exuberant-ctags'], 
Exec['git-clone-mediawiki'] ],
+               require => [ Package['exuberant-ctags'], 
Git::Clone['mediawiki'] ],
                command => 'ctags --languages=php --recurse -f 
/vagrant/mediawiki/tags /vagrant/mediawiki',
                creates => '/vagrant/mediawiki/tags',
        }
diff --git a/puppet/modules/misc/manifests/apt.pp 
b/puppet/modules/misc/manifests/apt.pp
deleted file mode 100644
index 29827fb..0000000
--- a/puppet/modules/misc/manifests/apt.pp
+++ /dev/null
@@ -1,6 +0,0 @@
-class misc::apt {
-       exec { 'apt-get update':
-               command     => '/usr/bin/apt-get update',
-               refreshonly => true,
-       }
-}
\ No newline at end of file
diff --git a/puppet/modules/misc/manifests/apt/wikimedia.pp 
b/puppet/modules/misc/manifests/apt/wikimedia.pp
deleted file mode 100644
index 3c7b4f3..0000000
--- a/puppet/modules/misc/manifests/apt/wikimedia.pp
+++ /dev/null
@@ -1,18 +0,0 @@
-class misc::apt::wikimedia {
-       include misc::apt
-
-       exec { 'wikimedia_apt_key_add':
-               command => "/usr/bin/curl 
http://apt.wikimedia.org/autoinstall/keyring/wikimedia-archive-keyring.gpg | 
/usr/bin/gpg --import && /usr/bin/gpg --export --armor Wikimedia | 
/usr/bin/apt-key add -",
-               user    => 'root',
-               unless  => '/usr/bin/apt-key list | /bin/grep -q Wikimedia',
-       }
-
-       # include wikimedia apt repository
-       file { '/etc/apt/sources.list.d/wikimedia.list':
-               content => "## Wikimedia APT repository
-deb http://apt.wikimedia.org/wikimedia ${::lsbdistcodename}-wikimedia main 
universe
-deb-src http://apt.wikimedia.org/wikimedia ${::lsbdistcodename}-wikimedia main 
universe",
-               notify  => Exec['apt-get update'],
-               require => Exec['wikimedia_apt_key_add'],
-       }
-}
diff --git a/puppet/modules/misc/manifests/init.pp 
b/puppet/modules/misc/manifests/init.pp
index efa5a51..997faf3 100644
--- a/puppet/modules/misc/manifests/init.pp
+++ b/puppet/modules/misc/manifests/init.pp
@@ -1,7 +1,8 @@
 # Provides small enhancements to the shell, such as color prompt and MOTD.
 class misc {
 
-       include virtualbox
+       include misc::virtualbox
+       include misc::wikimedia
 
        file { '/etc/profile.d/color.sh':
                ensure => file,
diff --git a/puppet/modules/misc/manifests/wikimedia.pp 
b/puppet/modules/misc/manifests/wikimedia.pp
new file mode 100644
index 0000000..ef8c093
--- /dev/null
+++ b/puppet/modules/misc/manifests/wikimedia.pp
@@ -0,0 +1,15 @@
+class misc::wikimedia {
+
+       $keyurl = 
'http://apt.wikimedia.org/autoinstall/keyring/wikimedia-archive-keyring.gpg'
+
+       exec { 'apt-key add wikimedia key':
+               command => "curl $keyurl | gpg --import && gpg --export --armor 
Wikimedia | apt-key add -",
+               unless  => 'apt-key list | grep -q Wikimedia',
+       }
+
+       file { '/etc/apt/sources.list.d/wikimedia.list':
+               content  => template('misc/wikimedia.list.erb'),
+               notify  => Exec['apt-get update'],
+               require => Exec['apt-key add wikimedia key'],
+       }
+}
diff --git a/puppet/modules/misc/templates/wikimedia.list.erb 
b/puppet/modules/misc/templates/wikimedia.list.erb
new file mode 100644
index 0000000..d3e159f
--- /dev/null
+++ b/puppet/modules/misc/templates/wikimedia.list.erb
@@ -0,0 +1,3 @@
+# Wikimedia APT repository
+deb http://apt.wikimedia.org/wikimedia <%= 
scope.lookupvar('::lsbdistcodename') %>-wikimedia main universe
+deb-src http://apt.wikimedia.org/wikimedia <%= 
scope.lookupvar('::lsbdistcodename') %>-wikimedia main universe

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I4c475126acb69de5f78af3f490dc50aa12e193a0
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/vagrant
Gerrit-Branch: master
Gerrit-Owner: Ori.livneh <[email protected]>
Gerrit-Reviewer: Ori.livneh <[email protected]>
Gerrit-Reviewer: Ottomata <[email protected]>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to