示例#1
0
 def show_provenance(self):
     from openalea.core.provenance import db_connexion
     cur=db_connexion()
     sender = self.sender()
     category = sender.category
     value = sender.prov
     if "spec" in category:
         # Launch Visualea
         #pass
         print value
         cur.execute("SELECT * FROM CompositeNode where CompositeNodeid=? ",(value,))
         for l in cur:
             print(l)
     else:
         # Launch Graphviz
         print value
         cur.execute("SELECT * FROM CompositeNodeExec where CompositeNodeExecid=? ",(value,))
         for l in cur:
             print(l)
         cur.execute("SELECT * FROM NodeExec where CompositeNodeExecid=? ",(value,))
         for l in cur:
             print(l)
         #cd='chdir("C:/Program Files/Graphviz2.38/bin")'
         
         cmd = "gvedit.exe"
         subprocess.call(cd)
         subprocess.call(cmd)
示例#2
0
def search_trace(composite_node, package, workspace, parent=None):
    """
    Search an execution trace of dataflow
    
    :param composite_node:
    :param package:
    :param workspace:
    """
    from openalea.core.provenance import db_connexion
    # @Moussa : This is here that you interrogate the database
    # print composite_node, package, workspace
    #cur = db_connexion()
    # Fake results:
    #seach in database specification and all trace for this Composite_node, package and workspace.
    nameval=workspace+"."+package+"."+composite_node
    cur=db_connexion()
    #cur.close()
    #cur=db_connexion()
    #createtimeval=time.strftime("%a, %d-%m-%Y %H:%M:%S", time.localtime())
    creatimeval="02-05-1988"
    descriptionval='sdfsqsd'
    useridval=1
    print nameval
    #data=[(creatimeval,nameval,descriptionval,useridval)]
    #for tu in data:
    #      cur.execute("INSERT INTO CompositeNode(CompositeNodeid,creatime,name,description,userid) VALUES(NULL,?,?,?,?)",tu)
    cur.execute("SELECT * FROM CompositeNode where name=? ",(nameval,))
    #cur.execute("SELECT * FROM CompositeNode")
    print 'Affichage de tous les compositeNode'
    for row in cur:
        #CompositeNodeidval=cur.fetchone()[0]
        CompositeNodeidval=row[0]
        date=row[1]
    cur.execute("SELECT * FROM CompositeNode where name=? ",(nameval,))
    for l in cur:
        print(l)
    #CompositeNodeidVal=res.fetchone()
    #print 'la valeur de CompositeNodeidVal est :',CompositeNodeidVal[0]
    print 'Affichages de toutes les traces de CompositeNode'
    #print cur.fetchone()[0]
    #CompositeNodeidval=1
    print CompositeNodeidval
    #CompositeNodeidVal=1
    cur.execute("SELECT * FROM CompositeNodeExec where CompositeNodeid=? ",(CompositeNodeidval,))
    i=0
    #myid=[]
    for rows in cur:
        print(l)
    #    myid[i]=rows[0]
        date2=rows[1]
        i=i+1
    #    print myid[i] 
    print 'Affichage de toutes les executions de noeud associees a cette trace'
    CompositeNodeExecidval=1
    cur.execute("SELECT * FROM NodeExec where CompositeNodeExecid=? ",(CompositeNodeExecidval,))
    for l in cur:
        print(l)
    #print 'Affichage de tous les arcs associees a cette trace'
    #cur.execute("SELECT * FROM elt_connection where CompositeNodeid=? ",(CompositeNodeidval,))
    #for l in cur:
    #    print(l)
    #print 'Affichage de tous les arcs associees a cette trace'
    #cur.execute("SELECT * FROM Node")
    #print 'Affichage de tous les nodes'
    #for l in cur:
    #    print(l)
    #cur.execute("SELECT * FROM CompositeNodeExec")
    #print 'Affichage de tous les CompositeNodeExec'
    #for l in cur:
    #    print(l)
    #seach in database specification and all trace for this Composite_node, package and workspace.
    nameval=workspace+"."+package+"."+composite_node
    # cur = db_connexion()
    #cur.execute("SELECT * FROM CompositeNode where name=? ",nameval)
    # cur.execute("SELECT * FROM CompositeNode")
    # for l in cur:
       # print(l)

    value1 = 0
    value2 = 1
    value3 = 2
    value4 = 100
    value5 = 1000
    # Faire la recherche dans la base de donnees pour rechercher le composite_node le package et le workfspace
    # Concatener le composite_node, le package et le workspace pour avoir le name du workflow
    # select * from 
    result = [["specification", date, CompositeNodeidval], ["Execution 1", date2, value2], ["Execution 2", "date", value3], ["Execution 3", "date", value4], ["Execution 4", "date", value5]]
    
    prov_widget = ProvenanceViewerWidget(composite_node, package, workspace, result, parent=parent)
    print composite_node
    print package
    print workspace
    print 'helo'
    dialog = ModalDialog(prov_widget)
    dialog.show()
    dialog.raise_()
    dialog.exec_()