def getHostnameByFSUUID(self,uuid,_user="",cached=True) : """ returns hostname of a fileserver by uuid """ self.Logger.debug("called with %s, cached=%s" % (uuid,cached)) self.Logger.debug("self._CFG=%s" % (self._CFG)) if cached : # local Cache first for hn in self.localCache["FSUUIDs"] : if self.localCache["FSUUIDs"][hn] == uuid : return hn # then DB if self._CFG.DB_CACHE: from DBManager import DBManager from afs.model.FileServer import FileServer thisDBManager=DBManager(self._CFG) fs=thisDBManager.getFromCache(FileServer,uuid=uuid) self.Logger.debug("looking up hostname in DB_Cache for uuid=%s" % uuid) if fs != None : self.localCache["FSUUIDs"][fs.servernames[0]] = fs.uuid return fs.servernames[0] # not found in local cache and not in DB Cache, or cacheing disabled. # get it from live-system from afs.dao.VLDbDAO import VLDbDAO _vlDAO=VLDbDAO() name_or_ip=None for fs in _vlDAO.getFsServList(_cfg=self._CFG,_user="" ) : if fs['uuid'] == uuid : name_or_ip = fs['name_or_ip'] if name_or_ip == None : raise LookupUtilError("No Server with uuid=%s registered in live-system" % uuid) # store it in localCache self.Logger.debug("getHostnameByFSUUID: got name_or_ip =%s from live-system" % name_or_ip) name_or_ip=self.getDNSInfo(name_or_ip)["names"][0] self.localCache["FSUUIDs"][name_or_ip] = uuid self.Logger.debug("returning: %s" % name_or_ip) return name_or_ip