diff --git a/update_checker.py b/update_checker.py index 9aa51340c1914431941844392e62a479b03e4c55..639cd0c9bc51fde109d78626bb5e02df9eb17e51 100755 --- a/update_checker.py +++ b/update_checker.py @@ -12,9 +12,10 @@ MAC_URL = 'http://macvendors.co/api/%s' def getHardwareModelFromEntry(d): hardware_model = "UNKNOWN" if d != None: - if "hardware" in d: - if "model" in d["hardware"]: - hardware_model = d["hardware"]["model"] + if "nodeinfo" in d: + if "hardware" in d: + if "model" in d["hardware"]: + hardware_model = d["hardware"]["model"] return hardware_model def ipv62mac(ipv6): @@ -104,11 +105,13 @@ for download in allFirmwareDownloads: mac = ipv62mac(r.ipv6) - if mac in data: - d = data[mac] - currentRelease = d["software"]["firmware"]["release"] - status = d["status"] - hostname = d["hostname"] + nodes_with_mac = [node for node in data["nodes"] if node["nodeinfo"]["network"]["mac"] == mac] + + if len(nodes_with_mac) == 1: + d = nodes_with_mac[0] + currentRelease = d["nodeinfo"]["software"]["firmware"]["release"] + status = d["online"] + hostname = d["nodeinfo"]["hostname"] hardware_model = getHardwareModelFromEntry(d) if currentRelease < r.release: print("%s (%s) %s -> %s Segment %i %s status %s @ %s" % (mac, hostname, currentRelease, r.release, r.segment, hardware_model, status, r.date))