def setup(self): """ Setup NFS in host. Mount NFS as configured. If a local nfs is requested, setup the NFS service and exportfs too. """ if self.nfs_setup: if not self.nfs_service.status(): logging.debug("Restart NFS service.") self.rpcbind_service.restart() self.nfs_service.restart() if not utils_misc.check_isdir(self.export_dir, session=self.session): utils_misc.make_dirs(self.export_dir, session=self.session) self.rm_export_dir = True self.exportfs.export() self.unexportfs_in_clean = not self.exportfs.already_exported logging.debug("Mount %s to %s" % (self.mount_src, self.mount_dir)) if (utils_misc.check_exists(self.mount_dir, session=self.session) and not utils_misc.check_isdir(self.mount_dir, session=self.session)): raise OSError( "Mount point %s is not a directory, check your setup." % self.mount_dir) if not utils_misc.check_isdir(self.mount_dir, session=self.session): utils_misc.make_dirs(self.mount_dir, session=self.session) self.rm_mount_dir = True self.mount()
def create_or_clean_backend_dir(g_uri, params, session=None, is_clean=False): """ Create/cleanup backend directory :params g_uri: glusterfs uri :params params: the parameters to be checked :params session: VM/remote session object :params is_cleanup: True for cleanup backend directory; False for create one. :return: gluster_img if is_clean is equal to True """ mount_point = params.get("gluster_mount_dir") is_symlink = params.get("gluster_create_symlink") == "yes" symlink_name = params.get("gluster_symlink") gluster_img = None if not is_clean: if not utils_misc.check_exists(mount_point, session): utils_misc.make_dirs(mount_point, session) if gluster.glusterfs_is_mounted(mount_point, session): gluster.glusterfs_umount(g_uri, mount_point, session) gluster.glusterfs_mount(g_uri, mount_point, session) gluster_img = os.path.join(mount_point, disk_img) if is_symlink: utils_misc.make_symlink(mount_point, symlink_name) utils_misc.make_symlink(mount_point, symlink_name, remote_session) gluster_img = os.path.join(symlink_name, disk_img) return gluster_img else: if is_symlink: utils_misc.rm_link(symlink_name, session) gluster.glusterfs_umount(g_uri, mount_point, session) if utils_misc.check_exists(mount_point, session): utils_misc.safe_rmdir(gluster_mount_dir, session=session)