VirtualBox

Changeset 91133 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Sep 6, 2021 10:38:23 PM (3 years ago)
Author:
vboxsync
Message:

VBoxManage/cloud: use local enums instead of explicit magic numbers to
enumerate comands. While here, sort the getopt arrays by name (now
that they are not tied to the order of magic numbers). NFCI.

File:
1 edited

Legend:

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

    r90220 r91133  
    450450static RTEXITCODE handleCloudLists(HandlerArg *a, int iFirst, PCLOUDCOMMONOPT pCommonOpts)
    451451{
     452    enum
     453    {
     454        kCloudListIota = 1000,
     455        kCloudList_Images,
     456        kCloudList_Instances,
     457        kCloudList_Machines,
     458        kCloudList_Networks,
     459        kCloudList_Objects,
     460        kCloudList_Subnets,
     461        kCloudList_Vcns,
     462    };
     463
     464    static const RTGETOPTDEF s_aOptions[] =
     465    {
     466        { "images",              kCloudList_Images,    RTGETOPT_REQ_NOTHING },
     467        { "instances",           kCloudList_Instances, RTGETOPT_REQ_NOTHING },
     468        { "machines",            kCloudList_Machines,  RTGETOPT_REQ_NOTHING },
     469        { "networks",            kCloudList_Networks,  RTGETOPT_REQ_NOTHING },
     470        { "objects",             kCloudList_Objects,   RTGETOPT_REQ_NOTHING },
     471        { "subnets",             kCloudList_Subnets,   RTGETOPT_REQ_NOTHING },
     472        { "vcns",                kCloudList_Vcns,      RTGETOPT_REQ_NOTHING },
     473
     474        { "help",                'h',                  RTGETOPT_REQ_NOTHING },
     475        { "-?",                  'h',                  RTGETOPT_REQ_NOTHING },
     476        { "-help",               'h',                  RTGETOPT_REQ_NOTHING },
     477        { "--help",              'h',                  RTGETOPT_REQ_NOTHING },
     478    };
     479
    452480    if (a->argc == iFirst)
    453481    {
     
    457485    }
    458486
    459     static const RTGETOPTDEF s_aOptions[] =
    460     {
    461         { "images",              1000, RTGETOPT_REQ_NOTHING },
    462         { "instances",           1001, RTGETOPT_REQ_NOTHING },
    463         { "networks",            1002, RTGETOPT_REQ_NOTHING },
    464         { "subnets",             1003, RTGETOPT_REQ_NOTHING },
    465         { "vcns",                1004, RTGETOPT_REQ_NOTHING },
    466         { "objects",             1005, RTGETOPT_REQ_NOTHING },
    467         { "help",                1006, RTGETOPT_REQ_NOTHING },
    468         { "--help",              1007, RTGETOPT_REQ_NOTHING },
    469         { "machines",            1008, RTGETOPT_REQ_NOTHING }
    470     };
    471 
    472487    RTGETOPTSTATE GetState;
    473488    int vrc = RTGetOptInit(&GetState, a->argc, a->argv, s_aOptions, RT_ELEMENTS(s_aOptions), iFirst, 0);
     
    480495        switch (c)
    481496        {
    482             case 1000:
     497            case kCloudList_Images:
    483498                setCurrentSubcommand(HELP_SCOPE_CLOUDLIST_IMAGES);
    484499                return listCloudImages(a, GetState.iNext, pCommonOpts);
    485             case 1001:
     500
     501            case kCloudList_Instances:
    486502                setCurrentSubcommand(HELP_SCOPE_CLOUDLIST_INSTANCES);
    487503                return listCloudInstances(a, GetState.iNext, pCommonOpts);
    488             case 1006:
    489             case 1007:
    490                 printHelp(g_pStdOut);
    491                 return RTEXITCODE_SUCCESS;
    492 
    493             case 1008:          /* machines */
     504
     505            case kCloudList_Machines:
    494506                return listCloudMachines(a, GetState.iNext,
    495507                                         pCommonOpts->provider.pszProviderName,
    496508                                         pCommonOpts->profile.pszProfileName);
     509
     510            case 'h':
     511                printHelp(g_pStdOut);
     512                return RTEXITCODE_SUCCESS;
    497513
    498514            case VINF_GETOPT_NOT_OPTION:
     
    11061122static RTEXITCODE handleCloudInstance(HandlerArg *a, int iFirst, PCLOUDCOMMONOPT pCommonOpts)
    11071123{
     1124    enum
     1125    {
     1126        kCloudInstanceIota = 1000,
     1127        kCloudInstance_Create,
     1128        kCloudInstance_Info,
     1129        kCloudInstance_Pause,
     1130        kCloudInstance_Start,
     1131        kCloudInstance_Terminate,
     1132        kCloudInstance_Update,
     1133    };
     1134
     1135    static const RTGETOPTDEF s_aOptions[] =
     1136    {
     1137        { "create",         kCloudInstance_Create,    RTGETOPT_REQ_NOTHING },
     1138        { "info",           kCloudInstance_Info,      RTGETOPT_REQ_NOTHING },
     1139        { "pause",          kCloudInstance_Pause,     RTGETOPT_REQ_NOTHING },
     1140        { "start",          kCloudInstance_Start,     RTGETOPT_REQ_NOTHING },
     1141        { "terminate",      kCloudInstance_Terminate, RTGETOPT_REQ_NOTHING },
     1142        { "update",         kCloudInstance_Update,    RTGETOPT_REQ_NOTHING },
     1143
     1144        { "help",           'h',                      RTGETOPT_REQ_NOTHING },
     1145        { "-?",             'h',                      RTGETOPT_REQ_NOTHING },
     1146        { "-help",          'h',                      RTGETOPT_REQ_NOTHING },
     1147        { "--help",         'h',                      RTGETOPT_REQ_NOTHING },
     1148    };
     1149
    11081150    if (a->argc == iFirst)
    11091151    {
     
    11131155    }
    11141156
    1115     static const RTGETOPTDEF s_aOptions[] =
    1116     {
    1117         { "create",         1000, RTGETOPT_REQ_NOTHING },
    1118         { "start",          1001, RTGETOPT_REQ_NOTHING },
    1119         { "pause",          1002, RTGETOPT_REQ_NOTHING },
    1120         { "info",           1003, RTGETOPT_REQ_NOTHING },
    1121         { "update",         1004, RTGETOPT_REQ_NOTHING },
    1122         { "terminate",      1005, RTGETOPT_REQ_NOTHING },
    1123         { "help",           1006, RTGETOPT_REQ_NOTHING },
    1124         { "--help",         1007, RTGETOPT_REQ_NOTHING }
    1125     };
    1126 
    11271157    RTGETOPTSTATE GetState;
    11281158    int vrc = RTGetOptInit(&GetState, a->argc, a->argv, s_aOptions, RT_ELEMENTS(s_aOptions), iFirst, 0);
     
    11361166        {
    11371167            /* Sub-commands: */
    1138             case 1000:
     1168            case kCloudInstance_Create:
    11391169                setCurrentSubcommand(HELP_SCOPE_CLOUDINSTANCE_CREATE);
    11401170                return createCloudInstance(a, GetState.iNext, pCommonOpts);
    1141             case 1001:
     1171
     1172            case kCloudInstance_Start:
    11421173                setCurrentSubcommand(HELP_SCOPE_CLOUDINSTANCE_START);
    11431174                return startCloudInstance(a, GetState.iNext, pCommonOpts);
    1144             case 1002:
     1175
     1176            case kCloudInstance_Pause:
    11451177                setCurrentSubcommand(HELP_SCOPE_CLOUDINSTANCE_PAUSE);
    11461178                return pauseCloudInstance(a, GetState.iNext, pCommonOpts);
    1147             case 1003:
     1179
     1180            case kCloudInstance_Info:
    11481181                setCurrentSubcommand(HELP_SCOPE_CLOUDINSTANCE_INFO);
    11491182                return showCloudInstanceInfo(a, GetState.iNext, pCommonOpts);
    1150             case 1004:
     1183
     1184            case kCloudInstance_Update:
    11511185//              setCurrentSubcommand(HELP_SCOPE_CLOUDINSTANCE_UPDATE);
    11521186                return updateCloudInstance(a, GetState.iNext, pCommonOpts);
    1153             case 1005:
     1187
     1188            case kCloudInstance_Terminate:
    11541189                setCurrentSubcommand(HELP_SCOPE_CLOUDINSTANCE_TERMINATE);
    11551190                return terminateCloudInstance(a, GetState.iNext, pCommonOpts);
    1156             case 1006:
    1157             case 1007:
     1191
     1192            case 'h':
    11581193                printHelp(g_pStdOut);
    11591194                return RTEXITCODE_SUCCESS;
     1195
    11601196            case VINF_GETOPT_NOT_OPTION:
    11611197                return errorUnknownSubcommand(ValueUnion.psz);
     
    17401776static RTEXITCODE handleCloudImage(HandlerArg *a, int iFirst, PCLOUDCOMMONOPT pCommonOpts)
    17411777{
     1778    enum
     1779    {
     1780        kCloudImageIota = 1000,
     1781        kCloudImage_Create,
     1782        kCloudImage_Delete,
     1783        kCloudImage_Export,
     1784        kCloudImage_Import,
     1785        kCloudImage_Info,
     1786        kCloudImage_Update,
     1787    };
     1788
     1789    static const RTGETOPTDEF s_aOptions[] =
     1790    {
     1791        { "create",         kCloudImage_Create,     RTGETOPT_REQ_NOTHING },
     1792        { "delete",         kCloudImage_Delete,     RTGETOPT_REQ_NOTHING },
     1793        { "export",         kCloudImage_Export,     RTGETOPT_REQ_NOTHING },
     1794        { "import",         kCloudImage_Import,     RTGETOPT_REQ_NOTHING },
     1795        { "info",           kCloudImage_Info,       RTGETOPT_REQ_NOTHING },
     1796        { "update",         kCloudImage_Update,     RTGETOPT_REQ_NOTHING },
     1797
     1798        { "help",                'h',               RTGETOPT_REQ_NOTHING },
     1799        { "-?",                  'h',               RTGETOPT_REQ_NOTHING },
     1800        { "-help",               'h',               RTGETOPT_REQ_NOTHING },
     1801        { "--help",              'h',               RTGETOPT_REQ_NOTHING },
     1802    };
     1803
    17421804    if (a->argc == iFirst)
    17431805    {
     
    17471809    }
    17481810
    1749     static const RTGETOPTDEF s_aOptions[] =
    1750     {
    1751         { "create",         1000, RTGETOPT_REQ_NOTHING },
    1752         { "export",         1001, RTGETOPT_REQ_NOTHING },
    1753         { "import",         1002, RTGETOPT_REQ_NOTHING },
    1754         { "info",           1003, RTGETOPT_REQ_NOTHING },
    1755         { "update",         1004, RTGETOPT_REQ_NOTHING },
    1756         { "delete",         1005, RTGETOPT_REQ_NOTHING },
    1757         { "help",           1006, RTGETOPT_REQ_NOTHING },
    1758         { "--help",         1007, RTGETOPT_REQ_NOTHING }
    1759     };
    1760 
    17611811    RTGETOPTSTATE GetState;
    17621812    int vrc = RTGetOptInit(&GetState, a->argc, a->argv, s_aOptions, RT_ELEMENTS(s_aOptions), iFirst, 0);
     
    17701820        {
    17711821            /* Sub-commands: */
    1772             case 1000:
     1822            case kCloudImage_Create:
    17731823                setCurrentSubcommand(HELP_SCOPE_CLOUDIMAGE_CREATE);
    17741824                return createCloudImage(a, GetState.iNext, pCommonOpts);
    1775             case 1001:
     1825
     1826            case kCloudImage_Export:
    17761827                setCurrentSubcommand(HELP_SCOPE_CLOUDIMAGE_EXPORT);
    17771828                return exportCloudImage(a, GetState.iNext, pCommonOpts);
    1778             case 1002:
     1829
     1830            case kCloudImage_Import:
    17791831                setCurrentSubcommand(HELP_SCOPE_CLOUDIMAGE_IMPORT);
    17801832                return importCloudImage(a, GetState.iNext, pCommonOpts);
    1781             case 1003:
     1833
     1834            case kCloudImage_Info:
    17821835                setCurrentSubcommand(HELP_SCOPE_CLOUDIMAGE_INFO);
    17831836                return showCloudImageInfo(a, GetState.iNext, pCommonOpts);
    1784             case 1004:
     1837
     1838            case kCloudImage_Update:
    17851839//              setCurrentSubcommand(HELP_SCOPE_CLOUDIMAGE_UPDATE);
    17861840                return updateCloudImage(a, GetState.iNext, pCommonOpts);
    1787             case 1005:
     1841
     1842            case kCloudImage_Delete:
    17881843                setCurrentSubcommand(HELP_SCOPE_CLOUDIMAGE_DELETE);
    17891844                return deleteCloudImage(a, GetState.iNext, pCommonOpts);
    1790             case 1006:
    1791             case 1007:
     1845
     1846            case 'h':
    17921847                printHelp(g_pStdOut);
    17931848                return RTEXITCODE_SUCCESS;
     1849
    17941850            case VINF_GETOPT_NOT_OPTION:
    17951851                return errorUnknownSubcommand(ValueUnion.psz);
     
    27072763static RTEXITCODE handleCloudNetwork(HandlerArg *a, int iFirst, PCLOUDCOMMONOPT pCommonOpts)
    27082764{
     2765    enum
     2766    {
     2767        kCloudNetworkIota = 1000,
     2768        kCloudNetwork_Create,
     2769        kCloudNetwork_Delete,
     2770        kCloudNetwork_Info,
     2771        kCloudNetwork_Setup,
     2772        kCloudNetwork_Update,
     2773    };
     2774
     2775    static const RTGETOPTDEF s_aOptions[] =
     2776    {
     2777        { "create",         kCloudNetwork_Create,   RTGETOPT_REQ_NOTHING },
     2778        { "delete",         kCloudNetwork_Delete,   RTGETOPT_REQ_NOTHING },
     2779        { "info",           kCloudNetwork_Info,     RTGETOPT_REQ_NOTHING },
     2780        { "setup",          kCloudNetwork_Setup,    RTGETOPT_REQ_NOTHING }
     2781        { "update",         kCloudNetwork_Update,   RTGETOPT_REQ_NOTHING },
     2782    };
     2783
    27092784    if (a->argc < 1)
    27102785        return errorNoSubcommand();
    2711 
    2712     static const RTGETOPTDEF s_aOptions[] =
    2713     {
    2714         { "create",         1000, RTGETOPT_REQ_NOTHING },
    2715         { "info",           1001, RTGETOPT_REQ_NOTHING },
    2716         { "update",         1002, RTGETOPT_REQ_NOTHING },
    2717         { "delete",         1003, RTGETOPT_REQ_NOTHING },
    2718         { "setup",          1004, RTGETOPT_REQ_NOTHING }
    2719     };
    27202786
    27212787    RTGETOPTSTATE GetState;
     
    27302796        {
    27312797            /* Sub-commands: */
    2732             case 1000:
     2798            case kCloudNetwork_Create:
    27332799                return createCloudNetwork(a, GetState.iNext, pCommonOpts);
    2734             case 1001:
     2800
     2801            case kCloudNetwork_Info:
    27352802                return showCloudNetworkInfo(a, GetState.iNext, pCommonOpts);
    2736             case 1002:
     2803
     2804            case kCloudNetwork_Update:
    27372805                return updateCloudNetwork(a, GetState.iNext, pCommonOpts);
    2738             case 1003:
     2806
     2807            case kCloudNetwork_Delete:
    27392808                return deleteCloudNetwork(a, GetState.iNext, pCommonOpts);
    2740             case 1004:
     2809
     2810            case kCloudNetwork_Setup:
    27412811                return setupCloudNetworkEnv(a, GetState.iNext, pCommonOpts);
     2812
    27422813            case VINF_GETOPT_NOT_OPTION:
    27432814                return errorUnknownSubcommand(ValueUnion.psz);
     
    27552826RTEXITCODE handleCloud(HandlerArg *a)
    27562827{
     2828    enum
     2829    {
     2830        kCloudIota = 1000,
     2831        kCloud_Image,
     2832        kCloud_Instance,
     2833        kCloud_List,
     2834        kCloud_Machine,
     2835        kCloud_Network,
     2836        kCloud_Object,
     2837        kCloud_Volume,
     2838    };
     2839
     2840    static const RTGETOPTDEF s_aOptions[] =
     2841    {
     2842        /* common options */
     2843        { "--provider",     'v',                    RTGETOPT_REQ_STRING },
     2844        { "--profile",      'f',                    RTGETOPT_REQ_STRING },
     2845
     2846        { "image",            kCloud_Image,         RTGETOPT_REQ_NOTHING },
     2847        { "instance",         kCloud_Instance,      RTGETOPT_REQ_NOTHING },
     2848        { "list",             kCloud_List,          RTGETOPT_REQ_NOTHING },
     2849        { "machine",          kCloud_Machine,       RTGETOPT_REQ_NOTHING },
     2850        { "network",          kCloud_Network,       RTGETOPT_REQ_NOTHING },
     2851        { "object",           kCloud_Object,        RTGETOPT_REQ_NOTHING },
     2852        { "volume",           kCloud_Volume,        RTGETOPT_REQ_NOTHING },
     2853    };
     2854
    27572855    if (a->argc < 1)
    27582856        return errorNoSubcommand();
    2759 
    2760     static const RTGETOPTDEF s_aOptions[] =
    2761     {
    2762         /* common options */
    2763         { "--provider",     'v', RTGETOPT_REQ_STRING },
    2764         { "--profile",      'f', RTGETOPT_REQ_STRING },
    2765         { "list",             1000, RTGETOPT_REQ_NOTHING },
    2766         { "image",            1001, RTGETOPT_REQ_NOTHING },
    2767         { "instance",         1002, RTGETOPT_REQ_NOTHING },
    2768         { "network",          1003, RTGETOPT_REQ_NOTHING },
    2769         { "volume",           1004, RTGETOPT_REQ_NOTHING },
    2770         { "object",           1005, RTGETOPT_REQ_NOTHING },
    2771         { "machine",          1006, RTGETOPT_REQ_NOTHING }
    2772     };
    27732857
    27742858    RTGETOPTSTATE GetState;
     
    27862870                commonOpts.provider.pszProviderName = ValueUnion.psz;
    27872871                break;
     2872
    27882873            case 'f':   // --profile
    27892874                commonOpts.profile.pszProfileName = ValueUnion.psz;
    27902875                break;
     2876
    27912877            /* Sub-commands: */
    2792             case 1000:
     2878            case kCloud_List:
    27932879                return handleCloudLists(a, GetState.iNext, &commonOpts);
    2794             case 1001:
     2880
     2881            case kCloud_Image:
    27952882                return handleCloudImage(a, GetState.iNext, &commonOpts);
    2796             case 1002:
     2883
     2884            case kCloud_Instance:
    27972885                return handleCloudInstance(a, GetState.iNext, &commonOpts);
     2886
    27982887#ifdef VBOX_WITH_CLOUD_NET
    2799             case 1003:
     2888            case kCloud_Network:
    28002889                return handleCloudNetwork(a, GetState.iNext, &commonOpts);
    28012890#endif /* VBOX_WITH_CLOUD_NET */
    2802             case 1006:
     2891
     2892            case kCloud_Machine:
    28032893                return handleCloudMachine(a, GetState.iNext,
    28042894                                          commonOpts.provider.pszProviderName,
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