File: //opt/lc/lwdbadmin/bin/lwdbprovd
#!/usr/libexec/platform-python
# -*- coding: utf-8 -*-
import logging
import logging.handlers
import logging.config
import yaml
import os
from lwdbadmin import bottle
from lwdbadmin.bottle import request
from lwdbadmin.api import error, auth
with open('/opt/lc/lwdbadmin/etc/lwdbadmin-log.yml', 'r') as f:
configlog = yaml.safe_load(f.read())
logging.config.dictConfig(configlog)
logger = logging.getLogger(__name__)
app = application = bottle.Bottle()
app.error_handler = error.handler
app.install(auth.authorize)
DESC_PATH = '/etc/default/locaweb/description'
if os.path.exists('%s/mysql' % DESC_PATH):
logger.info("Loading Mysql Endpoint")
from lwdbadmin.api import mysql
app.merge(mysql.app)
if os.path.exists('%s/postgresql' % DESC_PATH):
logger.info("Loading PostgreSQL Endpoint")
from lwdbadmin.api import pgsql
app.merge(pgsql.app)
class StripPathMiddleware(object):
def __init__(self, a):
self.a = a
def __call__(self, e, h):
e['PATH_INFO'] = e['PATH_INFO'].rstrip('/')
return self.a(e, h)
def main():
bottle.debug(True)
logger.info("Starting lwdbadmin service")
bottle.run(app = StripPathMiddleware(app),
server = 'auto',
host = '0.0.0.0',
port = 8080)
if __name__ == '__main__':
main()