debian/cubicweb-ctl.cubicweb.init
author Rémi Cardona <remi.cardona@logilab.fr>
Mon, 21 Dec 2015 12:47:35 +0100
changeset 11017 3dfed980071c
parent 10235 684215aca046
permissions -rw-r--r--
[devtools] Use super() in TestServerConfiguration.__init__() While cleaning up the use of init_config() in WSGIAppTC, I wondered why the method was trying to set the 'https_uiprops' and 'https_datadir_url' attributes on the config, when WebConfiguration's __init__ should be taking care of setting them. WSGIAppTC uses the default configuration - one that derives from ApptestConfiguration (noted as G below). The issue is that the class hierarchy of ApptestConfiguration includes TestServerConfiguration (C in the graph below) which calls ServerConfiguration's __init__ directly (B below). As B does not have an __init__ method, CubicWebConfiguration's __init__ is called directly (A below). This has the unintended consequence of preventing WebConfiguration's __init__ from being called. A / \ B D | | C E \ / F | G | ... A: cwconfig.CubicWebConfiguration B: server.serverconfig.ServerConfiguration C: devtools.TestServerConfiguration D: web.webconfig.WebConfiguration E: etwist.twconfig.WebConfigurationBase F: devtools.BaseApptestConfiguration G: devtools.ApptestConfiguration NB: unittest_wsgi wasn't really broken, as it's the only test in wsgi/test/, but I figured I might as well clean it up. Related to #9297611.

#!/bin/sh -e

### BEGIN INIT INFO
# Provides:          cubicweb
# Required-Start:    $remote_fs $syslog $local_fs $network
# Required-Stop:     $remote_fs $syslog $local_fs $network
# Should-Start:      postgresql
# Should-Stop:       postgresql
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start cubicweb application at boot time
### END INIT INFO

# FIXME Seems to be inadequate here
cd /tmp

# FIXME Work-around about the following lintian error
#     E: cubicweb-ctl: init.d-script-does-not-implement-required-option /etc/init.d/cubicweb start
#
# Check if we are sure to not want the start-stop-daemon machinery here
# Refer to Debian Policy Manual section 9.3.2 (Writing the scripts) for details.

case $1 in
    force-reload)
        python -W ignore /usr/bin/cubicweb-ctl reload --force
        ;;
    status)
        python -W ignore /usr/bin/cubicweb-ctl status
        ;;
    start|stop|restart|*)
        python -W ignore /usr/bin/cubicweb-ctl $1 --force
        ;;
esac