def testCreateWatchdog(self): idList = [] compNameDict = {} compIdDict = {} addrDict = {} portDict = {} dataDict = {} nextId = 1 for comp in ('stringHub#0', 'stringHub#10', 'inIceTrigger#0', 'simpleTrigger#0', 'iceTopTrigger#0', 'amandaTrigger#0', 'globalTrigger#0', 'eventBuilder#0', 'secondaryBuilders#0'): pound = comp.find('#') compName = comp[:pound] compId = int(comp[pound + 1:]) mbeans = self.__buildBeans(TestRunWatchdog.COMP_BEANS, comp) if compName == 'eventBuilder': self.__setStatic(mbeans, 'dispatch', 'backEnd', 'NumEventsSent') client = MockRPCClient(mbeans) id = nextId nextId += 1 idList.append(id) compNameDict[id] = compName compIdDict[id] = compId addrDict[id] = 'localhost' portDict[id] = 100 + id dataDict[id] = MockData(id, compName, compId, None, None, client) appender = MockAppender('log') wd = MockWatchdog(DAQLog(appender), 60.0, idList, compNameDict, compIdDict, addrDict, portDict, dataDict) self.failIf(wd.inProgress(), 'Watchdog should not be in progress') self.failIf(wd.isDone(), 'Watchdog should not be done') self.failIf(wd.isHealthy(), 'Watchdog should not be healthy') self.failIf(wd.caughtError(), 'Watchdog should not have error') appender.checkStatus(10) self.__runThread(wd, appender) for id in dataDict: dataDict[id].updateMBeanData() appender.addExpectedRegexp(r'\*\* Run watchdog reports stagnant' + r' components:.*') self.__runThread(wd, appender)
def testCreateWatchdogBadBean(self): id = 43 name = 'eventBuilder' compId = 83 comp = '%s#%d' % (name, compId) mbeans = self.__buildBeans({name: []}, comp) idList = [ id, ] compNameDict = {id: name} compIdDict = {id: compId} addrDict = {id: 'xxx'} portDict = {id: 543} dataDict = {id: None} appender = MockAppender('log') appender.addExpectedRegexp(r"Couldn't create watcher for component" + r' #%d type %s#%d: .*' % (id, name, compId)) wd = MockWatchdog(DAQLog(appender), None, idList, compNameDict, compIdDict, addrDict, portDict, dataDict)