Example #1
0
    def initialize(self):

        self.SystemLoggingDB = SystemLoggingDB()

        self.period = int(self.am_getOption("RemoveDate", '30')) * day

        return S_OK()
Example #2
0
    def initialize(self):

        self.systemLoggingDB = SystemLoggingDB()

        self.notification = NotificationClient()

        userList = self.am_getOption("Reviewer", [])

        self.log.debug("Users to be notified:", ', '.join(userList))

        mailList = []
        for user in userList:
            mail = getUserOption(user, 'Email', '')
            if not mail:
                self.log.warn("Could not get user's mail", user)
            else:
                mailList.append(mail)

        if not mailList:
            mailList = Operations().getValue('EMail/Logging', [])

        if not len(mailList):
            errString = "There are no valid users in the mailing list"
            varString = "[" + ','.join(userList) + "]"
            self.log.warn(errString, varString)

        self.log.info("List of mails to be notified", ','.join(mailList))

        self._mailAddress = mailList
        self._subject = 'New error messages were entered in the SystemLoggingDB'
        return S_OK()
Example #3
0
  def initialize(self):
 
    self.SystemLoggingDB = SystemLoggingDB()

    self.notification=NotificationClient()
        
    userString = self.am_getOption( "Reviewer", 'mseco' )
    
    self.log.debug( "Users to be notified", ": " + userString )
   
    userList = List.fromChar( userString, ",")
    
    mailList = []
    for user in userList:
      retval = gConfig.getOption( "/Registry/Users/" + user + "/Email" )
      if not retval['OK']:
        self.log.warn( "Could not get user's mail", retval['Message'] )
      else:
        mailList.append( retval['Value'] )
        
    if not mailList:
      mailList = gConfig.getValue( '/Operations/EMail/Logging', [] )

    if not len(mailList):
      errString = "There are no valid users in the list"
      varString = "[" + ','.join( userList ) + "]"
      self.log.error( errString, varString )
      return S_ERROR( errString + varString )
    
    self.log.info( "List of mails to be notified", ','.join( mailList ) )
   
    self._mailAddress = mailList
    self._subject = 'New error messages were entered in the SystemLoggingDB'
    return S_OK()
Example #4
0
  def test_addAndRemove(self):
    """ Some test cases
    """

    systemName = 'TestSystem'
    subSystemName = 'TestSubSystem'
    level = 10
    time = toString()
    msgTest = 'Hello'
    variableText = time
    frameInfo = ""
    message = tupleToMessage((systemName, level, time, msgTest, variableText, frameInfo, subSystemName))
    site = 'somewehere'
    longSite = 'somewehere1234567890123456789012345678901234567890123456789012345678901234567890'
    nodeFQDN = '127.0.0.1'
    userDN = 'Yo'
    userGroup = 'Us'
    remoteAddress = 'elsewhere'

    records = 10

    db = SystemLoggingDB()
    res = db._connect()
    self.assertTrue(res['OK'])

    gLogger.info('\n Inserting some records\n')
    for k in xrange(records):
      result = db.insertMessage(message, site, nodeFQDN, userDN, userGroup, remoteAddress)
      self.assertTrue(result['OK'])
      self.assertEqual(result['lastRowId'], k + 1)
      self.assertEqual(result['Value'], 1)

    result = db._queryDB(showFieldList=['SiteName'])
    self.assertTrue(result['OK'])
    self.assertEqual(result['Value'][0][0], site)

    result = db._queryDB(showFieldList=['SystemName'])
    self.assertTrue(result['OK'])
    self.assertEqual(result['Value'][0][0], systemName)

    result = db._queryDB(showFieldList=['SubSystemName'])
    self.assertTrue(result['OK'])
    self.assertEqual(result['Value'][0][0], subSystemName)

    result = db._queryDB(showFieldList=['OwnerGroup'])
    self.assertTrue(result['OK'])
    self.assertEqual(result['Value'][0][0], userGroup)

    result = db._queryDB(showFieldList=['FixedTextString'])
    self.assertTrue(result['OK'])
    self.assertEqual(result['Value'][0][0], msgTest)

    result = db._queryDB(showFieldList=['VariableText', 'SiteName'], count=True, groupColumn='VariableText')
    self.assertTrue(result['OK'])
    self.assertEqual(result['Value'][0][1], site)
    self.assertEqual(result['Value'][0][2], records)

    result = db.insertMessage(message, longSite, nodeFQDN, userDN, userGroup, remoteAddress)
    self.assertFalse(result['OK'])
Example #5
0
def initializeSystemLoggingHandler(serviceInfo):
    """ Check that we can connect to the DB and that the tables are properly created or updated
  """
    global gLogDB
    gLogDB = SystemLoggingDB()
    res = gLogDB._connect()
    if not res['OK']:
        return res

    return S_OK()
Example #6
0
def initializeSystemLoggingHandler( serviceInfo ):
  """ Check that we can connect to the DB and that the tables are properly created or updated
  """
  global gLogDB
  gLogDB = SystemLoggingDB()
  res = gLogDB._connect()
  if not res['OK']:
    return res
  res = gLogDB._checkTable()
  if not res['OK'] and not res['Message'] == 'The requested table already exist':
    return res

  return S_OK()
Example #7
0
def initializeSystemLoggingHandler(serviceInfo):
    """ Check that we can connect to the DB and that the tables are properly created or updated

      :param dict serviceInfo: service information dictionary

      :return: S_OK()/S_ERROR()
  """
    global gLogDB
    gLogDB = SystemLoggingDB()
    res = gLogDB._connect()
    if not res['OK']:
        return res

    return S_OK()
Example #8
0
  def initialize(self):

    self.systemLoggingDB = SystemLoggingDB()

    self.agentName = self.am_getModuleParam('fullName')

    self.notification = NotificationClient()

    mailList = self.am_getOption("MailList", [])

    userList = self.am_getOption("Reviewer", [])

    self.log.debug("Users to be notified:", ', '.join(userList))

    for user in userList:
      mail = getUserOption(user, 'Email', '')
      if not mail:
        self.log.warn("Could not get user's mail", user)
      else:
        mailList.append(mail)

    if not mailList:
      mailList = Operations().getValue('EMail/Logging', [])

    if not mailList:
      errString = "There are no valid users in the list of email where to send the report"
      errString += "\nPlease specify some in Operations/<default>/EMail/Logging"
      varString = "[" + ','.join(userList) + "]"
      self.log.error(errString, varString)
      return S_ERROR(errString + varString)

    self.log.info("List of mails to be notified", ','.join(mailList))
    self._mailAddress = mailList
    self._threshold = int(self.am_getOption('Threshold', 10))

    self.__days = self.am_getOption('QueryPeriod', 7)
    self._period = int(self.__days) * day
    self._limit = int(self.am_getOption('NumberOfErrors', 10))

    string = "The %i most common errors in the SystemLoggingDB" % self._limit
    self._subject = string + " for the last %s days" % self.__days
    return S_OK()
Example #9
0
    def initialize(self):

        self.SystemLoggingDB = SystemLoggingDB()

        self.agentName = self.am_getModuleParam('fullName')

        self.notification = NotificationClient()

        mailList = self.am_getOption("MailList", [])

        userString = self.am_getOption("Reviewer", 'mseco')
        userList = List.fromChar(userString, ",")
        self.log.debug("Users to be notified", ": " + userString)
        for user in userList:
            retval = gConfig.getOption("/Registry/Users/" + user + "/email")
            if not retval['OK']:
                self.log.warn("Could not get user's mail", retval['Message'])
            else:
                mailList.append(retval['Value'])

        if not mailList:
            mailList = gConfig.getValue('/Operations/EMail/Logging', [])

        if not len(mailList):
            errString = "There are no valid users in the list"
            varString = "[" + ','.join(userList) + "]"
            self.log.error(errString, varString)
            return S_ERROR(errString + varString)

        self.log.info("List of mails to be notified", ','.join(mailList))
        self._mailAddress = mailList
        self._threshold = int(self.am_getOption('Threshold', 10))

        self.__days = self.am_getOption('QueryPeriod', 7)
        self._period = int(self.__days) * day
        self._limit = int(self.am_getOption('NumberOfErrors', 10))

        string = "The %i most common errors in the SystemLoggingDB" % self._limit
        self._subject = string + " for the last %s days" % self.__days
        return S_OK()
def initializeSystemLoggingHandler(serviceInfo):

    global LogDB
    LogDB = SystemLoggingDB()
    return S_OK()
Example #11
0
 def setUp(self):
   self.db = SystemLoggingDB()
Example #12
0
# FIXME: to bring back to life

"""  This program tests that the Logging DB can be actually queried from DIRAC 
"""
import DIRAC
from DIRAC.FrameworkSystem.DB.SystemLoggingDB import SystemLoggingDB

DBpoint=SystemLoggingDB()

testList = [{'method': DBpoint.getMessagesByFixedText,
             'arguments': ( ( 'error message 1' ), ),
             'outputType': 'Type',
             'output': True},
            {'method': DBpoint.getMessagesByFixedText,
             'arguments': ( ( [ 'error message 1', 'error message 4' ] ), ),
             'outputType': 'Type',
             'output': True},
            {'method': DBpoint.getMessagesByDate,
             'arguments': ( '2007-08-24', '2007-08-26' , ),
             'outputType': 'Type',
             'output': True},
            {'method': DBpoint.getMessagesBySite,
             'arguments': ( ( 'Site1' ), ),
             'outputType': 'Type',
             'output': True},
            {'method': DBpoint.getMessagesBySite,
             'arguments': ( ( [ 'Site1', 'Site2' ] ), ),
             'outputType': 'Type',
             'output': True}, ]

testdict = { 'SystemLoggingDB': testList,}