예제 #1
0
    def __init__(self, name, loader=None, use_ssl=False, max_url_len=None):
        """Initialize, but do not start the WSGI server.

        :param name: The name of the WSGI server given to the loader.
        :param loader: Loads the WSGI application using the given name.
        :returns: None

        """
        self.name = name
        self.manager = self._get_manager()
        self.loader = loader or wsgi.Loader()
        self.app = self.loader.load_app(name)
        self.host = '0.0.0.0'
        self.port = CONF.get('port', 443)
        self.workers = 1
        if self.workers and self.workers < 1:
            worker_name = '%s_workers' % name
            msg = (_("%(worker_name)s value of %(workers)s is invalid, "
                     "must be greater than 0") %
                   {'worker_name': worker_name,
                    'workers': str(self.workers)})
            raise exception.InvalidInput(msg)
        self.use_ssl = use_ssl
        self.server = wsgi.Server(name,
                                  self.app,
                                  host=self.host,
                                  port=self.port,
                                  use_ssl=self.use_ssl,
                                  max_url_len=max_url_len)
        # Pull back actual port used
        self.port = self.server.port
        self.backdoor_port = None
예제 #2
0
def main():
    try:
        wsgi.set_eventlet_hub()
        server = wsgi.Server()

        # This equals to:
        # vi /etc/paste.ini
        #[app:server]
        #paste.app_factory = router:API.factory

        #from paste import deploy
        #server.start(deploy.loadapp("config:/etc/paste.ini", name="server"), default_port=35357)
        server.start(router.API.factory(None), default_port=35357)
        # Or server.start(router.API(wsgi.APIMapper()), default_port=35357)
        server.wait()
    except:
        fail()
예제 #3
0
def _run_wsgi(app_name):

    configfile = CONF.paste_file
    configfile = 'c://etc/knight/api-paste.ini'
    port = CONF.port
    listen_addr = CONF.listen_addr
    appname = "knight"
    '''
    start tasks scheuler thread
    '''
    thr_custom = Thread(target=task_scheduler.custum_task_scheduler,
                        name='task scheduler')
    thr_custom.start()

    m_th = MonitorThread(thr_custom)
    m_th.start()
    '''
    start timer scheduler thread
    '''
    #     thr_timer = timer_scheduler.TimerThread()
    #     thr_timer.start()

    global_config = {
        '__file__': 'c:\\etc\\knight\\api-paste.ini',
        'here': 'c:\\etc\\knight'
    }
    local_config = {'version': '1.0.0'}
    app = router.APIRouter.factory(global_config, **local_config)

    if not app:
        LOG.error(('No known API applications configured.'))
        return

    server = wsgi.Server(appname)
    server.start(app, port, listen_addr)
    LOG.info('start server')

    return server
예제 #4
0
 def __init__(self):
     self.loader = wsgi.Loader()
     self.app = self.loader.load_app()
     self.server = wsgi.Server(self.app, '0.0.0.0', 8080)