def MakeTreeDevice(): #create list whit elements shows list_elements_shows = [] #generate connection database = Comunication.BeginComunication() #get list elements fathers query = "SELECT serialp from conecta" list_serialesp = [] #generate list whit information serialesp = Comunication.MakeQueryDB(query, database[1]) #manage the query #storage list of serials for element in serialesp: list_serialesp.append(element[0]) #delete elements repeats in list list_serialesp = list(set(list_serialesp)) #for each element in list for element in list_serialesp: #check if exist in elements already show if ExisteInLista(list_elements_shows, element) == 0: list_parcial = Query.CreateTreeBySerial(element, list_elements_shows, '') #create tree of device #append element to list show. Query.AddElement(list_parcial, list_elements_shows)
def MakeTree(): #establecemos la comunicacion database = Comunication.BeginComunication() #obtenemos en una lista aparte la informacion de los niveles... query = "SELECT * FROM nivel" niveles = Comunication.MakeQueryDB(query, database[1]) #gestionamos la consulta #creamos una consulta... query = "SELECT * FROM campus" info_campus = Comunication.MakeQueryDB( query, database[1]) #gestionamos la consulta for element in info_campus: #No mostrare los campus si no tienen edificios... #se obtiene la informacion de los edificios... query = "SELECT * FROM edificio where id_campus = %d" % element[0] if Query.ExistElementInDB(query) == 0: info_edificios = Comunication.MakeQueryDB( query, database[1]) #gestionamos la consulta print "├─Campus: %s" % element[1] for edificios in info_edificios: #no mostrare los edificios si no tiene racks asociados query = "select * from edificio join rack on (edificio.id_edif = rack.id_edif) where edificio.id_edif=%d" % int( edificios[0]) if Query.ExistElementInDB(query) == 0: print "│ ├─Edificio: '%s'" % edificios[2] #por cada nivel del edificio obtenemos los rack... for nivel in niveles: query = "select * from rack join edificio on (rack.id_edif = edificio.id_edif) join nivel on (nivel.id_nivel = rack.id_nivel) where rack.id_nivel = %d AND rack.id_edif = %d" % ( nivel[0], edificios[0]) #evaluamos si el edificio tiene los niveles indicados... if Query.ExistElementInDB(query) == 0: racks_niveles = Comunication.MakeQueryDB( query, database[1]) print "│ │ ├─Nivel : ", nivel[1] for rack in racks_niveles: #informacion de los rack print "│ │ │ ├─Rack: ", rack[3] #por cada rack obtenemos la informacion de los dispositivos existentes en el... query = "select dispositivo.serial, dispositivo.nom_disp, dispositivo.ip_disp, modelo.nom_modelo, tipo_disp.nom_tipo_disp, marca.nom_marca from dispositivo join rack on (rack.id_rack = dispositivo.id_rack) join modelo on (dispositivo.id_modelo = modelo.id_modelo) join tipo_disp on (tipo_disp.id_tipo_disp = modelo.id_tipo_disp) join marca on (marca.id_marca = modelo.id_marca) where dispositivo.id_rack= %d" % rack[ 0] dispositivo_rack = Comunication.MakeQueryDB( query, database[1]) #evaluamos aquellos que son papas y con ellos formamos el arbol dispositivo_rack_papa = [] for dispositivo in dispositivo_rack: if Query.IsPapa(dispositivo[0]) == 1: dispositivo_rack_papa.append( dispositivo[0]) #ahora hacemos el arbol en base a la lista obtenida... #creamos una lista con los elementos que ya han sido buscados... list_elements_shows = [] #recorremos la lista de seriales que son papas... for element in dispositivo_rack_papa: #evaluamos si ya mostramos a el y sus hijos... if MakeTreeDispositivos.ExisteInLista( list_elements_shows, element) == 0: list_parcial = Query.CreateTreeBySerial( element, list_elements_shows, '│ │ │ │ ' ) #creamos el arbol para ese dispositivo... #agregamos los elementos a la lista de elementos mostrados... Query.AddElement( list_parcial, list_elements_shows) return 0