Skip to content
Snippets Groups Projects
Commit 9fb7a7ae authored by Erik Reid's avatar Erik Reid
Browse files

use ipaddress.*Network types

parent 2cff272b
No related branches found
No related tags found
No related merge requests found
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()))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment