Ejemplo n.º 1
0
    def run(self):
        log = self.log[0] + "_log.txt"
        logPath = log.split("/")
        #fpid = open("c:/Apps/test.txt", 'w')
        print log
        f = open(log, 'w')
        self.process = subprocess.Popen(self.command,
                                        shell=True,
                                        stdout=subprocess.PIPE)
        self.task.Pid = self.process.pid
        model.saveData()
        time = ""
        for i in range(100000):
            arf = self.process.stdout.readline()
            #self.task.Log = arf
            #model.saveData()
            f.write(arf)
            print arf

            if arf.find("@exit") != -1:
                #self.wait()
                #self.usedBytes.release()
                self.process.terminate()
                self.progress = 100
                #print "hello"
                f.close()
                return
            if arf.find("Frame") != -1 and arf.find("Frame:") == -1:
                frame = arf
                #model.saveData()

            if arf.find("Time:") != -1:
                time = arf
                self.task.Log = unicode(frame + " " + time)
                model.saveData()
Ejemplo n.º 2
0
 def run(self):
     log = self.log[0] + "_log.txt"
     logPath = log.split("/")
     #fpid = open("c:/Apps/test.txt", 'w')
     print log
     f = open(log, 'w')
     self.process = subprocess.Popen(self.command,shell = True,stdout=subprocess.PIPE)
     self.task.Pid = self.process.pid
     model.saveData()
     time = ""
     for i in range(100000):
         arf = self.process.stdout.readline()
         #self.task.Log = arf
         #model.saveData()
         f.write(arf)
         print arf
      
             
         if arf.find("@exit")!= -1:
             #self.wait()
             #self.usedBytes.release()
             self.process.terminate()
             self.progress = 100
             #print "hello"
             f.close()
             return
         if arf.find("Frame") != -1 and arf.find("Frame:") == -1:
             frame = arf
             #model.saveData()
         
         if arf.find("Time:") != -1:
             time = arf
             self.task.Log = unicode(frame + " " + time)
             model.saveData()
Ejemplo n.º 3
0
 def login(self,curUserName):
     
     newUser = model.User.get_by(Name= unicode(curUserName))
     if newUser == None:
  
         newUser = model.User(Name= unicode(curUserName))
         model.saveData()
     return newUser
Ejemplo n.º 4
0
    def on_Skip_triggered(self):
        #if argMe == "Restart Task":
            #print "hey !"
            item=self.ui.list.currentItem()
            item.Task.Status = 100
            print "skiping:  " + str(item.Task)
            model.saveData()
	    #model.setup_all()
	    self.refreshMe()
Ejemplo n.º 5
0
 def makeNewSeq(self):
     seq, ok = QtGui.QInputDialog.getText(self, "QInputDialog.getText()",
             "Sequence name:", QtGui.QLineEdit.Normal,"")
     if ok and len(str(seq)) == 2:
         #self.textLabel.setText(text)
         print 
         model.Sequence(Name= unicode(string.upper(str(seq))))
         self.ui.SequComboBox.addItem(string.upper(str(seq)))
         model.saveData()
Ejemplo n.º 6
0
    def on_reStart_triggered(self):
        #if argMe == "Restart Task":
            #sprint "hey !"
            item=self.ui.list.currentItem()
	    if item.Task.Status == 600 or item.Task.Status == 100 :
		item.Task.Status = 101
		print "restarting:  " + str(item.Task)
		model.saveData()
		#model.setup_all()
		self.refreshMe()
Ejemplo n.º 7
0
    def on_Stop_triggered(self):
        #if argMe == "Restart Task":
            #print "hey !"
            item=self.ui.list.currentItem()
            if item.Task.Status == 0 or item.Task.Status == 101 :
		item.Task.Status = 666
		print "stopping:  " + str(item.Task)
		model.saveData()
		self.refreshMe()
	    else:
		print "task not runing so can't be stopped"
Ejemplo n.º 8
0
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        #super(Main, self).__init__()
        self.windowList = []
        ####### login##############################
        curUserName = os.getenv('USERNAME')
        model.setup_all()
        newUser = model.User.get_by(Name=unicode(curUserName))
        if newUser == None:
            newUser = model.User(Name=unicode(curUserName))
            model.saveData()

        ##################################################
        self.curProject = "none"
        self.full = 0
        self.toggleMe = 0
        # This is always the same
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.setWindowTitle('LYPA beta 101 :  ' + curUserName)
        self.GLviewer = GLWidget()
        self.ui.Dailies.setMainGUI(self)
        self.ui.Renders.setMainGUI(self)
        self.ui.Grade.setGL(self.GLviewer)
        self.ui.Renders.setGL(self.GLviewer)
        self.ui.GLLayout.addWidget(self.GLviewer)
        self.ui.tabWidget.setCurrentIndex(0)
        nukeSS.setStyleSheet(self)
        screen = QtGui.QDesktopWidget().screenGeometry()
        sself.resize(screen.width(), screen.height())
        size = self.geometry()
        self.move((screen.width() - size.width()) / 2,
                  (screen.height() - size.height()) / 2)
        self.ui.TimeLineSlider.setSingleStep(1)
        self.ui.TimeLineSlider.setTickInterval(1)
        self.ui.TimeLineSlider.setTickPosition(1)
        self.curProjectLUT = 2.2
        self.connect(self.ui.LUTcomboBox, QtCore.SIGNAL('activated(QString)'),
                     self.onLUTcomboBoxActivated)
        self.ui.TimeLineSlider.valueChanged.connect(
            self.GLviewer.setCurrentFrame)
        self.ui.TimeLineSlider.valueChanged.connect(self.ui.lcdNumber.display)
        ####################################
        # init default parameters on openGL viewer

        self.GLviewer.currentFrameChanged.connect(
            self.ui.TimeLineSlider.setValue)
        self.GLviewer.currentFrameChanged.connect(self.ui.lcdNumber.display)
        self.GLviewer.ExpChanged.connect(self.set_infobarExp)
        self.GLviewer.colorSampleChanged.connect(self.set_infobarColor)
        self.ui.actionImport.triggered.connect(self.importFile)
        self.ui.ExpLabel.setText("Exp: 1.0")
        self.ui.Renders.setInfo(self.ui.Info)
Ejemplo n.º 9
0
 def on_actionDelete_Task_triggered(self,checked=None):
     if checked is None: return
     # First see what task is "current".
     item=self.ui.list.currentItem()
     
     if not item: # None selected, so we don't know what to delete!
         return
     # Actually delete the task
     item.task.delete()
     model.saveData()
     
     # And remove the item. I think that's not pretty. Is it the only way?
     self.ui.list.takeTopLevelItem(self.ui.list.indexOfTopLevelItem(item))
Ejemplo n.º 10
0
    def start(self):

        model.saveData()
        for task in self.newNode.Tasks:
            print self.newNode.Name    
            if task.Status == 666:
                print "killing:" + str(task.Pid)
                subprocess.Popen(["taskkill.exe", "/PID", str(task.Pid) , "/t", "/f"])

            elif task.Status <100:
                self.newNode.Status = 1
                
            else:
                pass
Ejemplo n.º 11
0
 def __init__(self):
     QtGui.QMainWindow.__init__(self)
     #super(Main, self).__init__()
     self.windowList = []
     ####### login##############################
     curUserName = os.getenv('USERNAME')
     model.setup_all()
     newUser = model.User.get_by(Name= unicode(curUserName))
     if newUser == None:
         newUser = model.User(Name= unicode(curUserName))
         model.saveData()
         
     ##################################################
     self.curProject = "none"
     self.full = 0
     self.toggleMe = 0
     # This is always the same
     self.ui=Ui_MainWindow()
     self.ui.setupUi(self)
     self.setWindowTitle('LYPA beta 101 :  ' + curUserName)
     self.GLviewer = GLWidget()
     self.ui.Dailies.setMainGUI(self)
     self.ui.Renders.setMainGUI(self)
     self.ui.Grade.setGL(self.GLviewer)
     self.ui.Renders.setGL(self.GLviewer)
     self.ui.GLLayout.addWidget(self.GLviewer)
     self.ui.tabWidget.setCurrentIndex(0)
     nukeSS.setStyleSheet(self)
     screen = QtGui.QDesktopWidget().screenGeometry()
     sself.resize(screen.width(),screen.height() )
     size =  self.geometry()
     self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2)
     self.ui.TimeLineSlider.setSingleStep(1)
     self.ui.TimeLineSlider.setTickInterval(1)
     self.ui.TimeLineSlider.setTickPosition(1)
     self.curProjectLUT = 2.2
     self.connect(self.ui.LUTcomboBox, QtCore.SIGNAL('activated(QString)'), self.onLUTcomboBoxActivated)
     self.ui.TimeLineSlider.valueChanged.connect(self.GLviewer.setCurrentFrame)
     self.ui.TimeLineSlider.valueChanged.connect(self.ui.lcdNumber.display)
     ####################################
     # init default parameters on openGL viewer
     
     self.GLviewer.currentFrameChanged.connect(self.ui.TimeLineSlider.setValue)
     self.GLviewer.currentFrameChanged.connect(self.ui.lcdNumber.display)
     self.GLviewer.ExpChanged.connect(self.set_infobarExp)
     self.GLviewer.colorSampleChanged.connect(self.set_infobarColor)
     self.ui.actionImport.triggered.connect(self.importFile)
     self.ui.ExpLabel.setText("Exp: 1.0")
     self.ui.Renders.setInfo(self.ui.Info)
Ejemplo n.º 12
0
    def submitDailie(self):
        #print "hello"
        item=self.ui.list.currentItem()
	if len(item.render.Dailie) != 0:
	    print "already was submitted"
	    return
	
	now = datetime.datetime.now()
	nowstr = str(now.day) + "-" + str(now.month) + "-" + str(now.year) + "_" + str(now.hour) + ":" + str(now.minute) + ":" + str(now.second)
        newDailie = model.Dailie(Name= "D_" + item.render.Name,Comments=u"",status=0)
        #newDailie.Renders.append(item.render)
        item.render.Dailie.append(newDailie)
	self.curProjectFilter.Dailies.append(newDailie)
	self.mainGui.curProject = self.ProjectFilter
        model.saveData()
Ejemplo n.º 13
0
    def start(self):

        model.saveData()
        for task in self.newNode.Tasks:
            print self.newNode.Name
            if task.Status == 666:
                print "killing:" + str(task.Pid)
                subprocess.Popen(
                    ["taskkill.exe", "/PID",
                     str(task.Pid), "/t", "/f"])

            elif task.Status < 100:
                self.newNode.Status = 1

            else:
                pass
Ejemplo n.º 14
0
 def on_actionNew_Task_triggered(self,checked=None):
     if checked is None: return
     # Create a dummy task
     task=model.Shot(Name="TL_211_0020",In = "25", Out = "100")
     self.curSeq.Shots.append(task)
     self.ui.editor.setEnabled(True)
     # Create an item reflecting the task
     item=QtGui.QTreeWidgetItem([task.Name,task.In,task.Out])
     item.task=task
     
     # Put the item in the task list
     self.ui.list.addTopLevelItem(item)
     self.ui.list.setCurrentItem(item)
     # Save it in the DB
     model.saveData()
     # Open it with the editor
     self.ui.editor.edit(item)
     for column in range(self.ui.list.columnCount()):   
     	self.ui.list.resizeColumnToContents(column)
Ejemplo n.º 15
0
 def __init__(self):
     QtGui.QMainWindow.__init__(self)
     #print "yeehhaa"
     #self.computerName = computerName
     #self.Node = Node
     self.timer = QtCore.QTimer()
     self.timer.timeout.connect(self.start)
     self.timer.start(8000)
     self.labelText = "waiting...."
     #self.app = app
     self.ui = LYPA_renderNodeUI.Ui_MainWindow()
     self.ui.setupUi(self)
     model.setup_all()
     comp = os.getenv('COMPUTERNAME')
     self.newNode = model.Node.get_by(Name=unicode(comp))
     if self.newNode == None:
         self.newNode = model.Node(Name=unicode(comp))
         model.saveData()
     self.start()
Ejemplo n.º 16
0
    def DeleteDaily(self):
	'''
        curUserName = os.getenv('USERNAME')
	item=self.ui.list.currentItem()
	if item.render.User == curUserName:
	    fn = item.render.Path
	    path = os.path.dirname(fn)
	    self.deleteDir(path,curUserName)
	    curjob = model.Job.get_by(Name=unicode(item.render.Job))
	    for task in curjob.Tasks:
		print "delete task: " + task.Name
		task.delete()
	    print "deleting job: " + curjob.Name
	    curjob.delete()
	    print "deleting render: " + item.render.Name
	'''
        self.currentDaily.delete()
	model.saveData()
        self.refreshMe()
Ejemplo n.º 17
0
    def on_actionNew_Task_triggered(self, checked=None):
        if checked is None: return
        # Create a dummy task
        task = model.Shot(Name="TL_211_0020", In="25", Out="100")
        self.curSeq.Shots.append(task)
        self.ui.editor.setEnabled(True)
        # Create an item reflecting the task
        item = QtGui.QTreeWidgetItem([task.Name, task.In, task.Out])
        item.task = task

        # Put the item in the task list
        self.ui.list.addTopLevelItem(item)
        self.ui.list.setCurrentItem(item)
        # Save it in the DB
        model.saveData()
        # Open it with the editor
        self.ui.editor.edit(item)
        for column in range(self.ui.list.columnCount()):
            self.ui.list.resizeColumnToContents(column)
Ejemplo n.º 18
0
    def deleteRender(self):
        # First see what task is "current".
	curUserName = os.getenv('USERNAME')
	item=self.ui.list.currentItem()
	if item.render.User == curUserName:
	    fn = item.render.Path
	    path = os.path.dirname(fn)
	    self.deleteDir(path,curUserName)
	    curjob = model.Job.get_by(Name=unicode(item.render.Job))
	    for task in curjob.Tasks:
		print "delete task: " + task.Name
		task.delete()
	    print "deleting job: " + curjob.Name
	    curjob.delete()
	    print "deleting render: " + item.render.Name
	    item.render.delete()
	    model.saveData()    
	else:
	    print "This render doesn't belong to you"
Ejemplo n.º 19
0
 def __init__(self):
     QtGui.QMainWindow.__init__(self)
     #print "yeehhaa"
     #self.computerName = computerName
     #self.Node = Node
     self.timer = QtCore.QTimer()
     self.timer.timeout.connect(self.start)
     self.timer.start(8000)
     self.labelText = "waiting...."
     #self.app = app
     self.ui=LYPA_renderNodeUI.Ui_MainWindow()
     self.ui.setupUi(self)
     model.setup_all()
     comp = os.getenv('COMPUTERNAME')
     self.newNode = model.Node.get_by(Name= unicode(comp))
     if self.newNode == None:
         self.newNode = model.Node(Name= unicode(comp))
         model.saveData()
     self.start()
Ejemplo n.º 20
0
 def addRender(self,project,shot,first,last,ver,path,RenderScenefile,type,w,h,renderOutput,renderName,jobName,jobType,format,curUserName,Schunk,cmd):
     print "go2"
     #jobName = "job_" + renderName + time.strftime('_%d%m%y_%H%M%S')
     chunk = int(Schunk)
     curShot = model.Shot.get_by(Name=unicode(shot))
     curProj = model.Project.get_by(Name=unicode(project))
     now = datetime.datetime.now()
     newRender = model.Render(Name=renderName,In= int(first),Out= int(last),Path=path,Date = now,version= int(ver),ScenePath=RenderScenefile,Type= type,Width=int(w),Height=int(h),Format=format,Job = jobName,User = curUserName)
     model.saveData()
     curShot.Renders.append(newRender)
     curShot.Seq.Renders.append(newRender)
     curProj.Renders.append(newRender)
     model.saveData()
     newJob = model.Job(Name=jobName,Type = jobType,Status = 101)
     model.saveData()
       
     startFrame = int(first)
     curChunk = 0
     taskDir = renderOutput + "/tasks"
     
     for i in range(int(first),int(last),chunk):
         if curChunk == (int(last) - int(first))/chunk -1 :
             shortName = "task" + "_" + "%04d" % i
             taskName = jobName + "_" + "%04d" % i
             taskFile = taskDir + "/" + taskName + ".txt"
             newTask = model.Task(Name=taskName,In=startFrame,Out=last,Type =jobType, ShortName = shortName,Status = 101,Command = unicode(RenderScenefile + " -taskFile " + taskFile))
             newJob.Tasks.append(newTask)
         else:
             shortName = "task" + "_" + "%04d" % i
             taskName = jobName + "_" + "%04d" % i
             taskFile = taskDir + "/" + taskName + ".txt"
             newTask = model.Task(Name=taskName,In=startFrame,Out=startFrame+chunk-1,Type =jobType,ShortName = shortName,Status = 101,Command = unicode(RenderScenefile + " -taskFile " + taskFile))
             newJob.Tasks.append(newTask)
         startFrame += chunk
         curChunk += 1
         model.saveData()
Ejemplo n.º 21
0
 def updateJobStatus(self,task):
     jobStat = 0
     for dtask in  task.job.Tasks:
         if dtask.Status == 100:
             jobStat +=1
         elif dtask.Status == 600:
             task.job.Status = 600
             model.saveData()
             return
         else:
             pass
     if jobStat == len(task.job.Tasks):
         task.job.Status = 100
         model.saveData()
     else:
         task.job.Status = int((100.0 / float(len(task.job.Tasks)))* float(jobStat))
         model.saveData()
     jobStat = 0
Ejemplo n.º 22
0
 def updateJobStatus(self, task):
     jobStat = 0
     for dtask in task.job.Tasks:
         if dtask.Status == 100:
             jobStat += 1
         elif dtask.Status == 600:
             task.job.Status = 600
             model.saveData()
             return
         else:
             pass
     if jobStat == len(task.job.Tasks):
         task.job.Status = 100
         model.saveData()
     else:
         task.job.Status = int(
             (100.0 / float(len(task.job.Tasks))) * float(jobStat))
         model.saveData()
     jobStat = 0
Ejemplo n.º 23
0
    def startNode(self):
        print "checking"
        model.saveData()
        stat = 0
        n = self.Node
        n.Status = 0

        #print "hey"
        for task in model.Task.query.all():
            #print task.Name
            #print task.done
            #if n.Status =
            if task.Status == 101:
                self.labelText = "rendering: " + task.Name
                self.refreshMe()

            if task.Status == 101:
                #print task.Type

                if task.Type == "modo501":
                    for dependingtasks in task.job.Tasks:
                        if dependingtasks.Type == "postRender":
                            dependingtasks.Status = 101
                        else:
                            pass
                    task.Status = 0
                    n.Tasks.append(task)
                    model.saveData()
                    self.updateJobStatus(task)
                    reload(modoJob)
                    taskFile = task.Command.split(" -taskFile ")
                    newProcess = modoJob.modo501Job(taskFile[1], task)
                    #newProcess.modoTaskfile = taskFile[1]
                    newProcess.run()

                    #newProcess.process.terminate
                    #self.logIt()

                    #newProcess.killme()
                    n.Status = 1
                    #task.Pid = newProcess.process.pid
                    # model.saveData()
                    #print task.Pid
                    #newProcess.wait()
                    task.Status = newProcess.progress
                    model.saveData()
                elif task.Type == "postRender":
                    #print len(task.job.Tasks)
                    for dependingtasks in task.job.Tasks:
                        if dependingtasks.Type != "postRender" and dependingtasks.Status == 100:
                            stat += 1
                        else:
                            pass

                    if stat == len(task.job.Tasks) - 1:
                        reload(postRenderJob)
                        #print task.job.Name
                        task.Status = 0
                        #task.Log = "starting"
                        n.Tasks.append(task)
                        model.saveData()
                        self.updateJobStatus(task)
                        try:
                            print task.Command
                            newProcess = postRenderJob.postRender(task.Command)
                            for frame in range(int(task.In),
                                               int(task.Out) + 1):
                                log = newProcess.run(frame)
                                task.Log = log
                                #model.saveData()
                                if newProcess.progress == 100:
                                    task.Status = int(
                                        (100.0 /
                                         (float(task.Out) - float(task.In))) *
                                        (float(frame) - float(task.In)))
                                    model.saveData()
                            thumbnail = postRenderJob.postRender(task.Command)
                            thumbnail.makeThumbnail(int(task.In))
                        except (RuntimeError, TypeError, NameError,
                                AttributeError, IOError) as strerror:
                            task.Status = 600
                            model.saveData()
                            print strerror
                    else:
                        stat = 0
            elif task.Status == 100:
                if task.job.Status != 100:
                    self.updateJobStatus(task)
                else:
                    pass
            else:

                #model.saveData()
                self.labelText = "waiting....."
                self.refreshMe()
Ejemplo n.º 24
0
 def on_actionUpdate_database_triggered(self,checked=None):
     print "hello"
     model.saveData()
Ejemplo n.º 25
0
 def startNode(self):
     print "checking"
     model.saveData()
     stat = 0
     n = self.Node
     n.Status = 0
     
     #print "hey"
     for task in model.Task.query.all():
         #print task.Name
         #print task.done
         #if n.Status = 
         if task.Status == 101:
             self.labelText = "rendering: " + task.Name
             self.refreshMe()
             
         if task.Status == 101:
             #print task.Type
        
             if task.Type == "modo501":
                 for dependingtasks in  task.job.Tasks:
                     if dependingtasks.Type == "postRender":
                         dependingtasks.Status = 101
                     else:
                         pass
                 task.Status = 0
                 n.Tasks.append(task)
                 model.saveData()
                 self.updateJobStatus(task)
                 reload(modoJob)
                 taskFile = task.Command.split(" -taskFile ")
                 newProcess = modoJob.modo501Job(taskFile[1],task)
                 #newProcess.modoTaskfile = taskFile[1]
                 newProcess.run()
                
                 #newProcess.process.terminate
             #self.logIt()
                 
                 #newProcess.killme()
                 n.Status = 1
                 #task.Pid = newProcess.process.pid
                # model.saveData()
                 #print task.Pid
                 #newProcess.wait()
                 task.Status = newProcess.progress
                 model.saveData()
             elif task.Type == "postRender":
                 #print len(task.job.Tasks)
                 for dependingtasks in  task.job.Tasks:
                     if dependingtasks.Type != "postRender" and dependingtasks.Status == 100:
                         stat += 1
                     else:
                         pass
                 
                 if stat == len(task.job.Tasks)-1:
                     reload(postRenderJob)
                     #print task.job.Name
                     task.Status = 0
                     #task.Log = "starting"
                     n.Tasks.append(task)
                     model.saveData()
                     self.updateJobStatus(task)
                     try:
                         print task.Command
                         newProcess = postRenderJob.postRender(task.Command)
                         for frame in range(int(task.In),int(task.Out) + 1):
                             log = newProcess.run(frame)
                             task.Log = log
                             #model.saveData()
                             if newProcess.progress == 100:
                                 task.Status = int((100.0 /(float(task.Out)-float(task.In)))* (float(frame)-float(task.In))) 
                                 model.saveData()
                         thumbnail = postRenderJob.postRender(task.Command)
                         thumbnail.makeThumbnail(int(task.In))
                     except (RuntimeError, TypeError, NameError,AttributeError,IOError) as strerror:
                         task.Status = 600
                         model.saveData()
                         print strerror
                 else:
                     stat =0
         elif task.Status == 100:
             if task.job.Status != 100:
                 self.updateJobStatus(task)                 
             else:
                 pass
         else:
             
             #model.saveData()
             self.labelText = "waiting....."
             self.refreshMe()
Ejemplo n.º 26
0
                model.saveData()
                return
            else:
                pass
        if jobStat == len(task.job.Tasks):
            task.job.Status = 100
            model.saveData()
        else:
            task.job.Status = int((100.0 / float(len(task.job.Tasks)))* float(jobStat))
            model.saveData()
        jobStat = 0
    def refreshMe(self):
        self.ui.label.setText(self.labelText)
        
    

if __name__ == "__main__":
    model.setup_all()
    comp = os.getenv('COMPUTERNAME')
    print comp
    newNode = model.Node.get_by(Name= unicode(comp))
    if newNode == None:
        print "hello"
        newNode = model.Node(Name= unicode(comp))
        model.saveData()
        print newNode
    app = QtGui.QApplication(sys.argv)
    window=RN_window(comp,newNode)
    window.show()
    # It's exec_ because exec is a reserved word in Python
    sys.exit(app.exec_())
Ejemplo n.º 27
0
 def on_actionUpdate_database_triggered(self,checked=None):
     print "hello"
     model.saveData()
Ejemplo n.º 28
0
 def addJob(self,name,type,status):
     newJob = model.Job(Name=jobName,Type = jobType,Status = 101)
     model.saveData()
Ejemplo n.º 29
0
 def addTask(self,name,shortName,job,In,Out,cmd,Type):
     print "adding task to " + job
     curJob = model.Job.get_by(Name=unicode(job))
     newTask = model.Task(Name=name,In=In,Out=Out,Type =Type,ShortName = shortName,Status = 101,Command = cmd)
     curJob.Tasks.append(newTask)
     model.saveData()
Ejemplo n.º 30
0
 def createProject(self,name,cfg,width,height,ratio,framerate,lut,client):
     project = model.Project(Name=name,ConfigFile=cfg,Width=width,Height=height,Ratio=ratio,FrameRate=framerate,LUT=lut,Client=client)
     model.saveData()
     self.makeProjectdir(name)
     self.makeGDataDB(name)
Ejemplo n.º 31
0
                return
            else:
                pass
        if jobStat == len(task.job.Tasks):
            task.job.Status = 100
            model.saveData()
        else:
            task.job.Status = int(
                (100.0 / float(len(task.job.Tasks))) * float(jobStat))
            model.saveData()
        jobStat = 0

    def refreshMe(self):
        self.ui.label.setText(self.labelText)


if __name__ == "__main__":
    model.setup_all()
    comp = os.getenv('COMPUTERNAME')
    print comp
    newNode = model.Node.get_by(Name=unicode(comp))
    if newNode == None:
        print "hello"
        newNode = model.Node(Name=unicode(comp))
        model.saveData()
        print newNode
    app = QtGui.QApplication(sys.argv)
    window = RN_window(comp, newNode)
    window.show()
    # It's exec_ because exec is a reserved word in Python
    sys.exit(app.exec_())
Ejemplo n.º 32
0
    def refreshMe(self):
	currItem=self.ui.list.currentItem()
	pixmap = self.pixmap 
    	icon = QtGui.QIcon(pixmap)
	currId = self.ui.list.indexOfTopLevelItem(currItem)
	listExp = []
	listcount = 0
	for i in range(self.ui.list.topLevelItemCount()):
	    if self.ui.list.topLevelItem(i).isExpanded () == True:
		itList = []
		itList.append(i)
		listExp.append(itList)
		for j in range(self.ui.list.topLevelItem(i).childCount()):
		    if self.ui.list.topLevelItem(i).child(j).isExpanded ():
			listExp[listcount].append(j)
		listcount += 1

	self.ui.list.clear()
	if self.ProjectFilter == "none":
	    self.ui.list.clear()
	    return
	else:
	    remember = True
	    pass
	
	if self.UserFilter != "all":
	    remember = True
	    renders = model.Render.query.filter_by(Project=self.curProjectFilter)
	    renders = renders.filter_by(User=str(self.UserFilter))

	if self.UserFilter == "all":
	    renders = model.Render.query.filter_by(Project=self.curProjectFilter)

	if self.SeqFilter != "all" and self.ShotFilter == "all":
	    remember = True
	    self.ui.list.clear()
	    #seql = model.Render.query.filter_by(SeqName=self.curSeqFilter)
	    renders = renders.filter_by(SeqName=self.curSeqFilter)

	if self.SeqFilter != "all" and self.ShotFilter != "all":
	    remember = True
	    self.ui.list.clear()
	    #shotl = model.Render.query.filter_by(ShotName=self.curShotFilter)
	    renders = renders.filter_by(ShotName=self.curShotFilter)
	
	if self.SeqFilter == "all" and self.ShotFilter != "all":
	    remember = True
	    self.ui.list.clear()
	    #curSeq =  model.Sequence.get_by(Name =str(self.SeqFilter))
	    renders = renders.filter_by(ShotName=self.curShotFilter)
	
	
	if self.SearchFilter != "":
	    renders = renders.filter(model.Render.Name.contains(self.SearchFilter))
        loc = "server"
        ja = 0
	
        for render in renders.all():
            renderStatus = "Offline"
	    a = str(render.Job)
            fJob  = model.Job.get_by(Name= unicode(a))
	    jobStatus = fJob.Status
	    if jobStatus == 101:
		renderStatus = "Offline"
		jobStatusReport = "not started"
	    elif jobStatus >= 0 and jobStatus < 100:
		renderStatus = "Offline"
		jobStatusReport = str(jobStatus)+"%"
		
	    elif jobStatus == 600:
		renderStatus = "Error"
		jobStatusReport = "Error"
	    elif jobStatus == 100:
		renderStatus = "Online"
		jobStatusReport = "Finished"
	    else:
		renderStatus = "Offline"
		jobStatusReport = "Stopped"
	    renderpath = render.Path
            item=QtGui.QTreeWidgetItem([render.Name,loc,str(render.In),str(render.Out),str(render.version),renderStatus,render.Type,str(render.User),str(render.Date),str(str(render.Width) + "x" + str(render.Height)),renderpath,render.ScenePath])
	    
	    item.setIcon(0,icon)
	    if renderStatus == "Offline":
		item.setBackground(5,QtCore.Qt.yellow)
		item.setForeground(5,QtCore.Qt.black)
	    if renderStatus == "Online":
		item.setForeground(5,QtCore.Qt.green)
		if os.path.exists(renderpath):
		    iconPath = os.path.dirname(renderpath)  + "/proxy/thumbnail.jpg"
		    pixmap = QtGui.QPixmap(iconPath)
		    icon = QtGui.QIcon(pixmap)
		    item.setIcon(0,icon)
		    item.pixmap = pixmap
	    if renderStatus == "Error":
		item.setBackground(5,QtCore.Qt.red)
		item.setForeground(5,QtCore.Qt.black)

            farmJob = QtGui.QTreeWidgetItem([fJob.Name,"","","","",jobStatusReport,fJob.Type])
            farmJob.setForeground(0,QtCore.Qt.darkBlue)
	    for j in range(0,12):
		farmJob.setBackground(j,QtGui.QColor(70, 72, 76))
		farmJob.setForeground(j,QtGui.QColor(160, 165, 170))
            farmJob.Job = fJob
            if jobStatus == 101:
                farmJob.setBackground(5,QtCore.Qt.yellow)
		farmJob.setForeground(5,QtCore.Qt.black)
            elif jobStatus >= 0 and fJob.Status < 100:
                farmJob.setBackground(5,QtCore.Qt.green)
		farmJob.setForeground(5,QtCore.Qt.black)
	    elif jobStatus == 600: 
                farmJob.setBackground(5,QtCore.Qt.red)
		farmJob.setForeground(5,QtCore.Qt.black)
	    
            
            frameBuffers = QtGui.QTreeWidgetItem(["channels",""])
            frameBuffers.setForeground(0,QtCore.Qt.darkBlue)
            item.render=render
             
            self.ui.list.addTopLevelItem(item)
            item.addChild(farmJob)
            item.addChild(frameBuffers)
            Fcount = 0
            Ferror = 0
            line = 0
	    
	    for farmTask in fJob.Tasks:
		taskItem = QtGui.QTreeWidgetItem([farmTask.ShortName,"",str(farmTask.In),str(farmTask.Out),"",str(farmTask.Status),str(farmTask.Type),str(farmTask.Node),"","",str(farmTask.Log)])
                taskItem.Task = farmTask
		#print str(farmTask.Status)
		for i in range(0,12):
		    if line == 0:
			taskItem.setBackground(i,QtGui.QColor(92, 102, 115))
		    if line == 1:
			taskItem.setBackground(i,QtGui.QColor(100, 112, 124))
		    taskItem.setForeground(i,QtGui.QColor(200, 205, 210))
		    
                if farmTask.Status == 101:
                    taskItem.setBackground(5,QtCore.Qt.yellow)
		    taskItem.setForeground(5,QtCore.Qt.black)
                elif farmTask.Status >= 0 and farmTask.Status < 100:
                    taskItem.setBackground(5,QtCore.Qt.green)
		    taskItem.setForeground(5,QtCore.Qt.black)
		elif farmTask.Status == 666:
		    taskItem.setBackground(5,QtCore.Qt.darkRed)
		    taskItem.setForeground(5,QtCore.Qt.black)
                elif farmTask.Status == 600: 
                    taskItem.setBackground(5,QtCore.Qt.red)
		    taskItem.setForeground(5,QtCore.Qt.black)
		
		line = abs(line -1)
                farmJob.addChild(taskItem)
	    
	    if renderStatus == "Online":  
		header =  OpenEXR.InputFile(renderpath).header()
		channels = header['channels']
		for chan in channels.keys():
		    chanItem = QtGui.QTreeWidgetItem([chan])
		    frameBuffers.addChild(chanItem)
		item.header = header
	    else: pass
                
 
        if remember == True:
	    for it in listExp:
		#print listExp[it]
		self.ui.list.topLevelItem(it[0]).setExpanded(True)
		#print len(it)
		if len(it) == 2:
		    self.ui.list.topLevelItem(it[0]).child(it[1]).setExpanded(True)
		elif len(it) == 3:
		    self.ui.list.topLevelItem(it[0]).child(it[1]).setExpanded(True)
		    self.ui.list.topLevelItem(it[0]).child(it[2]).setExpanded(True)
            self.ui.list.setCurrentItem(self.ui.list.topLevelItem(currId))  
        for column in range(self.ui.list.columnCount()):   
        	self.ui.list.resizeColumnToContents(column)
	model.saveData()