diff --git a/geant_service_orchestrator/settings.py b/geant_service_orchestrator/settings.py index 98352e6ba99ec019ff4eb8a8ea317a8830401825..f842dd696fb2837373b17cb3e81282db0487ac44 100644 --- a/geant_service_orchestrator/settings.py +++ b/geant_service_orchestrator/settings.py @@ -1,6 +1,6 @@ +import ipaddress import json import os -from typing import Optional from pydantic import BaseSettings @@ -12,14 +12,19 @@ class InfoBloxParams(BaseSettings): password: str -class ServiceNetworkProtocolParams(BaseSettings): - container: str # ipaddress? - mask: int +class V4NetworkParams(BaseSettings): + container: ipaddress.IPv4Network + mask: int # TODO: validation on mask? + + +class V6NetworkParams(BaseSettings): + container: ipaddress.IPv6Network + mask: int # TODO: validation on mask? class ServiceNetworkParams(BaseSettings): - V4: ServiceNetworkProtocolParams - V6: ServiceNetworkProtocolParams + V4: V4NetworkParams + V6: V6NetworkParams class IPAMParams(BaseSettings): @@ -34,6 +39,10 @@ class OSSParams(BaseSettings): def load_oss_params() -> OSSParams: + """ + look for OSS_PARAMS_FILENAME in the environment and load the + parameters from that file + """ with open(os.environ['OSS_PARAMS_FILENAME']) as f: return OSSParams(**json.loads(f.read()))