Files
python-teos/watchtower-plugin/tower_info.py
Sergi Delgado Segura bc5f09000a plugin - adds tower state to TowerInfo
The state flags whether the tower is reachable or not so the user can be aware of it
2020-04-27 18:23:58 +02:00

29 lines
1008 B
Python

class TowerInfo:
def __init__(self, netaddr, available_slots, status="active", appointments=None):
self.netaddr = netaddr
self.available_slots = available_slots
self.status = status
if not appointments:
self.appointments = {}
else:
self.appointments = appointments
@classmethod
def from_dict(cls, tower_data):
netaddr = tower_data.get("netaddr")
available_slots = tower_data.get("available_slots")
status = tower_data.get("status")
appointments = tower_data.get("appointments")
if any(v is None for v in [netaddr, available_slots, status, appointments]):
raise ValueError("Wrong appointment data, some fields are missing")
return cls(netaddr, available_slots, status, appointments)
def to_dict(self):
return self.__dict__
def get_summary(self):
return {"netaddr": self.netaddr, "status": self.status, "available_slots": self.available_slots}