class Equipment: def __init__(self, name=None, mgmtip=None): self.name = name self.mgmtip = mgmtip self.ifaces = {} def __repr__(self): return repr( (self.name, self.mgmtip, self.ifaces.values()) ) def add_seen_mac(self, ifname, mac): iface = self.ifaces.get(ifname) if not iface: iface = Interface() iface.name = ifname self.ifaces[ifname] = iface iface.mac_seen.append(mac) class Interface: def __init__(self, name=None, mac=None): self.name = name self.mac = mac self.mac_seen = [] self.remote = [] def __repr__(self): return repr( (self.mac, self.name) )