#!/usr/bin/python3 # Copyright (C) 2018 Lars Wirzenius # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . import json import logging import os import sys import bottle class API: def __init__(self, bottleapp): self._add_routes(bottleapp) def _add_routes(self, bottleapp): routes = [ { 'method': 'GET', 'path': '/status', 'callback': self._show_status, }, ] for route in routes: bottleapp.route(**route) def _show_status(self): status = { 'resources': -1, } return bottle.HTTPResponse(status=200, body=json.dumps(status)) with open(sys.argv[1]) as f: config = json.load(f) logging.basicConfig( filename=config['log'], level=logging.DEBUG, format='%(levelname)s %(message)s') logging.info('Effi API starts') if config.get('pid'): pid = os.getpid() with open(config['pid'], 'w') as f: f.write(str(pid)) app = bottle.default_app() api = API(app) app.run(host='127.0.0.1', port=8080)