VirtualBox

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


Ignore:
Timestamp:
Nov 23, 2009 6:48:14 PM (15 years ago)
Author:
vboxsync
Message:

Documentation+Frontends/VBoxManage: update documentation to reflect current terminology, and clean up image registration and unregistration. While at it, implement a delete option when unregistering an image.

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

Legend:

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

    r24590 r24884  
    288288        if (SUCCEEDED(rc) && progress)
    289289        {
    290             showProgress(progress);
    291             if (SUCCEEDED(rc))
     290            rc = showProgress(progress);
     291            if (FAILED(rc))
    292292            {
    293                 LONG iRc;
    294                 progress->COMGETTER(ResultCode)(&iRc);
    295                 rc = iRc;
    296                 if (FAILED(rc))
     293                com::ProgressErrorInfo info(progress);
     294                if (info.isBasicAvailable())
     295                    RTPrintf("Error: failed to create hard disk. Error message: %lS\n", info.getText().raw());
     296                else
     297                    RTPrintf("Error: failed to create hard disk. No error message available!\n");
     298            }
     299            else
     300            {
     301                doClose = !fRemember;
     302
     303                Bstr uuid;
     304                CHECK_ERROR(hardDisk, COMGETTER(Id)(uuid.asOutParam()));
     305
     306                if (DiskType == MediumType_Writethrough)
    297307                {
    298                     com::ProgressErrorInfo info(progress);
    299                     if (info.isBasicAvailable())
    300                         RTPrintf("Error: failed to create hard disk. Error message: %lS\n", info.getText().raw());
    301                     else
    302                         RTPrintf("Error: failed to create hard disk. No error message available!\n");
     308                    CHECK_ERROR(hardDisk, COMSETTER(Type)(MediumType_Writethrough));
    303309                }
    304                 else
    305                 {
    306                     doClose = !fRemember;
    307 
    308                     Bstr uuid;
    309                     CHECK_ERROR(hardDisk, COMGETTER(Id)(uuid.asOutParam()));
    310 
    311                     if (DiskType == MediumType_Writethrough)
    312                     {
    313                         CHECK_ERROR(hardDisk, COMSETTER(Type)(MediumType_Writethrough));
    314                     }
    315 
    316                     RTPrintf("Disk image created. UUID: %s\n", Utf8Str(uuid).raw());
    317                 }
     310
     311                RTPrintf("Disk image created. UUID: %s\n", Utf8Str(uuid).raw());
    318312            }
    319313        }
     
    482476            CHECK_ERROR(hardDisk, Compact(progress.asOutParam()));
    483477            if (SUCCEEDED(rc))
    484             {
    485                 showProgress(progress);
    486                 LONG iRc;
    487                 progress->COMGETTER(ResultCode)(&iRc);
    488                 rc = iRc;
    489             }
     478                rc = showProgress(progress);
    490479            if (FAILED(rc))
    491480            {
     
    699688        CHECK_ERROR_BREAK(srcDisk, CloneTo(dstDisk, DiskVariant, NULL, progress.asOutParam()));
    700689
    701         showProgress(progress);
    702         LONG iRc;
    703         progress->COMGETTER(ResultCode)(&iRc);
    704         rc = iRc;
     690        rc = showProgress(progress);
    705691        if (FAILED(rc))
    706692        {
     
    14401426    else if (cmd == CMD_DVD)
    14411427    {
    1442         if (fDiskType || fSetImageId || fSetParentId)
     1428        if (fDiskType || fSetParentId)
    14431429            return errorSyntax(USAGE_OPENMEDIUM, "Invalid option for DVD images");
     1430        Bstr ImageIdStr = BstrFmt("%RTuuid", &ImageId);
    14441431        ComPtr<IMedium> dvdImage;
    1445         rc = a->virtualBox->OpenDVDImage(Bstr(Filename), Bstr(), dvdImage.asOutParam());
     1432        rc = a->virtualBox->OpenDVDImage(Bstr(Filename), ImageIdStr, dvdImage.asOutParam());
    14461433        if (rc == VBOX_E_FILE_ERROR)
    14471434        {
     
    14531440                return 1;
    14541441            }
    1455             CHECK_ERROR(a->virtualBox, OpenDVDImage(Bstr(szFilenameAbs), Bstr(), dvdImage.asOutParam()));
     1442            CHECK_ERROR(a->virtualBox, OpenDVDImage(Bstr(szFilenameAbs), ImageIdStr, dvdImage.asOutParam()));
    14561443        }
    14571444        else if (FAILED(rc))
    1458             CHECK_ERROR(a->virtualBox, OpenDVDImage(Bstr(Filename), Bstr(), dvdImage.asOutParam()));
     1445            CHECK_ERROR(a->virtualBox, OpenDVDImage(Bstr(Filename), ImageIdStr, dvdImage.asOutParam()));
    14591446    }
    14601447    else if (cmd == CMD_FLOPPY)
     
    14621449        if (fDiskType || fSetImageId || fSetParentId)
    14631450            return errorSyntax(USAGE_OPENMEDIUM, "Invalid option for floppy images");
     1451        Bstr ImageIdStr = BstrFmt("%RTuuid", &ImageId);
    14641452        ComPtr<IMedium> floppyImage;
    1465          rc = a->virtualBox->OpenFloppyImage(Bstr(Filename), Bstr(), floppyImage.asOutParam());
     1453        rc = a->virtualBox->OpenFloppyImage(Bstr(Filename), ImageIdStr, floppyImage.asOutParam());
    14661454        if (rc == VBOX_E_FILE_ERROR)
    14671455        {
     
    14731461                return 1;
    14741462            }
    1475             CHECK_ERROR(a->virtualBox, OpenFloppyImage(Bstr(szFilenameAbs), Bstr(), floppyImage.asOutParam()));
     1463            CHECK_ERROR(a->virtualBox, OpenFloppyImage(Bstr(szFilenameAbs), ImageIdStr, floppyImage.asOutParam()));
    14761464        }
    14771465        else if (FAILED(rc))
    1478             CHECK_ERROR(a->virtualBox, OpenFloppyImage(Bstr(Filename), Bstr(), floppyImage.asOutParam()));
     1466            CHECK_ERROR(a->virtualBox, OpenFloppyImage(Bstr(Filename), ImageIdStr, floppyImage.asOutParam()));
    14791467    }
    14801468
     
    14871475    { "dvd",            'D', RTGETOPT_REQ_NOTHING },
    14881476    { "floppy",         'f', RTGETOPT_REQ_NOTHING },
     1477    { "--delete",       'r', RTGETOPT_REQ_NOTHING },
    14891478};
    14901479
     
    14991488    } cmd = CMD_NONE;
    15001489    const char *FilenameOrUuid = NULL;
     1490    bool fDelete = false;
    15011491
    15021492    int c;
     
    15251515                    return errorSyntax(USAGE_CLOSEMEDIUM, "Only one command can be specified: '%s'", ValueUnion.psz);
    15261516                cmd = CMD_FLOPPY;
     1517                break;
     1518
     1519            case 'r':   // --delete
     1520                fDelete = true;
    15271521                break;
    15281522
     
    15571551        return errorSyntax(USAGE_CLOSEMEDIUM, "Disk name or UUID required");
    15581552
     1553    ComPtr<IMedium> medium;
     1554
    15591555    /* first guess is that it's a UUID */
    15601556    Bstr uuid(FilenameOrUuid);
     
    15621558    if (cmd == CMD_DISK)
    15631559    {
    1564         ComPtr<IMedium> hardDisk;
    1565         rc = a->virtualBox->GetHardDisk(uuid, hardDisk.asOutParam());
     1560        rc = a->virtualBox->GetHardDisk(uuid, medium.asOutParam());
    15661561        /* not a UUID or not registered? Then it must be a filename */
    1567         if (!hardDisk)
    1568         {
    1569             CHECK_ERROR(a->virtualBox, FindHardDisk(Bstr(FilenameOrUuid), hardDisk.asOutParam()));
    1570         }
    1571         if (SUCCEEDED(rc) && hardDisk)
    1572         {
    1573             CHECK_ERROR(hardDisk, Close());
     1562        if (!medium)
     1563        {
     1564            CHECK_ERROR(a->virtualBox, FindHardDisk(Bstr(FilenameOrUuid), medium.asOutParam()));
    15741565        }
    15751566    }
     
    15771568    if (cmd == CMD_DVD)
    15781569    {
    1579         ComPtr<IMedium> dvdImage;
    1580         rc = a->virtualBox->GetDVDImage(uuid, dvdImage.asOutParam());
     1570        rc = a->virtualBox->GetDVDImage(uuid, medium.asOutParam());
    15811571        /* not a UUID or not registered? Then it must be a filename */
    1582         if (!dvdImage)
    1583         {
    1584             CHECK_ERROR(a->virtualBox, FindDVDImage(Bstr(FilenameOrUuid), dvdImage.asOutParam()));
    1585         }
    1586         if (SUCCEEDED(rc) && dvdImage)
    1587         {
    1588             CHECK_ERROR(dvdImage, Close());
     1572        if (!medium)
     1573        {
     1574            CHECK_ERROR(a->virtualBox, FindDVDImage(Bstr(FilenameOrUuid), medium.asOutParam()));
    15891575        }
    15901576    }
     
    15921578    if (cmd == CMD_FLOPPY)
    15931579    {
    1594         ComPtr<IMedium> floppyImage;
    1595         rc = a->virtualBox->GetFloppyImage(uuid, floppyImage.asOutParam());
     1580        rc = a->virtualBox->GetFloppyImage(uuid, medium.asOutParam());
    15961581        /* not a UUID or not registered? Then it must be a filename */
    1597         if (!floppyImage)
    1598         {
    1599             CHECK_ERROR(a->virtualBox, FindFloppyImage(Bstr(FilenameOrUuid), floppyImage.asOutParam()));
    1600         }
    1601         if (SUCCEEDED(rc) && floppyImage)
    1602         {
    1603             CHECK_ERROR(floppyImage, Close());
    1604         }
     1582        if (!medium)
     1583        {
     1584            CHECK_ERROR(a->virtualBox, FindFloppyImage(Bstr(FilenameOrUuid), medium.asOutParam()));
     1585        }
     1586    }
     1587
     1588    if (SUCCEEDED(rc) && medium)
     1589    {
     1590        if (fDelete)
     1591        {
     1592            ComPtr<IProgress> progress;
     1593            CHECK_ERROR(medium, DeleteStorage(progress.asOutParam()));
     1594            if (SUCCEEDED(rc))
     1595            {
     1596                rc = showProgress(progress);
     1597                if (FAILED(rc))
     1598                {
     1599                    com::ProgressErrorInfo info(progress);
     1600                    if (info.isBasicAvailable())
     1601                        RTPrintf("Error: failed to delete medium. Error message: %lS\n", info.getText().raw());
     1602                    else
     1603                        RTPrintf("Error: failed to delete medium. No error message available!\n");
     1604                }
     1605            }
     1606            else
     1607                RTPrintf("Error: failed to delete medium. Error code %Rrc\n", rc);
     1608        }
     1609        CHECK_ERROR(medium, Close());
    16051610    }
    16061611
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp

    r24874 r24884  
    343343        RTPrintf("VBoxManage openmedium       disk|dvd|floppy <filename>\n"
    344344                 "                            [--type normal|immutable|writethrough] (disk only)\n"
     345                 "                            [--uuid <uuid>]\n"
     346                 "                            [--parentuuid <uuid>] (disk only)\n"
    345347                 "\n");
    346348    }
     
    349351    {
    350352        RTPrintf("VBoxManage closemedium      disk|dvd|floppy <uuid>|<filename>\n"
     353                 "                            [--delete]\n"
    351354                 "\n");
    352355    }
Note: See TracChangeset for help on using the changeset viewer.

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