summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJose M. Guisado <jguisado@soleta.eu>2020-11-05 15:28:35 +0000
committerJose M. Guisado <jguisado@soleta.eu>2020-11-06 09:27:03 +0000
commitb708047d28f9e462213621ae4f006659166ff141 (patch)
tree9295929b22a4c21159d027319a58c41e5de5bb1b
parentc08aca92196cdd8df4c8d81da71e248b407f5bb2 (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.
-rw-r--r--ogcp/__init__.py4
-rw-r--r--ogcp/cfg/ogserver.json6
-rw-r--r--ogcp/og_server.py15
-rw-r--r--ogcp/views.py1
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):