mirror of
https://github.com/aljazceru/python-teos.git
synced 2026-02-01 12:44:25 +01:00
Adds invalid appointment to tower_info
Invalid appointments are those which tower signature is invalid
This commit is contained in:
@@ -1,5 +1,13 @@
|
||||
class TowerInfo:
|
||||
def __init__(self, netaddr, available_slots, status="active", appointments=None, pending_appointments=None):
|
||||
def __init__(
|
||||
self,
|
||||
netaddr,
|
||||
available_slots,
|
||||
status="reachable",
|
||||
appointments=None,
|
||||
pending_appointments=None,
|
||||
invalid_appointments=None,
|
||||
):
|
||||
self.netaddr = netaddr
|
||||
self.available_slots = available_slots
|
||||
self.status = status
|
||||
@@ -14,6 +22,11 @@ class TowerInfo:
|
||||
else:
|
||||
self.pending_appointments = pending_appointments
|
||||
|
||||
if not invalid_appointments:
|
||||
self.invalid_appointments = []
|
||||
else:
|
||||
self.invalid_appointments = invalid_appointments
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, tower_data):
|
||||
netaddr = tower_data.get("netaddr")
|
||||
@@ -21,11 +34,15 @@ class TowerInfo:
|
||||
status = tower_data.get("status")
|
||||
appointments = tower_data.get("appointments")
|
||||
pending_appointments = tower_data.get("pending_appointments")
|
||||
invalid_appointments = tower_data.get("invalid_appointments")
|
||||
|
||||
if any(v is None for v in [netaddr, available_slots, status, appointments, pending_appointments]):
|
||||
if any(
|
||||
v is None
|
||||
for v in [netaddr, available_slots, status, appointments, pending_appointments, invalid_appointments]
|
||||
):
|
||||
raise ValueError("Wrong appointment data, some fields are missing")
|
||||
|
||||
return cls(netaddr, available_slots, status, appointments, pending_appointments)
|
||||
return cls(netaddr, available_slots, status, appointments, pending_appointments, invalid_appointments)
|
||||
|
||||
def to_dict(self):
|
||||
return self.__dict__
|
||||
@@ -36,4 +53,5 @@ class TowerInfo:
|
||||
"status": self.status,
|
||||
"available_slots": self.available_slots,
|
||||
"pending_appointments": self.pending_appointments,
|
||||
"invalid_appointments": self.invalid_appointments,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user