Beispiel #1
0
def main():
    if len(sys.argv) != 2:
        sys.stderr.write("usage: %s VOLUME_NAME\n" % os.path.basename(sys.argv[0]))
        sys.exit(-1)

    volumeName = sys.argv[1]

    volumeMountDirName = "%s/%s" % (Globals.REEXPORT_DIR, volumeName)
    cifsDirName = "%s/%s" % (Globals.CIFS_EXPORT_DIR, volumeName)

    if not Utils.removeFile(cifsDirName):
        Utils.log("Failed to remove reexport link %s" % cifsDirName)
        sys.stderr.write("Failed to remove reexport link %s\n" % cifsDirName)
        sys.exit(1)
    if not VolumeUtils.excludeVolume(volumeName):
        Utils.log("Failed to exclude volume for CIFS reexport")
        sys.stderr.write("Failed to exclude volume for CIFS reexport\n")
        sys.exit(2)
    if Utils.runCommand("service smb reload") != 0:
        Utils.log("Failed to reload smb service")
        sys.stderr.write("Failed to reload smb service\n")
        sys.exit(3)
    if Utils.runCommand("grep '%s ' /etc/mtab" % (volumeMountDirName), shell=True) == 0:
        if Utils.runCommand("umount -fl %s" % (volumeMountDirName)) != 0:
            Utils.log("Failed to unmount volume %s" % (volumeName))
            sys.stderr.write("Failed to unmount volume %s\n" % (volumeName))
            sys.exit(4)
    sys.exit(0)
def main():
    if len(sys.argv) != 2:
        sys.stderr.write("usage: %s VOLUME_NAME\n" % os.path.basename(sys.argv[0]))
        sys.exit(-1)

    volumeName = sys.argv[1]

    volumeMountDirName = "%s/%s" % (Globals.REEXPORT_DIR, volumeName)
    cifsDirName = "%s/%s" % (Globals.CIFS_EXPORT_DIR, volumeName)

    if not Utils.removeFile(cifsDirName):
        Utils.log("Failed to remove reexport link %s" % cifsDirName)
        sys.stderr.write("Failed to remove reexport link %s\n" % cifsDirName)
        sys.exit(1)
    if not VolumeUtils.excludeVolume(volumeName):
        Utils.log("Failed to exclude volume for CIFS reexport")
        sys.stderr.write("Failed to exclude volume for CIFS reexport\n")
        sys.exit(2)
    if Utils.runCommand("service smb reload") != 0:
        Utils.log("Failed to reload smb service")
        sys.stderr.write("Failed to reload smb service\n")
        sys.exit(3)
    if Utils.runCommand("umount %s" % (volumeMountDirName)) != 0:
        Utils.log("Failed to unmount volume %s" % (volumeName))
        sys.stderr.write("Failed to unmount volume %s\n" % (volumeName))
        sys.exit(4)
    sys.exit(0)
def main():
    volumeInfo = getGlusterVolumeInfo()
    if not volumeInfo:
        print "No volume present.  Removing CIFS volume configuration if any"
        Utils.runCommand("rm -fr %s/*" % Globals.VOLUME_CONF_DIR, root=True, shell=True)
        Utils.runCommand("rm -fr %s/*" % Globals.REEXPORT_DIR, root=True, shell=True)
        Utils.runCommand("rm -fr %s/*" % Globals.CIFS_EXPORT_DIR, root=True, shell=True)
        sys.exit(0)

    lines = Utils.readFile(Globals.VOLUME_SMBCONF_FILE)
    volumeSmbConfList = [line.strip() for line in lines]
    for volumeName in volumeInfo.keys():
        if not "include = %s/%s.smbconf" % (Globals.VOLUME_CONF_DIR, volumeName) in volumeSmbConfList:
            continue
        if 'STOPPED' == volumeInfo[volumeName]['VolumeStatus'].upper():
            Utils.runCommand("rmdir %s/%s" % (Globals.CIFS_EXPORT_DIR, volumeName), root=True)
            if not VolumeUtils.excludeVolume(volumeName):
                Utils.log("Failed to exclude %s volume for CIFS reexport" % volumeName)
            continue
        if 'STARTED' == volumeInfo[volumeName]['VolumeStatus'].upper():
            volumeMountDirName = "%s/%s" % (Globals.REEXPORT_DIR, volumeName)
            if Utils.runCommand("mount -t glusterfs 127.0.0.1:%s %s" % (volumeName, volumeMountDirName)) != 0:
                Utils.log("Failed to mount volume %s" % (volumeName))

    smbConfFileList = glob.glob("%s/*.smbconf" % Globals.VOLUME_CONF_DIR)
    volumeList = [smbConfFileName.split(".smbconf")[0].split("/")[-1] for smbConfFileName in smbConfFileList]
    danglingVolumeList = list(set(volumeList).difference(set(volumeInfo.keys())))
    if not danglingVolumeList:
        sys.exit(0)

    print "Cleaning up dangling volume(s):", danglingVolumeList
    for volumeName in danglingVolumeList:
        Utils.runCommand("rmdir %s/%s" % (Globals.REEXPORT_DIR, volumeName), root=True)
        Utils.runCommand("rm -f %s/%s" % (Globals.CIFS_EXPORT_DIR, volumeName), root=True)
        if not VolumeUtils.excludeVolume(volumeName):
            Utils.log("Failed to exclude volume %s for CIFS reexport" % volumeName)
        Utils.runCommand("rm -f %s/%s.smbconf" % (Globals.VOLUME_CONF_DIR, volumeName), root=True)

    sys.exit(0)