acex-devkit 1.3.4__tar.gz → 1.5.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.
Files changed (25) hide show
  1. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/PKG-INFO +1 -1
  2. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/pyproject.toml +1 -1
  3. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/models/__init__.py +2 -1
  4. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/models/composed_configuration.py +23 -4
  5. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/models/node_response.py +16 -0
  6. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/README.md +0 -0
  7. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/__init__.py +0 -0
  8. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/configdiffer/__init__.py +0 -0
  9. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/configdiffer/command.py +0 -0
  10. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/configdiffer/configdiffer.py +0 -0
  11. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/configdiffer/diff.py +0 -0
  12. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/configdiffer/old_configdiffer.py +0 -0
  13. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/configdiffer/old_diff.py +0 -0
  14. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/drivers/__init__.py +0 -0
  15. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/drivers/base.py +0 -0
  16. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/drivers/base_driver.py +0 -0
  17. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/exceptions/__init__.py +0 -0
  18. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/models/acl_model.py +0 -0
  19. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/models/attribute_value.py +0 -0
  20. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/models/container_entry.py +0 -0
  21. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/models/external_value.py +0 -0
  22. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/models/logging.py +0 -0
  23. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/models/ned.py +0 -0
  24. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/models/spanning_tree.py +0 -0
  25. {acex_devkit-1.3.4 → acex_devkit-1.5.0}/src/acex_devkit/types/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: acex-devkit
3
- Version: 1.3.4
3
+ Version: 1.5.0
4
4
  Summary: ACE-X DevKit - Development kit for building ACE-X drivers and plugins
5
5
  License: AGPL-3.0
6
6
  Keywords: automation,devkit,sdk,drivers,plugins
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "acex-devkit"
3
- version = "1.3.4"
3
+ version = "1.5.0"
4
4
  description = "ACE-X DevKit - Development kit for building ACE-X drivers and plugins"
5
5
  authors = ["Johan Lahti <johan.lahti@acebit.se>"]
6
6
  readme = "README.md"
@@ -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,25 @@ class Ssh(BaseModel):
112
112
  config: Optional[SshServer] = None
113
113
  host_keys: Optional[Dict[str, AuthorizedKey]] = {}
114
114
 
115
- class Lldp(BaseModel): ...
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 CdpConfigAttributes(BaseModel):
124
+ enabled: Optional[AttributeValue[bool]] = None
125
+ transmit_interval: Optional[AttributeValue[int]] = None
126
+ hold_time: Optional[AttributeValue[int]] = None
127
+ advertise_v2: Optional[AttributeValue[bool]] = None # Whether to advertise CDP version 2
128
+ interfaces: Optional[Dict[str, Reference]] = {}
129
+
130
+ #class Lldp(BaseModel):
131
+ # config: Optional[LldpConfigAttributes] = LldpConfigAttributes()
132
+ # #interfaces: Optional[Dict[str, LldpInterfaceConfigAttributes]] = {}
133
+ # interfaces: Optional[Dict[str, Reference]] = {}
116
134
 
117
135
  class Vlan(ContainerEntry, BaseModel):
118
136
  identity_fields: ClassVar[tuple[str, ...]] = ("vlan_id",)
@@ -166,8 +184,8 @@ class EthernetCsmacdInterface(Interface):
166
184
  voice_vlan: Optional[AttributeValue[int]] = None
167
185
  mtu: Optional[AttributeValue[int]] = None # No default set as it differs between devices and vendors
168
186
  negotiation: Optional[AttributeValue[bool]] = None
169
- lldp_enabled: Optional[AttributeValue[bool]] = None
170
- cdp_enabled: Optional[AttributeValue[bool]] = None
187
+ #lldp_enabled: Optional[AttributeValue[bool]] = None
188
+ #cdp_enabled: Optional[AttributeValue[bool]] = None
171
189
 
172
190
  # LACP relaterade attribut
173
191
  aggregate_id: Optional[AttributeValue[int]] = None
@@ -709,7 +727,8 @@ InterfaceType = Union[
709
727
  class ComposedConfiguration(BaseModel):
710
728
  system: Optional[System] = System()
711
729
  acl: Optional[Acl] = Acl()
712
- lldp: Optional[Lldp] = Lldp()
730
+ lldp: Optional[LldpConfigAttributes] = LldpConfigAttributes()
731
+ cdp: Optional[CdpConfigAttributes] = CdpConfigAttributes()
713
732
  lacp: Optional[Lacp] = Lacp()
714
733
  interfaces: Dict[str, InterfaceType] = {}
715
734
  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