VirtualBox

Changeset 61483 in vbox for trunk/src/VBox/Frontends


Ignore:
Timestamp:
Jun 6, 2016 8:54:30 AM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
107813
Message:

bugref:8344. First variant of "move" operation for medium. Standalone task "MoveTask". "setLocation" Medium API method was implemented.

Location:
trunk/src/VBox/Frontends/VBoxManage
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageDisk.cpp

    r57358 r61483  
    478478    { "compact",        'c', RTGETOPT_REQ_NOTHING },    // deprecated
    479479    { "--resize",       'r', RTGETOPT_REQ_UINT64 },
    480     { "--resizebyte",   'R', RTGETOPT_REQ_UINT64 }
     480    { "--resizebyte",   'R', RTGETOPT_REQ_UINT64 },
     481    { "--move",         'm', RTGETOPT_REQ_STRING }
    481482};
    482483
     
    501502    bool fModifyCompact = false;
    502503    bool fModifyResize = false;
     504    bool fModifyLocation = false;
    503505    uint64_t cbResize = 0;
    504506    const char *pszFilenameOrUuid = NULL;
     507    const char *pszNewLocation = NULL;
    505508
    506509    int c;
     
    592595                break;
    593596
     597            case 'm':   // --move
     598                /* Get a new location  */
     599                pszNewLocation = RTStrDup(ValueUnion.psz);
     600                fModifyLocation = true;
     601                break;
     602
    594603            case VINF_GETOPT_NOT_OPTION:
    595604                if (!pszFilenameOrUuid)
     
    622631        return errorSyntax(USAGE_MODIFYMEDIUM, "Medium name or UUID required");
    623632
    624     if (!fModifyMediumType && !fModifyAutoReset && !fModifyProperties && !fModifyCompact && !fModifyResize)
     633    if (!fModifyMediumType && !fModifyAutoReset && !fModifyProperties && !fModifyCompact && !fModifyResize && !fModifyLocation)
    625634        return errorSyntax(USAGE_MODIFYMEDIUM, "No operation specified");
    626635
     
    703712                RTMsgError("Failed to resize medium!");
    704713        }
     714    }
     715
     716    if (fModifyLocation)
     717    {
     718        do
     719        {
     720            ComPtr<IProgress> pProgress;
     721            Utf8Str strLocation(pszNewLocation);
     722            CHECK_ERROR(pMedium, SetLocation(Bstr(pszNewLocation).raw(), pProgress.asOutParam()));
     723
     724            if (SUCCEEDED(rc) && !pProgress.isNull())
     725            {
     726                rc = showProgress(pProgress);
     727                CHECK_PROGRESS_ERROR(pProgress, ("Failed to move medium"));
     728            }
     729
     730            Bstr uuid;
     731            CHECK_ERROR_BREAK(pMedium, COMGETTER(Id)(uuid.asOutParam()));
     732
     733            RTPrintf("Move medium with UUID %s finished \n", Utf8Str(uuid).c_str());
     734        }
     735        while (0);
    705736    }
    706737
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp

    r61226 r61483  
    11351135                     "                            [--compact]\n"
    11361136                     "                            [--resize <megabytes>|--resizebyte <bytes>]\n"
     1137                     "                            [--move <full path to a new location>]"
    11371138                     "\n", SEP);
    11381139
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette