Beispiel #1
0
 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)))
Beispiel #2
0
    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)
Beispiel #3
0
 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)))