def disableAccountAccessKeys()

in hq/app/logic/IamUnrecognisedUsers.scala [99:121]


  def disableAccountAccessKeys(
    accountUnrecognisedKeys: AccountUnrecognisedAccessKeys,
    iamClients: AwsClients[IamAsyncClient]
  )(implicit ec: ExecutionContext): Attempt[List[UpdateAccessKeyResponse]] = {
    val AccountUnrecognisedAccessKeys(account, accessKeys) = accountUnrecognisedKeys
    val activeAccessKeys = accessKeys.filter(_.status == CredentialActive)
    val disableKeysAttempt = Attempt.traverse(activeAccessKeys)(key =>
      disableAccessKey(account, key.username, key.accessKeyId, iamClients)
    )

    disableKeysAttempt.tap(_.fold(
      { failure =>
        logger.error(s"Failed to disable access key: ${failure.logMessage}")
        Cloudwatch.putIamDisableAccessKeyMetric(ReaperExecutionStatus.failure)
      },
      { updateAccessKeyResults =>
        logger.info(s"Attempt to disable access keys was successful. ${updateAccessKeyResults.length} key(s) were disabled in ${account.name}.")
        if(updateAccessKeyResults.nonEmpty) {
          Cloudwatch.putIamDisableAccessKeyMetric(ReaperExecutionStatus.success)
        }
      }
    ))
  }