VirtualBox

Changeset 78841 in vbox


Ignore:
Timestamp:
May 29, 2019 11:24:39 AM (6 years ago)
Author:
vboxsync
Message:

bugref:9436. Added progress for getInstanceInfo. Now getInstanceInfo is run in async way.

Location:
trunk/src/VBox
Files:
4 edited

Legend:

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

    r78735 r78841  
    149149    { "--cloud",                'j', RTGETOPT_REQ_NOTHING},
    150150    { "--cloudprofile",         'k', RTGETOPT_REQ_STRING },
    151     { "--cloudinstanceid",      'l', RTGETOPT_REQ_STRING }
     151    { "--cloudinstanceid",      'l', RTGETOPT_REQ_STRING },
     152    { "--cloudbucket",          'B', RTGETOPT_REQ_STRING }
    152153};
    153154
     
    328329                                       GetState.pDef->pszLong);
    329330                mapArgsMapsPerVsys[ulCurVsys]["cloudinstanceid"] = ValueUnion.psz;
     331                break;
     332
     333            case 'B':   // --cloudbucket
     334                if (actionType != CLOUD)
     335                    return errorSyntax(USAGE_EXPORTAPPLIANCE, "Option \"%s\" requires preceding --cloud argument.",
     336                                       GetState.pDef->pszLong);
     337                mapArgsMapsPerVsys[ulCurVsys]["cloudbucket"] = ValueUnion.psz;
    330338                break;
    331339
     
    978986
    979987                        case VirtualSystemDescriptionType_CloudInstanceShape:
     988                            RTPrintf("%2u: Suggested cloud shape \"%ls\"\n",
     989                                    a, bstrFinalValue.raw(), i);
     990                            break;
     991
     992                        case VirtualSystemDescriptionType_CloudBucket:
     993                            if (findArgValue(strOverride, pmapArgs, "cloudbucket"))
     994                            {
     995                                bstrFinalValue = strOverride;
     996                                RTPrintf("%2u: Cloud bucket id specified with --cloudbucket: \"%ls\"\n",
     997                                        a, bstrFinalValue.raw());
     998                            }
     999                            else
     1000                                RTPrintf("%2u: Suggested cloud bucket id \"%ls\""
     1001                                        "\n    (change with \"--cloud %u --cloudbucket <id>\")\n",
     1002                                        a, bstrFinalValue.raw(), i);
     1003                            break;
     1004
     1005                        case VirtualSystemDescriptionType_CloudProfileName:
     1006                            if (findArgValue(strOverride, pmapArgs, "cloudprofile"))
     1007                            {
     1008                                bstrFinalValue = strOverride;
     1009                                RTPrintf("%2u: Cloud profile name specified with --cloudprofile: \"%ls\"\n",
     1010                                        a, bstrFinalValue.raw());
     1011                            }
     1012                            else
     1013                                RTPrintf("%2u: Suggested cloud profile name \"%ls\""
     1014                                        "\n    (change with \"--cloud %u --cloudprofile <id>\")\n",
     1015                                        a, bstrFinalValue.raw(), i);
     1016                            break;
     1017
     1018                        case VirtualSystemDescriptionType_CloudInstanceId:
     1019                            if (findArgValue(strOverride, pmapArgs, "cloudinstanceid"))
     1020                            {
     1021                                bstrFinalValue = strOverride;
     1022                                RTPrintf("%2u: Cloud instance id specified with --cloudinstanceid: \"%ls\"\n",
     1023                                        a, bstrFinalValue.raw());
     1024                            }
     1025                            else
     1026                                RTPrintf("%2u: Suggested cloud instance id \"%ls\""
     1027                                        "\n    (change with \"--cloud %u --cloudinstanceid <id>\")\n",
     1028                                        a, bstrFinalValue.raw(), i);
     1029                            break;
     1030
     1031                        case VirtualSystemDescriptionType_CloudImageId:
     1032                            RTPrintf("%2u: Suggested cloud base image id \"%ls\"\n",
     1033                                    a, bstrFinalValue.raw(), i);
     1034                            break;
    9801035                        case VirtualSystemDescriptionType_CloudDomain:
    9811036                        case VirtualSystemDescriptionType_CloudBootDiskSize:
    982                         case VirtualSystemDescriptionType_CloudBucket:
    9831037                        case VirtualSystemDescriptionType_CloudOCIVCN:
    9841038                        case VirtualSystemDescriptionType_CloudPublicIP:
    985                         case VirtualSystemDescriptionType_CloudProfileName:
    9861039                        case VirtualSystemDescriptionType_CloudOCISubnet:
    9871040                        case VirtualSystemDescriptionType_CloudKeepObject:
    9881041                        case VirtualSystemDescriptionType_CloudLaunchInstance:
    989                         case VirtualSystemDescriptionType_CloudInstanceId:
    990                         case VirtualSystemDescriptionType_CloudImageId:
    9911042                        case VirtualSystemDescriptionType_CloudInstanceState:
    9921043                        case VirtualSystemDescriptionType_CloudImageState:
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageCloud.cpp

    r78736 r78841  
    502502    CHECK_ERROR2_RET(hrc, pAppliance, COMGETTER(VirtualSystemDescriptions)(ComSafeArrayAsOutParam(vsdArray)), RTEXITCODE_FAILURE);
    503503    ComPtr<IVirtualSystemDescription> instanceDescription = vsdArray[0];
     504
     505    ComPtr<IProgress> progress;
    504506    CHECK_ERROR2_RET(hrc, oCloudClient,
    505                      GetInstanceInfo(Bstr(strInstanceId.c_str()).raw(), instanceDescription),
    506                      RTEXITCODE_FAILURE);
     507                     GetInstanceInfo(Bstr(strInstanceId.c_str()).raw(), instanceDescription, progress.asOutParam()),
     508                     RTEXITCODE_FAILURE);
     509
     510    hrc = showProgress(progress);
     511    CHECK_PROGRESS_ERROR_RET(progress, ("Getting information about cloud instance failed"), RTEXITCODE_FAILURE);
     512
    507513    RTPrintf("Cloud instance info (provider '%s'):\n",
    508514             pCommonOpts->provider.pszProviderName);
  • trunk/src/VBox/Main/idl/VirtualBox.xidl

    r78815 r78841  
    2600626006        <desc>VirtualSystemDescription object which is describing a machine</desc>
    2600726007      </param>
     26008      <param name="progress" type="IProgress" dir="return">
     26009        <desc>
     26010          Progress object to track the operation completion.
     26011        </desc>
     26012      </param>
    2600826013    </method>
    2600926014
  • trunk/src/VBox/Main/src-server/ApplianceImplImport.cpp

    r78749 r78841  
    12371237
    12381238        LogRel(("%s: calling CloudClient::GetInstanceInfo()\n", __FUNCTION__));
    1239         hrc = cloudClient->GetInstanceInfo(Bstr(parts.at(1)).raw(), instanceDescription);//instance id
     1239
     1240        ComPtr<IProgress> pProgress;
     1241        hrc = cloudClient->GetInstanceInfo(Bstr(parts.at(1)).raw(), instanceDescription, pProgress.asOutParam());
     1242        if (FAILED(hrc)) throw hrc;
     1243        hrc = pTask->pProgress->WaitForOtherProgressCompletion(pProgress, 60000);//timeout 1 min = 60000 millisec
    12401244        if (FAILED(hrc)) throw hrc;
    12411245
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