def get_hostname_by_fsuuid(self, uuid, _user = "", cached = True) : """ returns hostname of a fileserver by uuid """ self._logger.debug("called with %s, cached=%s" % (uuid, cached)) if cached : # local Cache first for hostname in self.memory_cache["fsuuids"] : if not is_name(hostname) : continue if self.memory_cache["fsuuids"][hostname] == uuid : self._logger.debug("returning from local cache: %s" % \ hostname) return hostname # then DB if self._config.DB_CACHE: from afs.util.DBManager import DBManager from afs.model.FileServer import FileServer this_dbmanager = DBManager(self._config) fileserver = this_dbmanager.get_from_cache(FileServer, \ uuid = uuid) self._logger.debug("looking up hostname in db_cache " + \ "for uuid=%s" % uuid) if fileserver != None : self.memory_cache["fsuuids"][fileserver.servernames[0]] = \ fileserver.uuid return fileserver.servernames[0] # not found in local cache and not in DB Cache, or cacheing disabled. # get it from live-system from afs.lla.VLDBLLA import VLDBLLA _vl_lla = VLDBLLA() name_or_ip = None for fileserver in _vl_lla.getFsServList(\ _cfg = self._config, _user="" ) : if fileserver['uuid'] == uuid : name_or_ip = fileserver['name_or_ip'] if name_or_ip == None : raise LookupUtilError("No Server with uuid=%s " + \ "registered in live-system" % uuid) # store it in memory_cache self._logger.debug("get_hostname_by_fsuuid: got " + \ " name_or_ip = %s from live-system" % name_or_ip) name_or_ip = self.get_dns_info(name_or_ip)["names"][0] self.memory_cache["fsuuids"][name_or_ip] = uuid self._logger.debug("returning: %s" % name_or_ip) return name_or_ip