override fun mutationStatusChanged()

in jetbrains-core/src/software/aws/toolkits/jetbrains/services/dynamic/DynamicResourceStateChangedNotificationHandler.kt [22:75]


    override fun mutationStatusChanged(state: ResourceMutationState) {
        if (state.status == OperationStatus.SUCCESS) {
            notifyInfo(
                message(
                    "dynamic_resources.operation_status_notification_title",
                    state.resourceIdentifier ?: state.resourceType,
                    state.operation.name.toLowerCase()
                ),
                message(
                    "dynamic_resources.operation_status_success",
                    state.resourceIdentifier ?: state.resourceType,
                    state.operation.name.toLowerCase()
                ),
                project
            )
            DynamicresourceTelemetry.mutateResource(
                project,
                Result.Succeeded,
                state.resourceType,
                addOperationToTelemetry(state.operation),
                ChronoUnit.MILLIS.between(state.startTime, DynamicResourceTelemetryResources.getCurrentTime()).toDouble()
            )
        } else if (state.status == OperationStatus.FAILED) {
            if (state.message.isNullOrBlank()) {
                displayErrorMessage(
                    state,
                    message(
                        "dynamic_resources.operation_status_failed_no_message",
                        state.resourceIdentifier ?: state.resourceType,
                        state.operation.name.toLowerCase()
                    )
                )
            } else {
                displayErrorMessage(
                    state,
                    message(
                        "dynamic_resources.operation_status_failed",
                        state.resourceIdentifier ?: state.resourceType,
                        state.operation.name.toLowerCase(),
                        state.message
                    )
                )
            }
            DynamicresourceTelemetry.mutateResource(
                project,
                Result.Failed,
                state.resourceType,
                addOperationToTelemetry(state.operation),
                ChronoUnit.MILLIS.between(state.startTime, DynamicResourceTelemetryResources.getCurrentTime()).toDouble()
            )
        }
        AwsResourceCache.getInstance().clear(CloudControlApiResources.listResources(state.resourceType), state.connectionSettings)
        refreshRequired.set(true)
    }