Files @ 8ed615e77e50
Branch filter:

Location: kallithea/init.d/kallithea-daemon-debian

Thomas De Schampheleire
cli: fix celery-run

The conversion of celery_args (a tuple) into a list is mandatory, otherwise
following error happens on celery-run:

Traceback (most recent call last):
File ".../bin/kallithea-cli", line 11, in <module>
load_entry_point('Kallithea', 'console_scripts', 'kallithea-cli')()
File ".../lib/python2.7/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File ".../lib/python2.7/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File ".../lib/python2.7/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File ".../lib/python2.7/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File ".../lib/python2.7/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File ".../bin/kallithea_cli_base.py", line 52, in runtime_wrapper
return annotated(*args, **kwargs)
File ".../bin/kallithea_cli_celery.py", line 39, in celery_run
return cmd.run_from_argv('kallithea celery worker', celery_args)
File ".../lib/python2.7/site-packages/celery/bin/worker.py", line 177, in run_from_argv
*self.parse_options(prog_name, argv, command))
File ".../lib/python2.7/site-packages/celery/bin/base.py", line 412, in parse_options
return self.parser.parse_args(arguments)
File "/usr/lib64/python2.7/optparse.py", line 1404, in parse_args
args = largs + rargs
TypeError: can only concatenate list (not "tuple") to list

The problem was introduced in 1d539bb18165 in last minute changes made by Mads.
#!/bin/sh -e
########################################
#### THIS IS A DEBIAN INIT.D SCRIPT ####
########################################

### BEGIN INIT INFO
# Provides:          kallithea
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts instance of kallithea
# Description:       starts instance of kallithea using start-stop-daemon
### END INIT INFO

APP_NAME="kallithea"
APP_HOMEDIR="opt"
APP_PATH="/$APP_HOMEDIR/$APP_NAME"

CONF_NAME="production.ini"

PID_PATH="$APP_PATH/$APP_NAME.pid"
LOG_PATH="$APP_PATH/$APP_NAME.log"

PYTHON_PATH="/$APP_HOMEDIR/$APP_NAME-venv"

RUN_AS="root"

DAEMON="$PYTHON_PATH/bin/gearbox"

DAEMON_OPTS="serve --daemon \
 --user=$RUN_AS \
 --group=$RUN_AS \
 --pid-file=$PID_PATH \
 --log-file=$LOG_PATH -c $APP_PATH/$CONF_NAME"


start() {
  echo "Starting $APP_NAME"
  PYTHON_EGG_CACHE="/tmp" start-stop-daemon -d $APP_PATH \
      --start --quiet \
      --pidfile $PID_PATH \
      --user $RUN_AS \
      --exec $DAEMON -- $DAEMON_OPTS
}

stop() {
  echo "Stopping $APP_NAME"
  start-stop-daemon -d $APP_PATH \
      --stop --quiet \
      --pidfile $PID_PATH || echo "$APP_NAME - Not running!"

  if [ -f $PID_PATH ]; then
    rm $PID_PATH
  fi
}

status() {
  echo -n "Checking status of $APP_NAME ... "
  pid=`cat $PID_PATH`
  status=`ps ax | grep $pid | grep -ve grep`
  if [ "$?" -eq 0 ]; then
    echo "running"
  else
    echo "NOT running"
  fi
}

case "$1" in
  status)
   status
    ;;
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    echo "Restarting $APP_NAME"
    ### stop ###
    stop
    wait
    ### start ###
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac