Package com.cybozu.vmbkp.profile

Examples of com.cybozu.vmbkp.profile.ProfileGeneration


            (String.format
             ("[Gen %d \"%s\"]", genId, profVm_.getTimestampStr(genId)));

        if (profVm_.isGenerationSucceeded(genId)) {
            try {
                ProfileGeneration profGen =
                    loadProfileGeneration(genId);

                List<Integer> diskIdList = profGen.getDiskIdList();

                for (Integer diskId: diskIdList) {

                    sb.append
                        (String.format
                         ("[%d %s%s:%s %sB %s %ds]",
                          diskId,
                          profGen.getAdapterType(diskId).toTypeString(),
                          profGen.getBusNumber
                          (profGen.getControllerDeviceKey(diskId)),
                          profGen.getUnitNumber(diskId),
                          FormatInt.toString(profGen.getCapacity(diskId)),
                          profGen.getBackupMode(diskId).toString(),
                          profGen.getDumpElapsedTimeMs(diskId) / 1000L
                          ));
                }

            } catch (Exception e) {
                logger_.warning
View Full Code Here


        logger_.info(String.format("mode is %s.", mode.toString()));

        /* Get config/profile. */
        ConfigGlobal cfgGlobal = vmArcMgr.getConfigGlobal();
        ProfileGeneration profGen = vmArcMgr.getTargetGeneration();
        assert cfgGlobal != null;
        assert profGen != null;
       
       
        String vmdkBkp = cfgGlobal.getVmdkBkpPath();
        assert vmdkBkp != null;

        List<String> cmds = new LinkedList<String>();
        //cmds.add("echo");
        cmds.add(vmdkBkp);
        cmds.add("dump");

        cmds.add("--mode");
        if (mode == BackupMode.UNKNOWN) {
            logger_.warning("backup mode is unknown.");
            return false;
        }
        cmds.add(mode.toString());

        cmds.add("--server");
        cmds.add(cfgGlobal.getServername());
        cmds.add("--username");
        cmds.add(cfgGlobal.getUsername());
        cmds.add("--password");
        cmds.add(cfgGlobal.getPassword());

        cmds.add("--vm");
        cmds.add(vmMoref);
       
        cmds.add("--snapshot");
        cmds.add(profGen.getSnapshotMoref());

        cmds.add("--remote");
        cmds.add(profGen.getRemoteDiskPath(diskId));

        if (isSan) { cmds.add("--san"); }

        String prevDumpPath = null;
        if (mode == BackupMode.DIFF || mode == BackupMode.INCR) {
            cmds.add("--dumpin"); /* dumpIn */
            prevDumpPath = vmArcMgr.getPrevDumpPath(diskId);
            cmds.add(prevDumpPath);
        }
        cmds.add("--dumpout"); /* dumpOut */
        cmds.add(profGen.getDumpOutFileName(diskId));

        String prevDigestPath = null;
        if (mode == BackupMode.DIFF || mode == BackupMode.INCR) {
            cmds.add("--digestin"); /* digestIn */
            prevDigestPath = vmArcMgr.getPrevDigestPath(diskId);
            cmds.add(prevDigestPath);
        }
        cmds.add("--digestout"); /* digestOut */
        cmds.add(profGen.getDigestOutFileName(diskId));
       
        if (mode == BackupMode.INCR) {
            cmds.add("--bmpin"); /* bmpIn */
            cmds.add(profGen.getBmpInFileName(diskId));
        }
        if (mode == BackupMode.DIFF || mode == BackupMode.INCR) {
            cmds.add("--rdiffout"); /* rdiffOut */
            cmds.add(profGen.getRdiffOutFileName(diskId));
        }

        String joined = FormatString.join(cmds, " ");
        logger_.info(String.format("exec: %s\n", joined)); /* debug */
        //String squated = FormatString.toSingleQuatedString(joined);
        //logger_.info(String.format("squated: %s\n", squated)); /* debug */
       
        List<String> cmds2 = new LinkedList<String>();
        cmds2.add("/bin/sh");
        cmds2.add("-c");
        cmds2.add(joined);
       
        /* get working directory */
        String workDir = profGen.getDirectory();

        /* prepare output files for stdout/stderr. */
        String outFilePath = workDir + "/" + diskId + ".log";
        String errFilePath = workDir + "/" + diskId + ".err";
       
View Full Code Here

            return false;
        }

        /* Get config/profile. */
        ConfigGlobal cfgGlobal = vmArcMgr.getConfigGlobal();
        ProfileGeneration profGen = vmArcMgr.getTargetGeneration();

        /* Get the path list of archive files to restore
           the vmdk in the generation. */
        List<String> pathList =
            vmArcMgr.getDumpPathListForRestore(diskId);
        if (pathList == null) {
            logger_.warning("doRestore(): pathList is null" +
                            " then the vmdk restore is failed.");
            return false;
        }
        /* debug */
        StringBuffer sb = new StringBuffer();
        sb.append("-----pathlist-----\n");
        for (String path : pathList) {
            sb.append(path); sb.append("\n");
        }
        sb.append("------------------\n");
        logger_.info(sb.toString());

        /* Prepare vmdkbkp command line. */
        String vmdkBkp = cfgGlobal.getVmdkBkpPath();
        assert vmdkBkp != null;

        List<String> cmds = new LinkedList<String>();
        //cmds.add("echo");
        cmds.add(vmdkBkp);
        cmds.add("restore");

        cmds.add("--server");
        cmds.add(cfgGlobal.getServername());
        cmds.add("--username");
        cmds.add(cfgGlobal.getUsername());
        cmds.add("--password");
        cmds.add(cfgGlobal.getPassword());

        cmds.add("--vm");
        cmds.add(vmMoref);
        cmds.add("--snapshot");
        cmds.add(snapMoref);
        cmds.add("--remote");
        cmds.add(FormatString.toQuatedString(remoteVmdkPath));

        if (isSan) { cmds.add("--san"); }

        /* These are required to restoring empty thin vmdk. */
        String digestPath = vmArcMgr.getDigestPathForCheck(diskId);
        cmds.add("--digestin");
        cmds.add(digestPath);
        cmds.add("--omitzeroblock");

        /* All dump/rdiff path in line. */
        cmds.addAll(pathList);
       
        String joined = FormatString.join(cmds, " ");
        logger_.info(String.format("exec: %s\n", joined)); /* debug */

        List<String> cmds2 = new LinkedList<String>();
        cmds2.add("/bin/sh");
        cmds2.add("-c");
        cmds2.add(joined);

        /* workDir is not required indeed
           because all files are specified with full path. */
        String workDir = profGen.getDirectory();
        int genId = profGen.getGenerationId();
        String commonFilename =
            "vmdkbkp.restore." + vmMoref + "." + genId + "." + diskId;
        String outFilePath = workDir + "/" + commonFilename + ".log";
        String errFilePath = workDir + "/" + commonFilename + ".err";
           
View Full Code Here

            return false;
        }

        ConfigGlobal cfgGlobal_ = vmArcMgr.getConfigGlobal();
        if (cfgGlobal_ == null) { return false; }
        ProfileGeneration profGen = vmArcMgr.getTargetGeneration();
        if (profGen == null) { return false; }

        String vmMoref = vmArcMgr.getMoref();

        /* Get path list to generate the target vmdk file. */
        List<String> pathList =
            vmArcMgr.getDumpPathListForRestore(diskId);
        /* debug */
        StringBuffer sb = new StringBuffer();
        sb.append
            (String.format("----- Path list for disk %d -----\n", diskId));
        for (String path : pathList) {
            sb.append(path); sb.append("\n");
        }
        sb.append("------------------\n");
        System.out.print(sb.toString());
       
        /* Check all archive files is available. */
        boolean ret = true;
        for (String path: pathList) {
            /* Path string is quated. */
            path = FormatString.toUnquatedString(path);
            if ((new File(path)).canRead() == false) {
                System.out.printf("File %s is not available.\n", path);
                ret = false;
            }
        }

        String digestPath = vmArcMgr.getDigestPathForCheck(diskId);
        if ((digestPath != null &&
             (new File(digestPath)).canRead()) == false) {

            System.out.printf("File %s is not available.\n", digestPath);
            ret &= false;
        }
        if (ret == false) { return false; }


        String vmdkBkp = cfgGlobal_.getVmdkBkpPath();
        assert vmdkBkp != null;
       
        /* Really check archive contents. */
        List<String> cmds = new LinkedList<String>();
        //cmds.add("echo");
        cmds.add(vmdkBkp);
        cmds.add("check");

        cmds.add("--digestin");
        cmds.add(digestPath);

        for (String path: pathList) { cmds.add(path); }
        String joined = FormatString.join(cmds, " ");
        logger_.info(String.format("exec: %s\n", joined));
       
        List<String> cmds2 = new LinkedList<String>();
        cmds2.add("/bin/sh");
        cmds2.add("-c");
        cmds2.add(joined);
        String workDir = profGen.getDirectory();
        int genId = profGen.getGenerationId();
        String commonFilename =
            "vmdkbkp.check." + vmMoref + "." + genId + "." + diskId;
        String outFilePath = workDir + "/" + commonFilename + ".log";
        String errFilePath = workDir + "/" + commonFilename + ".err";

View Full Code Here

TOP

Related Classes of com.cybozu.vmbkp.profile.ProfileGeneration

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.