override fun execute()

in jetbrains-core/src/software/aws/toolkits/jetbrains/services/clouddebug/execution/steps/RetrieveRole.kt [23:54]


    override fun execute(
        context: Context,
        messageEmitter: StepEmitter,
        ignoreCancellation: Boolean
    ) {
        val startTime = Instant.now()
        var result = Result.Succeeded
        try {
            val description = CloudDebuggingResources.describeInstrumentedResource(
                settings.credentialProvider,
                settings.region,
                settings.clusterArn,
                settings.serviceArn
            )
            if (description == null || description.status != INSTRUMENTED_STATUS || description.taskRole.isEmpty()) {
                throw RuntimeException("Resource somehow became de-instrumented?")
            }

            context.putAttribute(INSTRUMENT_IAM_ROLE_KEY, description.taskRole)
        } catch (e: Exception) {
            result = Result.Failed
            throw RuntimeException(message("cloud_debug.step.retrieve_execution_role.failed"), e)
        } finally {
            ClouddebugTelemetry.retrieveRole(
                project = context.getAttribute(Context.PROJECT_ATTRIBUTE),
                workflowToken = context.workflowToken,
                result = result,
                value = Duration.between(startTime, Instant.now()).toMillis().toDouble(),
                createTime = startTime
            )
        }
    }