18
18
19
19
import java .io .ByteArrayInputStream ;
20
20
import java .io .File ;
21
+ import java .io .FileWriter ;
21
22
import java .io .IOException ;
22
23
import java .io .StringWriter ;
23
24
import java .net .URI ;
28
29
import java .util .HashMap ;
29
30
import java .util .List ;
30
31
import java .util .Map ;
32
+ import java .util .UUID ;
31
33
32
34
import javax .xml .parsers .DocumentBuilderFactory ;
33
35
import javax .xml .parsers .ParserConfigurationException ;
37
39
import javax .xml .transform .dom .DOMSource ;
38
40
import javax .xml .transform .stream .StreamResult ;
39
41
40
- import com .vmware .vim25 .ClusterConfigInfoEx ;
41
- import com .vmware .vim25 .DatacenterConfigInfo ;
42
42
import org .apache .cloudstack .engine .orchestration .service .NetworkOrchestrationService ;
43
43
import org .apache .commons .lang .StringUtils ;
44
44
import org .apache .log4j .Logger ;
69
69
import com .cloud .utils .exception .CloudRuntimeException ;
70
70
import com .cloud .utils .net .NetUtils ;
71
71
import com .cloud .utils .nicira .nvp .plugin .NiciraNvpApiVersion ;
72
- import com .vmware .vim25 .OvfCreateDescriptorParams ;
73
- import com .vmware .vim25 .OvfCreateDescriptorResult ;
74
72
import com .vmware .vim25 .AlreadyExistsFaultMsg ;
75
73
import com .vmware .vim25 .BoolPolicy ;
74
+ import com .vmware .vim25 .ClusterConfigInfoEx ;
76
75
import com .vmware .vim25 .CustomFieldStringValue ;
77
76
import com .vmware .vim25 .DVPortSetting ;
78
77
import com .vmware .vim25 .DVPortgroupConfigInfo ;
79
78
import com .vmware .vim25 .DVPortgroupConfigSpec ;
80
79
import com .vmware .vim25 .DVSSecurityPolicy ;
81
80
import com .vmware .vim25 .DVSTrafficShapingPolicy ;
81
+ import com .vmware .vim25 .DatacenterConfigInfo ;
82
82
import com .vmware .vim25 .DynamicProperty ;
83
83
import com .vmware .vim25 .HostNetworkSecurityPolicy ;
84
84
import com .vmware .vim25 .HostNetworkTrafficShapingPolicy ;
95
95
import com .vmware .vim25 .NumericRange ;
96
96
import com .vmware .vim25 .ObjectContent ;
97
97
import com .vmware .vim25 .OptionValue ;
98
+ import com .vmware .vim25 .OvfCreateDescriptorParams ;
99
+ import com .vmware .vim25 .OvfCreateDescriptorResult ;
98
100
import com .vmware .vim25 .OvfCreateImportSpecParams ;
99
101
import com .vmware .vim25 .OvfCreateImportSpecResult ;
100
- import com .vmware .vim25 .OvfFileItem ;
101
102
import com .vmware .vim25 .OvfFile ;
103
+ import com .vmware .vim25 .OvfFileItem ;
102
104
import com .vmware .vim25 .ParaVirtualSCSIController ;
103
105
import com .vmware .vim25 .VMwareDVSConfigSpec ;
104
106
import com .vmware .vim25 .VMwareDVSPortSetting ;
108
110
import com .vmware .vim25 .VirtualBusLogicController ;
109
111
import com .vmware .vim25 .VirtualController ;
110
112
import com .vmware .vim25 .VirtualDevice ;
111
- import com .vmware .vim25 .VirtualDisk ;
112
113
import com .vmware .vim25 .VirtualDeviceConfigSpec ;
113
114
import com .vmware .vim25 .VirtualDeviceConfigSpecOperation ;
115
+ import com .vmware .vim25 .VirtualDisk ;
114
116
import com .vmware .vim25 .VirtualIDEController ;
115
117
import com .vmware .vim25 .VirtualLsiLogicController ;
116
118
import com .vmware .vim25 .VirtualLsiLogicSASController ;
117
119
import com .vmware .vim25 .VirtualMachineConfigSpec ;
118
120
import com .vmware .vim25 .VirtualMachineFileInfo ;
119
121
import com .vmware .vim25 .VirtualMachineGuestOsIdentifier ;
122
+ import com .vmware .vim25 .VirtualMachineImportSpec ;
120
123
import com .vmware .vim25 .VirtualMachineVideoCard ;
121
124
import com .vmware .vim25 .VirtualSCSIController ;
122
125
import com .vmware .vim25 .VirtualSCSISharing ;
123
- import com .vmware .vim25 .VirtualMachineImportSpec ;
124
126
import com .vmware .vim25 .VmwareDistributedVirtualSwitchPvlanSpec ;
125
127
import com .vmware .vim25 .VmwareDistributedVirtualSwitchTrunkVlanSpec ;
126
128
import com .vmware .vim25 .VmwareDistributedVirtualSwitchVlanIdSpec ;
127
129
import com .vmware .vim25 .VmwareDistributedVirtualSwitchVlanSpec ;
128
- import java .io .FileWriter ;
129
- import java .util .UUID ;
130
130
131
131
public class HypervisorHostHelper {
132
132
private static final Logger s_logger = Logger .getLogger (HypervisorHostHelper .class );
@@ -138,6 +138,48 @@ public class HypervisorHostHelper {
138
138
private static final String VMDK_PACK_DIR = "ova" ;
139
139
private static final String OVA_OPTION_KEY_BOOTDISK = "cloud.ova.bootdisk" ;
140
140
141
+ protected final static Map <String , Integer > apiVersionHardwareVersionMap ;
142
+
143
+ static {
144
+ apiVersionHardwareVersionMap = new HashMap <String , Integer >();
145
+ apiVersionHardwareVersionMap .put ("3.5" , 4 );
146
+ apiVersionHardwareVersionMap .put ("3.6" , 4 );
147
+ apiVersionHardwareVersionMap .put ("3.7" , 4 );
148
+ apiVersionHardwareVersionMap .put ("3.8" , 4 );
149
+ apiVersionHardwareVersionMap .put ("3.9" , 4 );
150
+ apiVersionHardwareVersionMap .put ("4.0" , 7 );
151
+ apiVersionHardwareVersionMap .put ("4.1" , 7 );
152
+ apiVersionHardwareVersionMap .put ("4.2" , 7 );
153
+ apiVersionHardwareVersionMap .put ("4.3" , 7 );
154
+ apiVersionHardwareVersionMap .put ("4.4" , 7 );
155
+ apiVersionHardwareVersionMap .put ("4.5" , 7 );
156
+ apiVersionHardwareVersionMap .put ("4.6" , 7 );
157
+ apiVersionHardwareVersionMap .put ("4.7" , 7 );
158
+ apiVersionHardwareVersionMap .put ("4.8" , 7 );
159
+ apiVersionHardwareVersionMap .put ("4.9" , 7 );
160
+ apiVersionHardwareVersionMap .put ("5.0" , 8 );
161
+ apiVersionHardwareVersionMap .put ("5.1" , 9 );
162
+ apiVersionHardwareVersionMap .put ("5.2" , 9 );
163
+ apiVersionHardwareVersionMap .put ("5.3" , 9 );
164
+ apiVersionHardwareVersionMap .put ("5.4" , 9 );
165
+ apiVersionHardwareVersionMap .put ("5.5" , 10 );
166
+ apiVersionHardwareVersionMap .put ("5.6" , 10 );
167
+ apiVersionHardwareVersionMap .put ("5.7" , 10 );
168
+ apiVersionHardwareVersionMap .put ("5.8" , 10 );
169
+ apiVersionHardwareVersionMap .put ("5.9" , 10 );
170
+ apiVersionHardwareVersionMap .put ("6.0" , 11 );
171
+ apiVersionHardwareVersionMap .put ("6.1" , 11 );
172
+ apiVersionHardwareVersionMap .put ("6.2" , 11 );
173
+ apiVersionHardwareVersionMap .put ("6.3" , 11 );
174
+ apiVersionHardwareVersionMap .put ("6.4" , 11 );
175
+ apiVersionHardwareVersionMap .put ("6.5" , 13 );
176
+ apiVersionHardwareVersionMap .put ("6.6" , 13 );
177
+ apiVersionHardwareVersionMap .put ("6.7" , 14 );
178
+ apiVersionHardwareVersionMap .put ("6.8" , 14 );
179
+ apiVersionHardwareVersionMap .put ("6.9" , 14 );
180
+ apiVersionHardwareVersionMap .put ("7.0" , 17 );
181
+ }
182
+
141
183
public static VirtualMachineMO findVmFromObjectContent (VmwareContext context , ObjectContent [] ocs , String name , String instanceNameCustomField ) {
142
184
143
185
if (ocs != null && ocs .length > 0 ) {
@@ -2080,4 +2122,19 @@ public static boolean isIdeController(String controller) {
2080
2122
return DiskControllerType .getType (controller ) == DiskControllerType .ide ;
2081
2123
}
2082
2124
2125
+ public static Integer getHostHardwareVersion (VmwareHypervisorHost host ) {
2126
+ Integer version = null ;
2127
+ HostMO hostMo = new HostMO (host .getContext (), host .getMor ());
2128
+ String hostApiVersion = "" ;
2129
+ try {
2130
+ hostApiVersion = hostMo .getHostAboutInfo ().getApiVersion ();
2131
+ } catch (Exception ignored ) {
2132
+ }
2133
+ if (hostApiVersion == null ) {
2134
+ hostApiVersion = "" ;
2135
+ }
2136
+ version = apiVersionHardwareVersionMap .get (hostApiVersion );
2137
+ return version ;
2138
+ }
2139
+
2083
2140
}
0 commit comments