コード例 #1
0
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)
コード例 #2
0
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