diff options
author | Jose M. Guisado <jguisado@soleta.eu> | 2020-11-05 15:28:35 +0000 |
---|---|---|
committer | Jose M. Guisado <jguisado@soleta.eu> | 2020-11-06 09:27:03 +0000 |
commit | b708047d28f9e462213621ae4f006659166ff141 (patch) | |
tree | 9295929b22a4c21159d027319a58c41e5de5bb1b /ogcp | |
parent | c08aca92196cdd8df4c8d81da71e248b407f5bb2 (diff) |
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.
Diffstat (limited to 'ogcp')
-rw-r--r-- | ogcp/__init__.py | 4 | ||||
-rw-r--r-- | ogcp/cfg/ogserver.json | 6 | ||||
-rw-r--r-- | ogcp/og_server.py | 15 | ||||
-rw-r--r-- | ogcp/views.py | 1 |
4 files changed, 11 insertions, 15 deletions
diff --git a/ogcp/__init__.py b/ogcp/__init__.py index 58ba0c3..fb860b9 100644 --- a/ogcp/__init__.py +++ b/ogcp/__init__.py @@ -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 diff --git a/ogcp/cfg/ogserver.json b/ogcp/cfg/ogserver.json index a066595..9e715d4 100644 --- a/ogcp/cfg/ogserver.json +++ b/ogcp/cfg/ogserver.json @@ -1,5 +1,5 @@ { - "ip": "127.0.0.1", - "port": 8888, - "api_token": "c3fe7bb0395747ec42a25df027585871" + "IP": "127.0.0.1", + "PORT": 8888, + "API_TOKEN": "c3fe7bb0395747ec42a25df027585871" } diff --git a/ogcp/og_server.py b/ogcp/og_server.py index 08c9b08..2ea0363 100644 --- a/ogcp/og_server.py +++ b/ogcp/og_server.py @@ -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} diff --git a/ogcp/views.py b/ogcp/views.py index 09486d5..0b6b320 100644 --- a/ogcp/views.py +++ b/ogcp/views.py @@ -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): |