Beispiel #1
0
def run_server(host=None, port=None, workers=None, debug=None,
               logfile=None, stdout=None, loglevel=None):
    if not host:
        host = settings.server_host
    if not port:
        port = settings.server_port

    if workers is not None:
        settings.workers = workers

    if debug:
        settings.debug = True

    try:
        proctitle = settings.proctitle
    except AttributeError:
        proctitle = 'geweb'
    setproctitle(proctitle)

    log.info('Starting HTTP server at %s:%d' % (host, port))

    pool = Pool(10000)
    server = WSGIServer("%s:%s" % (host, port), handle, spawn=pool)
    server.init_socket()

    for i in xrange(settings.workers - 1):
        pid = gevent.fork()
        if pid == 0:
            break

    server.serve_forever()
Beispiel #2
0
def main():
    options = parser.parse_args()

    logging.basicConfig(
        level=getattr(logging, options.log_level.upper(), logging.INFO),
        format="[%(asctime)s] %(filename)s:%(lineno)d %(levelname)s %(message)s"
    )

    app.config['DATABASE'] = options.db

    init_db()

    app.template_folder = TEMPLATES_PATH
    app.static_folder = STATIC_PATH

    log.info("Starting service on http://%s:%d/", options.listen, options.port)

    if options.debug:
        log.warning("Running on debug mode not for production.")
        app.run(host=options.listen, port=options.port, debug=True)
    else:
        http_server = WSGIServer((options.listen, options.port), app)

        with suppress(KeyboardInterrupt):
            http_server.serve_forever()
Beispiel #3
0
    def run(interface='0.0.0.0', port=5000):
        print u" * Server is running at %s:%s" % (interface, port)

        wsgi = DebuggedApplication(app)

        http_server = WSGIServer((interface, port), wsgi)
        http_server.serve_forever()
Beispiel #4
0
def run_server(port=5000, debug=False):
    app = twidder.app
    if debug:
        app = werkzeug.debug.DebuggedApplication(app)

    http_server = WSGIServer(('', port), app, handler_class=WebSocketHandler)
    http_server.serve_forever()
Beispiel #5
0
def main():
    if args.action == 'run':
        host = ''.join(args.bind.split(':')[:-1])
        port = int(args.bind.split(':')[-1])
        if args.name != PROC_TITLE_DEFAULT:
            try:
                import setproctitle
                proc_title = 'Spray Server: ' + args.name
                setproctitle.setproctitle(proc_title)
                logging.debug('Using custom process title ' + proc_title)
            except ImportError:
                logging.debug('Could not set process title as specified. Python module "setproctitle" required')
        if args.mode == 'development':
            app = create_app(args)
            logging.debug('Launching server in development mode')
            app.run(debug=args.debug, host=host, port=port)
        elif args.mode == 'production':
            args.cache = True
            cache_path = os.path.abspath(os.path.join(args.path, 'cache'))
            logging.debug('Clearing cache directory {path}'.format(path=cache_path))
            if os.path.exists(cache_path):
                shutil.rmtree(cache_path)
            create_directory(cache_path)
            app = create_app(args)
            try:
                from gevent.wsgi import WSGIServer
                logging.debug('Launching server in production mode with gevent')
                server = WSGIServer((host, port), app, log=None)
                server.serve_forever()
            except ImportError:
                logging.debug('Launching server in production mode without gevent')
                app.run(host=host, port=port)

    elif args.action == 'create':
        create_project()
Beispiel #6
0
class DjangoApp(DirtApp):
    log = logging.getLogger(__name__)

    def setup(self):
        self.application = DjangoWSGIApp()
        if self.settings.DEBUG:
            from werkzeug import DebuggedApplication
            self.application = DebuggedApplication(self.application, evalex=True)
        settings.get_api = self.settings.get_api
        self.server = WSGIServer(self.settings.http_bind, self.application, log=None)

    def serve_dirt_rpc(self):
        """ Calls ``DirtApp.serve`` to start the RPC server, which lets callers
            use the debug API. """
        if getattr(self.settings, "bind_url", None) is None:
            self.log.info("no `bind_url` specified; RPC server not starting.")
            return
        DirtApp.serve(self)

    def serve(self):
        self.api_thread = gevent.spawn(self.serve_dirt_rpc)
        self.log.info("Starting server on http://%s:%s...", *self.settings.http_bind)
        self.server.serve_forever()

    def get_api(self, *args, **kwargs):
        """ The DjangoApp returns an empty API object by default so that tab
            completion of the API will work. Feel free to override this method.
            """
        return object()
def main(argv):
    global port, log, pidfile, interface
    try:
        opts, args = getopt.getopt(argv, "p:l:i:h", ["pidfile="])
    except getopt.GetoptError:
        usage()
        sys.exit(2)
    for opt, arg in opts:
        if opt == '-h':
            usage()
            sys.exit()
        elif opt == '-p':
            port = int(arg)
        elif opt == '-l':
            try:
                log = open(arg, 'w')
            except:
                sys.stderr.write("Can not open log file.\n")
                sys.exit(1)
        elif opt == '-i':
            interface = arg
        elif opt == '--pidfile':
            pidfile = arg
    if pidfile:
        with open(pidfile, 'w') as f:
            f.write(str(os.getpid()))
        signal.signal(signal.SIGTERM, shutdown_handler)
        signal.signal(signal.SIGINT, shutdown_handler)
    http_server = WSGIServer((interface, port), application=app, log=log)
    try:
        http_server.serve_forever()
    except:
        clean_pidfile()
        sys.exit()  # Don't print backtrace for KeyboardInterrupt
Beispiel #8
0
def start_servers(upstream_dns, ifname):
    dns_queue = Queue()
    dnsserver = PACDNSServer(upstream_dns, queue=dns_queue)
    dnsserver.start()
    gevent.spawn(handle_subscriptions, dns_queue)
    server = WSGIServer(('0.0.0.0', 8081), app)
    server.serve_forever()
def run():
    """Run gevent server"""
    http_server = WSGIServer((core_settings.SERVER_ADDRESS, core_settings.SERVER_PORT), app)
    try:
        http_server.serve_forever()
    except KeyboardInterrupt:
        http_server.stop()
 def serve(self, port):
     """
     Serve status over HTTP forever.
     """
     flaskapp._status = self._status
     http_server = WSGIServer(('', port), flaskapp)
     http_server.serve_forever()
Beispiel #11
0
def main(argv=None):
    args = parse_paasta_api_args()
    if args.debug:
        logging.basicConfig(level=logging.DEBUG)
    else:
        logging.basicConfig(level=logging.WARNING)

    if args.soa_dir:
        settings.soa_dir = args.soa_dir

    # Exit on exceptions while loading settings
    settings.cluster = load_system_paasta_config().get_cluster()

    marathon_config = marathon_tools.load_marathon_config()
    settings.marathon_client = marathon_tools.get_marathon_client(
        marathon_config.get_url(),
        marathon_config.get_username(),
        marathon_config.get_password()
    )

    # Set up transparent cache for http API calls. With expire_after, responses
    # are removed only when the same request is made. Expired storage is not a
    # concern here. Thus remove_expired_responses is not needed.
    requests_cache.install_cache("paasta-api", backend="memory", expire_after=30)

    server = WSGIServer(('', int(args.port)), make_app())
    log.info("paasta-api started on port %d with soa_dir %s" % (args.port, settings.soa_dir))

    try:
        server.serve_forever()
    except KeyboardInterrupt:
        sys.exit(0)
Beispiel #12
0
class GeventWSGIServer(object):

    """Adapter for a gevent.wsgi.WSGIServer."""

    def __init__(self, *args, **kwargs):
        from eden.web.patch import patch_cherrypy

        patch_cherrypy()
        self.args = args
        self.kwargs = kwargs
        self.ready = False

    def start(self):
        """Start the GeventWSGIServer."""
        # We have to instantiate the server class here because its __init__
        from gevent.wsgi import WSGIServer

        self.ready = True
        LOGGER.debug('Starting Gevent WSGI Server...')
        self.httpd = WSGIServer(*self.args, **self.kwargs)
        self.httpd.serve_forever()

    def stop(self):
        """Stop the HTTP server."""
        LOGGER.debug('Stoping Gevent WSGI Server...')
        self.ready = False
        self.httpd.stop()
Beispiel #13
0
 def start_server():
     WSGIServer.handler_class = ErrorHandler
     server = WSGIServer(("", PORT), app)
     print "Please open a web browser to http://127.0.0.1:", PORT
     ferr = open('out.log', 'w')
     server.log = ferr  #redirect the server log
     server.serve_forever()
def gevent():
    from gevent.wsgi import WSGIServer

    bipbalance_client.logger.info("Running Gevent on port %s", config.port)

    http_server = WSGIServer(('', config.port), bipbalance_client)
    http_server.serve_forever()
Beispiel #15
0
 def serve(self, port, app, block=False):
     server = WSGIServer(("", port), app)
     server.handler_class = CustomHandler
     if not block:
         self.greenlets.append(gevent.spawn(server.serve_forever))
     else:
         server.serve_forever()
Beispiel #16
0
def main():
    if config["ENV"] == "local":
        app.debug = True
    print "Explainer listening on http://%s" % config["EXPLAINER"]
    sys.stdout.flush()
    http_server = WSGIServer((config["EXPLAINER"].split(":")[0], int(config["EXPLAINER"].split(":")[1])), app)
    http_server.serve_forever()
Beispiel #17
0
def execute_from_cli(hostname, cluster, with_ui, peers):

  polar_client = PolarClient(hosts=peers, handler=GeventHandler())
  polar_client.start()

  crow = CrowContext(polar_client, hostname, cluster)

  actor_name = "%s-%s" % (hostname, cluster)
  actor_system = ActorSystem(
    polar_client=polar_client,
    name=actor_name
  )

  actor_system.actor_of(KeepRpcActor.props(
    crow=crow,
    polar_client=polar_client
  ))

  crow.announce()

  if with_ui == True:
    from keep.ui import app

    app.config["actor_flask"] = actor_system
    app.config["polar_client"] = polar_client

    # adapt polar client wo work with the WSGI adapter

    http_server = WSGIServer(('', 5000), app)

    print "Stared UI on port 5000"
    http_server.serve_forever()

  gevent.wait()
Beispiel #18
0
def run():
    skipped_components = []
    LOGGER.info('environment: %s' % os.environ.items())
    if not config.read().getboolean('fqrouter', 'BypassDirectlyEnabled'):
        LOGGER.info('scrambler component disabled by config')
        COMPONENTS.remove(comp_scrambler)
    for comp in COMPONENTS:
        try:
            shutdown_hook.add(comp.stop)
            handlers = comp.start()
            for method, url, handler in handlers or []:
                HANDLERS[(method, url)] = handler
            LOGGER.info('started component: %s' % comp.__name__)
        except:
            LOGGER.exception('failed to start component: %s' % comp.__name__)
            comp.stop()
            if getattr(comp, '__MANDATORY__', False):
                raise
            skipped_components.append(comp.__name__)
    LOGGER.info('all components started except: %s' % skipped_components)
    try:
        httpd = WSGIServer(('127.0.0.1', 8318), handle_request)
        LOGGER.info('serving HTTP on port 8318...')
    except:
        LOGGER.exception('failed to start HTTP server on port 8318')
        sys.exit(1)
    httpd.serve_forever()
Beispiel #19
0
 def serve_forever(self,*args,**kw):
  from handlers_base import APIHandler
  from process_reader import ProcessReader
  from u2py.config import reader_path

  try:
   APIHandler.readers = [ProcessReader(**reader_kw) for reader_kw in reader_path]
   [reader.open() for reader in APIHandler.readers]

   def signal_handler(sgn,frame):
    logging.debug('Stop signal catched[%i].' % (sgn))
    self.stop()
    logging.debug('Web-server stopped.')

   try:
    if hasattr(signal,'SIGBREAK'):
     signal.signal(signal.SIGBREAK, signal_handler) #maps to CTRL_BREAK_EVENT on windows
    signal.signal(signal.SIGINT, signal_handler)   #maps to CTRL_C_EVENT for windows
    signal.signal(signal.SIGTERM, signal_handler)
   except ValueError:
    print 'Signals only works in main thread'

   WSGIServer.serve_forever(self,*args,**kw)
  except KeyboardInterrupt:
   pass
  finally:
   [reader.close() for reader in APIHandler.readers]
Beispiel #20
0
 def run(self):
     # setups
     self.setup_application()
     self.setup_api()
     # start periodic update thread
     pa = api.PeriodicUpdater()
     pa.start()
     # start API server
     if False:
         # default server:
         logging.info("API Server: Pure Flask")
         self.app.run(debug=False, use_reloader=False,
                      port=model.CONFIG["api"]["port"])
     elif False:
         logging.info("API Server: Gevent")
         from gevent.wsgi import WSGIServer
         http_server = WSGIServer(('',
                                  model.CONFIG["api"]["port"]),
                                  self.app)
         http_server.serve_forever()
     else:
         logging.info("API Server: Tornado")
         from tornado.wsgi import WSGIContainer
         from tornado.httpserver import HTTPServer
         from tornado.ioloop import IOLoop
         http_server = HTTPServer(WSGIContainer(self.app))
         http_server.listen(model.CONFIG["api"]["port"])
         IOLoop.instance().start()
Beispiel #21
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('-p', '--port', help='server port',
                        type=int, default=9000)
    args = parser.parse_args()
    http_server = WSGIServer(('', args.port), app)
    http_server.serve_forever()
Beispiel #22
0
def gevent_run(app, port=5000, log=None, error_log=None, address='',
               monkey_patch=True, start=True, **kwargs):  # pragma: no cover
    """Run your app in gevent.wsgi.WSGIServer

    :param app: wsgi application, ex. Microservice instance
    :param port: int, listen port, default 5000
    :param address: str, listen address, default: ""
    :param log: logger instance, default app.logger
    :param error_log: logger instance, default app.logger
    :param monkey_patch: boolean, use gevent.monkey.patch_all() for patching standard modules, default: True
    :param start: boolean, if True, server will be start (server.serve_forever())
    :param kwargs: other params for WSGIServer(**kwargs)
    :return: server
    """
    if log is None:
        log = app.logger
    if error_log is None:
        error_log = app.logger
    if monkey_patch:
        from gevent import monkey

        monkey.patch_all()

    from gevent.wsgi import WSGIServer
    http_server = WSGIServer((address, port), app, log=log, error_log=error_log,
                             **kwargs)
    if start:
        http_server.serve_forever()
    return http_server
Beispiel #23
0
def gevent_main():
    """
    Gevent coroutine WDGI standalone server
    """
    from gevent.wsgi import WSGIServer

    http_server = WSGIServer(("", PORT), app)
    http_server.serve_forever()
Beispiel #24
0
def main(args):
    from gevent.wsgi import WSGIServer
    if args.debug:
        app.run(debug=True, port=config.app.TESTING_FRONTEND_TCP_PORT)
    else:
        http_server = WSGIServer(("0.0.0.0", config.app.APP_TCP_PORT), app)
        http_server.serve_forever()
    return 0
Beispiel #25
0
def serve_forever():
    try:
        server = WSGIServer((LISTEN_IP, LISTEN_PORT), handle_request)
        LOGGER.info('serving HTTP on port %s:%s...' % (LISTEN_IP, LISTEN_PORT))
    except:
        LOGGER.exception('failed to start HTTP server on port %s:%s' % (LISTEN_IP, LISTEN_PORT))
        os._exit(1)
    server.serve_forever()
Beispiel #26
0
def serve_forever():
    try:
        httpd = WSGIServer(('127.0.0.1', 8318), handle_request)
        LOGGER.info('serving HTTP on port 8318...')
    except:
        LOGGER.exception('failed to start HTTP server on port 8318')
        sys.exit(1)
    httpd.serve_forever()
Beispiel #27
0
 def run(self):
     #while True:
     self.logger = logging.getLogger("sms_khomp_api")
     self.logger.info("Creating sms_khomp_api")
     #Run WSGIServer
     http = WSGIServer(('', PORT), app.wsgi_app)
     http.serve_forever()
     self.logger.info("Done.")
Beispiel #28
0
def run_server():
    options = get_options()
    configure_app(flatdb_app, options)

    from gevent.wsgi import WSGIServer

    server = WSGIServer((options.host, options.port), flatdb_app)
    server.serve_forever()
Beispiel #29
0
def start_vaurien_httpserver(port):
    """Start a vaurien httpserver, controlling a fake proxy"""
    config = get_config()
    config.registry['proxy'] = FakeProxy()

    server = WSGIServer(('localhost', int(port)), config.make_wsgi_app(),
                        log=None)
    server.serve_forever()
Beispiel #30
0
def start(server_port, app):
    server = WSGIServer(("", server_port), app)
    try:
        server.serve_forever()
    except KeyboardInterrupt:
        pass
    finally:
        # Clean-up server (close socket, etc.)
        server.close()
Beispiel #31
0
def main():  # pragma: no cover
    logger.info('Starting Server')
    http_server = WSGIServer(('0.0.0.0', 8080), app)
    http_server.serve_forever()
Beispiel #32
0
def run():
    http_server = WSGIServer(('', config.PORT), app)
    http_server.serve_forever()
Beispiel #33
0
def run(app):
    http_server = WSGIServer(('0.0.0.0', 5555), app)
    http_server.serve_forever()
Beispiel #34
0
def runGevent(app, port=80):
    http_server = WSGIServer(('', port), app)
    http_server.serve_forever()
Beispiel #35
0
def run_server():
    http_server = WSGIServer(('', 9453), app)
    http_server.serve_forever()
Beispiel #36
0
 def run_server():
     http_server = WSGIServer(('localhost', 5000), DebuggedApplication(app))
     http_server.serve_forever()
Beispiel #37
0
def main():
    port = int(os.getenv('LISTEN_PORT', 8080))
    server = WSGIServer(('0.0.0.0', port), proxy, log=None)
    setServer(server)
    server.serve_forever()
Beispiel #38
0
def main():
    http_server = WSGIServer(('', 8080), app)
    http_server.serve_forever()
Beispiel #39
0
 def _GeventServer(host, port):
     http_server = WSGIServer((host, port), app)
     print("gevent server started at {host}:{port}".format(host=host,
                                                           port=port))
     http_server.serve_forever()
Beispiel #40
0
    if request.method == 'POST':
        process_post_request(request, html_needed)
        if html_needed:
            return redirect("/")
        return "OK\n"

    if 'topic' in request.args:
        return redirect("/%s" % request.args.get('topic'))

    if topic is None:
        topic = ":firstpage"

    if topic.startswith(':shell-x/'):
        return _proxy()
        #return requests.get('http://127.0.0.1:3000'+topic[8:]).text

    ip_address = get_request_ip(request)
    if '+' in topic:
        not_allowed = LIMITS.check_ip(ip_address)
        if not_allowed:
            return "429 %s\n" % not_allowed, 429

    result, found = cheat_wrapper(topic, request_options=options, html=is_html_needed(user_agent))

    log_query(ip_address, found, topic, user_agent)
    return result

SRV = WSGIServer(("", 8002), app) # log=None)
SRV.serve_forever()
Beispiel #41
0
def run_server():
    http_server = WSGIServer(('', settings.port), app)
    http_server.serve_forever()
Beispiel #42
0
    socket_timeout=30)

app = Flask(__name__)


@app.route("/thrift", methods=['GET'])
def sequence_service():
    """
    测试返回的序列是否乱序
    :return:
    """
    res_body = None
    try:
        data = request.args.get('num', '')
        req = sequence_thrift.SequenceRequest()
        if data:
            req.num = str(data)
            res = client_pool_sequence_with_zookeeper.getnum(req)
            print "Request:" + req.num + "   " + "Response:" + res.num
            res_body = {'req': req.num, 'res': res.num}
    except Exception, ex:
        print ex.message
    finally:
        pass
    return jsonify(res_body)


if __name__ == "__main__":
    http_server = WSGIServer(('127.0.0.1', 8000), app, log=None)
    http_server.serve_forever()
Beispiel #43
0
def start_server():
    http_server = WSGIServer(('', flask_port), flask_app)
    http_server.serve_forever()
Beispiel #44
0
def web():
    http_server = WSGIServer(('', PORT), app)
    http_server.serve_forever()
def main():
    # Parse command line arguments
    parser = argparse.ArgumentParser(description='Run all modules defined for '
                                     'this system')
    parser.add_argument('--verbose', '-v', action='count', default=0)
    parser.add_argument('--log', default=None)
    args = parser.parse_args()

    # Configure logging
    logger = logging.getLogger("openag_brain")
    logger.setLevel(logging.DEBUG)
    formatter = logging.Formatter(
        "%(levelname)s %(asctime)s (%(name)s): %(message)s")
    stream_log_level = max(10, 30 - 10 * args.verbose)
    stream_handler = logging.StreamHandler()
    stream_handler.setFormatter(formatter)
    stream_handler.setLevel(stream_log_level)
    logger.addHandler(stream_handler)
    if args.log:
        file_handler = logging.FileHandler(args.log)
        file_handler.setFormatter(formatter)
        file_handler.setLevel(min(logging.INFO, stream_log_level))
        logger.addHandler(file_handler)

    # Connect to the databases
    module_db = db_server[DbName.MODULE]
    module_type_db = db_server[DbName.MODULE_TYPE]
    module_connection_db = db_server[DbName.MODULE_CONNECTION]
    env_data_db = db_server[DbName.ENVIRONMENTAL_DATA_POINT]

    # Construct all of the modules
    for mod_id in module_db:
        if mod_id.startswith('_'):
            continue
        mod_info = ModuleModel.load(module_db, mod_id)
        mod_type_info = ModuleTypeModel.load(module_type_db, mod_info.type)
        package_path, class_name = mod_type_info._id.split(':')
        py_mod = import_module(package_path)
        mod_class = getattr(py_mod, class_name)
        mod = mod_class(mod_id)

    # Initialize all of the modules
    for mod_id in module_db:
        if mod_id.startswith('_'):
            continue
        mod_info = ModuleModel.load(module_db, mod_id)
        mod = Module.get_by_id(mod_id)
        params = mod_info.parameters
        for arg_name in mod.init.__code__.co_varnames[1:mod.init.__code__.
                                                      co_argcount]:
            annotation = mod.init.__annotations__.get(arg_name, '')
            if isinstance(annotation, Parameter) and arg_name in params:
                params[arg_name] = annotation.encode(params[arg_name])
        mod.init(**mod_info.parameters)

    # Hook up all of the connections
    for mod_conn_id in module_connection_db:
        if mod_conn_id.startswith('_'):
            continue
        mod_conn = ModuleConnectionModel.load(module_connection_db,
                                              mod_conn_id)
        output_module = Module.get_by_id(mod_conn.output_module)
        input_module = Module.get_by_id(mod_conn.input_module)
        output = getattr(output_module, mod_conn.output_name)
        input = getattr(input_module, mod_conn.input_name)
        output.output_to(input)

    # Run all of the modules
    threads = []
    for mod_id in module_db:
        if mod_id.startswith('_'):
            continue
        mod = Module.get_by_id(mod_id)
        mod.start()
    logger.info("Running {} modules".format(len(module_db)))

    # Create and run a Flask app for calling endpoints
    app = Flask(__name__)
    # Set cross-origin headers
    CORS(app)
    app.debug = True

    mod_id = uuid4().hex
    while Module.get_by_id(mod_id):
        mod_id = uuid4().hex
    app.mod = Module(mod_id)
    app.mod.start()

    def find_recipe_start(env_data_db, env_id):
        """Given a pointer to the environmental data point db, return the
        latest recipe start for a given environment.
        returns a Dict or None.
        """
        # Query latest view with key (requires this design doc to exist)
        recipe_start_view = env_data_db.view(
            'openag/latest',
            key=[env_id, EnvironmentalVariable.RECIPE_START, 'desired'])
        recipe_end_view = env_data_db.view(
            'openag/latest',
            key=[env_id, EnvironmentalVariable.RECIPE_END, 'desired'])
        # Collect results of iterator (ViewResult has no next method).
        recipe_starts = [recipe_start for recipe_start in recipe_start_view]
        recipe_ends = [recipe_end for recipe_end in recipe_end_view]
        # Narrow list of results down to one and unbox the value
        recipe_start = recipe_starts[0].value if len(recipe_starts) else None
        recipe_end = recipe_ends[0].value if len(recipe_ends) else None

        # If we have a recipe_end, check that it is older than the latest
        # recipe_start
        if recipe_start and recipe_end and recipe_start[
                "timestamp"] > recipe_end["timestamp"]:
            return recipe_start
        # If we don't have a recipe end, but do have a recipe_start, return it.
        elif recipe_start:
            return recipe_start
        else:
            return None

    def find_env_recipe_handler_id(module_db, env_id):
        """Find ID of recipe handler that is running in current environment.
        Returns ID or None.
        """
        recipe_type = 'openag.brain.modules.recipe_handler:RecipeHandler'
        module_view = module_db.view('openag/by_type')

        recipe_handler_ids = [
            module.id for module in module_view if module.key == recipe_type
        ]

        return recipe_handler_ids[0] if len(recipe_handler_ids) > 0 else None

    @app.route("/api/{v}/module/<mod_id>/<endpoint>".format(v=API_VER),
               methods=['POST'])
    def serve_endpoint(mod_id, endpoint):
        return getattr(app.mod.ask(mod_id), endpoint)(**request.json)

    @app.route("/api/{v}/environment/<env_id>".format(v=API_VER),
               methods=['GET'])
    def serve_environment(env_id):

        recipe_handler_id = find_env_recipe_handler_id(module_db, env_id)
        recipe_start = find_recipe_start(env_data_db, env_id)
        recipe_id = recipe_start["value"] if recipe_start else None
        recipe_start_timestamp = recipe_start[
            "timestamp"] if recipe_start else None

        return jsonify(env_id=env_id,
                       recipe_id=recipe_id,
                       recipe_start_timestamp=recipe_start_timestamp,
                       recipe_handler_id=recipe_handler_id)

    http_server = WSGIServer(('', 5000), app)
    logger.info("Listening for requests on http://localhost:5000/")
    http_server.serve_forever()
Beispiel #46
0
def run_app(app, port=5000):
    http_server = WSGIServer(('', port), app)
    webbrowser.open_new('http://localhost:' + str(port))
    http_server.serve_forever()
Beispiel #47
0
def main():
    port = 8080
    print("start server on port:%s" % (port, ))
    http_server = WSGIServer(('', port), app)
    http_server.serve_forever()
Beispiel #48
0
# -*- coding: utf-8 -*-
from app import app
from gevent.wsgi import WSGIServer

https = WSGIServer(('0.0.0.0', 80), app)
https.serve_forever()

Beispiel #49
0
    def run_server():
        print('start server at: 127.0.0.1:%s' % port)

        http_server = WSGIServer(('', port), wsgi)
        http_server.serve_forever()
Beispiel #50
0
def runserver(port=18340):
    flask_instance.config['PORT'] = port
    # flask_instance.run('0.0.0.0', port, debug=False, threaded=True)
    http_server = WSGIServer(('0.0.0.0', port), flask_instance)
    http_server.serve_forever()
Beispiel #51
0
def serve_gevent(app):
    from gevent.wsgi import WSGIServer

    http_server = WSGIServer((host, port), app)
    http_server.serve_forever()
Beispiel #52
0
 def run():
     from gevent.wsgi import WSGIServer
     gws = WSGIServer((host, port), app)
     gws.base_env['wsgi.multithread'] = threaded
     gws.base_env['wsgi.multiprocess'] = processes > 0
     gws.serve_forever()
Beispiel #53
0
def gevent_server(app, port):
    import gevent.monkey
    from gevent.wsgi import WSGIServer
    gevent.monkey.patch_all()
    http_server = WSGIServer(('', port), app)
    http_server.serve_forever()
Beispiel #54
0
 def run_server():
     http_server = WSGIServer(('0.0.0.0', PORT), app)
     http_server.serve_forever()
Beispiel #55
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright (c) 2018, Måns Gezelius
# All rights reserved.
#
# This script creates and runs the server module.

from gevent.wsgi import WSGIServer
from server import *

if __name__ == '__main__':
    port = 34447

    server = WSGIServer(("", port), app, handler_class=WebSocketHandler)
    print "* Running on http://0.0.0.0:{}/".format(port)
    server.serve_forever()

    #app.run(debug=True, host='0.0.0.0', port=port, threaded=True)
Beispiel #56
0
class RestApiEndpoint(object):
    """
    Simple API endpoint that offers a REST
    interface. This interface will be used by the
    default command line client.
    """
    def __init__(self, listenip, port, DCnetwork=None):
        self.ip = listenip
        self.port = port

        # connect this DC network to the rest api endpoint (needed for the networking and monitoring api)
        self.connectDCNetwork(DCnetwork)

        # setup Flask
        # find directory of dashboard files
        dashboard_file = pkg_resources.resource_filename(
            'emuvim.dashboard', "index.html")
        dashboard_dir = path.dirname(dashboard_file)
        logging.info("Started emu dashboard: {0}".format(dashboard_dir))

        self.app = Flask(__name__,
                         static_folder=dashboard_dir,
                         static_url_path='/dashboard')
        self.api = Api(self.app)

        # setup endpoints

        # compute related actions (start/stop VNFs, get info)
        self.api.add_resource(Compute,
                              "/restapi/compute/<dc_label>/<compute_name>")
        self.api.add_resource(ComputeList, "/restapi/compute",
                              "/restapi/compute/<dc_label>")
        self.api.add_resource(
            ComputeResources,
            "/restapi/compute/resources/<dc_label>/<compute_name>")

        self.api.add_resource(DatacenterStatus,
                              "/restapi/datacenter/<dc_label>")
        self.api.add_resource(DatacenterList, "/restapi/datacenter")

        # network related actions (setup chaining between VNFs)
        self.api.add_resource(NetworkAction, "/restapi/network")
        self.api.add_resource(DrawD3jsgraph, "/restapi/network/d3jsgraph")

        # monitoring related actions
        # export a network interface traffic rate counter
        self.api.add_resource(MonitorInterfaceAction,
                              "/restapi/monitor/interface")
        # export flow traffic counter, of a manually pre-installed flow entry, specified by its cookie
        self.api.add_resource(MonitorFlowAction, "/restapi/monitor/flow")
        # install monitoring of a specific flow on a pre-existing link in the service.
        # the traffic counters of the newly installed monitor flow are exported
        self.api.add_resource(MonitorLinkAction, "/restapi/monitor/link")
        # install skewness monitor of resource usage disribution
        # the skewness metric is exported
        self.api.add_resource(MonitorSkewAction, "/restapi/monitor/skewness")
        # start a terminal window for the specified vnfs
        self.api.add_resource(MonitorTerminal, "/restapi/monitor/term")

        logging.debug("Created API endpoint %s(%s:%d)" %
                      (self.__class__.__name__, self.ip, self.port))

    def connectDatacenter(self, dc):
        compute.dcs[dc.label] = dc
        logging.info("Connected DC(%s) to API endpoint %s(%s:%d)" %
                     (dc.label, self.__class__.__name__, self.ip, self.port))

    def connectDCNetwork(self, DCnetwork):
        network.net = DCnetwork
        monitor.net = DCnetwork

        logging.info("Connected DCNetwork to API endpoint %s(%s:%d)" %
                     (self.__class__.__name__, self.ip, self.port))

    def start(self):
        self.thread = threading.Thread(target=self._start_flask, args=())
        self.thread.daemon = True
        self.thread.start()
        logging.info("Started API endpoint @ http://%s:%d" %
                     (self.ip, self.port))

    def stop(self):
        if self.http_server:
            self.http_server.close()

    def _start_flask(self):
        #self.app.run(self.ip, self.port, debug=False, use_reloader=False)
        #this should be a more production-fit http-server
        #self.app.logger.setLevel(logging.ERROR)
        self.http_server = WSGIServer(
            (self.ip, self.port),
            self.app,
            log=open(
                "/dev/null", "w"
            )  # This disables HTTP request logs to not mess up the CLI when e.g. the auto-updated dashboard is used
        )
        self.http_server.serve_forever()
Beispiel #57
0
"""Start server for production purpose"""

# -*- coding: utf-8 -*-

import os
from app import app
from gevent.wsgi import WSGIServer
from gevent import monkey

if __name__ == '__main__':
    monkey.patch_all()

    HOST = os.environ.get('HOST', 'localhost')
    PORT = int(os.environ.get('PORT', 5000))
    HTTP_SERVER = WSGIServer((HOST, PORT), app)
    HTTP_SERVER.serve_forever()
Beispiel #58
0
def run_server():
    http_server = WSGIServer(('', int(os.environ.get('PORT', 3000))),
                             DebuggedApplication(app))
    http_server.serve_forever()
Beispiel #59
0
    @requires_auth
    def train():
        data_string = request.get_data(as_text=True)
        current_app.data_router.start_train_process(data_string)
        return jsonify(info="training started. Current pids: {}".format(
            current_app.data_router.train_procs))

    logging.basicConfig(filename=config['log_file'], level=config['log_level'])
    logging.captureWarnings(True)
    logging.info(config.view())

    logging.debug("Creating a new data router")
    rasa_nlu_app.data_router = DataRouter(config)
    return rasa_nlu_app


if __name__ == '__main__':
    # Running as standalone python application
    arg_parser = create_arg_parser()
    cmdline_args = {
        key: val
        for key, val in vars(arg_parser.parse_args()).items()
        if val is not None
    }
    rasa_nlu_config = RasaNLUConfig(cmdline_args.get("config"), os.environ,
                                    cmdline_args)
    app = WSGIServer(('0.0.0.0', rasa_nlu_config['port']),
                     create_app(rasa_nlu_config))
    logging.info('Started http server on port %s' % rasa_nlu_config['port'])
    app.serve_forever()
Beispiel #60
0
def main():
    port = int(os.getenv('FLASK_PROXY_PORT', 8080))
    server = WSGIServer(('', port), proxy, log=None)
    server.serve_forever()