diff --git a/README.md b/README.md index 2056188cc7ff88eb1e9cb0a4cbfe05a65130af32..cb0cac396dac06de905b67f05d408286af9365c1 100644 --- a/README.md +++ b/README.md @@ -2,4 +2,4 @@ The GÉANT interpretation of [`orchestrator-core`](https://github.com/workfloworchestrator/orchestrator-core). ## Documentation -You can build the documentation locally using either [build-docs.sh](build-docs.sh) or [test-docs.sh](test-docs.sh). +You can build the documentation locally using [build-docs.sh](build-docs.sh). diff --git a/gso/settings.py b/gso/settings.py index 701f65fddc74029e2fba309d76f5ec275fd1d9e8..61c8b7763e20b5cd08b39aaf39f346bcf23e1d20 100644 --- a/gso/settings.py +++ b/gso/settings.py @@ -8,7 +8,7 @@ import json import logging import os -from pydantic import BaseSettings +from pydantic import BaseSettings, NonNegativeInt logger = logging.getLogger(__name__) @@ -31,12 +31,20 @@ class InfoBloxParams(BaseSettings): password: str +class V4Netmask(NonNegativeInt): + le = 32 + + +class V6Netmask(NonNegativeInt): + le = 128 + + class V4NetworkParams(BaseSettings): """A set of parameters that describe an IPv4 network in InfoBlox.""" containers: list[ipaddress.IPv4Network] networks: list[ipaddress.IPv4Network] - mask: int # TODO: validation on mask? + mask: V4Netmask class V6NetworkParams(BaseSettings): @@ -44,7 +52,7 @@ class V6NetworkParams(BaseSettings): containers: list[ipaddress.IPv6Network] networks: list[ipaddress.IPv6Network] - mask: int # TODO: validation on mask? + mask: V6Netmask class ServiceNetworkParams(BaseSettings):