def load_workflow_from_file(self, path, workflow_name, name_override=None, playbook_override=None): self.tree = et.ElementTree(file=path) playbook_name = playbook_override if playbook_override else os.path.splitext( os.path.basename(path))[0] for workflow in self.tree.iter(tag="workflow"): current_workflow_name = workflow.get('name') if current_workflow_name == workflow_name: if name_override: workflow_name = name_override name = construct_workflow_name_key(playbook_name, workflow_name) key = _WorkflowKey(playbook_name, workflow_name) self.workflows[key] = wf.Workflow(name=name, workflowConfig=workflow, parent_name=self.name, filename=playbook_name) break else: return False self.addChildWorkflows() self.addWorkflowScheduledJobs() return True
def load_workflows_from_file(self, path, name_override=None, playbook_override=None): """Loads multiple workloads from a file. Args: path (str): Path to the workflow. name_override (str, optional): Name that the workflow should be changed to. playbook_override (str, optional): Name that the playbook should be changed to. """ self.tree = cElementTree.ElementTree(file=path) playbook_name = playbook_override if playbook_override else os.path.splitext( os.path.basename(path))[0] for workflow in self.tree.iter(tag='workflow'): workflow_name = name_override if name_override else workflow.get( 'name') name = construct_workflow_name_key(playbook_name, workflow_name) key = _WorkflowKey(playbook_name, workflow_name) self.workflows[key] = wf.Workflow(name=name, xml=workflow, parent_name=self.name, playbook_name=playbook_name) logger.info('Adding workflow {0} to controller'.format(name)) self.add_child_workflows() self.add_workflow_scheduled_jobs()
def loadWorkflowsFromFile(self, path): self.tree = et.ElementTree(file=path) for workflow in self.tree.iter(tag="workflow"): name = workflow.get("name") self.workflows[name] = wf.Workflow(name=name, workflowConfig=workflow, parent_name=self.name) self.addChildWorkflows() self.addWorkflowScheduledJobs()
def __add_workflow(self, key, name, xml, playbook): try: self.workflows[key] = wf.Workflow(name=name, xml=xml, parent_name=self.name, playbook_name=playbook) logger.info('Adding workflow {0} to controller'.format(name)) except (UnknownApp, UnknownAppAction, InvalidInput) as e: logger.error('Cannot load workflow {0}: Error: {1}'.format( key, str(e)))
def loadWorkflowsFromFile(self, path, name_override=None, playbook_override=None): self.tree = et.ElementTree(file=path) playbook_name = playbook_override if playbook_override else os.path.splitext( os.path.basename(path))[0] for workflow in self.tree.iter(tag='workflow'): workflow_name = name_override if name_override else workflow.get( 'name') name = construct_workflow_name_key(playbook_name, workflow_name) key = _WorkflowKey(playbook_name, workflow_name) self.workflows[key] = wf.Workflow(name=name, workflowConfig=workflow, parent_name=self.name, filename=playbook_name) self.addChildWorkflows() self.addWorkflowScheduledJobs()
def load_workflow_from_file(self, path, workflow_name, name_override=None, playbook_override=None): """Loads a workflow from a file. Args: path (str): Path to the workflow. workflow_name (str): Name of the workflow to load. name_override (str, optional): Name that the workflow should be changed to. playbook_override (str, optional): Name that the playbook should be changed to. Returns: True on success, False otherwise. """ self.tree = cElementTree.ElementTree(file=path) playbook_name = playbook_override if playbook_override else os.path.splitext( os.path.basename(path))[0] for workflow in self.tree.iter(tag='workflow'): current_workflow_name = workflow.get('name') if current_workflow_name == workflow_name: if name_override: workflow_name = name_override name = construct_workflow_name_key(playbook_name, workflow_name) key = _WorkflowKey(playbook_name, workflow_name) self.workflows[key] = wf.Workflow(name=name, xml=workflow, parent_name=self.name, playbook_name=playbook_name) logger.info('Adding workflow {0} to controller'.format(name)) break else: logger.warning( 'Workflow {0} not found in playbook {0}. Cannot load.'.format( workflow_name, playbook_name)) return False self.add_child_workflows() self.add_workflow_scheduled_jobs() return True