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

Reply via email to