settings.py 1.05 KiB
import ipaddress
import json
import os
from pydantic import BaseSettings
class InfoBloxParams(BaseSettings):
scheme: str
wapi_version: str
host: str
username: str
password: str
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: V4NetworkParams
V6: V6NetworkParams
class IPAMParams(BaseSettings):
INFOBLOX: InfoBloxParams
TRUNK: ServiceNetworkParams
GEANT_IP: ServiceNetworkParams
class OSSParams(BaseSettings):
IPAM: IPAMParams
RESOURCE_MANAGER_API_PREFIX: str # api prefix
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()))
if __name__ == '__main__':
print(load_oss_params())