|
22 | 22 | import java.security.InvalidParameterException;
|
23 | 23 | import java.util.ArrayList;
|
24 | 24 | import java.util.Arrays;
|
| 25 | +import java.util.HashMap; |
25 | 26 | import java.util.List;
|
26 | 27 | import java.util.Map;
|
27 | 28 |
|
28 |
| -import com.cloud.utils.StringUtils; |
29 | 29 | import org.apache.log4j.Logger;
|
30 | 30 |
|
31 | 31 | import com.cloud.exception.CloudException;
|
|
34 | 34 | import com.cloud.network.Networks.BroadcastDomainType;
|
35 | 35 | import com.cloud.utils.ActionDelegate;
|
36 | 36 | import com.cloud.utils.Pair;
|
| 37 | +import com.cloud.utils.StringUtils; |
37 | 38 | import com.cloud.utils.cisco.n1kv.vsm.NetconfHelper;
|
38 | 39 | import com.cloud.utils.cisco.n1kv.vsm.PolicyMap;
|
39 | 40 | import com.cloud.utils.cisco.n1kv.vsm.PortProfile;
|
|
49 | 50 | import com.vmware.vim25.BoolPolicy;
|
50 | 51 | import com.vmware.vim25.ClusterConfigInfoEx;
|
51 | 52 | import com.vmware.vim25.CustomFieldStringValue;
|
52 |
| -import com.vmware.vim25.DatacenterConfigInfo; |
53 | 53 | import com.vmware.vim25.DVPortSetting;
|
54 | 54 | import com.vmware.vim25.DVPortgroupConfigInfo;
|
55 | 55 | import com.vmware.vim25.DVPortgroupConfigSpec;
|
56 | 56 | import com.vmware.vim25.DVSSecurityPolicy;
|
57 | 57 | import com.vmware.vim25.DVSTrafficShapingPolicy;
|
| 58 | +import com.vmware.vim25.DatacenterConfigInfo; |
58 | 59 | import com.vmware.vim25.DynamicProperty;
|
59 | 60 | import com.vmware.vim25.HostNetworkSecurityPolicy;
|
60 | 61 | import com.vmware.vim25.HostNetworkTrafficShapingPolicy;
|
@@ -104,6 +105,48 @@ public class HypervisorHostHelper {
|
104 | 105 | // make vmware-base loosely coupled with cloud-specific stuff, duplicate VLAN.UNTAGGED constant here
|
105 | 106 | private static final String UNTAGGED_VLAN_NAME = "untagged";
|
106 | 107 |
|
| 108 | + protected final static Map<String, Integer> apiVersionHardwareVersionMap; |
| 109 | + |
| 110 | + static { |
| 111 | + apiVersionHardwareVersionMap = new HashMap<String, Integer>(); |
| 112 | + apiVersionHardwareVersionMap.put("3.5", 4); |
| 113 | + apiVersionHardwareVersionMap.put("3.6", 4); |
| 114 | + apiVersionHardwareVersionMap.put("3.7", 4); |
| 115 | + apiVersionHardwareVersionMap.put("3.8", 4); |
| 116 | + apiVersionHardwareVersionMap.put("3.9", 4); |
| 117 | + apiVersionHardwareVersionMap.put("4.0", 7); |
| 118 | + apiVersionHardwareVersionMap.put("4.1", 7); |
| 119 | + apiVersionHardwareVersionMap.put("4.2", 7); |
| 120 | + apiVersionHardwareVersionMap.put("4.3", 7); |
| 121 | + apiVersionHardwareVersionMap.put("4.4", 7); |
| 122 | + apiVersionHardwareVersionMap.put("4.5", 7); |
| 123 | + apiVersionHardwareVersionMap.put("4.6", 7); |
| 124 | + apiVersionHardwareVersionMap.put("4.7", 7); |
| 125 | + apiVersionHardwareVersionMap.put("4.8", 7); |
| 126 | + apiVersionHardwareVersionMap.put("4.9", 7); |
| 127 | + apiVersionHardwareVersionMap.put("5.0", 8); |
| 128 | + apiVersionHardwareVersionMap.put("5.1", 9); |
| 129 | + apiVersionHardwareVersionMap.put("5.2", 9); |
| 130 | + apiVersionHardwareVersionMap.put("5.3", 9); |
| 131 | + apiVersionHardwareVersionMap.put("5.4", 9); |
| 132 | + apiVersionHardwareVersionMap.put("5.5", 10); |
| 133 | + apiVersionHardwareVersionMap.put("5.6", 10); |
| 134 | + apiVersionHardwareVersionMap.put("5.7", 10); |
| 135 | + apiVersionHardwareVersionMap.put("5.8", 10); |
| 136 | + apiVersionHardwareVersionMap.put("5.9", 10); |
| 137 | + apiVersionHardwareVersionMap.put("6.0", 11); |
| 138 | + apiVersionHardwareVersionMap.put("6.1", 11); |
| 139 | + apiVersionHardwareVersionMap.put("6.2", 11); |
| 140 | + apiVersionHardwareVersionMap.put("6.3", 11); |
| 141 | + apiVersionHardwareVersionMap.put("6.4", 11); |
| 142 | + apiVersionHardwareVersionMap.put("6.5", 13); |
| 143 | + apiVersionHardwareVersionMap.put("6.6", 13); |
| 144 | + apiVersionHardwareVersionMap.put("6.7", 14); |
| 145 | + apiVersionHardwareVersionMap.put("6.8", 14); |
| 146 | + apiVersionHardwareVersionMap.put("6.9", 14); |
| 147 | + apiVersionHardwareVersionMap.put("7.0", 17); |
| 148 | + } |
| 149 | + |
107 | 150 | public static VirtualMachineMO findVmFromObjectContent(VmwareContext context, ObjectContent[] ocs, String name, String instanceNameCustomField) {
|
108 | 151 |
|
109 | 152 | if (ocs != null && ocs.length > 0) {
|
@@ -1661,4 +1704,19 @@ public static boolean isIdeController(String controller) {
|
1661 | 1704 | return DiskControllerType.getType(controller) == DiskControllerType.ide;
|
1662 | 1705 | }
|
1663 | 1706 |
|
| 1707 | + public static Integer getHostHardwareVersion(VmwareHypervisorHost host) { |
| 1708 | + Integer version = null; |
| 1709 | + HostMO hostMo = new HostMO(host.getContext(), host.getMor()); |
| 1710 | + String hostApiVersion = ""; |
| 1711 | + try { |
| 1712 | + hostApiVersion = hostMo.getHostAboutInfo().getApiVersion(); |
| 1713 | + } catch (Exception ignored) { |
| 1714 | + } |
| 1715 | + if (hostApiVersion == null) { |
| 1716 | + hostApiVersion = ""; |
| 1717 | + } |
| 1718 | + version = apiVersionHardwareVersionMap.get(hostApiVersion); |
| 1719 | + return version; |
| 1720 | + } |
| 1721 | + |
1664 | 1722 | }
|
0 commit comments