Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.cisco.cstg.sa.nwssot.alertsync.devicedetail
- import com.cisco.cstg.sa.nwssot.alertsync.alertdetail.AlertSyncFields.alertSyncAlertDetailFields
- import com.cisco.cstg.sa.nwssot.alertsync.devicedetail.AlertSyncDeviceDetailsFields.alertsField
- import com.cisco.cstg.sa.nwssot.alertsync.devicedetail.AlertSyncDeviceDetailsFields.alertsLabel
- import com.cisco.cstg.sa.nwssot.alertsync.devicedetail.AlertSyncDeviceDetailsFields.deviceField
- import com.cisco.cstg.sa.nwssot.alertsync.devicedetail.AlertSyncDeviceDetailsFields.timestampField
- import com.cisco.cstg.sa.nwssot.alertsync.devicedetail.AlertSyncDeviceDetailsFields.timestampLabel
- import com.cisco.cstg.sa.nwssot.base.SNTCQuery
- import com.cisco.cstg.sa.nwssot.base.SNTCQuery.par
- /**
- * Class to query AlertSync dataset for DEVICE_DETAILS column
- * @param map json map
- */
- case class AlertSyncDeviceDetailsQuery(map: Map[String, Any]) extends SNTCQuery(map) {
- override def createKey(): String = {
- if (valid("ENTITLED_COMPANY_ID")) {
- Seq(
- map("ENTITLED_COMPANY_ID")
- ) mkString keyDelim
- } else null
- }
- override def query(): Seq[Seq[(String, Any)]] = createKey() match {
- case null => Seq()
- case baseKey: String =>
- val alertFieldName = asString("ALERT_TYPE") match {
- case "HW" => "HWAlerts"
- case "SW" => "SWAlerts"
- case "FN" => "FNAlerts"
- case "IS" => "ISAlerts"
- case "PSIRT" => "PSIRTAlerts"
- case _ => ""
- }
- val alerts = Map(timestampLabel -> asString(timestampField),
- alertsField -> asJson(map.filterKeys(!_.equals(deviceField))))
- queryDevices(baseKey).map(row => (row :+ (alertsLabel, alerts)) ++ Seq(("ALERT_TYPE", alertFieldName)) ++ queryOptionalFieldsAsString(alertSyncAlertDetailFields))
- }
- def queryDevices(baseKey: String) = map.get(deviceField) match {
- case Some(l: List[Map[String, Any]]) =>
- l.flatMap(AlertSyncDeviceQuery(_, baseKey).query())
- case _ => Seq()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement