VolumeType = afs.defaultConfig.VolumeType if afs.defaultConfig.VolumeName[-9:] == ".readonly" : VolumeName = afs.defaultConfig.VolumeName[:-9] VolumeType = "RO" else : VolumeName = afs.defaultConfig.VolumeName VolSize=parseHumanWriteableSize(afs.defaultConfig.VolumeSize)/1024 PS=ProjectService() # we get a list of Projects, sorted by the Nesting Level. # only get the most specific one PrjObj=PS.getProjectsByVolumeName(VolumeName)[0] if afs.defaultConfig.ProjectName != None : thisPrjObj=PS.getProjectByName(afs.defaultConfig.ProjectName) if thisPrjObj == None : myParser.error("Project \"%s\" does not exist" % afs.defaultConfig.ProjectName) if thisPrjObj.id != PrjObj.id : if not afs.defaultConfig.force : myParser.error("VolumeName \"%s\" not matched by given Project \"%s\"\n" % (VolumeName,afs.defaultConfig.ProjectName)) sys.exit(1) PrjObj = thisPrjObj if not PrjObj : sys.stderr.write("Cannot guess Project for volume %s" % VolumeName) VolObj=Volume() VolObj.name=VolumeName VolObj.type=VolumeType if VolObj.type == "RW" : RWServ,RWPart=(PS.getNewVolumeLocation(PrjObj.name,VolObj))
count += 1 else : print "Cannot parse : %s " % line sys.exit(0) elif afs.defaultConfig.addPrj == True : defaultDict=PrjObj.getDict() PrjDict=getProjDetailsFromKeyboard(defaultDict=defaultDict) PrjObj.setByDict(PrjDict) print "PrjObj: %s " % PrjObj PS.saveProject(PrjObj) elif afs.defaultConfig.rmPrj == True : if afs.defaultConfig.prjname == "" : name=raw_input("Name of project: ") else : name=afs.defaultConfig.prjname if PS.getProjectByName(name) == None : print "Found no project with name '%s'" % name PS.deleteProject(name) elif afs.defaultConfig.modifyPrj == True : if afs.defaultConfig.prjname == "" : name=raw_input("Name of project: ") else : name=afs.defaultConfig.prjname oldPrjDict=PS.getProjectByName(name).getDict() PrjDict=getProjDetailsFromKeyboard(defaultDict=oldPrjDict) PrjObj.setByDict(PrjDict) PS.saveProject(PrjObj) elif afs.defaultConfig.showFSList == True : for f in CellInfo.FileServers : print f elif afs.defaultConfig.updateVolumeMappings == True :