in jetbrains-core/src/software/aws/toolkits/jetbrains/services/sqs/ConfigureLambdaDialog.kt [65:99]
override fun doOKAction() {
if (!isOKActionEnabled) {
return
}
isOKActionEnabled = false
setOKButtonText(message("sqs.configure.lambda.in_progress"))
coroutineScope.launch {
try {
configureLambda(functionSelected())
runInEdt(ModalityState.any()) {
close(OK_EXIT_CODE)
}
notifyInfo(message("sqs.service_name"), message("sqs.configure.lambda.success", functionSelected()), project)
SqsTelemetry.configureLambdaTrigger(project, Result.Succeeded, queue.telemetryType())
} catch (e: InvalidParameterValueException) { // Exception thrown for invalid permission
// DO NOT change to withCoroutineUiContext, it breaks the panel with the wrong state
runInEdt(ModalityState.any()) {
if (ConfirmIamPolicyDialog(project, iamClient, lambdaClient, functionSelected(), queue, view.component).showAndGet()) {
retryConfiguration(functionSelected())
} else {
setOKButtonText(message("general.configure_button"))
isOKActionEnabled = true
}
}
} catch (e: Exception) {
LOG.warn(e) { message("sqs.configure.lambda.error", functionSelected()) }
setErrorText(e.message)
setOKButtonText(message("general.configure_button"))
isOKActionEnabled = true
SqsTelemetry.configureLambdaTrigger(project, Result.Failed, queue.telemetryType())
}
}
}