feat: add netplan configuration models and backend API for applying netplan
All checks were successful
Build and Deploy MITM Webserver / build (push) Successful in 8s
All checks were successful
Build and Deploy MITM Webserver / build (push) Successful in 8s
This commit is contained in:
36
backend/src/Models/netplan.py
Normal file
36
backend/src/Models/netplan.py
Normal file
@@ -0,0 +1,36 @@
|
||||
from pydantic import BaseModel, Field
|
||||
from typing import List, Dict, Optional
|
||||
|
||||
|
||||
class Nameservers(BaseModel):
|
||||
addresses: List[str] = Field(default_factory=list)
|
||||
search: List[str] = Field(default_factory=list)
|
||||
|
||||
|
||||
class EthernetConfig(BaseModel):
|
||||
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):
|
||||
interfaces: List[str] = Field(default_factory=list) # ["eth1", "eth2"]
|
||||
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 # allows spanning-tree, port-priority, forward-delay, etc.
|
||||
optional: Optional[bool] = None
|
||||
|
||||
|
||||
class NetworkConfig(BaseModel):
|
||||
version: int = 2
|
||||
renderer: Optional[str] = "networkd"
|
||||
ethernets: Dict[str, EthernetConfig] = Field(default_factory=dict)
|
||||
bridges: Dict[str, BridgeConfig] = Field(default_factory=dict)
|
||||
Reference in New Issue
Block a user