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

Change subject: Emit mediawiki-ready Upstart event
......................................................................


Emit mediawiki-ready Upstart event

Events emitted by upstart-file-bridge and mountall don't seem to be reliable,
so do a busy-loop instead, as suggested by:
  
<http://upstart.ubuntu.com/cookbook/#run-a-job-when-a-file-or-directory-is-created-deleted>.
Use the event as a way of starting Upstart services that are dependent on
MediaWiki at the right time.

Change-Id: I09f0e44fb23e6ed6534124b18c6126488401fcf7
---
M puppet/manifests/base.pp
M puppet/modules/mediawiki/files/jobrunner.conf
M puppet/modules/mediawiki/manifests/init.pp
M puppet/modules/mediawiki/manifests/jobrunner.pp
A puppet/modules/mediawiki/templates/mediawiki-bridge.conf.erb
5 files changed, 28 insertions(+), 8 deletions(-)

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



diff --git a/puppet/manifests/base.pp b/puppet/manifests/base.pp
index 3495d57..a25a48d 100644
--- a/puppet/manifests/base.pp
+++ b/puppet/manifests/base.pp
@@ -31,7 +31,7 @@
 Exec {
     logoutput => on_failure,
     timeout   => 900,
-    path      => [ '/bin', '/usr/bin', '/usr/local/bin', '/usr/sbin/' ],
+    path      => [ '/bin', '/sbin', '/usr/bin', '/usr/local/bin', '/usr/sbin' 
],
 }
 
 Service {
diff --git a/puppet/modules/mediawiki/files/jobrunner.conf 
b/puppet/modules/mediawiki/files/jobrunner.conf
index e40bdd1..52925a0 100644
--- a/puppet/modules/mediawiki/files/jobrunner.conf
+++ b/puppet/modules/mediawiki/files/jobrunner.conf
@@ -1,7 +1,7 @@
 # jobrunner -- Continuously process a MediaWiki job queue
 description "MediaWiki job queue loop"
 
-start on (runlevel [2345] and remote-filesystems)
+start on mediawiki-ready
 stop on runlevel [!2345]
 
 pre-start script
diff --git a/puppet/modules/mediawiki/manifests/init.pp 
b/puppet/modules/mediawiki/manifests/init.pp
index 7b32b7a..49b00b9 100644
--- a/puppet/modules/mediawiki/manifests/init.pp
+++ b/puppet/modules/mediawiki/manifests/init.pp
@@ -88,10 +88,15 @@
     # delete it.
     exec { 'check settings':
         command => "rm -f ${dir}/LocalSettings.php",
+        unless  => "start mediawiki-bridge && php5 ${dir}/maintenance/sql.php 
</dev/null",
+        require => [ Service['mysql'], File['mediawiki_upstart_bridge'] ],
         notify  => Exec['mediawiki setup'],
-        require => [ Package['php5'], Git::Clone['mediawiki/core'], 
Service['mysql'] ],
-        # HACK: this should always succeed even if HHVM is FUBAR
-        unless  => "/usr/bin/php5 ${dir}/maintenance/sql.php </dev/null",
+    }
+
+    file { 'mediawiki_upstart_bridge':
+        path    => '/etc/init/mediawiki-bridge.conf',
+        content => template('mediawiki/mediawiki-bridge.conf.erb'),
+        require => Git::Clone['mediawiki/core'],
     }
 
     file { $settings_dir:
@@ -119,9 +124,9 @@
     }
 
     exec { 'mediawiki setup':
-        require     => [ Exec['set mysql password'], 
Git::Clone['mediawiki/core'], File[$upload_dir] ],
-        creates     => "${dir}/LocalSettings.php",
-        command     => template('mediawiki/install.php.erb'),
+        require => [ Exec['set mysql password'], Git::Clone['mediawiki/core'], 
File[$upload_dir] ],
+        creates => "${dir}/LocalSettings.php",
+        command => template('mediawiki/install.php.erb'),
     }
 
     exec { 'require extra settings':
diff --git a/puppet/modules/mediawiki/manifests/jobrunner.pp 
b/puppet/modules/mediawiki/manifests/jobrunner.pp
index 0e67024..5402424 100644
--- a/puppet/modules/mediawiki/manifests/jobrunner.pp
+++ b/puppet/modules/mediawiki/manifests/jobrunner.pp
@@ -36,5 +36,6 @@
     service { 'jobrunner':
         ensure   => 'running',
         provider => 'upstart',
+        require  => Exec['mediawiki setup'],
     }
 }
diff --git a/puppet/modules/mediawiki/templates/mediawiki-bridge.conf.erb 
b/puppet/modules/mediawiki/templates/mediawiki-bridge.conf.erb
new file mode 100644
index 0000000..6c74579
--- /dev/null
+++ b/puppet/modules/mediawiki/templates/mediawiki-bridge.conf.erb
@@ -0,0 +1,14 @@
+# Upstart task for emitting MediaWiki ready event
+description "MediaWiki ready event emitter"
+
+start on runlevel [2345]
+
+emits mediawiki-ready
+
+script
+  exec >/dev/null 2>&1
+  while [ ! -r "<%= @dir %>/LocalSettings.php" ] || ! ( /usr/bin/php5 <%= @dir 
%>/maintenance/sql.php </dev/null ); do sleep 1; done
+  initctl emit mediawiki-ready
+end script
+
+# vim: set ft=upstart:

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I09f0e44fb23e6ed6534124b18c6126488401fcf7
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/vagrant
Gerrit-Branch: master
Gerrit-Owner: Ori.livneh <o...@wikimedia.org>
Gerrit-Reviewer: Ori.livneh <o...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to