Some checks failed
Build and Deploy MITM Webserver / build (push) Failing after 3s
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
"""Netplan schema models used by bridge/network configuration APIs."""
|
|
|
|
from typing import Dict, List, Optional
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class Nameservers(BaseModel):
|
|
"""DNS nameserver configuration."""
|
|
|
|
addresses: List[str] = Field(default_factory=list)
|
|
search: List[str] = Field(default_factory=list)
|
|
|
|
|
|
class EthernetConfig(BaseModel):
|
|
"""Netplan ethernet interface configuration."""
|
|
|
|
dhcp4: Optional[bool] = None
|
|
dhcp6: Optional[bool] = None
|
|
addresses: Optional[List[str]] = None
|
|
gateway4: Optional[str] = None
|
|
gateway6: Optional[str] = None
|
|
nameservers: Optional[Nameservers] = None
|
|
optional: Optional[bool] = None
|
|
|
|
|
|
class BridgeConfig(BaseModel):
|
|
"""Netplan bridge configuration."""
|
|
|
|
interfaces: List[str] = Field(default_factory=list)
|
|
dhcp4: Optional[bool] = None
|
|
dhcp6: Optional[bool] = None
|
|
addresses: Optional[List[str]] = None
|
|
gateway4: Optional[str] = None
|
|
gateway6: Optional[str] = None
|
|
nameservers: Optional[Nameservers] = None
|
|
parameters: Optional[dict] = None
|
|
optional: Optional[bool] = None
|
|
|
|
|
|
class NetworkConfig(BaseModel):
|
|
"""Top-level Netplan network object."""
|
|
|
|
version: int = 2
|
|
renderer: Optional[str] = "networkd"
|
|
ethernets: Dict[str, EthernetConfig] = Field(default_factory=dict)
|
|
bridges: Dict[str, BridgeConfig] = Field(default_factory=dict)
|