Files @ 8ed615e77e50
Branch filter:

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

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
########################################
#### THIS IS A REDHAT INIT.D SCRIPT ####
########################################

##################################################
#
# Kallithea server startup script
# Recommended default-startup: 2 3 4 5
# Recommended default-stop: 0 1 6
#
##################################################


APP_NAME="kallithea"
# the location of your app
# since this is a web app, it should go in /var/www
APP_PATH="/var/www/$APP_NAME"

CONF_NAME="production.ini"

# write to wherever the PID should be stored, just ensure
# that the user you run gearbox as has the appropriate permissions
# same goes for the log file
PID_PATH="/var/run/kallithea/pid"
LOG_PATH="/var/log/kallithea/kallithea.log"

# replace this with the path to the virtual environment you
# made for Kallithea
PYTHON_PATH="/opt/python_virtualenvironments/kallithea-venv"

RUN_AS="kallithea"

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"

DESC="kallithea-server"
LOCK_FILE="/var/lock/subsys/$APP_NAME"

# source CentOS init functions
. /etc/init.d/functions

RETVAL=0

remove_pid () {
  rm -f ${PID_PATH}
  rmdir `dirname ${PID_PATH}`
}

ensure_pid_dir () {
  PID_DIR=`dirname ${PID_PATH}`
  if [ ! -d ${PID_DIR} ] ; then
    mkdir -p ${PID_DIR}
    chown -R ${RUN_AS}:${RUN_AS} ${PID_DIR}
    chmod 755 ${PID_DIR}
  fi
}

start_kallithea () {
    ensure_pid_dir
    PYTHON_EGG_CACHE="/tmp" daemon --pidfile $PID_PATH \
        --user $RUN_AS "$DAEMON $DAEMON_OPTS"
    RETVAL=$?
    [ $RETVAL -eq 0 ] && touch $LOCK_FILE
    return $RETVAL
}

stop_kallithea () {
    if [ -e $LOCK_FILE ]; then
      killproc -p $PID_PATH
      RETVAL=$?
      rm -f $LOCK_FILE
      rm -f $PID_PATH
    else
      RETVAL=1
    fi
    return $RETVAL
}

status_kallithea() {
  if [ -e $LOCK_FILE ]; then
    # exit with non-zero to indicate failure
    RETVAL=1
  else
    RETVAL=0
  fi
  return $RETVAL
}

restart_kallithea () {
    stop_kallithea
    start_kallithea
    RETVAL=$?
}

case "$1" in
  start)
    echo -n $"Starting $DESC: "
    start_kallithea
    echo
    ;;
  stop)
    echo -n $"Stopping $DESC: "
    stop_kallithea
    echo
    ;;
  status)
    status_kallithea
    RETVAL=$?
    if [ ! $RETVAL -eq 0 ]; then
      echo "Kallithea server is running..."
    else
      echo "Kallithea server is stopped."
    fi
    ;;
  restart)
    echo -n $"Restarting $DESC: "
    restart_kallithea
    echo
    ;;
  *)
    echo $"Usage: $0 {start|stop|restart|status}"
    RETVAL=1
    ;;
esac

exit $RETVAL