Adds invalid appointment to tower_info

Invalid appointments are those which tower signature is invalid
This commit is contained in:
Sergi Delgado Segura
2020-04-29 13:11:44 +02:00
parent 8575bc6209
commit 7bbfd925f4

View File

@@ -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,
}