def register(self, endpoint='http://localhost:8080/api'): mc = MetadataClient(endpoint) workflow_def = self._definition() # import json # print(json.dumps(workflow_def, indent=2)) mc.updateWorkflowDefs([workflow_def])
def register(self, endpoint='http://localhost:8080/api'): mc = MetadataClient(endpoint) task_def = { 'name': self.name, 'description': self.description, 'inputKeys': list(self.inputs.keys()), 'outputKeys': list(self.outputs.keys()), } # Only create inputTemplate if we plan to use defaults if self.use_defaults: task_def['inputTemplate'] = self.inputs else: pass import json json.dumps(task_def) mc.registerTaskDefs([task_def])
def main(): task_def = define_task() with open('hover_power.json', 'w') as j: json.dump(task_def, j, indent=2) # Try to run function as a test hover_power({'inputData': task_def['inputTemplate']}) # Register this task mc = MetadataClient('http://localhost:8080/api') # unregister_default_tasks(mc) mc.registerTaskDefs([task_def]) # Start worker cw = ConductorWorker('http://localhost:8080/api', 1, 0.1) cw.start(taskType=task_def['name'], exec_function=hover_power, wait=False) # Create workflow wf_def = define_workflow() mc.updateWorkflowDefs([wf_def]) # Start workflow wc = WorkflowClient('http://localhost:8080/api') wc.startWorkflow(wfName=wf_def['name'], inputjson=task_def['inputTemplate']) # sleep(200) # Start worker cw = ConductorWorker('http://localhost:8080/api', 1, 0.1) cw.start(taskType=task_def['name'], exec_function=hover_power, wait=True)
'taskReferenceName': t.name, 'type': 'SIMPLE', 'inputParameters': {k: t.inputs[k] for k in t.inputs.keys()}, }], 'outputParameters': {k: '$({}.output.{}'.format(t.name, k) for k in t.outputs.keys()}, "failureWorkflow": "cleanup_encode_resources", "restartable": True, "workflowStatusListenerEnabled": True, "schemaVersion": 2 } print(json.dumps(workflow, indent=2)) # Register it mc = MetadataClient('http://localhost:8080/api') mc.updateWorkflowDefs([workflow]) # Start workflow wc = WorkflowClient('http://localhost:8080/api') wc.startWorkflow(wfName=workflow['name'], inputjson=t.inputs) # Try it! t.start(wait=True)
cp = CruisePower() def run_cruisepower_component(task): params = task['inputData'] unknowns = {} cp.solve_nonlinear(params, unknowns, {}) return {'status': 'COMPLETED', 'output': unknowns, 'logs': ['one', 'two']} if __name__ == '__main__': # Add(TestThing(), 'one') mc = MetadataClient('http://localhost:8080/api') unregister_default_tasks(mc) # Let's do this one. hp_task_def = define_as_task(HoverPower()) mc.registerTaskDefs([hp_task_def]) cp_task_def = define_as_task(CruisePower()) mc.registerTaskDefs([cp_task_def]) # Create workflow wf_def = define_workflow() mc.updateWorkflowDefs([wf_def]) # Start workflow