diff options
-rwxr-xr-x | effiapi | 65 | ||||
-rw-r--r-- | testconfig.yaml | 4 |
2 files changed, 69 insertions, 0 deletions
@@ -0,0 +1,65 @@ +#!/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 <http://www.gnu.org/licenses/>. + + +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) diff --git a/testconfig.yaml b/testconfig.yaml new file mode 100644 index 0000000..f0f3347 --- /dev/null +++ b/testconfig.yaml @@ -0,0 +1,4 @@ +{ + "log": "effiapi.log", + "pid": "effiapi.pid" +} |