Commit cc8a4315 authored by Ozzieisaacs's avatar Ozzieisaacs

Merge remote-tracking branch 'socket/unix-socket' into Develop

parents 5c7aeb2f e2545659
...@@ -28,8 +28,8 @@ sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'vendor ...@@ -28,8 +28,8 @@ sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'vendor
from cps import create_app from cps import create_app
from cps import web_server
from cps.opds import opds from cps.opds import opds
from cps import Server
from cps.web import web from cps.web import web
from cps.jinjia import jinjia from cps.jinjia import jinjia
from cps.about import about from cps.about import about
...@@ -56,7 +56,8 @@ def main(): ...@@ -56,7 +56,8 @@ def main():
app.register_blueprint(editbook) app.register_blueprint(editbook)
if oauth_available: if oauth_available:
app.register_blueprint(oauth) app.register_blueprint(oauth)
Server.startServer() success = web_server.start()
sys.exit(0 if success else 1)
if __name__ == '__main__': if __name__ == '__main__':
......
...@@ -84,8 +84,8 @@ searched_ids = {} ...@@ -84,8 +84,8 @@ searched_ids = {}
from .worker import WorkerThread from .worker import WorkerThread
global_WorkerThread = WorkerThread() global_WorkerThread = WorkerThread()
from .server import server from .server import WebServer
Server = server() web_server = WebServer()
from .ldap import Ldap from .ldap import Ldap
ldap = Ldap() ldap = Ldap()
...@@ -103,7 +103,7 @@ def create_app(): ...@@ -103,7 +103,7 @@ def create_app():
Principal(app) Principal(app)
lm.init_app(app) lm.init_app(app)
app.secret_key = os.getenv('SECRET_KEY', 'A0Zr98j/3yX R~XHH!jmN]LWX/,?RT') app.secret_key = os.getenv('SECRET_KEY', 'A0Zr98j/3yX R~XHH!jmN]LWX/,?RT')
Server.init_app(app) web_server.init_app(app, config)
db.setup_db() db.setup_db()
babel.init_app(app) babel.init_app(app)
ldap.init_app(app) ldap.init_app(app)
......
...@@ -41,8 +41,9 @@ from jinja2 import __version__ as jinja2Version ...@@ -41,8 +41,9 @@ from jinja2 import __version__ as jinja2Version
from pytz import __version__ as pytzVersion from pytz import __version__ as pytzVersion
from sqlalchemy import __version__ as sqlalchemyVersion from sqlalchemy import __version__ as sqlalchemyVersion
from . import db, converter, Server, uploader from . import db, converter, uploader
from .isoLanguages import __version__ as iso639Version from .isoLanguages import __version__ as iso639Version
from .server import VERSION as serverVersion
from .web import render_title_template from .web import render_title_template
...@@ -71,7 +72,7 @@ def stats(): ...@@ -71,7 +72,7 @@ def stats():
versions['pySqlite'] = 'v' + db.engine.dialect.dbapi.version versions['pySqlite'] = 'v' + db.engine.dialect.dbapi.version
versions['Sqlite'] = 'v' + db.engine.dialect.dbapi.sqlite_version versions['Sqlite'] = 'v' + db.engine.dialect.dbapi.sqlite_version
versions.update(converter.versioncheck()) versions.update(converter.versioncheck())
versions.update(Server.getNameVersion()) versions.update(serverVersion)
versions['Python'] = sys.version versions['Python'] = sys.version
return render_title_template('stats.html', bookcounter=counter, authorcounter=authors, versions=versions, return render_title_template('stats.html', bookcounter=counter, authorcounter=authors, versions=versions,
categorycounter=categorys, seriecounter=series, title=_(u"Statistics"), page="stat") categorycounter=categorys, seriecounter=series, title=_(u"Statistics"), page="stat")
...@@ -41,7 +41,7 @@ from sqlalchemy.exc import IntegrityError ...@@ -41,7 +41,7 @@ from sqlalchemy.exc import IntegrityError
from werkzeug.security import generate_password_hash from werkzeug.security import generate_password_hash
from . import constants, logger, ldap from . import constants, logger, ldap
from . import db, ub, Server, get_locale, config, updater_thread, babel, gdriveutils from . import db, ub, web_server, get_locale, config, updater_thread, babel, gdriveutils
from .helper import speaking_language, check_valid_domain, check_unrar, send_test_mail, generate_random_password, \ from .helper import speaking_language, check_valid_domain, check_unrar, send_test_mail, generate_random_password, \
send_registration_mail send_registration_mail
from .gdriveutils import is_gdrive_ready, gdrive_support, downloadFile, deleteDatabaseOnChange, listRootFolders from .gdriveutils import is_gdrive_ready, gdrive_support, downloadFile, deleteDatabaseOnChange, listRootFolders
...@@ -102,12 +102,10 @@ def shutdown(): ...@@ -102,12 +102,10 @@ def shutdown():
showtext = {} showtext = {}
if task == 0: if task == 0:
showtext['text'] = _(u'Server restarted, please reload page') showtext['text'] = _(u'Server restarted, please reload page')
Server.setRestartTyp(True)
else: else:
showtext['text'] = _(u'Performing shutdown of server, please close window') showtext['text'] = _(u'Performing shutdown of server, please close window')
Server.setRestartTyp(False)
# stop gevent/tornado server # stop gevent/tornado server
Server.stopServer() web_server.stop(task == 0)
return json.dumps(showtext) return json.dumps(showtext)
else: else:
if task == 2: if task == 2:
...@@ -220,8 +218,7 @@ def view_configuration(): ...@@ -220,8 +218,7 @@ def view_configuration():
# ub.session.close() # ub.session.close()
# ub.engine.dispose() # ub.engine.dispose()
# stop Server # stop Server
Server.setRestartTyp(True) web_server.stop(True)
Server.stopServer()
log.info('Reboot required, restarting') log.info('Reboot required, restarting')
readColumn = db.session.query(db.Custom_Columns)\ readColumn = db.session.query(db.Custom_Columns)\
.filter(and_(db.Custom_Columns.datatype == 'bool',db.Custom_Columns.mark_for_delete == 0)).all() .filter(and_(db.Custom_Columns.datatype == 'bool',db.Custom_Columns.mark_for_delete == 0)).all()
...@@ -554,8 +551,7 @@ def configuration_helper(origin): ...@@ -554,8 +551,7 @@ def configuration_helper(origin):
title=_(u"Basic Configuration"), page="config") title=_(u"Basic Configuration"), page="config")
if reboot_required: if reboot_required:
# stop Server # stop Server
Server.setRestartTyp(True) web_server.stop(True)
Server.stopServer()
log.info('Reboot required, restarting') log.info('Reboot required, restarting')
if origin: if origin:
success = True success = True
......
...@@ -25,6 +25,7 @@ from logging.handlers import RotatingFileHandler ...@@ -25,6 +25,7 @@ from logging.handlers import RotatingFileHandler
from .constants import BASE_DIR as _BASE_DIR from .constants import BASE_DIR as _BASE_DIR
ACCESS_FORMATTER_GEVENT = Formatter("%(message)s") ACCESS_FORMATTER_GEVENT = Formatter("%(message)s")
ACCESS_FORMATTER_TORNADO = Formatter("[%(asctime)s] %(message)s") ACCESS_FORMATTER_TORNADO = Formatter("[%(asctime)s] %(message)s")
...@@ -33,7 +34,6 @@ DEFAULT_LOG_LEVEL = logging.INFO ...@@ -33,7 +34,6 @@ DEFAULT_LOG_LEVEL = logging.INFO
DEFAULT_LOG_FILE = os.path.join(_BASE_DIR, "calibre-web.log") DEFAULT_LOG_FILE = os.path.join(_BASE_DIR, "calibre-web.log")
DEFAULT_ACCESS_LOG = os.path.join(_BASE_DIR, "access.log") DEFAULT_ACCESS_LOG = os.path.join(_BASE_DIR, "access.log")
LOG_TO_STDERR = '/dev/stderr' LOG_TO_STDERR = '/dev/stderr'
DEFAULT_ACCESS_LEVEL= logging.INFO
logging.addLevelName(logging.WARNING, "WARN") logging.addLevelName(logging.WARNING, "WARN")
logging.addLevelName(logging.CRITICAL, "CRIT") logging.addLevelName(logging.CRITICAL, "CRIT")
...@@ -73,35 +73,26 @@ def is_valid_logfile(file_path): ...@@ -73,35 +73,26 @@ def is_valid_logfile(file_path):
return (not log_dir) or os.path.isdir(log_dir) return (not log_dir) or os.path.isdir(log_dir)
def setup(log_file, log_level=None, logger=None): def _absolute_log_file(log_file, default_log_file):
if logger != "access" and logger != "tornado.access":
formatter = FORMATTER
default_file = DEFAULT_LOG_FILE
else:
if logger == "tornado.access":
formatter = ACCESS_FORMATTER_TORNADO
else:
formatter = ACCESS_FORMATTER_GEVENT
default_file = DEFAULT_ACCESS_LOG
if log_file: if log_file:
if not os.path.dirname(log_file): if not os.path.dirname(log_file):
log_file = os.path.join(_BASE_DIR, log_file) log_file = os.path.join(_BASE_DIR, log_file)
log_file = os.path.abspath(log_file) return os.path.abspath(log_file)
else:
log_file = LOG_TO_STDERR
# log_file = default_file
# print ('%r -- %r' % (log_level, log_file)) return default_log_file
if logger != "access" and logger != "tornado.access":
r = logging.root
else: def setup(log_file, log_level=None):
r = logging.getLogger(logger) '''
r.propagate = False Configure the logging output.
May be called multiple times.
'''
log_file = _absolute_log_file(log_file, DEFAULT_LOG_FILE)
r = logging.root
r.setLevel(log_level or DEFAULT_LOG_LEVEL) r.setLevel(log_level or DEFAULT_LOG_LEVEL)
previous_handler = r.handlers[0] if r.handlers else None previous_handler = r.handlers[0] if r.handlers else None
# print ('previous %r' % previous_handler)
if previous_handler: if previous_handler:
# if the log_file has not changed, don't create a new handler # if the log_file has not changed, don't create a new handler
if getattr(previous_handler, 'baseFilename', None) == log_file: if getattr(previous_handler, 'baseFilename', None) == log_file:
...@@ -115,16 +106,32 @@ def setup(log_file, log_level=None, logger=None): ...@@ -115,16 +106,32 @@ def setup(log_file, log_level=None, logger=None):
try: try:
file_handler = RotatingFileHandler(log_file, maxBytes=50000, backupCount=2) file_handler = RotatingFileHandler(log_file, maxBytes=50000, backupCount=2)
except IOError: except IOError:
if log_file == default_file: if log_file == DEFAULT_LOG_FILE:
raise raise
file_handler = RotatingFileHandler(default_file, maxBytes=50000, backupCount=2) file_handler = RotatingFileHandler(DEFAULT_LOG_FILE, maxBytes=50000, backupCount=2)
file_handler.setFormatter(formatter) file_handler.setFormatter(FORMATTER)
for h in r.handlers: for h in r.handlers:
r.removeHandler(h) r.removeHandler(h)
h.close() h.close()
r.addHandler(file_handler) r.addHandler(file_handler)
# print ('new handler %r' % file_handler)
def create_access_log(log_file, log_name, formatter):
'''
One-time configuration for the web server's access log.
'''
log_file = _absolute_log_file(log_file, DEFAULT_ACCESS_LOG)
logging.debug("access log: %s", log_file)
access_log = logging.getLogger(log_name)
access_log.propagate = False
access_log.setLevel(logging.INFO)
file_handler = RotatingFileHandler(log_file, maxBytes=50000, backupCount=2)
file_handler.setFormatter(formatter)
access_log.addHandler(file_handler)
return access_log
# Enable logging of smtp lib debug output # Enable logging of smtp lib debug output
......
This diff is collapsed.
...@@ -476,35 +476,22 @@ class Config: ...@@ -476,35 +476,22 @@ class Config:
def get_config_certfile(self): def get_config_certfile(self):
if cli.certfilepath: if cli.certfilepath:
return cli.certfilepath return cli.certfilepath
else: if cli.certfilepath is "":
if cli.certfilepath is "": return None
return None return self.config_certfile
else:
return self.config_certfile
def get_config_keyfile(self): def get_config_keyfile(self):
if cli.keyfilepath: if cli.keyfilepath:
return cli.keyfilepath return cli.keyfilepath
else: if cli.certfilepath is "":
if cli.certfilepath is "": return None
return None return self.config_keyfile
else:
return self.config_keyfile def get_config_ipaddress(self):
return cli.ipadress or ""
def get_config_ipaddress(self, readable=False):
if not readable: def get_ipaddress_type(self):
if cli.ipadress: return cli.ipv6
return cli.ipadress
else:
return ""
else:
answer="0.0.0.0"
if cli.ipadress:
if cli.ipv6:
answer = "["+cli.ipadress+"]"
else:
answer = cli.ipadress
return answer
def _has_role(self, role_flag): def _has_role(self, role_flag):
return constants.has_flag(self.config_default_role, role_flag) return constants.has_flag(self.config_default_role, role_flag)
......
...@@ -33,7 +33,7 @@ from tempfile import gettempdir ...@@ -33,7 +33,7 @@ from tempfile import gettempdir
from babel.dates import format_datetime from babel.dates import format_datetime
from flask_babel import gettext as _ from flask_babel import gettext as _
from . import constants, logger, config, get_locale, Server from . import constants, logger, config, get_locale, web_server
log = logger.create() log = logger.create()
...@@ -95,8 +95,7 @@ class Updater(threading.Thread): ...@@ -95,8 +95,7 @@ class Updater(threading.Thread):
self.status = 6 self.status = 6
log.debug(u'Preparing restart of server') log.debug(u'Preparing restart of server')
time.sleep(2) time.sleep(2)
Server.setRestartTyp(True) web_server.stop(True)
Server.stopServer()
self.status = 7 self.status = 7
time.sleep(2) time.sleep(2)
except requests.exceptions.HTTPError as ex: except requests.exceptions.HTTPError as ex:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment