add new example, rework yaml

This commit is contained in:
2026-03-17 02:12:57 +03:00
parent 94e635e9f3
commit 31611cbbeb
3 changed files with 20 additions and 26 deletions
+3
View File
@@ -0,0 +1,3 @@
- в данный момент маска никуда не прходит
- обработка виртуальных интерфейсов в yaml
- добавление bridge и vlan сущностей
+6
View File
@@ -0,0 +1,6 @@
Name,Role,Adapter,Interface,Network,Network IP,Mask,Device IP,Default Gateway
PC1,Host,Adapter1,uplink,main,10.0.12.0,/24,10.0.12.1,0.0.0.0
PC1,Host,,lo,,127.0.0.0,/8,127.1.1.1,
PC2,Host,Adapter1,uplink,main,10.0.12.0,/24,10.0.12.2,0.0.0.0
PC3,Host,Adapter1,uplink,main,10.0.12.0,/24,10.0.12.3,0.0.0.0
1 Name Role Adapter Interface Network Network IP Mask Device IP Default Gateway
2 PC1 Host Adapter1 uplink main 10.0.12.0 /24 10.0.12.1 0.0.0.0
3 PC1 Host lo 127.0.0.0 /8 127.1.1.1
4 PC2 Host Adapter1 uplink main 10.0.12.0 /24 10.0.12.2 0.0.0.0
5 PC3 Host Adapter1 uplink main 10.0.12.0 /24 10.0.12.3 0.0.0.0
+11 -26
View File
@@ -35,33 +35,18 @@ def make_yaml(topology: Topology, output_path: Path) -> None:
data["nodes"] = []
for _, device in topology.devices.items():
data["nodes"].append(
{
"role": device.role,
"name": device.name,
"interfaces": [
{
interface_name: [
{
"ip": (
interface.ip_address
if interface.ip_address
else None
),
"network": (
interface.network if interface.network else None
),
"gateway": (
interface.default_gateway
if interface.default_gateway
else None
),
}
]
}
for interface_name, interface in device.interfaces.items()
],
interfaces = dict()
for interface_name, interface in device.interfaces.items():
interfaces[interface_name] = {
"ip": interface.ip_address if interface.ip_address else None,
"network": interface.network if interface.network else None,
"gateway": (
interface.default_gateway if interface.default_gateway else None
),
}
data["nodes"].append(
{"role": device.role, "name": device.name, "interfaces": interfaces}
)
with open(str(output_path), "w", encoding="utf-8") as f: