Newer
Older
import json
import os
from pydantic import BaseSettings
class GeneralParams(BaseSettings):
public_hostname: str
class InfoBloxParams(BaseSettings):
scheme: str
wapi_version: str
host: str
username: str
password: str
containers: list[ipaddress.IPv4Network]
networks: list[ipaddress.IPv4Network]
mask: int # TODO: validation on mask?
class V6NetworkParams(BaseSettings):
containers: list[ipaddress.IPv6Network]
networks: list[ipaddress.IPv6Network]
class ServiceNetworkParams(BaseSettings):
domain_name: str
class IPAMParams(BaseSettings):
INFOBLOX: InfoBloxParams
LO: ServiceNetworkParams
TRUNK: ServiceNetworkParams
GEANT_IP: ServiceNetworkParams
class ProvisioningProxyParams(BaseSettings):
auth: str # FIXME: unfinished
api_version: int
GENERAL: GeneralParams
IPAM: IPAMParams
RESOURCE_MANAGER_API_PREFIX: str # api prefix
PROVISIONING_PROXY: ProvisioningProxyParams
"""
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__':