def databaseDumpExec(): try: if request.vars['massive_desasignation']=="ok": # Get all students asigned laptops sql="SELECT id_laptop FROM laptops_historical lh" sql=sql+" WHERE lh.id_state=2 AND lh.id_user_type=2" sql=sql+" AND lh.id_historical IN (SELECT MAX(lh2.id_historical) FROM laptops_historical lh2 WHERE lh2.id_laptop=lh.id_laptop)" sql=sql+" GROUP BY id_laptop" sql=sql+" ORDER BY id_laptop" result = cdb.executesql(sql) for r in result: lh = LaptopsHistory(cdb,"",r[0],1,"","","","","Desasignación masiva ControlIES","") lh.add() except: pass l=conecta() t = Thinclients(l) result = t.getAllComputers() for c in result["computers"]: computer_name = c["cn"].strip() serial = c["serial"].replace("serial-number","").strip() username = c["username"].replace("user-name","").strip() mac = c["mac"].replace("ethernet","").strip() macWlan = c["macWlan"].replace("ethernet","").strip() if serial!="": id_laptop = Laptops(cdb,"","","","","","","","").existsSerialNumber(serial) if id_laptop: addHistory(l,username,id_laptop,computer_name) lap = Laptops(cdb,id_laptop,"","","","","","","") laptop = lap.getLaptopData() if laptop["mac_eth0"]!=mac or laptop["mac_wlan0"]!=macWlan: lap.updateMAC(mac,macWlan) else: # Si no existe el portatil try: if request.vars['add_laptop']=="ok": lap = Laptops(cdb,"", serial, "", "", "", "", mac, macWlan) lap.add() addHistory(l,username,lap.getIdLaptop(),computer_name) except: pass l.close() return dict(response = "OK")
def findDuplicates(): l=conecta() t = Thinclients(l) result = t.getAllComputers() serials = [] macs = [] users = [] for c in result["computers"]: try: serial = c["serial"].replace("serial-number","").strip() if serial!="": serials.append(serial) except: pass try: mac = c["mac"].replace("ethernet","").strip() if mac!="": macs.append(mac) except: pass try: user = c["username"].replace("user-name","").strip() if user!="": users.append(user) except: pass s = set([x for x in serials if serials.count(x) > 1]) m = set([x for x in macs if macs.count(x) > 1]) u = set([x for x in users if users.count(x) > 1]) return dict({"users":sorted(u), "macs":sorted(m), "serials":sorted(s)})