Esempio n. 1
0
                         hasRO = True
                 if hasRO :  # find a second server to move the RO to then
                     dstSrv,dstP = PS.getNewVolumeLocation(PrjObj.name,ov)
                     if dstSrv == None :
                         sys.stderr.write("found no appropriate location for %s. Skipping\n" % VolObj.name)
                         continue
             except : # there is no RO, so just skip this.
                 continue 
         print "Moving accompanying RO to  %s %s" % (dstSrv,dstP)
         if not afs.defaultConfig.dryrun  :
             VlD.addsite(v["name"],dstSrv,dstP)
             VD.release(v["name"])
             # only remove accompanying RO from srcSRV if we are sure there is one!
             for ov in VS.getVolume("%s.readonly" % VolObj.name, cached=False) :
                 if ov.servername == srcFS.servernames[0] and ov.part == srcP :
                     VD.remove("%s.readonly" % v["name"],srcFS.servernames[0],srcP)
                     break
         movedVolcount += 1
         if movedVolcount > afs.defaultConfig.maxnum and afs.defaultConfig.maxnum > 0 :
             print "moved %d volumes. Terminating." % afs.defaultConfig.maxnum
             sys.exit(0)
         # check if partition is freed enough
         parts=FS.getPartitions(afs.defaultConfig.ssrv)
         if parts[srcP]["free"] > untilFree and untilFree > 0 :
             print "%s bytes free on spart %s." % (afs.util.afsutil.humanReadableSize(parts[srcP]["free"]),srcP )
             break
 if afs.defaultConfig.moveSolitaryROVols :
     for v in solitaryROVols :
         # get RWVolName
         RWVolName=v['name'][:-len(".readonly")]
         # check for moving osd-volumes
Esempio n. 2
0
parseDefaultConfig(myParser)
VD = VolumeLLA()
VS = VolService()

try:
    VolGroup = VS.getVolGroup(afs.defaultConfig.VolumeName)
except:
    print "Cannot get Volume group for %s. Are you sure it exists?" % afs.defaultConfig.VolumeName
    sys.exit(2)


print "Removing volume %s on following sites:" % afs.defaultConfig.VolumeName
print afs.defaultConfig.VolumeName, VolGroup["RW"][0].servername, VolGroup["RW"][0].part


for v in VolGroup["RO"]:
    print v.servername, v.part

sure = raw_input("Are you sure: [y/N] ?")

if not sure in ["y", "Y"]:
    print "Aborted."
    sys.exit(1)
print "Removing RW from: ", VolGroup["RW"][0].servername, VolGroup["RW"][0].part
VD.remove(afs.defaultConfig.VolumeName, VolGroup["RW"][0].servername, VolGroup["RW"][0].part)

for v in VolGroup["RO"]:
    print "Removing RO from :", v.servername, v.part
    VD.remove(afs.defaultConfig.VolumeName + ".readonly", v.servername, v.part)