Exemple #1
0
 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)
Exemple #2
0
 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)
Exemple #3
0
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)
Exemple #4
0
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)   
Exemple #5
0
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)
Exemple #6
0
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)