override fun run()

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())
                    }
                }