def UpdateWorkflowState(self, request, context): try: return self._server.update_workflow_state(request, context) except UnauthorizedException as e: return service_pb2.UpdateWorkflowStateResponse( status=common_pb2.Status(code=common_pb2.STATUS_UNAUTHORIZED, msg=repr(e))) except Exception as e: logging.error('UpdateWorkflowState rpc server error: %s', repr(e)) return service_pb2.UpdateWorkflowStateResponse( status=common_pb2.Status(code=common_pb2.STATUS_UNKNOWN_ERROR, msg=repr(e)))
def update_workflow_state(self, request): with self._app.app_context(): project, party = self.check_auth_info(request.auth_info) logging.debug( 'received update_workflow_state from %s: %s', party.domain_name, request) name = request.workflow_name state = WorkflowState(request.state) target_state = WorkflowState(request.target_state) transaction_state = TransactionState(request.transaction_state) workflow = Workflow.query.filter_by( name=request.workflow_name, project_id=project.id).first() if workflow is None: assert state == WorkflowState.NEW assert target_state == WorkflowState.READY workflow = Workflow( name=request.workflow_name, project_id=project.id, state=state, target_state=target_state, transaction_state=TransactionState.READY) db.session.add(workflow) db.session.commit() db.session.refresh(workflow) workflow.update_state( state, target_state, transaction_state) db.session.commit() return service_pb2.UpdateWorkflowStateResponse( status=common_pb2.Status( code=common_pb2.STATUS_SUCCESS), transaction_state=workflow.transaction_state.value)
def update_workflow_state(self, name, state, target_state, transaction_state, uuid, forked_from_uuid): msg = service_pb2.UpdateWorkflowStateRequest( auth_info=self._auth_info, workflow_name=name, state=state.value, target_state=target_state.value, transaction_state=transaction_state.value, uuid=uuid, forked_from_uuid=forked_from_uuid ) try: response = self._client.UpdateWorkflowState( request=msg, metadata=self._get_metadata()) if response.status.code != common_pb2.STATUS_SUCCESS: logging.error( 'update_workflow_state request error: %s', response.status.msg) return response except Exception as e: logging.error('workflow %s update_workflow_state request error: %s' , name, repr(e)) return service_pb2.UpdateWorkflowStateResponse( status=common_pb2.Status( code=common_pb2.STATUS_UNKNOWN_ERROR, msg=repr(e)))