# Error logging to log file class ErrorLogging(object): def write(self, err): logging.error(err) # Middleware to log the requests class LogMiddleware(object): def __init__(self, app): self.app = app def __call__(self, e, h): e['wsgi.errors'] = ErrorLogging() ret_val = self.app(e, h) log_after_request() return ret_val # overwrite the stderr and stdout to log to the file bottle._stderr = logging.error bottle._stdout = logging.info logging.config.dictConfig(LOGGER_CONF) bottle_app = LogMiddleware(bottle.app()) # Use SSL if the certificate and key exists. Otherwise, run without SSL. if (RestConfig.getboolean('listen', 'ssl')): bottle.run(host = "::", port=RestConfig.getint('listen', 'port'), server=SSLCherryPyServer, app=bottle_app) else: bottle.run(host = "::", port = RestConfig.getint('listen', 'port'), server='cherrypy', app=bottle_app)
from __future__ import absolute_import from __future__ import division from __future__ import print_function from __future__ import unicode_literals import urllib2 import subprocess import syslog import time import ssl import os import os.path import signal from rest_config import RestConfig listen_ssl = RestConfig.getboolean('listen', 'ssl') port = RestConfig.getint('listen', 'port') # it's on localhost if i can't trust it we have bigger problems. sslctx = ssl.create_default_context() sslctx.check_hostname = False sslctx.verify_mode = ssl.CERT_NONE checkurl = "http{}://localhost:{}/api".format( 's' if listen_ssl else '', port) interval = 5 timeout = 5 service = "restapi" # intervals before forced kill grace = 1 graceleft = grace
from __future__ import absolute_import from __future__ import division from __future__ import print_function from __future__ import unicode_literals import urllib2 import subprocess import syslog import time import ssl import os import os.path import signal from rest_config import RestConfig listen_ssl = RestConfig.getboolean('listen', 'ssl') port = RestConfig.getint('listen', 'port') # it's on localhost if i can't trust it we have bigger problems. sslctx = ssl.create_default_context() sslctx.check_hostname = False sslctx.verify_mode = ssl.CERT_NONE checkurl = "http{}://localhost:{}/api".format( 's' if listen_ssl else '', port) interval = 30 timeout = 5 service = "restapi" # intervals before forced kill grace = 1 graceleft = grace
#!/usr/bin/env python3 import os import os.path import signal import ssl import subprocess import syslog import time import urllib.error import urllib.parse import urllib.request from rest_config import RestConfig listen_ssl = RestConfig.getboolean("listen", "ssl") port = RestConfig.getint("listen", "port") # it's on localhost if i can't trust it we have bigger problems. sslctx = ssl.create_default_context() sslctx.check_hostname = False sslctx.verify_mode = ssl.CERT_NONE checkurl = "http{}://localhost:{}/api".format("s" if listen_ssl else "", port) interval = 30 timeout = 10 service = "restapi" # intervals before forced kill grace = 3 graceleft = grace
def __init__(self, app): self.app = app def __call__(self, e, h): e['wsgi.errors'] = ErrorLogging() ret_val = self.app(e, h) log_after_request() return ret_val # overwrite the stderr and stdout to log to the file bottle._stderr = logging.error bottle._stdout = logging.info logging.config.dictConfig(LOGGER_CONF) serverApp = bottle.app() serverApp.merge(commonApp) serverApp.merge(boardApp) bottle_app = LogMiddleware(serverApp) # Use SSL if the certificate and key exists. Otherwise, run without SSL. if (RestConfig.getboolean('listen', 'ssl')): bottle.run(host="::", port=RestConfig.getint('listen', 'port'), server=SSLCherryPyServer, app=bottle_app) else: bottle.run(host="::", port=RestConfig.getint('listen', 'port'), server='cherrypy', app=bottle_app)
'level': 'INFO', 'formatter': 'default', 'class': 'logging.handlers.RotatingFileHandler', 'filename': '/tmp/rest.log', 'maxBytes': 1048576, 'backupCount': 3, 'encoding': 'utf8' }, }, 'loggers': { '': { 'handlers': ['file_handler'], 'level': 'DEBUG', 'propagate': True, }, } } logging.config.dictConfig(LOGGER_CONF) app = web.Application() writable = RestConfig.getboolean('access', 'write', fallback=False) if writable: syslog.syslog(syslog.LOG_INFO, 'REST: Launched with Read/Write Mode') else: syslog.syslog(syslog.LOG_INFO, 'REST: Launched with Read Only Mode') root = init_common_tree() root.merge(init_plat_tree()) root.setup(app, writable) web.run_app(app, host='*')