in jetbrains-core/src/software/aws/toolkits/jetbrains/services/sqs/SubscribeSnsDialog.kt [63:102]
override fun doOKAction() {
if (!isOKActionEnabled) {
return
}
val topicArn = topicSelected()
setOKButtonText(message("sqs.subscribe.sns.in_progress"))
isOKActionEnabled = false
coroutineScope.launch {
try {
val policy = sqsClient.getQueueAttributes {
it.queueUrl(queue.queueUrl)
it.attributeNames(QueueAttributeName.POLICY)
}.attributes()[QueueAttributeName.POLICY]
if (needToEditPolicy(policy)) {
val continueAdding = withContext(getCoroutineUiContext()) {
ConfirmQueuePolicyDialog(project, sqsClient, queue, topicArn, policy, view.component).showAndGet()
}
if (!continueAdding) {
setOKButtonText(message("sqs.subscribe.sns.subscribe"))
isOKActionEnabled = true
return@launch
}
}
subscribe(topicArn)
withContext(getCoroutineUiContext()) {
close(OK_EXIT_CODE)
}
notifyInfo(message("sqs.service_name"), message("sqs.subscribe.sns.success", topicSelected()), project)
SqsTelemetry.subscribeSns(project, Result.Succeeded, queue.telemetryType())
} catch (e: Exception) {
LOG.warn(e) { message("sqs.subscribe.sns.failed", queue.queueName, topicArn) }
setErrorText(e.message)
setOKButtonText(message("sqs.subscribe.sns.subscribe"))
isOKActionEnabled = true
SqsTelemetry.subscribeSns(project, Result.Failed, queue.telemetryType())
}
}
}