def refreshLiveData(self, cellname="") : """ update livedata for the cell : partition free and used space, DBVersions, list of Servers """ if cellname == "" : cellname = self._CFG.CELL_NAME cell=Cell() cell.FileServers=self.getFileServers() cell.DBServers=self.getDBServers() cell.PTDBSyncSite, cell.PTDBVersion,cell.PTDBState=self.getUbikDBInfo(cell.DBServers[0],7002) cell.VLDBSyncSite, cell.VLDBVersion,cell.VLDBState=self.getUbikDBInfo(cell.DBServers[0],7003) cell.size,cell.used,cell.free=self.getUsage() return True
def getCellInfo(self, cellname="", cached=False): """ just return internal cell object """ if cached : return self._getFromCache() # refresh whole new CellObj cell=Cell() cell.Name=self._CFG.CELL_NAME cell.FileServers=self._getFileServers() cell.DBServers=self._getDBServers() cell.PTDBSyncSite, cell.PTDBVersion=self._getUbikDBInfo(7002) cell.VLDBSyncSite, cell.VLDBVersion=self._getUbikDBInfo(7003) if self._CFG.DB_CACHE : self._setIntoCache(cell) return cell
def getCellInfo(self, cellname="", _user="", cached=False) : """ return full Cellobject. """ if cellname == "" : cellname = self._CFG.CELL_NAME self.Logger.debug("Using cellname : %s " % cellname) if cached : cell=self.DBManager.getFromCache(Cell,Name = cellname) if cell == None : self.Logger.info("getCellInfo: Cannot get cached Cell. Returning none.") return cell self.Logger.debug("getCellInfo: Cell.udate=%s" % cell.udate) # update Sums etc. from DB_CACHE cell.Name=cellname self.Logger.debug("getCellInfo: Cell.FileServers=%s" % cell.FileServers) cell.numRW = cell.numRO = cell.numBK = cell.numOffline = 0 numVolDict=self.bulk_getNumVolumes() for f in cell.FileServers : self.Logger.debug("getCellInfo: f=%s" % f) uuid = afs.LookupUtil[self._CFG.CELL_NAME].getFSUUID(f) if numVolDict.has_key(uuid) : cell.numRW += numVolDict[uuid].get("RW",0) cell.numRO += numVolDict[uuid].get("RO",0) cell.numBK += numVolDict[uuid].get("BK",0) cell.numOffline = -1 cell.numUsers,cell.numGroups = self.getPTInfo(cached=True) cell.allocated,cell.allocated_stale = self.getAllocated() cell.size,cell.used,cell.free=self.getUsage(cached=True) cell.Projects=[] # Projects are in DB_CACHE only for p in self.PS.getProjectList() : cell.Projects.append(p.name) self.Logger.debug("Cell=%s" % cell) return cell # refresh whole new CellObj cell=Cell() cell.Name=cellname cell.FileServers=self.getFileServers() cell.DBServers=self.getDBServers() cell.PTDBSyncSite, cell.PTDBVersion,cell.PTDBState=self.getUbikDBInfo(cell.DBServers[0],7002) cell.VLDBSyncSite, cell.VLDBVersion,cell.VLDBState=self.getUbikDBInfo(cell.DBServers[0],7003) cell.numRW = cell.numRO = cell.numBK = cell.numOffline = 0 for f in cell.FileServers : numRW,numRO,numBK,numOffline = self.FS.getNumVolumes(name_or_ip=f,cached=True) cell.numRW += numRW cell.numRO += numRO cell.numBK += numBK cell.numOffline += numOffline cell.numUsers,cell.numGroups = self.getPTInfo() cell.size,cell.used,cell.free=self.getUsage() # some information are only available if DB_CACHE is used. cell.allocated,cell.allocated_stale = -1,-1 cell.Projects=[] # Projects are in DB_CACHE only if self._CFG.DB_CACHE : for p in self.PS.getProjectList() : cell.Projects.append(p.name) cell.allocated,cell.allocated_stale = self.getAllocated() self.Logger.debug("Cell=%s" % Cell) self.DBManager.setIntoCache(Cell,cell,Name=self._CFG.CELL_NAME) return cell