[MediaWiki-commits] [Gerrit] Update and restart services during git-update - change (mediawiki/vagrant)

2015-07-28 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged.

Change subject: Update and restart services during git-update
..


Update and restart services during git-update

Thus far, running vagrant git-update would update the git repos of
services living in /vagrant/srv. This patch enhances its behaviour by
also performing a dependency update and a service restart. For a service
to do that, it must declare a service::gitupdate block specifying which
updates need to be carried out and whether the service should be
restarted. A configuration file for each service is then placed in
/etc/mw-vagrant/services/ and later read by run-git-update. This patch also
updates all of the service modules to use it.

Note: this patch also contains a fix for the phabricator module,
instructing it to connect to MySQL via the TCP socket, not the UNIX one
(the latter has been disabled in the new HHVM version packaged by WMF).

Bug: T101749
Change-Id: I7ec1d2eaa3a003d4c3bfb80a29fa11fb64506407
---
M puppet/hieradata/common.yaml
M puppet/modules/arcanist/manifests/init.pp
M puppet/modules/crm/manifests/init.pp
M puppet/modules/iegreview/manifests/init.pp
M puppet/modules/mediawiki/manifests/init.pp
M puppet/modules/mediawiki/manifests/jobrunner.pp
M puppet/modules/mediawiki/manifests/parsoid.pp
M puppet/modules/mediawiki/templates/run-git-update.erb
M puppet/modules/mwv/manifests/init.pp
M puppet/modules/phabricator/manifests/init.pp
M puppet/modules/role/manifests/phragile.pp
M puppet/modules/scholarships/manifests/init.pp
A puppet/modules/service/files/confd/.gitignore
A puppet/modules/service/manifests/gitupdate.pp
M puppet/modules/service/manifests/init.pp
M puppet/modules/service/manifests/node.pp
A puppet/modules/service/templates/gitupdate.conf.erb
M puppet/modules/smashpig/manifests/init.pp
M puppet/modules/zotero/manifests/init.pp
19 files changed, 288 insertions(+), 37 deletions(-)

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



diff --git a/puppet/hieradata/common.yaml b/puppet/hieradata/common.yaml
index 5ba9368..c10506d 100644
--- a/puppet/hieradata/common.yaml
+++ b/puppet/hieradata/common.yaml
@@ -5,6 +5,7 @@
   - '::puppet::agent'
 
 mwv::files_dir: /srv
+mwv::etc_dir: /etc/mw-vagrant
 mwv::services_dir: /vagrant/srv
 mwv::vendor_dir: /srv
 mwv::enable_cachefilesd: true
@@ -248,6 +249,7 @@
 sentry::admin_pass: vagrant
 
 service::root_dir: %{hiera('mwv::services_dir')}
+service::conf_dir: %{hiera('mwv::etc_dir')}/services
 service::log_dir: /vagrant/logs
 service::log_level: info
 
diff --git a/puppet/modules/arcanist/manifests/init.pp 
b/puppet/modules/arcanist/manifests/init.pp
index 6f62b7c..cdc5e7e 100644
--- a/puppet/modules/arcanist/manifests/init.pp
+++ b/puppet/modules/arcanist/manifests/init.pp
@@ -25,4 +25,13 @@
 env::profile_script { 'add arcanist bin to path':
 content = export PATH=\$PATH:${deploy_dir}/arcanist/bin,
 }
+
+service::gitupdate { 'libphutil':
+dir = ${deploy_dir}/libphutil,
+}
+
+service::gitupdate { 'arcanist':
+dir = ${deploy_dir}/arcanist,
+}
+
 }
diff --git a/puppet/modules/crm/manifests/init.pp 
b/puppet/modules/crm/manifests/init.pp
index 9ea1e02..c6706cd 100644
--- a/puppet/modules/crm/manifests/init.pp
+++ b/puppet/modules/crm/manifests/init.pp
@@ -46,6 +46,12 @@
 require = Git::Clone[$repo],
 }
 
+service::gitupdate { 'crm':
+dir= $dir,
+type   = 'php',
+update = true,
+}
+
 # required by module ganglia_reporter
 package { 'ganglia-monitor': }
 
diff --git a/puppet/modules/iegreview/manifests/init.pp 
b/puppet/modules/iegreview/manifests/init.pp
index 7c8531d..99fcc67 100644
--- a/puppet/modules/iegreview/manifests/init.pp
+++ b/puppet/modules/iegreview/manifests/init.pp
@@ -54,6 +54,10 @@
 directory = $deploy_dir,
 }
 
+service::gitupdate { 'iegreview':
+dir = $deploy_dir,
+}
+
 # Create an application database
 mysql::db { $db_name:
 ensure = present,
diff --git a/puppet/modules/mediawiki/manifests/init.pp 
b/puppet/modules/mediawiki/manifests/init.pp
index e5ef274..b983c16 100644
--- a/puppet/modules/mediawiki/manifests/init.pp
+++ b/puppet/modules/mediawiki/manifests/init.pp
@@ -73,6 +73,8 @@
 require ::php
 require ::hhvm
 
+require ::service
+
 include ::mediawiki::apache
 include ::mediawiki::jobrunner
 include ::mediawiki::multiwiki
diff --git a/puppet/modules/mediawiki/manifests/jobrunner.pp 
b/puppet/modules/mediawiki/manifests/jobrunner.pp
index 056e99c..64a5d9b 100644
--- a/puppet/modules/mediawiki/manifests/jobrunner.pp
+++ b/puppet/modules/mediawiki/manifests/jobrunner.pp
@@ -22,6 +22,11 @@
 default = 'running',
 }
 
+$restart = $enable ? {
+false   = false,
+default = true,
+}
+
 git::clone { 'mediawiki/services/jobrunner':
 directory = $dir,
 

[MediaWiki-commits] [Gerrit] Update and restart services during git-update - change (mediawiki/vagrant)

2015-06-18 Thread Mobrovac (Code Review)
Mobrovac has uploaded a new change for review.

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

Change subject: Update and restart services during git-update
..

Update and restart services during git-update

Thus far, running vagrant git-update would update the git repos of
services living in /vagrant/srv. This patch enhances its behaviour by
also performing a dependency update and a service restart. For a service
to do that, it must declare a service::gitupdate block specifying which
updates need to be carried out and whether the service should be
restarted. A configuration file for each service is then placed in
/vagrant/srv/.conf.d and later read by run-git-update. This patch also
updates all of the service modules to use it.

Note: this patch also contains a fix for the phabricator module,
instructing it to connect to MySQL via the TCP socket, not the UNIX one
(the latter has been disabled in the new HHVM version packaged by WMF).

Bug: T101749
Change-Id: I7ec1d2eaa3a003d4c3bfb80a29fa11fb64506407
---
M puppet/hieradata/common.yaml
M puppet/modules/arcanist/manifests/init.pp
M puppet/modules/crm/manifests/init.pp
M puppet/modules/iegreview/manifests/init.pp
M puppet/modules/mediawiki/manifests/init.pp
M puppet/modules/mediawiki/manifests/jobrunner.pp
M puppet/modules/mediawiki/manifests/parsoid.pp
M puppet/modules/mediawiki/templates/run-git-update.erb
M puppet/modules/phabricator/manifests/init.pp
M puppet/modules/role/manifests/phragile.pp
M puppet/modules/scholarships/manifests/init.pp
A puppet/modules/service/manifests/gitupdate.pp
M puppet/modules/service/manifests/init.pp
M puppet/modules/service/manifests/node.pp
A puppet/modules/service/templates/gitupdate.conf.erb
M puppet/modules/smashpig/manifests/init.pp
16 files changed, 179 insertions(+), 34 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/vagrant 
refs/changes/36/219136/1

diff --git a/puppet/hieradata/common.yaml b/puppet/hieradata/common.yaml
index e907a21..ffa1b96 100644
--- a/puppet/hieradata/common.yaml
+++ b/puppet/hieradata/common.yaml
@@ -235,6 +235,7 @@
 sentry::admin_pass: vagrant
 
 service::root_dir: %{hiera('mwv::services_dir')}
+service::conf_dir: %{hiera('mwv::services_dir')}/.conf.d
 service::log_dir: /vagrant/logs
 service::log_level: info
 
diff --git a/puppet/modules/arcanist/manifests/init.pp 
b/puppet/modules/arcanist/manifests/init.pp
index 6f62b7c..cdc5e7e 100644
--- a/puppet/modules/arcanist/manifests/init.pp
+++ b/puppet/modules/arcanist/manifests/init.pp
@@ -25,4 +25,13 @@
 env::profile_script { 'add arcanist bin to path':
 content = export PATH=\$PATH:${deploy_dir}/arcanist/bin,
 }
+
+service::gitupdate { 'libphutil':
+dir = ${deploy_dir}/libphutil,
+}
+
+service::gitupdate { 'arcanist':
+dir = ${deploy_dir}/arcanist,
+}
+
 }
diff --git a/puppet/modules/crm/manifests/init.pp 
b/puppet/modules/crm/manifests/init.pp
index 9ea1e02..c6706cd 100644
--- a/puppet/modules/crm/manifests/init.pp
+++ b/puppet/modules/crm/manifests/init.pp
@@ -46,6 +46,12 @@
 require = Git::Clone[$repo],
 }
 
+service::gitupdate { 'crm':
+dir= $dir,
+type   = 'php',
+update = true,
+}
+
 # required by module ganglia_reporter
 package { 'ganglia-monitor': }
 
diff --git a/puppet/modules/iegreview/manifests/init.pp 
b/puppet/modules/iegreview/manifests/init.pp
index 7c8531d..99fcc67 100644
--- a/puppet/modules/iegreview/manifests/init.pp
+++ b/puppet/modules/iegreview/manifests/init.pp
@@ -54,6 +54,10 @@
 directory = $deploy_dir,
 }
 
+service::gitupdate { 'iegreview':
+dir = $deploy_dir,
+}
+
 # Create an application database
 mysql::db { $db_name:
 ensure = present,
diff --git a/puppet/modules/mediawiki/manifests/init.pp 
b/puppet/modules/mediawiki/manifests/init.pp
index 57487cd..b4c8bfd 100644
--- a/puppet/modules/mediawiki/manifests/init.pp
+++ b/puppet/modules/mediawiki/manifests/init.pp
@@ -73,6 +73,8 @@
 require ::php
 require ::hhvm
 
+require ::service
+
 include ::mediawiki::apache
 include ::mediawiki::jobrunner
 include ::mediawiki::multiwiki
diff --git a/puppet/modules/mediawiki/manifests/jobrunner.pp 
b/puppet/modules/mediawiki/manifests/jobrunner.pp
index 056e99c..64a5d9b 100644
--- a/puppet/modules/mediawiki/manifests/jobrunner.pp
+++ b/puppet/modules/mediawiki/manifests/jobrunner.pp
@@ -22,6 +22,11 @@
 default = 'running',
 }
 
+$restart = $enable ? {
+false   = false,
+default = true,
+}
+
 git::clone { 'mediawiki/services/jobrunner':
 directory = $dir,
 before= Service['jobrunner'],
@@ -80,6 +85,17 @@
 mode   = '0444',
 }
 
+service::gitupdate { 'jobrunner':
+dir = $dir,
+restart = $restart,
+}
+
+service::gitupdate { 'jobchron':
+dir = $dir,
+pull