Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class HealthCheckRunner @Inject()(
- sparkSession: SparkSession,
- enableCheckConfig: EnableCheckConfig,
- dateConfig: DateConfig,
- appnexusApi: AppnexusApi,
- s3EmailManager: S3EmailManager
- ) extends Service with AutoCloseable with CaptifyLogging {
- override def execute(): Unit = {
- checksToRun.zipWithIndex
- .map { case (test, i) => test.runAndWriteResultToFile(i) }
- .foreach(s3EmailManager.saveFileToS3)
- sendEmailWithAllReport()
- }
- private def checksToRun = {
- lazy val anSfChecks = createSfTest(appnexusApi, ImpalaDB, dateConfig.anSfDayRange)
- //TODO appnexusApi -> dbmApi
- lazy val dbmSfChecks = createSfTest(appnexusApi, ImpalaDB, dateConfig.dbmSfDayRange)
- val allChecks = Seq(
- (enableCheckConfig.anSfEnabled, anSfChecks),
- (enableCheckConfig.dbmSfEnabled, dbmSfChecks)
- )
- allChecks.filter(_._1).flatMap(_._2)
- }
- private def createSfTest(firstSource: SfSource, secondSource: SfSource, days: Seq[DayRange]) = {
- days.map { case (startDate, endDate) =>
- new SfTest(appnexusApi, ImpalaDB, startDate, endDate)
- }
- }
- private def sendEmailWithAllReport() = if (enableCheckConfig.sendEmailEnabled) s3EmailManager.getAndSendAllReports
- override def close(): Unit = {
- NamedDB("impala").close()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement