コード例 #1
0
ファイル: server.py プロジェクト: scottwedge/markdoc-py3
def server_maker(config, **extra_config):

    """
    Return a server-making callable to create a CherryPy WSGI server.
    
    The server-making callable should be passed a WSGI application, and it
    will return an instance of `cherrypy.wsgiserver.CherryPyWSGIServer`.
    
    You can optionally override any of the hardwired configuration
    parameters by passing in keyword arguments which will be passed along to
    the `CherryPyWSGIServer` constructor.
    """

    from cheroot.wsgi import Server as WSGIServer

    bind_addr = (config['server.bind'], config['server.port'])
    kwargs = dict(
        numthreads=config['server.num-threads'],
        server_name=config['server.name'],
        request_queue_size=config['server.request-queue-size'],
        timeout=config['server.timeout'],
    )
    kwargs.update(extra_config)

    return lambda wsgi_app: WSGIServer(bind_addr, wsgi_app, **kwargs)
コード例 #2
0
def run_webserver():

    server = WSGIServer(bind_addr=(MY_IP, int(MY_PORT)),
                        wsgi_app=app,
                        numthreads=100)

    print(
        "[DDR_INSTALLER][INFO] ------------------------------------------------------------------------"
    )
    print("[DDR_INSTALLER][INFO] Starting IDA plugin installation.")
    print(
        "[DDR_INSTALLER][INFO] Please go to your IDA machine and point your browser to:\n"
    )
    print("[DDR_INSTALLER][INFO] http://{}:{}\n".format(MY_IP, MY_PORT))
    print(
        "[DDR_INSTALLER][INFO] Once you are done installing the IDA plugin, hit Ctrl-C here to stop the"
    )
    print("[DDR_INSTALLER][INFO] webserver and proceed with the installation.")
    print(
        "[DDR_INSTALLER][INFO] ------------------------------------------------------------------------"
    )

    try:
        server.start()
    except KeyboardInterrupt:
        server.stop()
    except:
        print(
            "[DDR_INSTALLER][ERROR] Failed to start installation server. Please check if you"
        )
        print(
            "[DDR_INSTALLER][ERROR] have configured a valid NGINX IP address above.\n"
        )
        raise
コード例 #3
0
def main(argv=sys.argv[1:]) -> int:
    """main entry point for ghast"""
    parser = get_parser()
    args = parser.parse_args(argv)
    init_logging(args, "ghast.log")

    __log__.info("starting ghast server on "
                 "host: {} port: {} "
                 "graylog_http_alert_url: {} "
                 "graylog_http_alert_script: {}".format(
                     args.host, args.port, args.graylog_http_alert_url,
                     args.graylog_http_alert_script))

    # Setup and start the flask / cheroot server
    ghast.server.API_HTTPS = args.api_https
    ghast.server.ALERT_SCRIPT_PATH = args.graylog_http_alert_script
    ghast.server.APP.register_blueprint(ghast.server.API_BLUEPRINT,
                                        url_prefix=args.graylog_http_alert_url)
    if args.debug:
        ghast.server.APP.run(host=args.host, port=args.port, debug=True)
    else:
        path_info_dispatcher = PathInfoDispatcher({'/': ghast.server.APP})
        server = WSGIServer((args.host, args.port), path_info_dispatcher)
        try:
            server.start()
        except KeyboardInterrupt:
            __log__.info("stopping server: KeyboardInterrupt detected")
            server.stop()
            return 0
        except Exception:
            __log__.exception("stopping server: unexpected exception")
            raise

    return 0
コード例 #4
0
ファイル: gui_server.py プロジェクト: K-Kit/liquitrader
    def run(self):
        import utils.runtime_handler
        utils.runtime_handler.enable_traceback_hook(
        )  # Enable custom traceback handling (to strip build path info)

        self._shutdown_handler.add_task()

        if self._use_ssl:
            self._init_ssl()

        ks = _KeyStore.query.first()
        if ks is not None:
            _app.config['SECRET_KEY'] = ks.flask_secret
        else:
            # Temporary static key for first run. We should roll this occasionally.
            _app.config[
                'SECRET_KEY'] = b'\xee\xf0\xabc>\xc8\xa4S\xa1\x89\xff\xa3\xaf\xcfX\xac'

        self._jwt = JWT(_app, user_authenticate, user_identity)

        self._wsgi_server = WSGIServer((self._host, int(self._port)),
                                       PathInfoDispatcher({'/': _app}))

        # TODO: Issue with SSL:
        # Firefox causes a (socket.error 1) exception to be thrown on initial connection (before accepting cert)
        # This is internal to cheroot, so it may be difficult to handle

        print('LiquiTrader is ready for action!')
        print(
            f'Visit http{"s" if self._use_ssl else ""}://{self._host}:{self._port} in your favorite browser'
        )
        print('to start trading!')

        self._wsgi_server.start()
コード例 #5
0
ファイル: __main__.py プロジェクト: ECE493Team4/autotradweb
def main(argv=sys.argv[1:]) -> int:
    """main entry point for the autotradeweb server"""
    parser = get_parser()
    args = parser.parse_args(argv)
    init_logging(args, "autotradeweb.log")

    # monkey patch courtesy of
    # https://github.com/noirbizarre/flask-restplus/issues/54
    # so that /swagger.json is served over https
    if not args.disable_https:

        @property
        def specs_url(self):
            """Monkey patch for HTTPS"""
            return url_for(self.endpoint("specs"), _external=True, _scheme="https")

        Api.specs_url = specs_url

    __log__.info("starting server: host: {} port: {}".format(args.host, args.port))
    APP.config["SQLALCHEMY_DATABASE_URI"] = args.database
    if args.debug:
        APP.run(host=args.host, port=args.port, debug=True)
    else:
        path_info_dispatcher = PathInfoDispatcher({"/": APP})
        # See SRS: S.8.R.4
        server = WSGIServer((args.host, args.port), path_info_dispatcher)
        try:
            server.start()
        except KeyboardInterrupt:
            __log__.info("stopping server: KeyboardInterrupt detected")
            server.stop()
            return 0
        except Exception:
            __log__.exception("stopping server: unexpected exception")
            raise
コード例 #6
0
ファイル: entry_point.py プロジェクト: umbresp/satyrn
def start_ui(url, port, interpreter, quiet, language):
    openurl = "localhost" if url == "0.0.0.0" else url

    if not quiet:
        print("Booting CherryPy server...")

    d = PathInfoDispatcher({'/': create_app(interpreter, language)})
    server = WSGIServer((url, port), d)

    try:
        p = multiprocessing.Process(target=delayed_browser_open,
                                    args=(openurl, port))
        p.start()

        if not quiet:
            print("Hosting at http://" + openurl + ":" + str(port) +
                  "/#loaded")

        server.start()
    except KeyboardInterrupt:
        if not quiet:
            print("Stopping CherryPy server...")

        server.stop()

        if not quiet:
            print("Stopped")
コード例 #7
0
ファイル: __main__.py プロジェクト: nklapste/undiscord
def main(argv=sys.argv[1:]) -> int:
    """main entry point undiscord flask/cheroot server"""
    parser = get_parser()
    args = parser.parse_args(argv)
    init_logging(args, "undiscord_server.log")

    graph_dir = os.path.abspath(args.graph_dir)
    os.makedirs(graph_dir, exist_ok=True)

    __log__.info("starting server: host: {} port: {} graph_dir: {}".format(
        args.host, args.port, graph_dir))

    undiscord.server.server.GRAPH_DIR = graph_dir

    if args.debug:
        undiscord.server.server.APP.run(host=args.host,
                                        port=args.port,
                                        debug=True)
    else:
        path_info_dispatcher = PathInfoDispatcher(
            {'/': undiscord.server.server.APP})
        server = WSGIServer((args.host, args.port), path_info_dispatcher)
        try:
            server.start()
        except KeyboardInterrupt:
            __log__.info("stopping server: KeyboardInterrupt detected")
            server.stop()
            return 0
        except Exception:
            __log__.exception("stopping server: unexpected exception")
            raise
コード例 #8
0
def get_server(cmd_line_args):
    args = _parse_args(cmd_line_args)
    logger = _get_logger(args)
    a = create_app([args['sql_source']], {})
    d = PathInfoDispatcher({'/': a})
    server = WSGIServer((args['url'], args['port']), d)
    return logger, server, a
コード例 #9
0
def start_ui(url, port, interpreter, quiet):
    openurl = "localhost" if url == "0.0.0.0" else url

    if not quiet:
        print("Initializing CherryPy server...")

    os.environ["FLASK_APP"] = "satyrnUI.satyrnUI"
    os.environ["FLASK_ENV"] = "production"

    d = PathInfoDispatcher({'/': create_app(interpreter)})
    server = WSGIServer((url, port), d)

    try:
        p = multiprocessing.Process(target=delayed_browser_open,
                                    args=(openurl, port))
        p.start()

        if not quiet:
            print("Hosting at http://" + openurl + ":" + str(port) +
                  "/#loaded")

        server.start()
    except KeyboardInterrupt:
        if not quiet:
            print("Stopping CherryPy server...")

        server.stop()

        if not quiet:
            print("Stopped")
コード例 #10
0
    def runtime(self, flask_instance: Flask, mode: int = ENABLE_FLASK):
        """
            This method deploys a REST endpoint as using different technologies according to the "mode" value.
            This endpoint will listen for incoming REST requests on different route paths.
        """

        if mode == ENABLE_FLASK:
            # simply run Flask
            flask_instance.run(host=self._listening_address,
                               port=self._listening_port,
                               threaded=True)
        elif mode == ENABLE_CHERRYPY:
            # Run Flask wrapped by Cherrypy
            cherrypy.tree.graft(flask_instance, "/")
            cherrypy.config.update({
                "server.socket_host": self._listening_address,
                "server.socket_port": self._listening_port,
                "engine.autoreload.on": False,
            })
            cherrypy.engine.start()
            cherrypy.engine.block()
        elif mode == ENABLE_WSGISERVER:
            # Run Flask wrapped by a WSGI Server.
            dispatcher = PathInfoDispatcher({'/': flask_instance})
            server = WSGIServer(
                (self._listening_address, self._listening_port), dispatcher)
            try:
                server.start()
                # server.block
            except KeyboardInterrupt:
                server.stop()
        else:
            raise RuntimeError("Invalid runtime mode was selected.")
コード例 #11
0
 def _server_thread(self):
   log.info(f'Starting webserver on {self.bind_hostname}:{self.bind_port}')
   app = self._handler
   app = DispatcherMiddleware(app, self.mount_map)
   app = WSGILogger(app)
   self.server = WSGIServer((self.bind_hostname, self.bind_port), app)
   self.server.stats['Enabled'] = True
   self.server.start()
コード例 #12
0
def initiate():
    log_main.info('Iniciando a API versão: {}'.format(app_version))

    signal.signal(signal.SIGTERM, finalize)
    signal.signal(signal.SIGINT, finalize)

    global token, database, sms

    token = conf.get('Auth',
                     'Token',
                     fallback='14acd1c3b2f50c1e7354668f7d0b4057')

    ttvToken = open(
        os.path.join(workdir, conf.get('Auth', 'TokenTTV', fallback=False)),
        'r')
    sms = SMS(ttvToken.readline())
    ttvToken.close()

    log_main.warning('Iniciando conexão com banco de dados ...')
    try:
        db = os.path.join(workdir,
                          conf.get('Database', 'Database', fallback='data.db'))
        database = Database(db)
    except Exception as e:
        log_main.exception(
            'Erro ao iniciar a conexão com o banco de dados: [{}]'.format(e))

    _port = conf.getint('Flask', 'Port', fallback=8860)
    _host = conf.get('Flask', 'Host', fallback='0.0.0.0')
    _threads = conf.getint('Flask', 'Threads', fallback=100)
    _ssl_cert = os.path.join(workdir, 'SSL',
                             conf.get('Flask', 'SSL_Cert', fallback=''))
    _ssl_key = os.path.join(workdir, 'SSL',
                            conf.get('Flask', 'SSL_Key', fallback=''))
    try:
        _ssl_enabled = os.path.isfile(_ssl_cert) and os.path.isfile(_ssl_key)
    except Exception:
        _ssl_enabled = False

    if len(sys.argv) > 1:
        if sys.argv[1] in ('-v', '--version'):
            print('API')
            print('Versão: {}'.format(app_version))
            sys.exit(0)
        elif sys.argv[1] in ('-d', '--debug'):
            app.run(host=_host, port=_port, threaded=True, debug=True)
        else:
            print('ERRO | Parâmetro desconhecido: {}'.format(sys.argv))
            sys.exit(2)
    else:
        global server
        server = WSGIServer(bind_addr=(_host, _port),
                            wsgi_app=app,
                            numthreads=_threads)
        if _ssl_enabled:
            server.ssl_adapter = BuiltinSSLAdapter(_ssl_cert, _ssl_key)
        log_main.warning('Iniciando flask ...')
        server.start()
コード例 #13
0
def start_rest_service(port, num_threads, ovms_port):
    available_models = get_available_models()
    dispatcher = PathInfoDispatcher(
        {'/': create_dispatcher(available_models, ovms_port)})
    server = WSGIServer(('0.0.0.0', port), dispatcher, numthreads=num_threads)
    logger.info(f"AMS service will start listening on port {port}")
    try:
        server.start()
    except KeyboardInterrupt:
        server.stop()
コード例 #14
0
ファイル: server.py プロジェクト: wayne9qiu/wge
 def run(self, handler):
     cert = SSL_CERT
     #cert_chain = SSL_CERT_CHAIN
     privkey = SSL_PRIVKEY
     server = WSGIServer((self.host, self.port), handler)
     server.ssl_adapter = SecuredSSLServer(cert, privkey)  #, cert_chain)
     try:
         server.start()
     finally:
         server.stop()
コード例 #15
0
ファイル: scheduler.py プロジェクト: pjhaest/pyngsi
 def _flaskthread(self):
     if self.debug:
         self.app.run(host=self.host, port=self.port, debug=self.debug)
     else:
         wsgi_server = WSGIServer(bind_addr=("0.0.0.0", self.wsgi_port),
                                  wsgi_app=self.app,
                                  numthreads=100)
         try:
             wsgi_server.start()
         except KeyboardInterrupt:
             wsgi_server.stop()
コード例 #16
0
def start_web_rest_server(models, rest_port):
    d = PathInfoDispatcher({'/': create_rest_api(models)})
    server = WSGIServer(('0.0.0.0', rest_port),
                        d,
                        numthreads=1,
                        request_queue_size=50)

    try:
        server.start()
    except KeyboardInterrupt:
        server.stop()
コード例 #17
0
    def run(self, handler):
        try:
            from cheroot.wsgi import Server as WSGIServer
        except ImportError:
            from cherrypy.wsgiserver import CherryPyWSGIServer as WSGIServer

        server = WSGIServer((self.host, self.port), handler)

        try:
            server.start()
        finally:
            server.stop()
コード例 #18
0
def start_web_rest_server(models, rest_port, num_threads):
    d = PathInfoDispatcher({'/': create_rest_api(models)})
    server = WSGIServer(('0.0.0.0', rest_port), d,
                        numthreads=num_threads,
                        request_queue_size=GLOBAL_CONFIG[
                            'rest_requests_queue_size'])
    logger.info("REST server listens on port {port} and will be "
                "serving models: {models}".format(port=rest_port,
                                                  models=list(models.keys())))
    try:
        server.start()
    except KeyboardInterrupt:
        server.stop()
コード例 #19
0
    def setUp(self):
        self.app = create_app(TestConfig)
        self.app_context = self.app.app_context()
        self.app_context.push()

        db.create_all()

        d = PathInfoDispatcher({'/': self.app})
        self.server = WSGIServer(('0.0.0.0', 5000), d)

        Thread(target=self.server.start).start()

        self.driver = webdriver.Firefox()
コード例 #20
0
 def run(self, handler):
     from cheroot.wsgi import Server as WSGIServer
     from cheroot.ssl.pyopenssl import pyOpenSSLAdapter
     server = WSGIServer((self.host, self.port), handler)
     server.ssl_adapter = pyOpenSSLAdapter(
         certificate=SolUtils.AppConfig().get('solserver_certificate'),
         private_key=SolUtils.AppConfig().get('solserver_private_key'),
     )
     try:
         server.start()
         log.info("Server started")
     finally:
         server.stop()
コード例 #21
0
def main():
    args = get_args()
    app = create_app(args.output)

    d = PathInfoDispatcher({"/": app})
    server = WSGIServer((args.netmask, args.port), d)
    try:
        print(f"Logging location set to: {args.output}")
        print(f"Listening on {args.netmask}:{args.port}....")
        server.start()
    except KeyboardInterrupt:
        print("Exiting....")
        sys.exit(0)
コード例 #22
0
ファイル: server.py プロジェクト: pixel-ports/pyngsi
    def run(self):
        logger.info(
            f"HTTP server listens on http://{self.host}:{self.port}{self.endpoint}"
        )
        if self.agent:
            self.agent.server_status.starttime = datetime.now()

        if self.debug:
            self.app.run(host=self.host, port=self.port, debug=self.debug)
        else:
            wsgi_server = WSGIServer(bind_addr=("0.0.0.0", self.wsgi_port),
                                     wsgi_app=self.app,
                                     numthreads=100)
            try:
                wsgi_server.start()
            except KeyboardInterrupt:
                wsgi_server.stop()
コード例 #23
0
    def run(self, handler):
        """
        Run server
        """
        try:
            from cheroot.wsgi import Server as WSGIServer
        except ImportError:
            from cherrypy.wsgiserver import CherryPyWSGIServer as WSGIServer

        global server
        # server = wsgiserver.CherryPyWSGIServer((self.host, self.port), handler)
        server = WSGIServer((self.host, self.port), handler)
        #        cert = 'server.pem' # certificate path
        #        server.ssl_certificate = cert
        #        server.ssl_private_key = cert

        try:
            server.start()
        finally:
            server.stop()
コード例 #24
0
    def run(self, handler):  # pragma: no cover
        from cheroot.wsgi import Server as WSGIServer
        self.options['bind_addr'] = (self.host, self.port)
        self.options['wsgi_app'] = handler

        certfile = self.options.get('certfile')
        if certfile:
            del self.options['certfile']
        keyfile = self.options.get('keyfile')
        if keyfile:
            del self.options['keyfile']

        server = WSGIServer(**self.options)
        if certfile:
            server.ssl_certificate = certfile
        if keyfile:
            server.ssl_private_key = keyfile

        try:
            server.start()
        finally:
            server.stop()
コード例 #25
0
def main():
    clear_screen()
    print_logo()

    with AdbInstaller() as installer:
        installer.install()

    AdbWrapper().disconnect_all()
    success("Açık kalan ADB bağlantıları kapatıldı!")

    web.api_key = "Girilmedi!"
    success("Sunucu başlatılıyor!")

    try:
        http_server = WSGIServer(("127.0.0.1", 5000),
                                 PathInfoDispatcher({'/': website_app}))
        success("Sunucu başlatıldı!")
        success("Arayüz adresi: http://localhost:5000")
        http_server.start()
    except KeyboardInterrupt:
        clear_screen()
        success("Kapatılıyor!")
        _exit(0)
コード例 #26
0
    if sucess_login:
        session['logged_in'] = True
        logger.info("{ip} successfully looged in".format(ip=ip))
        flash('You were successfully logged in!')
    else:
        logger.warning(
            "{ip} attempted to log in with wrong password".format(ip=ip))
        flash('wrong password!')
    return index()


##################################################
# END API part
##################################################

if __name__ == "__main__":

    log_manager = LogManager()
    logger = log_manager.logger
    logger.info('Running Flask Server on http://localhost:{port}'.format(
        port=os.environ.get("SERVER_PORT")))
    app.secret_key = os.urandom(12)
    server = WSGIServer(('0.0.0.0', int(os.environ.get("SERVER_PORT"))),
                        app,
                        numthreads=int(os.environ.get("SERVER_NUM_THREADS")))

    try:
        server.start()
    except KeyboardInterrupt:
        logger.critical("KeyboardInterrupt")
コード例 #27
0
 def run(self):
     self._configure_flask_app()
     dispatcher = PathInfoDispatcher({"/": app})
     self.server = WSGIServer((self.host, self.port), dispatcher)
     self.server.start()
コード例 #28
0
bcrypt = Bcrypt(app)
login = LoginManager()
login.init_app(app)


@app.before_first_request
def init_db():
    db.create_all()


import_module('pagermaid.interface.views')
import_module('pagermaid.interface.modals')

dispatcher = PathInfoDispatcher({'/': app})
server = WSGIServer(
    (config['web_interface']['host'], int(config['web_interface']['port'])),
    dispatcher)


def start():
    if strtobool(config['web_interface']['enable']):
        logs.info(
            f"已经启动Web界面 {config['web_interface']['host']}:{config['web_interface']['port']}"
        )
        app.logger.removeHandler(default_handler)
        app.logger.addHandler(logging_handler)
        try:
            server.start()
        except OSError:
            logs.fatal("出错了呜呜呜 ~ 另一个进程绑定到了 PagerMaid 需要的端口!")
            return
コード例 #29
0
    received_data = request.get_json(force=True)
    extracted_df = jsonToCSV(received_data)
    # TODO: Change hope feature vector calls to respective function. Uncomment for debugging temporarily
    buy = feature_vector_buy(extracted_df, test=True)
    communicate = feature_vector_communicate(extracted_df, test=True)
    fun = feature_vector_fun(extracted_df, test=True)
    hope = feature_vector_hope(extracted_df, test=True)
    mother = feature_vector_mother(extracted_df, test=True)
    really = feature_vector_really(extracted_df, test=True)
    hope = feature_vector_hope(extracted_df, test=True)
    feature_vectors = [buy, communicate, fun, hope, mother, really]
    results = dict()
    for i in range(1, 5):
        scores = [0] * 6
        for gesture_id in INDEX_TO_GESTURE:
            scores[ord(gesture_id) - 65] = get_result_from_model(
                i, gesture_id, feature_vectors[ord(gesture_id) - 65])
        results[i] = INDEX_TO_GESTURE[chr(ord('A') + np.argmax(scores))]
    return jsonify(results)


if __name__ == '__main__':
    server = WSGIServer(bind_addr=('127.0.0.1', 9696),
                        wsgi_app=app,
                        numthreads=100)
    try:
        print("Serving on {}".format(server))
        server.start()
    except KeyboardInterrupt:
        server.stop()
コード例 #30
0
ファイル: idp.py プロジェクト: vivekdhayaal/pysaml2
    HOST = CONFIG.HOST
    PORT = CONFIG.PORT

    sign_alg = None
    digest_alg = None
    try:
        sign_alg = CONFIG.SIGN_ALG
    except AttributeError:
        pass
    try:
        digest_alg = CONFIG.DIGEST_ALG
    except AttributeError:
        pass
    ds.DefaultSignature(sign_alg, digest_alg)

    SRV = WSGIServer((HOST, PORT), application)

    _https = ""
    if CONFIG.HTTPS:
        https = "using HTTPS"
        # SRV.ssl_adapter = ssl_pyopenssl.pyOpenSSLAdapter(
        #     config.SERVER_CERT, config.SERVER_KEY, config.CERT_CHAIN)
        SRV.ssl_adapter = BuiltinSSLAdapter(CONFIG.SERVER_CERT,
                                            CONFIG.SERVER_KEY,
                                            CONFIG.CERT_CHAIN)

    logger.info("Server starting")
    print("IDP listening on %s:%s%s" % (HOST, PORT, _https))
    try:
        SRV.start()
    except KeyboardInterrupt: