acex-devkit 1.3.3__tar.gz → 1.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/PKG-INFO +1 -1
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/pyproject.toml +1 -1
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/models/__init__.py +2 -1
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/models/composed_configuration.py +34 -3
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/models/node_response.py +16 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/README.md +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/__init__.py +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/configdiffer/__init__.py +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/configdiffer/command.py +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/configdiffer/configdiffer.py +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/configdiffer/diff.py +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/configdiffer/old_configdiffer.py +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/configdiffer/old_diff.py +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/drivers/__init__.py +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/drivers/base.py +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/drivers/base_driver.py +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/exceptions/__init__.py +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/models/acl_model.py +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/models/attribute_value.py +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/models/container_entry.py +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/models/external_value.py +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/models/logging.py +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/models/ned.py +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/models/spanning_tree.py +0 -0
- {acex_devkit-1.3.3 → acex_devkit-1.4.0}/src/acex_devkit/types/__init__.py +0 -0
|
@@ -5,11 +5,12 @@
|
|
|
5
5
|
|
|
6
6
|
from .external_value import ExternalValue
|
|
7
7
|
from .attribute_value import AttributeValue
|
|
8
|
-
from .node_response import NodeResponse, LogicalNodeResponse
|
|
8
|
+
from .node_response import NodeResponse, NodeListItem, LogicalNodeResponse
|
|
9
9
|
|
|
10
10
|
__all__ = [
|
|
11
11
|
ExternalValue,
|
|
12
12
|
AttributeValue,
|
|
13
13
|
NodeResponse,
|
|
14
|
+
NodeListItem,
|
|
14
15
|
LogicalNodeResponse
|
|
15
16
|
]
|
|
@@ -112,7 +112,18 @@ class Ssh(BaseModel):
|
|
|
112
112
|
config: Optional[SshServer] = None
|
|
113
113
|
host_keys: Optional[Dict[str, AuthorizedKey]] = {}
|
|
114
114
|
|
|
115
|
-
class
|
|
115
|
+
class LldpConfigAttributes(BaseModel):
|
|
116
|
+
enabled: Optional[AttributeValue[bool]] = None
|
|
117
|
+
transmit_interval: Optional[AttributeValue[int]] = None
|
|
118
|
+
hold_time: Optional[AttributeValue[int]] = None
|
|
119
|
+
system_name: Optional[AttributeValue[str]] = None # The system name field shall contain an alpha-numeric string that indicates the system's administratively assigned name.
|
|
120
|
+
suppress_tlv_advertisement: Optional[AttributeValue[List[str]]] = None # Comma-separated list of TLVs to suppress in advertisements. Values depend on device and vendor, but common ones include "system_name", "system_description", "system_capabilities", "management_address", etc.
|
|
121
|
+
interfaces: Optional[Dict[str, Reference]] = {}
|
|
122
|
+
|
|
123
|
+
#class Lldp(BaseModel):
|
|
124
|
+
# config: Optional[LldpConfigAttributes] = LldpConfigAttributes()
|
|
125
|
+
# #interfaces: Optional[Dict[str, LldpInterfaceConfigAttributes]] = {}
|
|
126
|
+
# interfaces: Optional[Dict[str, Reference]] = {}
|
|
116
127
|
|
|
117
128
|
class Vlan(ContainerEntry, BaseModel):
|
|
118
129
|
identity_fields: ClassVar[tuple[str, ...]] = ("vlan_id",)
|
|
@@ -166,7 +177,7 @@ class EthernetCsmacdInterface(Interface):
|
|
|
166
177
|
voice_vlan: Optional[AttributeValue[int]] = None
|
|
167
178
|
mtu: Optional[AttributeValue[int]] = None # No default set as it differs between devices and vendors
|
|
168
179
|
negotiation: Optional[AttributeValue[bool]] = None
|
|
169
|
-
lldp_enabled: Optional[AttributeValue[bool]] = None
|
|
180
|
+
#lldp_enabled: Optional[AttributeValue[bool]] = None
|
|
170
181
|
cdp_enabled: Optional[AttributeValue[bool]] = None
|
|
171
182
|
|
|
172
183
|
# LACP relaterade attribut
|
|
@@ -667,6 +678,25 @@ class VTPAttributes(BaseModel):
|
|
|
667
678
|
class VTP(BaseModel):
|
|
668
679
|
config: VTPAttributes = VTPAttributes()
|
|
669
680
|
|
|
681
|
+
class DHCPSnoopingAttributes(BaseModel):
|
|
682
|
+
enabled: Optional[AttributeValue[bool]] = None
|
|
683
|
+
vlans: Optional[Dict[str, Reference]] = {} # VLANs where DHCP snooping is enabled, key is VLAN ID, value is reference to VLAN
|
|
684
|
+
trust_interfaces: Optional[Dict[str, Reference]] = {} # Interfaces that are trusted for DHCP snooping, key is interface name, value is reference to interface
|
|
685
|
+
option82: Optional[AttributeValue[bool]] = None # Whether DHCP snooping option 82 is enabled
|
|
686
|
+
|
|
687
|
+
class DhcpRelayServerAttributes(ContainerEntry, BaseModel):
|
|
688
|
+
identity_fields: ClassVar[tuple[str, ...]] = ("address",)
|
|
689
|
+
address: Optional[AttributeValue[str]] = None
|
|
690
|
+
network_instance: Optional[AttributeValue[str]] = None
|
|
691
|
+
interfaces: Optional[Dict[str, Reference]] = {}
|
|
692
|
+
|
|
693
|
+
class DhcpRelay(BaseModel):
|
|
694
|
+
relay_servers: Optional[Dict[str, DhcpRelayServerAttributes]] = {}
|
|
695
|
+
|
|
696
|
+
class Dhcp(BaseModel):
|
|
697
|
+
snooping: Optional[DHCPSnoopingAttributes] = DHCPSnoopingAttributes()
|
|
698
|
+
relay: Optional[DhcpRelay] = DhcpRelay()
|
|
699
|
+
|
|
670
700
|
class System(BaseModel):
|
|
671
701
|
config: SystemConfig = SystemConfig()
|
|
672
702
|
aaa: Optional[TripleA] = TripleA()
|
|
@@ -675,6 +705,7 @@ class System(BaseModel):
|
|
|
675
705
|
ssh: Optional[Ssh] = Ssh()
|
|
676
706
|
snmp: Optional[Snmp] = Snmp()
|
|
677
707
|
vtp: Optional[VTP] = VTP()
|
|
708
|
+
dhcp: Optional[Dhcp] = Dhcp()
|
|
678
709
|
|
|
679
710
|
# For different types of interfaces that are fine for response model:
|
|
680
711
|
InterfaceType = Union[
|
|
@@ -689,7 +720,7 @@ InterfaceType = Union[
|
|
|
689
720
|
class ComposedConfiguration(BaseModel):
|
|
690
721
|
system: Optional[System] = System()
|
|
691
722
|
acl: Optional[Acl] = Acl()
|
|
692
|
-
lldp: Optional[
|
|
723
|
+
lldp: Optional[LldpConfigAttributes] = LldpConfigAttributes()
|
|
693
724
|
lacp: Optional[Lacp] = Lacp()
|
|
694
725
|
interfaces: Dict[str, InterfaceType] = {}
|
|
695
726
|
network_instances: Dict[str, NetworkInstance] = {"global": NetworkInstance(name="global")}
|
|
@@ -48,7 +48,23 @@ class Node(NodeBase):
|
|
|
48
48
|
created_at: Optional[datetime] = None
|
|
49
49
|
updated_at: Optional[datetime] = None
|
|
50
50
|
|
|
51
|
+
|
|
52
|
+
class NodeListItem(NodeBase):
|
|
53
|
+
"""Enriched list representation with denormalized fields from asset and logical_node."""
|
|
54
|
+
id: Optional[int] = None
|
|
55
|
+
# From logical_node
|
|
56
|
+
hostname: Optional[str] = None
|
|
57
|
+
site: Optional[str] = None
|
|
58
|
+
# From asset
|
|
59
|
+
vendor: Optional[str] = None
|
|
60
|
+
os: Optional[str] = None
|
|
61
|
+
ned_id: Optional[str] = None
|
|
62
|
+
created_at: Optional[datetime] = None
|
|
63
|
+
updated_at: Optional[datetime] = None
|
|
64
|
+
|
|
65
|
+
|
|
51
66
|
class NodeResponse(NodeBase):
|
|
67
|
+
id: Optional[int] = None
|
|
52
68
|
asset: Asset
|
|
53
69
|
logical_node: LogicalNodeResponse
|
|
54
70
|
created_at: datetime
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|