def fsinit(self): '''File system initialisation.''' os.chdir(self.root) #Initial storage threads again to support non-debug mode: storage.initStorages(setting) #Synchronize cloud to mirror directory: storage.syncMirror(setting, self.root)
def infoAll(mode='all'): '''Overall info process.''' setting = common.Setting() setting.read(settingpath) storage.initStorages(setting) storage.checkHealth(setting) storage.syncMirror(setting, setting.mirrordir) #Get file list recrusively from directory: fileList = [] for root, dirs, files in os.walk(setting.mirrordir): for fl in files: filepath = '/'.join([root, fl]) filepath = filepath[len(setting.mirrordir):] if filepath[0] == '/': filepath = filepath[1:] fileList.append(filepath) if mode == 'all' or mode == 'node': #Info nodes: print "*** Node information ***" infoNode(setting) if mode == 'all' or mode == 'file': #Info files: print "*** File information ***" for targetFile in fileList: infoFile(setting, targetFile)
def rebuildNode(filter=[]): '''Overall rebuild process.''' settingOld = common.Setting() settingOld.read(settingpath) rebuildthreads = settingOld.rebuildthreads if rebuildthreads > 0: initRebuild(rebuildthreads) storage.initStorages(settingOld) storage.checkHealth(settingOld) #for i in range(settingOld.totalnode): # print "Node " + str(i) + " healthy = " + str(settingOld.nodeInfo[i].healthy) + "\n" #print "HealthyNodes = " + str(settingOld.healthynode) + "\n" storage.syncMirror(settingOld, settingOld.mirrordir) #Get file list recursively from directory: fileList = [] for root, dirs, files in os.walk(settingOld.mirrordir): for fl in files: filepath = '/'.join([root, fl]) filepath = filepath[len(settingOld.mirrordir) + 1:] if filepath[0] == '/': filepath = filepath[1:] fileList.append(filepath) #Get new setting: settingNew = getNewSetting(settingOld, settingpath) #Rebuild files recursively: for targetFile in fileList: if (filter == []) or (targetFile in filter): if rebuildthreads > 0: rebuildQueue.put( ('rebuildFile', (settingOld, settingNew, targetFile))) else: rebuildFile(settingOld, settingNew, targetFile) if rebuildthreads > 0: waitForRebuild() #Backup old setting file, write new setting file: #print "Rebuild finishes. Writing new setting file." shutil.copyfile(settingpath, settingpath + ".old") settingNew.write(settingpath)
def rebuildNode(filter=[]): '''Overall rebuild process.''' settingOld = common.Setting() settingOld.read(settingpath) rebuildthreads = settingOld.rebuildthreads if rebuildthreads > 0: initRebuild(rebuildthreads) storage.initStorages(settingOld) storage.checkHealth(settingOld) #for i in range(settingOld.totalnode): # print "Node " + str(i) + " healthy = " + str(settingOld.nodeInfo[i].healthy) + "\n" #print "HealthyNodes = " + str(settingOld.healthynode) + "\n" storage.syncMirror(settingOld, settingOld.mirrordir) #Get file list recursively from directory: fileList = [] for root, dirs, files in os.walk(settingOld.mirrordir): for fl in files: filepath = '/'.join([root, fl]) filepath = filepath[len(settingOld.mirrordir)+1:] if filepath[0] == '/': filepath = filepath[1:] fileList.append(filepath) #Get new setting: settingNew = getNewSetting(settingOld, settingpath) #Rebuild files recursively: for targetFile in fileList: if (filter == []) or (targetFile in filter): if rebuildthreads > 0: rebuildQueue.put(('rebuildFile',(settingOld, settingNew, targetFile))) else: rebuildFile(settingOld, settingNew, targetFile) if rebuildthreads > 0: waitForRebuild() #Backup old setting file, write new setting file: #print "Rebuild finishes. Writing new setting file." shutil.copyfile(settingpath, settingpath+".old") settingNew.write(settingpath)
def setUp(self): # Setup for testing: self.setting = common.Setting() self.setting.read(settingpath) storage.initStorages(self.setting) storage.checkHealth(self.setting)
def setUp(self): #Setup for testing: self.setting = common.Setting() self.setting.read(settingpath) storage.initStorages(self.setting) storage.checkHealth(self.setting)