def processWorkload(self): """ Split the workload into tasks, and finish all the process for the task """ if self.workdir is None or self.workload is None: raise Exception( 'Failure in processing workload %s in directory %s' % (str(self.workload), str(self.workdir))) if hasattr(self.workload, 'owner'): self.owner = self.workload.owner if hasattr(self.workload, 'owner_dn'): self.owner_dn = self.workload.owner_dn for toptask in self.workload.taskIterator(): # for each task, build sandbox, register, and subscribe for task in toptask.taskIterator(): if task.name() in self.workflowDict.keys(): raise Exception( 'Duplicate task name for workload %s, task %s' % (self.workload.name(), task.name())) if not self.skipSubscription: self.subscribeWMBS(task) sandboxCreator = SandboxCreator() sandboxCreator.makeSandbox(self.workdir, self.workload) logging.info('Done processing workload %s' % (self.workload.name())) return True
def processWorkload(self): """ Split the workload into tasks, and finish all the process for the task """ if self.workdir == None or self.workload == None: raise Exception( 'Failure in processing workload %s in directory %s' % (str(self.workload), str(self.workdir))) if hasattr(self.workload, 'owner'): self.owner = self.workload.owner if hasattr(self.workload, 'owner_dn'): self.owner_dn = self.workload.owner_dn for toptask in self.workload.taskIterator(): #for each task, build sandbox, register, and subscribe for task in toptask.taskIterator(): if task.name() in self.workflowDict.keys(): raise Exception( 'Duplicate task name for workload %s, task %s' % (self.workload.name(), task.name())) if not self.skipSubscription: subscribeInfo = self.subscribeWMBS(task) sandboxCreator = SandboxCreator() sandboxCreator.makeSandbox(self.workdir, self.workload) logging.info('Done processing workload %s' % (self.workload.name())) return True
def produceSandboxForWorkflow(self, workload, targetFile = None, includeWMCore = True ): """ Given a workflow, builds a sandbox for interactive use """ from WMCore.WMRuntime.SandboxCreator import SandboxCreator creator = SandboxCreator() if not includeWMCore: creator.disableWMCorePackaging() tempDir = tempfile.mkdtemp() try: tarballPath = creator.makeSandbox(tempDir, workload) finally: pass # if os.path.exists( tempDir ): # shutil.rmtree( tempDir ) return tarballPath
def createSandbox(self): """Create the runtime sandbox""" sandboxCreator = SandboxCreator() sandboxCreator.makeSandbox(self.cachepath, self.wmSpec)