Subramanya Sastry has uploaded a new change for review.
https://gerrit.wikimedia.org/r/106471
Change subject: WIP: Update parsoid puppet config to use new repository
......................................................................
WIP: Update parsoid puppet config to use new repository
* Eliminated init.d script and used upstart script
- shared script with betalabs that hashar created
* Switched parsoid repo to mediawiki/services/parsoid/deploy
and added service-restart to use upstart config.
* Bunch of related changes and updates.
Change-Id: Ic8de01920b44a01090fa4297f2f5a6b9879654b8
---
M files/misc/parsoid
D files/misc/parsoid.init
M files/misc/parsoid.upstart
M manifests/role/deployment.pp
M manifests/role/parsoid.pp
M modules/deployment/files/modules/parsoid.py
6 files changed, 54 insertions(+), 105 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/operations/puppet
refs/changes/71/106471/1
diff --git a/files/misc/parsoid b/files/misc/parsoid
index 0e0b2e3..5ef2630 100644
--- a/files/misc/parsoid
+++ b/files/misc/parsoid
@@ -5,12 +5,16 @@
### puppet:///files/misc/parsoid
#####################################################################
+# SSS FIXME: Who/what uses this script? Can this be deleted?
+# And, /var/lib/parsoid/Parsoid also seems incorrect since
+# it should be /srv/deployment/parsoid/Parsoid?
+
# Script to start Parsoid
(
- cd /var/lib/parsoid/Parsoid/js/lib
- export NODE_PATH=/var/lib/parsoid/Parsoid/js/lib/node_modules
- sudo -E -u parsoid nohup node /var/lib/parsoid/Parsoid/js/api/server.js
> /var/lib/parsoid/nohup.out 2>&1 &
+ cd /var/lib/parsoid/Parsoid/src/lib
+ export NODE_PATH=/var/lib/parsoid/Parsoid/node_modules
+ sudo -E -u parsoid nohup node
/var/lib/parsoid/Parsoid/src/api/server.js > /var/lib/parsoid/nohup.out 2>&1 &
PARSOIDPID=$!
echo $PARSOIDPID > /var/run/parsoid.pid
wait $PARSOIDPID
diff --git a/files/misc/parsoid.init b/files/misc/parsoid.init
deleted file mode 100644
index a50ab1e..0000000
--- a/files/misc/parsoid.init
+++ /dev/null
@@ -1,77 +0,0 @@
-#! /bin/sh
-
-#####################################################################
-### THIS FILE IS MANAGED BY PUPPET
-### puppet:///files/misc/parsoid.init
-#####################################################################
-
-### BEGIN INIT INFO
-# Provides: parsoid
-# Required-Start: $network $named $remote_fs $syslog
-# Required-Stop: $network $named $remote_fs $syslog
-# Should-Start: parsoid
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-### END INIT INFO
-
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-DAEMON=/usr/bin/parsoid
-NAME=parsoid
-DESC=parsoid
-PIDFILE="/var/run/${NAME}.pid"
-
-test -x $DAEMON || exit 0
-
-. /lib/lsb/init-functions
-
-reload_parsoid() {
- # SIGHUP isn't supported by the Parsoid server yet, but this should be
easy to implement
- # See
https://groups.google.com/forum/?fromgroups#!topic/nodejs/3e-eo0y9ZLI
- start-stop-daemon --stop --quiet --signal HUP --pidfile $PIDFILE
-}
-
-start_parsoid() {
- start-stop-daemon --start --quiet --pidfile $PIDFILE --startas $DAEMON
-- $NAME
-}
-
-stop_parsoid() {
- start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
- # Stuck workers don't always restart properly, so kill them hard
- pkill -9 -f Parsoid/js/api/server.js
-}
-
-status_parsoid() {
- status_of_proc -p "${PIDFILE}" "${DAEMON}" "${NAME}"
-}
-
-case "$1" in
- start)
- log_begin_msg "Starting $DESC"
- start_parsoid
- log_end_msg $?
- ;;
- stop)
- log_begin_msg "Stopping $DESC"
- stop_parsoid
- log_end_msg $?
- ;;
- reload)
- log_begin_msg "Reloading $DESC"
- reload_parsoid
- log_end_msg $?
- ;;
- status)
- status_parsoid
- ;;
- restart|force-reload)
- log_begin_msg "Restarting $DESC"
- stop_parsoid
- sleep 1
- start_parsoid
- log_end_msg $?
- ;;
- *)
- echo "Usage: $0 {start|stop|status|restart|force-reload|reload}" >&2
- exit 1
- ;;
-esac
diff --git a/files/misc/parsoid.upstart b/files/misc/parsoid.upstart
index 060efd8..d950f3a 100644
--- a/files/misc/parsoid.upstart
+++ b/files/misc/parsoid.upstart
@@ -20,9 +20,11 @@
# Basic build in default, would be overridden by whatever
# is defined in the DEFAULTFILE defined above
+# These settings are based on checking out the
+# mediawiki/services/parsoid/deploy repo
env VCAP_APP_PORT="8000"
-env NODE_PATH="/var/lib/parsoid/Parsoid/js/node_modules"
-env PARSOID_BASE_PATH="/var/lib/parsoid/Parsoid"
+env NODE_PATH="/var/lib/parsoid/Parsoid/node_modules"
+env PARSOID_BASE_PATH="/var/lib/parsoid/Parsoid/src"
respawn
diff --git a/manifests/role/deployment.pp b/manifests/role/deployment.pp
index 6d32a44..31c8bc4 100644
--- a/manifests/role/deployment.pp
+++ b/manifests/role/deployment.pp
@@ -82,9 +82,10 @@
},
'parsoid/Parsoid' => {
'grain' => 'parsoid',
- 'upstream' =>
'https://gerrit.wikimedia.org/r/mediawiki/extensions/Parsoid',
+ 'upstream' =>
'https://gerrit.wikimedia.org/r/mediawiki/services/parsoid/deploy',
'checkout_module_calls' => {
- 'parsoid.config_symlink' => ['__REPO__'],
+ 'parsoid.config_symlink' => ['__REPO__'],
+ 'service.restart' => ['parsoid'],
},
'service_name' => 'parsoid',
},
diff --git a/manifests/role/parsoid.pp b/manifests/role/parsoid.pp
index 9d5d277..6a3f48d 100644
--- a/manifests/role/parsoid.pp
+++ b/manifests/role/parsoid.pp
@@ -18,6 +18,7 @@
mode => '2775',
}
+ # SSS FIXME: What uses this?
file { '/usr/bin/parsoid':
ensure => present,
owner => root,
@@ -48,19 +49,42 @@
target => '/srv/deployment/parsoid/Parsoid',
}
- # production uses an init script whereas labs experiments with upstart
+ # production uses upstart as well now
+ # This uses the same file and service config as beta labs.
file { '/etc/init.d/parsoid':
- ensure => present,
- owner => root,
- group => root,
- mode => '0555',
- source => 'puppet:///files/misc/parsoid.init',
+ ensure => 'link',
+ target => '/lib/init/upstart-job',
+ }
+ file { '/etc/init/parsoid.conf':
+ ensure => present,
+ owner => root,
+ group => root,
+ mode => '0444',
+ source => 'puppet:///files/misc/parsoid.upstart',
+ }
+
+ # SSS FIXME: Is this the right log file path?
+ $parsoid_log_file = '/var/log/parsoid/parsoid.log'
+ $parsoid_node_path = '/srv/deployment/parsoid/deploy/node_modules'
+ $parsoid_base_path = '/srv/deployment/parsoid/deploy/src'
+
+ file { '/etc/default/parsoid':
+ ensure => present,
+ owner => root,
+ group => root,
+ mode => '0444',
+ content => template('misc/parsoid.default.erb'),
+ require => File['/var/log/parsoid'],
}
service { 'parsoid':
ensure => running,
hasstatus => true,
hasrestart => true,
- enable => true,
+ provider => 'upstart',
+ subscribe => [
+ File['/etc/default/parsoid'],
+ File['/etc/init/parsoid.conf'],
+ ],
require => File['/etc/init.d/parsoid'],
}
diff --git a/modules/deployment/files/modules/parsoid.py
b/modules/deployment/files/modules/parsoid.py
index ce1d68e..89159d1 100644
--- a/modules/deployment/files/modules/parsoid.py
+++ b/modules/deployment/files/modules/parsoid.py
@@ -12,25 +12,20 @@
config checkout
'''
config = __salt__['deploy.get_config'](repo)
- lsSymlinkPath = config['location'] + '/js/api/localsettings.js'
- nmSymlinkPath = config['location'] + '/js/node_modules'
+ lsSymlinkPath = config['location'] + '/src/api/localsettings.js'
if not __salt__['file.file_exists'](lsSymlinkPath):
try:
os.symlink('../../../config/localsettings.js', lsSymlinkPath)
except OSError:
return 1
- if not __salt__['file.file_exists'](nmSymlinkPath):
- try:
- os.symlink('../../config/node_modules', nmSymlinkPath)
- except OSError:
- return 1
return 0
-
-def restart_parsoid(repo):
- '''
- restart the parsoid service
- '''
- ret = subprocess.call("/etc/init.d/parsoid restart", shell=True)
- return ret
+# SSS FIXME: I assume this is not needed anymore
+#
+#def restart_parsoid(repo):
+# '''
+# restart the parsoid service
+# '''
+# ret = subprocess.call("/etc/init.d/parsoid restart", shell=True)
+# return ret
--
To view, visit https://gerrit.wikimedia.org/r/106471
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic8de01920b44a01090fa4297f2f5a6b9879654b8
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Subramanya Sastry <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits