Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.29 KB | None | 0 0
  1. class HealthCheckRunner @Inject()(
  2.   sparkSession: SparkSession,
  3.   enableCheckConfig: EnableCheckConfig,
  4.   dateConfig: DateConfig,
  5.   appnexusApi: AppnexusApi,
  6.   s3EmailManager: S3EmailManager
  7. ) extends Service with AutoCloseable with CaptifyLogging {
  8.  
  9.   override def execute(): Unit = {
  10.     checksToRun.zipWithIndex
  11.       .map { case (test, i) => test.runAndWriteResultToFile(i) }
  12.       .foreach(s3EmailManager.saveFileToS3)
  13.  
  14.     sendEmailWithAllReport()
  15.   }
  16.  
  17.   private def checksToRun = {
  18.     lazy val anSfChecks = createSfTest(appnexusApi, ImpalaDB, dateConfig.anSfDayRange)
  19.  
  20.     //TODO appnexusApi -> dbmApi
  21.     lazy val dbmSfChecks = createSfTest(appnexusApi, ImpalaDB, dateConfig.dbmSfDayRange)
  22.  
  23.     val allChecks = Seq(
  24.       (enableCheckConfig.anSfEnabled, anSfChecks),
  25.       (enableCheckConfig.dbmSfEnabled, dbmSfChecks)
  26.     )
  27.  
  28.     allChecks.filter(_._1).flatMap(_._2)
  29.   }
  30.  
  31.   private def createSfTest(firstSource: SfSource, secondSource: SfSource, days: Seq[DayRange]) = {
  32.     days.map { case (startDate, endDate) =>
  33.       new SfTest(appnexusApi, ImpalaDB, startDate, endDate)
  34.     }
  35.   }
  36.  
  37.   private def sendEmailWithAllReport() = if (enableCheckConfig.sendEmailEnabled) s3EmailManager.getAndSendAllReports
  38.  
  39.   override def close(): Unit = {
  40.     NamedDB("impala").close()
  41.   }
  42.  
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement