Exemplo n.º 1
0
    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])
Exemplo n.º 2
0
    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)
Exemplo n.º 4
0
            '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)
Exemplo n.º 5
0
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