def SetLockfile(self,strFile): self.__LockFileName = FileCollector.convertPath(strFile)
def Collect(self): AddedNewDynamicCollectors = False try: fname = FileCollector.convertPath(self.__FileName) if None != self.__LockFileName: lockName = self.__LockFileName if False == WaitForLock(lockName ): Log.getLogger().error("Timeout getting exclusive lockfile: " + self.__LockFileName) return "HelenKeller" elapsedTime = self.GetElapsedTimeSinceLast() with open(self.__FileName,"rt") as inpFile: data = inpFile.read() if None != self.__LockFileName: try : os.remove(lockName) except Exception as ex: return "0" except Exception as Ex: if not self.__LoadWarningSent: self.__LoadWarningSent = True Log.getLogger().warn("Problem loading DynamicCollector File: " + self.__FileName +". No additional warnings after this") return "HelenKeller" #Entire file is now in Data and file is closed. So go parse it lines = data.split('\n') # might need os.linesp here.... ts = Time.GetFileTimestampMS(fname) timeDelta = ts - self.__PreviousTimestamp self.__PreviousTimestamp = ts # print("File Time Delta: " + str(timeDelta) + " Elapsed Time: " + str(elapsedTime) + "Entries: " + str(len(lines))) #altTokens=['= ',': ',':',' '] try: for line in lines: for firstToken in self.__TokenList: dataPoint = line.split(firstToken,1) if len(dataPoint) > 1: break if len(dataPoint) > 1: # filter out empties ID = dataPoint[0] Value = dataPoint[1] ID = ID.strip() Value = Value.strip() ID = self.__PrefixStr + ID + self.__SuffixStr objCollector = self._NamespaceObject.GetCollector(ID) if None == objCollector: objCollector = self.__createCollector(ID) Log.getLogger().debug("Dynamic Collector found with token: '" + firstToken + "'") objCollector.SetDynamicData(Value,elapsedTime) except Exception as ex: Log.getLogger().error("Something bad happened in DynamicCollector Collector(): " + str(ex)) return "HelenKeller"