Changeset 2382 in MondoRescue for branches/2.2.10/mondo/src/mondorestore


Ignore:
Timestamp:
Sep 10, 2009, 2:07:16 AM (15 years ago)
Author:
Bruno Cornec
Message:
  • Change NFS support into a NetFS support to allow for multiple protocol in addition to NFS (NEEDS TESTING)

(Backport from 2.2.9)

Location:
branches/2.2.10/mondo/src/mondorestore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2.10/mondo/src/mondorestore/mondo-rstr-newt.c

    r2357 r2382  
    22892289    }
    22902290
    2291     if (does_file_exist("/tmp/NFS-SERVER-PATH")) {
     2291    if (does_file_exist("/tmp/NETFS-SERVER-PATH")) {
    22922292        mr_free(idev);
    2293         idev = last_line_of_file("/tmp/NFS-SERVER-MOUNT");
    2294         mr_asprintf(isodir_format, "nfs");
     2293        idev = last_line_of_file("/tmp/NETFS-SERVER-MOUNT");
     2294        mr_asprintf(isodir_format, "netfs");
    22952295        mr_free(isodir_path);
    2296         isodir_path = last_line_of_file("/tmp/NFS-SERVER-PATH");
     2296        isodir_path = last_line_of_file("/tmp/NETFS-SERVER-PATH");
    22972297    }
    22982298
  • branches/2.2.10/mondo/src/mondorestore/mondo-rstr-tools.c

    r2376 r2382  
    77#include "my-stuff.h"
    88#include "mr_mem.h"
     9#include "mr_str.h"
    910#include "../common/mondostructures.h"
    1011#include "../common/libmondo.h"
     
    562563    }
    563564
    564     if (bkpinfo->backup_media_type == nfs) {
    565         log_msg(2, "Mounting for NFS thingy");
     565    if (bkpinfo->backup_media_type == netfs) {
     566        log_msg(2, "Mounting for Network thingy");
    566567        log_msg(2, "isodir = %s", bkpinfo->isodir);
    567568        if (!strcmp(bkpinfo->isodir, "/") && am_I_in_disaster_recovery_mode()) {
     
    570571            log_msg(1, "isodir is being set to %s", bkpinfo->isodir);
    571572        }
    572         if ((bkpinfo->isodir == NULL) || (bkpinfo->nfs_remote_dir == NULL) || (bkpinfo->prefix == NULL)) {
     573        if ((bkpinfo->isodir == NULL) || (bkpinfo->netfs_remote_dir == NULL) || (bkpinfo->prefix == NULL)) {
    573574            fatal_error("Unable to prepare the iso filename");
    574575        }
    575576#ifdef __FreeBSD__
    576         mr_asprintf(mount_cmd, "/mnt/isodir/%s/%s/%s-%d.iso", bkpinfo->isodir, bkpinfo->nfs_remote_dir, bkpinfo->prefix, g_current_media_number);
     577        mr_asprintf(mount_cmd, "/mnt/isodir/%s/%s/%s-%d.iso", bkpinfo->isodir, bkpinfo->netfs_remote_dir, bkpinfo->prefix, g_current_media_number);
    577578        mddev = make_vn(mount_cmd);
    578579        mr_free(mount_cmd);
     
    580581        mr_asprintf(mount_cmd, "mount_cd9660 -r %s " MNT_CDROM, mddev);
    581582#else
    582         mr_asprintf(mount_cmd, "mount %s/%s/%s-%d.iso -t iso9660 -o loop,ro %s", bkpinfo->isodir, bkpinfo->nfs_remote_dir, bkpinfo->prefix, g_current_media_number, MNT_CDROM);
     583        mr_asprintf(mount_cmd, "mount %s/%s/%s-%d.iso -t iso9660 -o loop,ro %s", bkpinfo->isodir, bkpinfo->netfs_remote_dir, bkpinfo->prefix, g_current_media_number, MNT_CDROM);
    583584#endif
    584585
     
    744745            mr_asprintf(bkpinfo->prefix, "%s", STD_PREFIX);
    745746        }
    746     } else if (!strcmp(value, "nfs")) {
    747         bkpinfo->backup_media_type = nfs;
     747    } else if (!strcmp(value, "netfs")) {
     748        bkpinfo->backup_media_type = netfs;
    748749        bkpinfo->please_dont_eject = TRUE;
    749750        mr_free(bkpinfo->prefix);
     
    757758        if (strstr(call_program_and_get_last_line_of_output("cat " CMDLINE), "pxe")) {
    758759            /* We need to override prefix value in PXE mode as it's
    759             * already done in start-nfs */
     760            * already done in start-netfs */
    760761            envtmp1 = getenv("imgname");
    761762            if (envtmp1 == NULL) {
     
    944945mr_free(tmp);
    945946
    946 if (bkpinfo->backup_media_type == nfs) {
     947if (bkpinfo->backup_media_type == netfs) {
    947948    if (!cfgf) {
    948         if (bkpinfo->nfs_mount) {
    949             log_msg(2, "nfs_mount remains %s", bkpinfo->nfs_mount);
    950         }
    951         if (bkpinfo->nfs_remote_dir) {
    952             log_msg(2, "nfs_remote_dir remains %s", bkpinfo->nfs_remote_dir);
     949        if (bkpinfo->netfs_mount) {
     950            log_msg(2, "netfs_mount remains %s", bkpinfo->netfs_mount);
     951        }
     952        if (bkpinfo->netfs_remote_dir) {
     953            log_msg(2, "netfs_remote_dir remains %s", bkpinfo->netfs_remote_dir);
    953954        }
    954955        log_msg(2, "...cos it wouldn't make sense to abandon the values that GOT ME to this config file in the first place");
    955956    } else {
    956         mr_free(bkpinfo->nfs_mount);
    957         bkpinfo->nfs_mount = read_cfg_var(g_mondo_cfg_file, "nfs-server-mount");
    958 
    959         mr_free(bkpinfo->nfs_remote_dir);
    960         bkpinfo->nfs_remote_dir = read_cfg_var(g_mondo_cfg_file, "nfs-server-path");
    961 
    962         if (bkpinfo->nfs_mount != NULL) {
    963             log_msg(2, "nfs_mount is %s", bkpinfo->nfs_mount);
    964         }
    965         if (bkpinfo->nfs_remote_dir != NULL) {
    966             log_msg(2, "nfs_remote_dir is %s", bkpinfo->nfs_remote_dir);
     957        mr_free(bkpinfo->netfs_mount);
     958        bkpinfo->netfs_mount = read_cfg_var(g_mondo_cfg_file, "netfs-server-mount");
     959
     960        mr_free(bkpinfo->netfs_remote_dir);
     961        bkpinfo->netfs_remote_dir = read_cfg_var(g_mondo_cfg_file, "netfs-server-path");
     962
     963        if (bkpinfo->netfs_mount != NULL) {
     964            log_msg(2, "netfs_mount is %s", bkpinfo->netfs_mount);
     965        }
     966        if (bkpinfo->netfs_remote_dir != NULL) {
     967            log_msg(2, "netfs_remote_dir is %s", bkpinfo->netfs_remote_dir);
     968        }
     969        if (bkpinfo->netfs_proto != NULL) {
     970            log_msg(2, "netfs_proto is %s", bkpinfo->netfs_proto);
    967971        }
    968972    }
    969973    if (strstr(call_program_and_get_last_line_of_output("cat " CMDLINE), "pxe")) {
    970974        /* We need to override values in PXE mode as it's
    971         * already done in start-nfs */
    972         envtmp1 = getenv("nfsmount");
     975        * already done in start-netfs */
     976        envtmp1 = getenv("netfsmount");
    973977        if (envtmp1 == NULL) {
    974             fatal_error("no nfsmount variable in environment");
     978            fatal_error("no netfsmount variable in environment");
    975979        }
    976980        envtmp2 = getenv("dirimg");
     
    978982            fatal_error("no dirimg variable in environment");
    979983        }
    980         mr_free(bkpinfo->nfs_mount);
    981         mr_asprintf(bkpinfo->nfs_mount, "%s", envtmp1);
    982 
    983         mr_free(bkpinfo->nfs_remote_dir);
    984         mr_asprintf(bkpinfo->nfs_remote_dir, "%s", envtmp2);
     984        mr_free(bkpinfo->netfs_mount);
     985        mr_asprintf(bkpinfo->netfs_mount, "%s", envtmp1);
     986
     987        mr_free(bkpinfo->netfs_remote_dir);
     988        mr_asprintf(bkpinfo->netfs_remote_dir, "%s", envtmp2);
    985989    }
    986990} else if (bkpinfo->backup_media_type == iso) {
  • branches/2.2.10/mondo/src/mondorestore/mondorestore.c

    r2376 r2382  
    919919    mr_free(bkpinfo->restore_path);
    920920    mr_asprintf(bkpinfo->restore_path, "/");
    921     if (!g_restoring_live_from_cd && !g_restoring_live_from_nfs) {
     921    if (!g_restoring_live_from_cd && !g_restoring_live_from_netfs) {
    922922        popup_and_OK
    923923            ("Please insert tape/CD/USB Key, then hit 'OK' to continue.");
    924924        sleep(1);
    925925    }
    926     if (!g_restoring_live_from_nfs) {
     926    if (!g_restoring_live_from_netfs) {
    927927        interactively_obtain_media_parameters_from_user(FALSE);
    928928    }
     
    946946    load_raidtab_into_raidlist(raidlist, RAIDTAB_FNAME);
    947947
    948     if (!g_restoring_live_from_nfs && (filelist = process_filelist_and_biggielist())) {
     948    if (!g_restoring_live_from_netfs && (filelist = process_filelist_and_biggielist())) {
    949949        save_filelist(filelist, "/tmp/selected-files.txt");
    950950        mr_asprintf(old_restpath, "%s", bkpinfo->restore_path);
     
    28282828        mount_boot_if_necessary();  /* for Gentoo users */
    28292829        log_msg(2, "Still here.");
    2830         if (bkpinfo->backup_media_type == nfs) {
    2831             g_restoring_live_from_nfs = TRUE;
     2830        if (bkpinfo->backup_media_type == netfs) {
     2831            g_restoring_live_from_netfs = TRUE;
    28322832        }
    28332833        /* Adding an initialisation in order to avoid to hndle NULL pointer later */
     
    28612861        // BCO:To be reviewed
    28622862        if ((bkpinfo->restore_mode == compare) || (bkpinfo->restore_mode == nuke)) {
    2863             if (bkpinfo->backup_media_type == nfs && bkpinfo->nfs_mount && !is_this_device_mounted(bkpinfo->nfs_mount)) {
    2864                 log_msg(1, "Mounting nfs dir");
     2863            if (bkpinfo->backup_media_type == netfs && bkpinfo->netfs_mount && !is_this_device_mounted(bkpinfo->netfs_mount)) {
     2864                log_msg(1, "Mounting remote %s dir", bkpinfo->netfs_proto);
    28652865                mr_free(bkpinfo->isodir);
    28662866                mr_asprintf(bkpinfo->isodir, "/tmp/isodir");
    28672867                run_program_and_log_output("mkdir -p /tmp/isodir", 5);
    2868                 mr_asprintf(tmp, "mount %s -t nfs -o nolock,ro /tmp/isodir", bkpinfo->nfs_mount);
     2868                if (strstr(bkpinfo->netfs_proto, "sshfs")) {
     2869                    mr_asprintf(tmp, "sshfs -o ro %s /tmp/isodir", bkpinfo->netfs_mount);
     2870                } else {
     2871                    mr_asprintf(tmp, "mount %s -o nolock,ro /tmp/isodir", bkpinfo->netfs_mount);
     2872                }
    28692873                run_program_and_log_output(tmp, 1);
    28702874                mr_free(tmp);
  • branches/2.2.10/mondo/src/mondorestore/mr-externs.h

    r2352 r2382  
    107107extern bool g_text_mode;
    108108extern bool g_restoring_live_from_cd;
    109 extern bool g_restoring_live_from_nfs;
     109extern bool g_restoring_live_from_netfs;
    110110extern int fput_string_one_char_at_a_time(FILE *, char *);
    111111extern char *evaluate_mountlist(struct mountlist_itself *mountlist, int *res);
Note: See TracChangeset for help on using the changeset viewer.