Beispiel #1
0
 def __init__(self, **kwargs):
     super(WebServer, self).__init__()
     if not debug_mode:
         Logger.redirect_all_logging_to_file(root.common.web.log_file, backups=root.common.web.log_backups)
     self.application = web.Application(
         [
             ("/service", ServiceHandler, {"server": self}),
             ("/update", UpdateHandler, {"server": self}),
             ("/logs.html?.*", LogsHandler, {"server": self}),
             (r"/((js|css|fonts|img|maps)/.*)", web.StaticFileHandler, {"path": root.common.web.root}),
             (r"/(.+\.html)", web.StaticFileHandler, {"path": root.common.web.root}),
             ("/", web.RedirectHandler, {"url": "/status.html", "permanent": True}),
             ("", web.RedirectHandler, {"url": "/status.html", "permanent": True}),
         ],
         template_path=root.common.web.templates,
         gzip=not debug_mode,
     )
     self._port = kwargs.get("port", root.common.web.port)
     self.application.listen(self._port)
     self.masters = {}
     self.motor = motor.MotorClient("mongodb://" + kwargs.get("mongodb", root.common.mongodb_logging_address))
     self.db = self.motor.veles
     self.ensure_mongo_indexes()
     self.mongo_drop_time_threshold = kwargs.get("mongo_drop_time_threshold", root.common.web.drop_time)
     self.mongo_dropper = PeriodicCallback(self.drop_old_mongo_records, self.mongo_drop_time_threshold * 1000)
Beispiel #2
0
 def __init__(self, **kwargs):
     super(WebServer, self).__init__()
     if not debug_mode:
         Logger.redirect_all_logging_to_file(
             root.common.web.log_file, backups=root.common.web.log_backups)
     self.application = web.Application(
         [("/service", ServiceHandler, {
             "server": self
         }), ("/update", UpdateHandler, {
             "server": self
         }), ("/logs.html?.*", LogsHandler, {
             "server": self
         }),
          (r"/((js|css|fonts|img|maps)/.*)", web.StaticFileHandler, {
              'path': root.common.web.root
          }),
          (r"/(.+\.html)", web.StaticFileHandler, {
              'path': root.common.web.root
          }),
          ("/", web.RedirectHandler, {
              "url": "/status.html",
              "permanent": True
          }),
          ("", web.RedirectHandler, {
              "url": "/status.html",
              "permanent": True
          })],
         template_path=root.common.web.templates,
         gzip=not debug_mode)
     self._port = kwargs.get("port", root.common.web.port)
     self.application.listen(self._port)
     self.masters = {}
     self.motor = motor.MotorClient(
         "mongodb://" +
         kwargs.get("mongodb", root.common.mongodb_logging_address))
     self.db = self.motor.veles
     self.ensure_mongo_indexes()
     self.mongo_drop_time_threshold = kwargs.get(
         "mongo_drop_time_threshold", root.common.web.drop_time)
     self.mongo_dropper = PeriodicCallback(
         self.drop_old_mongo_records, self.mongo_drop_time_threshold * 1000)
Beispiel #3
0
            raise PermissionError(pidfile)
        if os.path.exists(full_pidfile):
            real_pidfile = os.readlink(full_pidfile)
            pid = int(real_pidfile.split('.')[-1])
            print("Replacing PID %d..." % pid)
            try:
                os.kill(pid, 0)
            except OSError:
                os.remove(real_pidfile)
                os.remove(full_pidfile)
                print_("Detected a stale lock file %s" % real_pidfile,
                       file=sys.stderr)
            else:
                raise FileExistsError(full_pidfile)
        print("Daemonizing, PID will be referenced by ", full_pidfile)
        try:
            sys.stdout.flush()
        except BrokenPipeError:
            pass
        with daemon.DaemonContext(pidfile=pidfile,
                                  stderr=sys.stderr,
                                  uid=args.user,
                                  gid=args.group):
            log_file = root.common.web.log_file
            Logger.setup_logging(level=logging.INFO)
            Logger.redirect_all_logging_to_file(log_file, backups=9)
            main(port=args.port)
    else:
        Logger.setup_logging(level=logging.DEBUG)
        main(port=args.port)
Beispiel #4
0
    if not debug_mode:
        pidfile = root.common.web.pidfile
        full_pidfile = pidfile + ".lock"
        if args.user is None and not os.access(os.path.dirname(full_pidfile), os.W_OK):
            raise PermissionError(pidfile)
        if os.path.exists(full_pidfile):
            real_pidfile = os.readlink(full_pidfile)
            pid = int(real_pidfile.split(".")[-1])
            print("Replacing PID %d..." % pid)
            try:
                os.kill(pid, 0)
            except OSError:
                os.remove(real_pidfile)
                os.remove(full_pidfile)
                print_("Detected a stale lock file %s" % real_pidfile, file=sys.stderr)
            else:
                raise FileExistsError(full_pidfile)
        print("Daemonizing, PID will be referenced by ", full_pidfile)
        try:
            sys.stdout.flush()
        except BrokenPipeError:
            pass
        with daemon.DaemonContext(pidfile=pidfile, stderr=sys.stderr, uid=args.user, gid=args.group):
            log_file = root.common.web.log_file
            Logger.setup_logging(level=logging.INFO)
            Logger.redirect_all_logging_to_file(log_file, backups=9)
            main(port=args.port)
    else:
        Logger.setup_logging(level=logging.DEBUG)
        main(port=args.port)