Skip to content
Snippets Groups Projects
Commit 3744e672 authored by Christian Boettcher's avatar Christian Boettcher
Browse files

settings can now be done via the config.env file

using the dotenv format
parent a7169816
Branches
Tags
1 merge request!1apiserver based on fastAPI
from .settings import Settings from .settings import ApiserverSettings
\ No newline at end of file \ No newline at end of file
...@@ -5,10 +5,9 @@ DEFAULT_JSON_FILEPATH: str = "./app/data" ...@@ -5,10 +5,9 @@ DEFAULT_JSON_FILEPATH: str = "./app/data"
## Additional Settings can be made available by adding them as properties to this class ## Additional Settings can be made available by adding them as properties to this class
# At launch they will be read from environment variables (case-INsensitive) # At launch they will be read from environment variables (case-INsensitive)
class Settings(BaseSettings): class ApiserverSettings(BaseSettings):
datacatalog_apiserver_host: str = "0.0.0.0" json_storage_path: str = DEFAULT_JSON_FILEPATH
datacatalog_apiserver_port: int = 80
datacatalog_apiserver_json_storage_path: str = DEFAULT_JSON_FILEPATH
class Config: class Config:
env_file = "config.env" env_prefix: str = "datacatalog_apiserver_"
\ No newline at end of file env_file: str = "config.env"
\ No newline at end of file
...@@ -11,12 +11,12 @@ from .storage import AbstractLocationDataStorageAdapter ...@@ -11,12 +11,12 @@ from .storage import AbstractLocationDataStorageAdapter
from .storage import LocationData from .storage import LocationData
from .storage import LocationDataType from .storage import LocationDataType
from .config import Settings from .config import ApiserverSettings
from enum import Enum from enum import Enum
settings = Settings() settings = ApiserverSettings()
app = FastAPI( app = FastAPI(
title="API-Server for the Data Catalogue" title="API-Server for the Data Catalogue"
......
...@@ -4,7 +4,7 @@ import uuid ...@@ -4,7 +4,7 @@ import uuid
from .LocationStorage import AbstractLocationDataStorageAdapter, LocationData, LocationDataType from .LocationStorage import AbstractLocationDataStorageAdapter, LocationData, LocationDataType
from apiserver.config import Settings from apiserver.config import ApiserverSettings
from typing import List from typing import List
...@@ -23,9 +23,9 @@ class StoredData: ...@@ -23,9 +23,9 @@ class StoredData:
class JsonFileStorageAdapter(AbstractLocationDataStorageAdapter): class JsonFileStorageAdapter(AbstractLocationDataStorageAdapter):
data_dir: str data_dir: str
def __init__(self, settings: Settings): def __init__(self, settings: ApiserverSettings):
AbstractLocationDataStorageAdapter.__init__(self) AbstractLocationDataStorageAdapter.__init__(self)
self.data_dir = settings.datacatalog_apiserver_json_storage_path self.data_dir = settings.json_storage_path
if not (os.path.exists(self.data_dir) and os.path.isdir(self.data_dir)): if not (os.path.exists(self.data_dir) and os.path.isdir(self.data_dir)):
raise Exception('Data Directory \"' + self.data_dir + '\" does not exist.') raise Exception('Data Directory \"' + self.data_dir + '\" does not exist.')
......
...@@ -2,5 +2,5 @@ import os ...@@ -2,5 +2,5 @@ import os
import sys import sys
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
import apiserver import apiserver as apiserver
import apiserver.storage as storage import apiserver.storage as storage
\ No newline at end of file
...@@ -6,7 +6,6 @@ from fastapi.testclient import TestClient ...@@ -6,7 +6,6 @@ from fastapi.testclient import TestClient
from context import apiserver from context import apiserver
from context import storage from context import storage
client = TestClient(apiserver.app) client = TestClient(apiserver.app)
# get root # get root
......
# contains Settings that can be loaded via pydantic settings .env support
DATACATALOG_APISERVER_HOST="0.0.0.0", DATACATALOG_APISERVER_HOST="0.0.0.0",
DATACATALOG_APISERVER_PORT=80 DATACATALOG_APISERVER_PORT=80
DATACATALOG_APISERVER_JSON_STORAGE_PATH="./app/data" DATACATALOG_APISERVER_JSON_STORAGE_PATH="./app/data"
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment