def executeTask(self, skipCompletedTasks, **args): cdmsDataset = self.getInputValue("dataset") tValue = args.get('timeValue', cdmsDataset.timeRange[2]) self.timeValue = cdtime.reltime(float(tValue), cdmsDataset.referenceTimeUnits) taskInputData = self.getInputValue("task") taskMap = deserializeTaskData( getItem(taskInputData)) if taskInputData else None taskData = taskMap.get(cdmsDataset.getDsetId(), None) if taskMap else None task = None if taskData: taskName = taskData[0] if taskName: taskClass = TaskManager.getTask(taskName) if taskClass: task = taskClass(cdmsDataset) task_key = task.getInputMap(self) if (skipCompletedTasks and self.getTaskCompleted(task_key)): print " Skipping completed task: %s " % task_key else: task.compute([ self.timeValue, ]) self.setTaskCompleted(task_key) if task == None: print >> sys.stderr, "Error, no task defined in CDATUtilities module" self.setResult('dataset', cdmsDataset)
def executeTask( self, skipCompletedTasks, **args ): cdmsDataset = self.getInputValue( "dataset" ) tValue = args.get( 'timeValue', cdmsDataset.timeRange[2] ) self.timeValue = cdtime.reltime( float( tValue ), cdmsDataset.referenceTimeUnits ) taskInputData = self.getInputValue( "task" ) taskMap = deserializeTaskData( getItem( taskInputData ) ) if taskInputData else None taskData = taskMap.get( cdmsDataset.getDsetId(), None ) if taskMap else None task = None if taskData: taskName = taskData[0] if taskName: taskClass = TaskManager.getTask( taskName ) if taskClass: task = taskClass( cdmsDataset ) task_key = task.getInputMap( self ) if ( skipCompletedTasks and self.getTaskCompleted( task_key ) ): print " Skipping completed task: %s " % task_key else: task.compute( [ self.timeValue, ] ) self.setTaskCompleted( task_key )
def processTaskData( self, taskData ): taskMapInput = deserializeTaskData( taskData ) if taskMapInput: self.taskMap = taskMapInput taskRecord = self.taskMap.get( self.datasetId, None ) if taskRecord: self.task = taskRecord[0] inputs = taskRecord[1].split(';') self.inputMap = {} for input in inputs: inputData = input.split('#') if len(inputData) > 1: self.inputMap[ inputData[0] ] = ( inputData[1], int(inputData[2]) ) outputs = taskRecord[2].split(';') self.outputMap = {} for output in outputs: outputData = output.split('#') if len(outputData) > 1: varNameData = outputData[1].split('*') self.outputMap[ outputData[0] ] = varNameData[-1]
def processTaskData(self, taskData): taskMapInput = deserializeTaskData(taskData) if taskMapInput: self.taskMap = taskMapInput taskRecord = self.taskMap.get(self.datasetId, None) if taskRecord: self.task = taskRecord[0] inputs = taskRecord[1].split(';') self.inputMap = {} for input in inputs: inputData = input.split('#') if len(inputData) > 1: self.inputMap[inputData[0]] = (inputData[1], int(inputData[2])) outputs = taskRecord[2].split(';') self.outputMap = {} for output in outputs: outputData = output.split('#') if len(outputData) > 1: varNameData = outputData[1].split('*') self.outputMap[outputData[0]] = varNameData[-1]