from dataclasses import dataclass, field
from typing import List, Optional
@dataclass
[docs]
class Switch:
"""Represents a switch being modeled in the virtual lab."""
[docs]
name: str # Switch name received as input argument
[docs]
model: str # Switch model
[docs]
eos_version: str # EOS version
[docs]
system_mac: str # System MAC address
[docs]
serial_number: str # Serial number
[docs]
lldp_system_name: str # LLDP system name
[docs]
ethernet_interfaces: int # Number of Ethernet interfaces
[docs]
gns3_template_id: str # GNS3 image-template ID
[docs]
gns3_node_id: str # GNS3 node-ID
[docs]
docker_container_id: str # Docker container ID
[docs]
initial_config: List = field(default_factory=list) # The modeled device's configuration
[docs]
qemu_vm_id: str = '' # QEMU VM ID (optional)
@dataclass
[docs]
class Connection:
"""Represents a connection between two switches in the virtual lab."""
[docs]
switch_a: str # LLDP system name of the first switch
[docs]
port_a: str # Port on the first switch
[docs]
switch_b: str # LLDP system name of the second switch
[docs]
port_b: str # Port on the second switch