mirror of https://git.48k.eu/ogcp
config: use from_json to read ogserver config
This patch introduces the usage of Flask.Config class so the config can be read at startup (__init__) only once. Config keys must be uppercase so that from_json method does take it into account. dormousehole.readthedocs.io/en/stable/api.html#flask.Config.from_json Prior to this patch each request required opening and closing the ogserver.json file via load_config in views.py. In the future the decorated load_config function inside views.py may be removed to avoid creating multiple instances of the OGServer class.multi-ogserver
parent
c08aca9219
commit
b708047d28
|
@ -5,10 +5,12 @@ from flask import Flask
|
|||
from os import urandom
|
||||
|
||||
app = Flask(__name__)
|
||||
app.config.from_json('cfg/ogserver.json')
|
||||
app.secret_key = urandom(16)
|
||||
|
||||
babel = Babel(app)
|
||||
csrf = CSRFProtect(app)
|
||||
bootstrap = Bootstrap(app)
|
||||
|
||||
app.secret_key = urandom(16)
|
||||
|
||||
import ogcp.views
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"ip": "127.0.0.1",
|
||||
"port": 8888,
|
||||
"api_token": "c3fe7bb0395747ec42a25df027585871"
|
||||
"IP": "127.0.0.1",
|
||||
"PORT": 8888,
|
||||
"API_TOKEN": "c3fe7bb0395747ec42a25df027585871"
|
||||
}
|
||||
|
|
|
@ -1,22 +1,17 @@
|
|||
from ogcp import app
|
||||
|
||||
import requests
|
||||
import json
|
||||
|
||||
class OGServer:
|
||||
def __init__(self, ip='127.0.0.1', port=8888, api_token=""):
|
||||
def __init__(self, ip=app.config['IP'],
|
||||
port=app.config['PORT'],
|
||||
api_token=app.config['API_TOKEN']):
|
||||
self.ip = ip
|
||||
self.port = port
|
||||
self.api_token = api_token
|
||||
self._prepare_requests()
|
||||
|
||||
def load_config(self, path):
|
||||
with open(path, 'r') as f:
|
||||
cfg = json.load(f)
|
||||
|
||||
self.ip = cfg['ip']
|
||||
self.port = cfg['port']
|
||||
self.api_token = cfg['api_token']
|
||||
self._prepare_requests()
|
||||
|
||||
def _prepare_requests(self):
|
||||
self.URL = f'http://{self.ip}:{self.port}'
|
||||
self.HEADERS = {'Authorization' : self.api_token}
|
||||
|
|
|
@ -52,7 +52,6 @@ def parse_scopes_from_tree(tree, scope_type):
|
|||
@app.before_request
|
||||
def load_config():
|
||||
g.server = OGServer()
|
||||
g.server.load_config('ogcp/cfg/ogserver.json')
|
||||
|
||||
@app.errorhandler(404)
|
||||
def page_not_found(error):
|
||||
|
|
Loading…
Reference in New Issue