def getMixContractList(reqId=None, sync=False): if not reqId: reqId = str(uuid.uuid4()) operatorId = RtConfig.operatorId sourceNodeId = RtConfig.nodeId commonReq = CommonReqField() commonReq.sourceNodeId = sourceNodeId commonReq.targetNodeId = 0 commonReq.operatorId = operatorId commonReq.reqId = reqId rpcGetMixContractListReq = RpcGetMixContractListReq() rpcGetMixContractListReq.commonReq.CopyFrom(commonReq) if sync: RpcClientRspHandler.registerWaitReqId(reqId) sendResult = RpcClientProcessService.sendCoreRpc( 0, rpcGetMixContractListReq.SerializeToString(), reqId, RpcId.GET_MIX_CONTRACT_LIST_REQ) if sync and not sendResult: RpcClientRspHandler.unregisterWaitReqId(reqId) return None if sync: startTime = time.time() while True: if time.time() - startTime < RtConfig.rpcTimeOut: rpcGetMixContractListRsp = RpcClientRspHandler.getAndRemoveRpcGetMixContractListRsp( reqId) if not rpcGetMixContractListRsp: rpcExceptionRsp = RpcClientRspHandler.getAndRemoveRpcExceptionRsp( reqId) if rpcExceptionRsp: logger.error("获取混合合约列表错误,请求ID: %s, 远程错误回报 %s", reqId, rpcExceptionRsp.info) return None time.sleep(0.02) else: commonRsp = rpcGetMixContractListRsp.commonRsp errorId = commonRsp.errorId if errorId == 0: return rpcGetMixContractListRsp.contract else: logger.error( "获取混合合约列表错误,请求ID:%s,错误ID:%s,远程错误回报:%s", reqId, errorId, commonRsp.errorMsg) return None else: RpcClientRspHandler.unregisterWaitReqId(reqId) logger.error("获取混合合约列表错误,请求ID: %s,等待回报超时", reqId) return None
def getMixContractList(reqId=None, sync=False): if not reqId: reqId = str(uuid.uuid4()) operatorId = Config.operatorId sourceNodeId = Config.nodeId commonReq = CommonReqField() commonReq.sourceNodeId = sourceNodeId commonReq.targetNodeId = 0 commonReq.operatorId = operatorId commonReq.reqId = reqId rpcGetMixContractListReq = RpcGetMixContractListReq() rpcGetMixContractListReq.commonReq.CopyFrom(commonReq) if sync: RpcClientRspHandler.registerWaitReqId(reqId) sendResult = RpcClientProcessService.sendRoutineCoreRpc( 0, rpcGetMixContractListReq.SerializeToString(), reqId, RpcId.GET_MIX_CONTRACT_LIST_REQ) if sync and not sendResult: RpcClientRspHandler.unregisterWaitReqId(reqId) return None if sync: startTime = time.time() while True: if time.time() - startTime < Config.rpcTimeOut: rpcGetMixContractListRsp = RpcClientRspHandler.getAndRemoveRpcGetMixContractListRsp( reqId) if not rpcGetMixContractListRsp: rpcExceptionRsp = RpcClientRspHandler.getAndRemoveRpcExceptionRsp( reqId) if rpcExceptionRsp: logger.error("获取混合合约列表错误,请求ID: %s, 远程错误回报 %s", reqId, rpcExceptionRsp.info) return None time.sleep(0.02) else: commonRsp = rpcGetMixContractListRsp.commonRsp requestStatus = commonRsp.requestStatus if requestStatus == CommonStatusEnum.SUCCESS: return rpcGetMixContractListRsp.contract elif requestStatus == CommonStatusEnum.INFO: logger.info("获取混合合约列表错误,请求ID:%s,远程信息回报:%s", reqId, commonRsp.info) return rpcGetMixContractListRsp.contract elif requestStatus == CommonStatusEnum.WARN: logger.warning("获取混合合约列表错误,请求ID:%s,远程警告回报:%s", reqId, commonRsp.info) return rpcGetMixContractListRsp.contract elif requestStatus == CommonStatusEnum.ERROR: logger.error("获取混合合约列表错误,请求ID:%s,远程错误回报:%s", reqId, commonRsp.info) return None else: logger.error("获取混合合约列表错误,请求ID:%s,未知的请求状态", reqId) return None else: RpcClientRspHandler.unregisterWaitReqId(reqId) logger.error("获取混合合约列表错误,请求ID: %s,等待回报超时", reqId) return None