in aws-lambda-agent/src/main/java/jetbrains/buildServer/runner/lambda/aws/RemoteLambdaFunctionInvoker.kt [64:91]
override fun invokeLambdaFunction(runDetails: List<RunDetails>): Boolean {
if (runDetails.isEmpty()){
return true
}
CoroutineScope(Dispatchers.IO).launch {
try {
val buildDetails = runDetails.first().buildDetails
val response: HttpResponse = client.post("$teamcityServerUrl${LambdaConstants.LAMBDA_PLUGIN_PATH}/${LambdaConstants.INVOKE_LAMBDA_PATH}") {
setBody(FormDataContent(Parameters.build {
append(LambdaConstants.BUILD_TYPE_ID, buildDetails.buildTypeId)
append(LambdaConstants.RUN_DETAILS, objectMapper.writeValueAsString(runDetails))
append(LambdaConstants.AGENT_NAME, buildDetails.agentName)
append(LambdaConstants.BUILD_ID, buildDetails.buildId)
context.runnerParameters.map { (key, value) -> append("$PROPS_PREFIX$key", value) }
}))
}
if (!response.status.isSuccess()) {
logger.message(getErrorMessage(response))
}
} catch (e: ResponseException) {
logger.message(getErrorMessage(e.response))
}
}
return false
}