def newTask(self, taskName): """ _newTask_ Factory like interface for adding a toplevel task to this workload """ if taskName in self.listAllTaskNodes(): msg = "Duplicate task name: %s\n" % taskName msg += "Known tasks: %s\n" % self.listAllTaskNodes() raise RuntimeError, msg task = WMTask(taskName) helper = WMTaskHelper(task) helper.setTopOfTree() self.addTask(helper) return helper
def addTask(self, wmTask): """ _addTask_ Add a Task instance either naked or wrapped in a helper """ task = wmTask if isinstance(wmTask, WMTaskHelper): task = wmTask.data helper = wmTask else: helper = WMTaskHelper(wmTask) taskName = helper.name() pathName = "/%s/%s" % (self.name(), taskName) helper.setPathName(pathName) if taskName in self.listAllTaskNodes(): msg = "Duplicate task name: %s\n" % taskName msg += "Known tasks: %s\n" % self.listAllTaskNodes() raise RuntimeError, msg self.data.tasks.tasklist.append(taskName) setattr(self.data.tasks, taskName, task) return