etwist/twctl.py
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Thu, 21 Jan 2010 17:38:31 +0100
changeset 4320 4efd4c306746
parent 4252 6c4f109c2b03
child 4719 aaed3f813ef8
permissions -rw-r--r--
closes #345410: two_lines_rset, two_cols_rset, two_etypes_rset are badly named replaced by multi_lines_rset, multi_columns_rset, multi_etypes_rset, all taking optional 'nb' argument allowing to specify and exact count. Bw compat is kept, usage of deprecated function updated in cw itself. Also drop custom at_least_two_columns selector (in views.plots) since it was the same as multi_columns_rset. Hopefuly the renaming will help in avoid such pb... We should now decide if we want to deprecate one_* selector in favor of multi_*(nb=1). See note on this at then end of selectors.py

"""cubicweb-clt handlers for twisted

:organization: Logilab
:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2.
:contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
:license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
"""

import sys

from cubicweb.toolsutils import CommandHandler
from cubicweb.web.webctl import WebCreateHandler

# trigger configuration registration
import cubicweb.etwist.twconfig # pylint: disable-msg=W0611

class TWCreateHandler(WebCreateHandler):
    cfgname = 'twisted'

class TWStartHandler(CommandHandler):
    cmdname = 'start'
    cfgname = 'twisted'

    def start_server(self, config, debug):
        from cubicweb.etwist import server
        server.run(config, debug)

class TWStopHandler(CommandHandler):
    cmdname = 'stop'
    cfgname = 'twisted'


try:
    from cubicweb.server import serverctl
    class AllInOneCreateHandler(serverctl.RepositoryCreateHandler,
                                TWCreateHandler):
        """configuration to get an instance running in a twisted web server
        integrating a repository server in the same process
        """
        cfgname = 'all-in-one'

        def bootstrap(self, cubes, inputlevel=0):
            """bootstrap this configuration"""
            serverctl.RepositoryCreateHandler.bootstrap(self, cubes, inputlevel)
            TWCreateHandler.bootstrap(self, cubes, inputlevel)

    class AllInOneStartHandler(TWStartHandler):
        cmdname = 'start'
        cfgname = 'all-in-one'
        subcommand = 'cubicweb-twisted'

    class AllInOneStopHandler(serverctl.RepositoryStopHandler):
        cmdname = 'stop'
        cfgname = 'all-in-one'
        subcommand = 'cubicweb-twisted'

except ImportError:
    pass