in jetbrains-core/src/software/aws/toolkits/jetbrains/services/sqs/actions/PurgeQueueAction.kt [45:85]
override fun run(indicator: ProgressIndicator) {
val numMessages = client.approximateNumberOfMessages(queue.queueUrl) ?: 0
val response = runBlocking(edtContext) {
Messages.showOkCancelDialog(
project,
message("sqs.purge_queue.confirm", queue.queueName, numMessages),
message("sqs.purge_queue.confirm.title"),
Messages.getYesButton(),
Messages.getNoButton(),
Messages.getWarningIcon()
)
}
if (response != Messages.YES) {
SqsTelemetry.purgeQueue(project, Result.Cancelled, queue.telemetryType())
return
}
try {
client.purgeQueue { it.queueUrl(queue.queueUrl) }
LOG.info { "Started purging ${queue.queueUrl}" }
notifyInfo(
project = project,
title = message("aws.notification.title"),
content = message("sqs.purge_queue.succeeded", queue.queueUrl)
)
SqsTelemetry.purgeQueue(project, Result.Succeeded, queue.telemetryType())
} catch (e: PurgeQueueInProgressException) {
LOG.warn { "${queue.queueUrl} already has a query purge in progress" }
notifyError(
project = project,
content = message("sqs.purge_queue.failed.60_seconds", queue.queueUrl)
)
SqsTelemetry.purgeQueue(project, Result.Succeeded, queue.telemetryType())
} catch (e: Exception) {
LOG.error(e) { "Exception thrown while trying to purge query ${queue.queueUrl}" }
notifyError(
project = project,
content = message("sqs.purge_queue.failed", queue.queueUrl)
)
SqsTelemetry.purgeQueue(project, Result.Failed, queue.telemetryType())
}
}