Changeset 16495 in vbox for trunk/src/VBox/Frontends/VBoxManage
- Timestamp:
- Feb 3, 2009 9:20:36 PM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 42399
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VBoxManage/VBoxManageImport.cpp
r16491 r16495 25 25 * Header Files * 26 26 *******************************************************************************/ 27 #ifndef VBOX_ONLY_DOCS 28 #include <VBox/com/com.h> 29 #include <VBox/com/string.h> 30 #include <VBox/com/Guid.h> 31 #include <VBox/com/array.h> 32 #include <VBox/com/ErrorInfo.h> 33 #include <VBox/com/EventQueue.h> 34 35 #include <VBox/com/VirtualBox.h> 36 37 #include <list> 38 #endif /* !VBOX_ONLY_DOCS */ 39 40 #include <iprt/stream.h> 41 42 #include <VBox/log.h> 43 27 44 #include "VBoxManage.h" 28 45 using namespace com; … … 31 48 // funcs 32 49 /////////////////////////////////////////////////////////////////////////////// 33 34 35 50 36 51 int handleImportAppliance(HandlerArg *a) … … 38 53 HRESULT rc = S_OK; 39 54 55 Utf8Str strOvfFilename; 56 57 for (int i = 0; i < a->argc; i++) 58 { 59 if (!strOvfFilename) 60 strOvfFilename = a->argv[i]; 61 else 62 return errorSyntax(USAGE_IMPORTAPPLIANCE, "Too many arguments for \"import\" command."); 63 } 64 65 if (!strOvfFilename) 66 return errorSyntax(USAGE_IMPORTAPPLIANCE, "Not enough arguments for \"import\" command."); 67 68 do 69 { 70 Bstr bstrOvfFilename(strOvfFilename); 71 ComPtr<IAppliance> appliance; 72 CHECK_ERROR_BREAK(a->virtualBox, OpenAppliance(bstrOvfFilename, appliance.asOutParam())); 73 74 RTPrintf("Interpreting...\n"); 75 CHECK_ERROR_BREAK(appliance, Interpret()); 76 RTPrintf("OK.\n"); 77 78 // fetch all disks 79 com::SafeArray<BSTR> retDisks; 80 CHECK_ERROR_BREAK(appliance, 81 COMGETTER(Disks)(ComSafeArrayAsOutParam(retDisks))); 82 if (retDisks.size() > 0) 83 { 84 RTPrintf("Disks:"); 85 for (unsigned i = 0; i < retDisks.size(); i++) 86 RTPrintf(" %ls", retDisks[i]); 87 RTPrintf("\n"); 88 } 89 90 // fetch virtual system descriptions 91 com::SafeIfaceArray<IVirtualSystemDescription> aVirtualSystemDescriptions; 92 CHECK_ERROR_BREAK(appliance, 93 COMGETTER(VirtualSystemDescriptions)(ComSafeArrayAsOutParam(aVirtualSystemDescriptions))); 94 if (aVirtualSystemDescriptions.size() > 0) 95 { 96 for (unsigned i = 0; i < aVirtualSystemDescriptions.size(); ++i) 97 { 98 com::SafeArray<VirtualSystemDescriptionType_T> retTypes; 99 com::SafeArray<ULONG> aRefs; 100 com::SafeArray<BSTR> aOrigValues; 101 com::SafeArray<BSTR> aConfigValues; 102 com::SafeArray<BSTR> aExtraConfigValues; 103 CHECK_ERROR_BREAK(aVirtualSystemDescriptions[i], 104 GetDescription(ComSafeArrayAsOutParam(retTypes), 105 ComSafeArrayAsOutParam(aRefs), 106 ComSafeArrayAsOutParam(aOrigValues), 107 ComSafeArrayAsOutParam(aConfigValues), 108 ComSafeArrayAsOutParam(aExtraConfigValues))); 109 110 RTPrintf("Virtual system %i:\n", i); 111 for (unsigned a = 0; a < retTypes.size(); ++a) 112 { 113 VirtualSystemDescriptionType_T t = retTypes[a]; 114 115 Bstr bstrVMname; 116 Bstr bstrOstype; 117 uint32_t ulMemMB; 118 bool fUSB = false; 119 120 switch (t) 121 { 122 case VirtualSystemDescriptionType_Name: 123 bstrVMname = aConfigValues[a]; 124 RTPrintf("%2d: Suggested VM name \"%ls\"" 125 "\n (change with \"-vsys %d -vmname <name>\")\n", 126 a, bstrVMname.raw(), i); 127 break; 128 129 case VirtualSystemDescriptionType_OS: 130 bstrOstype = aConfigValues[a]; 131 RTPrintf("%2d: Suggested OS type: \"%ls\"" 132 "\n (change with \"-vsys %d -ostype <type>\"; use \"list ostypes\" to list all)\n", 133 a, bstrOstype.raw(), i); 134 break; 135 136 case VirtualSystemDescriptionType_CPU: 137 RTPrintf("%2d: Number of CPUs (ignored): %ls\n", 138 a, aConfigValues[a]); 139 break; 140 141 case VirtualSystemDescriptionType_Memory: 142 Utf8Str(Bstr(aConfigValues[a])).toInt(ulMemMB); 143 ulMemMB /= 1024 * 1024; 144 RTPrintf("%2d: Guest memory: %u MB\n (change with \"-vsys %d -memory <MB>\")\n", 145 a, ulMemMB, i); 146 break; 147 148 case VirtualSystemDescriptionType_HardDiskControllerIDE: 149 RTPrintf("%2d: IDE controller: reference ID %d" 150 "\n (disable with \"-vsys %d -ignore %d\")\n", 151 a, 152 aRefs[a], 153 i, a); 154 break; 155 156 case VirtualSystemDescriptionType_HardDiskControllerSATA: 157 RTPrintf("%2d: SATA controller: reference ID %d" 158 "\n (disable with \"-vsys %d -ignore %d\")\n", 159 a, 160 aRefs[a], 161 i, a); 162 break; 163 164 case VirtualSystemDescriptionType_HardDiskControllerSCSI: 165 RTPrintf("%2d: SCSI controller: reference ID %d, type %ls" 166 "\n (change with \"-vsys %d -scsitype%d={BusLogic|LsiLogic}\";" 167 "\n disable with \"-vsys %d -ignore %d\")\n", 168 a, 169 aRefs[a], 170 aConfigValues[a], 171 i, a, i, a); 172 break; 173 174 case VirtualSystemDescriptionType_HardDiskImage: 175 RTPrintf("%2d: Hard disk image: controller %d, source image \"%ls\", target image \"%ls\"" 176 "\n (change controller with \"-vsys %d -controller%d=<id>\";" 177 "\n disable with \"-vsys %d -ignore %d\")\n", 178 a, 179 aRefs[a], 180 aOrigValues[a], 181 aConfigValues[a], 182 i, a, i, a); 183 break; 184 185 case VirtualSystemDescriptionType_CDROM: 186 RTPrintf("%2d: CD-ROM" 187 "\n (disable with \"-vsys %d -ignore %d\")\n", 188 a, i, a); 189 break; 190 191 case VirtualSystemDescriptionType_Floppy: 192 RTPrintf("%2d: Floppy" 193 "\n (disable with \"-vsys %d -ignore %d\")\n", 194 a, i, a); 195 break; 196 197 case VirtualSystemDescriptionType_NetworkAdapter: 198 RTPrintf("%2d: Network adapter: orig %ls, auto %ls, conf %ls\n", 199 a, 200 aOrigValues[a], 201 aConfigValues[a], 202 aExtraConfigValues[a]); 203 break; 204 205 case VirtualSystemDescriptionType_USBController: 206 RTPrintf("%2d: USB controller" 207 "\n (disable with \"-vsys %d -ignore %d\")\n", 208 a, i, a); 209 break; 210 211 case VirtualSystemDescriptionType_SoundCard: 212 RTPrintf("%2d: Sound card (appliance expects \"%ls\", can change on import)" 213 "\n (disable with \"-vsys %d -ignore %d\")\n", 214 a, 215 aOrigValues[a], 216 i, 217 a); 218 break; 219 } 220 } 221 } 222 RTPrintf("\n"); 223 } 224 } while (0); 225 40 226 return SUCCEEDED(rc) ? 0 : 1; 41 227 }
Note:
See TracChangeset
for help on using the changeset viewer.