def run()

in app/services/notification/ScheduledNotificationRunner.scala [21:58]


  def run(today: DateTime): Attempt[List[String]] = {
    for {
      instancesWithAmis <- Prism.instancesWithAmis(SSAA(stage = Some("PROD")))
      giantInstances <- Prism.instancesWithAmis(
        SSAA(stage = Some("rex"), stack = Some("pfi-giant"))
      )
      allProdInstancesWithAmis = instancesWithAmis ++ giantInstances
      oldInstances = PrismLogic.oldInstances(allProdInstancesWithAmis)
      instanceAmiMap = ScheduledNotificationRunner.makeInstanceAmiMap(
        allProdInstancesWithAmis
      )
      ownersWithDefault <- Prism.getOwners
      ownersAndOldInstances = ScheduledNotificationRunner.findInstanceOwners(
        oldInstances,
        ownersWithDefault
      )
      mailIds <- Attempt.traverse(ownersAndOldInstances.toList) {
        case (owner, oldInstancesForOwner) =>
          val instances = ScheduledNotificationRunner.pairInstancesWithAmi(
            oldInstancesForOwner,
            instanceAmiMap
          )
          val request = ScheduledNotificationRunner.createEmailRequest(
            owner,
            instances,
            config,
            today
          )
          ScheduledNotificationRunner.conditionallySendEmail(
            environment.mode,
            config.overrideToAddress,
            mailClient,
            owner,
            request
          )
      }
    } yield mailIds
  }