From 9fb7a7aecddf77e5c3cb738da8c5097d3d7712eb Mon Sep 17 00:00:00 2001 From: Erik Reid <erik.reid@geant.org> Date: Tue, 28 Mar 2023 09:24:02 +0200 Subject: [PATCH] use ipaddress.*Network types --- geant_service_orchestrator/settings.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/geant_service_orchestrator/settings.py b/geant_service_orchestrator/settings.py index 98352e6b..f842dd69 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())) -- GitLab