def __initializeTables(self): '''Read the topology from ZIMon and (re-)construct the tables for metrics, keys, key elements (tag keys) and key values (tag values)''' self.__qh = QueryHandler(self.server, self.port, self.logger, self.apiKeyName, self.apiKeyValue) self.__sensorsConf = SensorConfig.readSensorsConfigFromMMSDRFS( self.logger) tstart = timer() self.__metaData = Topo(self.qh.getTopology()) tend = timer() if not (self.metaData and self.metaData.topo): raise ValueError(MSG['NoData']) foundItems = len(self.metaData.allParents) - 1 sensors = self.metaData.sensorsSpec.keys() self.logger.info(MSG['MetaSuccess']) self.logger.details(MSG['ReceivAttrValues'].format( 'parents totally', foundItems)) self.logger.debug(MSG['ReceivAttrValues'].format( 'parents', ", ".join(self.metaData.allParents))) self.logger.info(MSG['ReceivAttrValues'].format( 'sensors', ", ".join(sensors))) self.logger.details(MSG['TimerInfo'].format('Metadata', str(tend - tstart)))
def __initializeTables(self): '''Read the topology from ZIMon and (re-)construct the tables for metrics, keys, key elements (tag keys) and key values (tag values)''' self.__qh = QueryHandler(self.server, self.port, self.logger, self.apiKeyName, self.apiKeyValue) self.__sensorsConf = SensorConfig.readSensorsConfigFromMMSDRFS(self.logger) MAX_ATTEMPTS_COUNT = 3 for attempt in range(1, MAX_ATTEMPTS_COUNT + 1): tstart = timer() self.__metaData = Topo(self.qh.getTopology()) tend = timer() if not (self.metaData and self.metaData.topo): if attempt > MAX_ATTEMPTS_COUNT: break # if no data returned because of the REST HTTP server is still starting, sleep and retry (max 3 times) self.logger.warning(MSG['NoDataStartNextAttempt'].format(attempt, MAX_ATTEMPTS_COUNT)) sleep(self.sleepTime) else: foundItems = len(self.metaData.allParents) - 1 sensors = self.metaData.sensorsSpec.keys() self.logger.info(MSG['MetaSuccess']) self.logger.details(MSG['ReceivAttrValues'].format('parents totally', foundItems)) self.logger.debug(MSG['ReceivAttrValues'].format('parents', ", ".join(self.metaData.allParents))) self.logger.info(MSG['ReceivAttrValues'].format('sensors', ", ".join(sensors))) self.logger.details(MSG['TimerInfo'].format('Metadata', str(tend - tstart))) return raise ValueError(MSG['NoData'])
def validateCollectorConf(args, logger): if not (args.server == 'localhost') and not (args.server == '127.0.0.1'): try: s = socket.socket() s.connect((args.server, args.serverPort)) finally: s.close() else: #get queryport foundPorts = SensorConfig.getCollectorPorts(logger) if foundPorts and str(args.serverPort) not in foundPorts: raise Exception("Invalid serverPort specified. Try with: %s" % str(foundPorts)) elif foundPorts[1] and not (args.serverPort == int(foundPorts[1])): args.serverPort = int(foundPorts[1]) logger.info(MSG['Query2port'].format(args.serverPort))
def SensorsConfig(self): if not self.__sensorsConf or len(self.__sensorsConf) == 0: self.__sensorsConf = SensorConfig.readSensorsConfigFromMMSDRFS( self.logger) return self.__sensorsConf