Ejemplo n.º 1
0
 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.")
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
 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)