Exemplo n.º 1
0
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")   
Exemplo n.º 2
0
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)})