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
}