def insertAlarmsClusCol(self,keyspace,clientID,datasetID,dicAlarmsClusP,dicAlarmsClusPRec,dicL2special,procID): for col in dicAlarmsClusP.keys(): log.debug(" <insertAlarmsClusCol> Column: "+str(col)) log.debug(" <insertAlarmsClusCol> Column name: "+str(dicL2special[sorted(dicL2special.keys())[col]])) columnName=dicL2special[sorted(dicL2special.keys())[col]] for row in dicAlarmsClusP[col].keys(): alarmed,extRec,level = self.searchExactAlarm(keyspace,clientID,datasetID,row,columnName) if alarmed == "" and extRec == "" and level =="": # No había alarma anterior alarmed=[] alarmed.append(3) inserData,valuesList = usefulLibrary.createRecordAlarm(keyspace,datasetID,clientID,row,columnName,alarmed,dicAlarmsClusP[col][row],False,procID) self.executeDBinsert(inserData,valuesList) else: # había alarma anterior if 3 not in alarmed: # Si ya está en la lista este tipo de alarma no la metemos otra vez (se habrá ejecutado dos veces el proc) alarmed.append(3) # Nuevo tipo de alarma if level == 'LOW': newLevel = dicAlarmsClusP[col][row] elif level == 'MEDIUM' and dicAlarmsClusP[col][row] in ['CRITICAL','HIGH']: newLevel = dicAlarmsClusP[col][row] elif level == 'HIGH' and dicAlarmsClusP[col][row] == 'CRITICAL': newLevel = dicAlarmsClusP[col][row] elif level == 'CRITICAL': newLevel = level else: newLevel = level inserData,valuesList = usefulLibrary.createRecordAlarm(keyspace,datasetID,clientID,row,columnName,alarmed,newLevel,False,procID) self.executeDBinsert(inserData,valuesList) if len(dicAlarmsClusPRec.keys()) > 0: #puede darse el caso de que el diccionario esté vacio porque no hay registros para el cliente en la # BD de conocimiento esterno. for alarm in dicAlarmsClusPRec.keys(): columnName=str(dicL2special[sorted(dicL2special.keys())[dicAlarmsClusPRec[alarm]['column']]]) log.debug(" <insertAlarmsClusCol> Column: "+str(col)) log.debug(" <insertAlarmsClusCol> Column name: "+str(columnName)) log.debug(" <insertAlarmsClusCol> Row: "+str(dicAlarmsClusPRec[alarm]['row'])) alarmed,extRec,level = self.searchExactAlarm(keyspace,clientID,datasetID,dicAlarmsClusPRec[alarm]['row'],columnName.decode('unicode-escape')) if alarmed == "" and extRec == "" and level =="": # No había alarma anterior alarmed=[] alarmed.append(3) inserData,valuesList = usefulLibrary.createRecordAlarm(keyspace,datasetID,clientID,dicAlarmsClusPRec[alarm]['row'],columnName.decode('unicode-escape'),alarmed,dicAlarmsClusPRec[alarm]['level'],True,procID) self.executeDBinsert(inserData,valuesList) else: # había alarma anterior, en este caso no debemos modificarla ya que la anterior no ha sido rectificada log.debug(" <insertAlarmsClusCol> Rectification doesn't , there is previous alarm.")
def insertAlarmsClusRow(self,keyspace,clientID,datasetID,dicAlarmsClusT,dicL2special,procID): for row in dicAlarmsClusT.keys(): columnName='all_columns' # así nos referiremos a una alarma sonbre una muestra completa alarmed,extRec,level = self.searchExactAlarm(keyspace,clientID,datasetID,row,columnName) if alarmed == "" and extRec == "" and level =="": # No había alarma anterior alarmed=[] alarmed.append(2) inserData,valuesList = usefulLibrary.createRecordAlarm(keyspace,datasetID,clientID,row,columnName,alarmed,dicAlarmsClusT[row],False,procID) self.executeDBinsert(inserData,valuesList) else: # había alarma anterior if 2 not in alarmed: # Si ya está en la lista este tipo de alarma no la metemos otra vez (se habrá ejecutado dos veces el proc) alarmed.append(2) # Nuevo tipo de alarma if level == 'LOW': newLevel = dicAlarmsClusT[row] elif level == 'MEDIUM' and dicAlarmsClusT[row] in ['CRITICAL','HIGH']: newLevel = dicAlarmsClusT[row] elif level == 'HIGH' and dicAlarmsClusT[row] == 'CRITICAL': newLevel = dicAlarmsClusT[row] elif level == 'CRITICAL': newLevel = level else: newLevel = level inserData,valuesList = usefulLibrary.createRecordAlarm(keyspace,datasetID,clientID,row,columnName,alarmed,newLevel,False,procID) self.executeDBinsert(inserData,valuesList)
def insertAlarmS(self,keyspace,dicHeader,dicAlarmReal,dicL0,alarmed,procID): for alarm in dicAlarmReal.keys(): inserData,valuesList = usefulLibrary.createRecordAlarm(keyspace,dicHeader['datasetID'],dicHeader['clientID'],dicAlarmReal[alarm]['x'],dicL0[dicAlarmReal[alarm]['y']],alarmed,'LOW',False,procID) self.executeDBinsert(inserData,valuesList)