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)