def put_workflow(workflow): """ :type workflow: dart.model.workflow.Workflow """ updated_workflow = Workflow.from_dict(request.get_json()) if updated_workflow.data.state not in [WorkflowState.ACTIVE, WorkflowState.INACTIVE]: return {'results': 'ERROR', 'error_message': 'state must be ACTIVE or INACTIVE'}, 400, None workflow = workflow_service().update_workflow_state(workflow, updated_workflow.data.state) return {'results': workflow.to_dict()}
def post_workflow(datastore): """ :type datastore: dart.model.datastore.Datastore """ workflow = Workflow.from_dict(request.get_json()) workflow.data.datastore_id = datastore.id workflow.data.engine_name = datastore.data.engine_name if datastore.data.state == DatastoreState.ACTIVE: # only templated datastores can use concurrencies > 1 workflow.data.concurrency = 1 workflow = workflow_service().save_workflow(workflow) return {'results': workflow.to_dict()}
def _resolve_and_save_workflow(self, entity_id, entity_map, actual_entities_by_node_id, actual_entities_by_unsaved_id): actual_id, unsaved_id = self._resolve(EntityType.workflow, entity_id, entity_map, actual_entities_by_unsaved_id) if actual_id: return actual_id node_id = self._node_id(EntityType.workflow, unsaved_id) workflow = Workflow.from_dict(entity_map['unsaved_entities'][node_id]) assert isinstance(workflow, Workflow) workflow.data.datastore_id = self._resolve_and_save_datastore(workflow.data.datastore_id, entity_map, actual_entities_by_node_id, actual_entities_by_unsaved_id) workflow = self._workflow_service.save_workflow(workflow, commit=False, flush=True) actual_entities_by_node_id[node_id] = workflow actual_entities_by_unsaved_id[unsaved_id] = workflow return workflow.id
def put_workflow(workflow): """ :type workflow: dart.model.workflow.Workflow """ updated_workflow = Workflow.from_dict(request.get_json()) if updated_workflow.data.state not in [ WorkflowState.ACTIVE, WorkflowState.INACTIVE ]: return { 'results': 'ERROR', 'error_message': 'state must be ACTIVE or INACTIVE' }, 400, None workflow = workflow_service().update_workflow_state( workflow, updated_workflow.data.state) return {'results': workflow.to_dict()}
def put_workflow(workflow): """ :type workflow: dart.model.workflow.Workflow """ return update_workflow(workflow, Workflow.from_dict(request.get_json()))
def patch_workflow(workflow): """ :type workflow: dart.model.workflow.Workflow """ p = JsonPatch(request.get_json()) return update_workflow(workflow, Workflow.from_dict(p.apply(workflow.to_dict())))