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