Skip to content

Commit

Permalink
Merge pull request #169 from upb-uc4/feature/fix_operation_1_1_timeouts
Browse files Browse the repository at this point in the history
Feature/fix operation 1 1 timeouts
  • Loading branch information
NikoBergemann authored Feb 2, 2021
2 parents 8486c6a + 5c23465 commit 3ccc7d2
Show file tree
Hide file tree
Showing 7 changed files with 22 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ protected[hyperledger] case class ConnectionAdmission(username: String, channel:
}

override def addAdmission(admission: String): String =
wrapSubmitTransaction(false, "addAdmission", admission)
wrapSubmitTransaction(false, "addAdmission", admission)()

override def dropAdmission(admissionId: String): String =
wrapSubmitTransaction(false, "dropAdmission", admissionId)
wrapSubmitTransaction(false, "dropAdmission", admissionId)()

override def getAdmissions(enrollmentId: String = "", courseId: String = "", moduleId: String = ""): String =
wrapSubmitTransaction(false, "getAdmissions", enrollmentId, courseId, moduleId)
wrapSubmitTransaction(false, "getAdmissions", enrollmentId, courseId, moduleId)()
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ case class ConnectionCertificate(username: String, channel: String, chaincode: S
}

override def addCertificate(enrollmentID: String, certificate: String): String =
wrapSubmitTransaction(false, "addCertificate", enrollmentID, certificate)
wrapSubmitTransaction(false, "addCertificate", enrollmentID, certificate)()

override def updateCertificate(enrollmentID: String, certificate: String): String =
wrapSubmitTransaction(false, "updateCertificate", enrollmentID, certificate)
wrapSubmitTransaction(false, "updateCertificate", enrollmentID, certificate)()

override def getCertificate(enrollmentId: String): String =
wrapEvaluateTransaction("getCertificate", enrollmentId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ case class ConnectionExaminationRegulation(username: String, channel: String, ch
}

def addExaminationRegulation(examinationRegulation: String): String =
wrapSubmitTransaction(false, "addExaminationRegulation", examinationRegulation)
wrapSubmitTransaction(false, "addExaminationRegulation", examinationRegulation)()

def getExaminationRegulations(namesList: String): String =
wrapEvaluateTransaction("getExaminationRegulations", namesList)

def closeExaminationRegulation(name: String): String =
wrapSubmitTransaction(false, "closeExaminationRegulation", name)
wrapSubmitTransaction(false, "closeExaminationRegulation", name)()
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,13 @@ protected[hyperledger] case class ConnectionGroup(username: String, channel: Str
}

override def addUserToGroup(enrollmentId: String, groupId: String): String =
wrapSubmitTransaction(false, "addUserToGroup", enrollmentId, groupId)
wrapSubmitTransaction(false, "addUserToGroup", enrollmentId, groupId)()

override def removeUserFromGroup(enrollmentId: String, groupId: String): String =
wrapSubmitTransaction(false, "removeUserFromGroup", enrollmentId, groupId)
wrapSubmitTransaction(false, "removeUserFromGroup", enrollmentId, groupId)()

override def removeUserFromAllGroups(enrollmentId: String): String =
wrapSubmitTransaction(false, "removeUserFromAllGroups", enrollmentId)
wrapSubmitTransaction(false, "removeUserFromAllGroups", enrollmentId)()

override def getAllGroups: String =
wrapEvaluateTransaction("getAllGroups")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@ case class ConnectionMatriculation(username: String, channel: String, chaincode:
}

override def addMatriculationData(jSonMatriculationData: String): String =
wrapSubmitTransaction(false, "addMatriculationData", jSonMatriculationData)
wrapSubmitTransaction(false, "addMatriculationData", jSonMatriculationData)()

override def addEntriesToMatriculationData(enrollmentId: String, subjectMatriculationList: String): String =
wrapSubmitTransaction(false, "addEntriesToMatriculationData", enrollmentId, subjectMatriculationList)
wrapSubmitTransaction(false, "addEntriesToMatriculationData", enrollmentId, subjectMatriculationList)()

override def updateMatriculationData(jSonMatriculationData: String): String =
wrapSubmitTransaction(false, "updateMatriculationData", jSonMatriculationData)
wrapSubmitTransaction(false, "updateMatriculationData", jSonMatriculationData)()

override def getMatriculationData(enrollmentId: String): String =
wrapEvaluateTransaction("getMatriculationData", enrollmentId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,15 @@ protected[hyperledger] case class ConnectionOperation(username: String, channel:

override def initiateOperation(initiator: String, contractName: String, transactionName: String, params: String*): String = {
val transactionValues = TransactionHelper.getApprovalParameterList(initiator, contractName, transactionName, params.toArray)
wrapSubmitTransaction(false, "initiateOperation", transactionValues: _*)
wrapSubmitTransaction(false, "initiateOperation", transactionValues: _*)()
}

override def approveOperation(operationId: String): String = {
wrapSubmitTransaction(false, "approveOperation", operationId)
wrapSubmitTransaction(false, "approveOperation", operationId)()
}

override def rejectOperation(operationId: String, rejectMessage: String): String = {
wrapSubmitTransaction(false, "rejectOperation", operationId, rejectMessage)
wrapSubmitTransaction(false, "rejectOperation", operationId, rejectMessage)()
}

override def getOperations(operationIds: List[String], existingEnrollmentId: String, missingEnrollmentId: String, initiatorEnrollmentId: String, involvedEnrollmentId: String, states: List[String]): String = {
Expand All @@ -50,6 +50,6 @@ protected[hyperledger] case class ConnectionOperation(username: String, channel:
missingEnrollmentId,
initiatorEnrollmentId,
involvedEnrollmentId,
new Gson().toJson(states.asJava))
new Gson().toJson(states.asJava))()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@ trait ConnectionTrait extends AutoCloseable {
*/
@throws[TransactionExceptionTrait]
@throws[HyperledgerExceptionTrait]
protected final def wrapSubmitTransaction(transient: Boolean, transactionName: String, params: String*): String = {
protected final def wrapSubmitTransaction(transient: Boolean, transactionName: String, params: String*)(pTimeoutMilliseconds: Int = timeoutMilliseconds, pTimeoutAttempts: Int = timeoutAttempts): String = {
// submit and evaluate response from my "regular" contract
val resultBytes = ReflectionHelper.retryAction(() => this.privateSubmitTransaction(transient, transactionName, params: _*), transactionName, timeoutMilliseconds, timeoutAttempts)
val resultBytes = ReflectionHelper.retryAction(() => this.privateSubmitTransaction(transient, transactionName, params: _*), transactionName, pTimeoutMilliseconds, pTimeoutAttempts)
this.wrapTransactionResult(transactionName, resultBytes)
}

Expand Down Expand Up @@ -234,7 +234,7 @@ trait ConnectionTrait extends AutoCloseable {
val validResponses = ReflectionHelper.safeCallPrivateMethod(transaction)("validatePeerResponses")(proposalResponses).asInstanceOf[util.Collection[ProposalResponse]]

// create final transaction to submit
val transactionPayload = ReflectionHelper.retryAction(() => TransactionHelper.getTransaction(validResponses, channelObj), "getUnsignedTransaction", timeoutMilliseconds, timeoutAttempts);
val transactionPayload = ReflectionHelper.retryAction(() => TransactionHelper.getTransaction(validResponses, channelObj), "getUnsignedTransaction", timeoutMilliseconds, 1)

transactionPayload.toByteArray
}
Expand Down Expand Up @@ -263,7 +263,7 @@ trait ConnectionTrait extends AutoCloseable {
*/
@throws[HyperledgerExceptionTrait]
@throws[TransactionExceptionTrait]
def executeTransaction(jsonOperationData: String, timeoutMilliseconds: Int = 30000, timeoutAttempts: Int = Int.MaxValue): String = {
def executeTransaction(jsonOperationData: String, pTimeoutMilliseconds: Int = timeoutMilliseconds, pTimeoutAttempts: Int = timeoutAttempts): String = {
// prepare info
val transactionInfo = StringHelper.getTransactionInfoFromOperation(jsonOperationData)
val (contractName, transactionName, transactionParams) = StringHelper.getInfoFromTransactionInfo(transactionInfo)
Expand All @@ -273,7 +273,7 @@ trait ConnectionTrait extends AutoCloseable {
val connection: ConnectionTrait = buildConnectionForContract(contractName)

// attempt transmission
connection.wrapSubmitTransaction(transactionTransient, transactionName, transactionParams: _*)
connection.wrapSubmitTransaction(transactionTransient, transactionName, transactionParams: _*)(pTimeoutMilliseconds, pTimeoutAttempts)
}

private def buildConnectionForContract(contractName: String): ConnectionTrait = {
Expand Down

0 comments on commit 3ccc7d2

Please sign in to comment.