Skip to content

Commit eabf862

Browse files
committed
[CLOUDSTACK-9662] Add support for XenServer 7
1 parent 7da9517 commit eabf862

File tree

8 files changed

+255
-18
lines changed

8 files changed

+255
-18
lines changed

plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/discoverer/XcpServerDiscoverer.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@
5454
import com.cloud.hypervisor.xenserver.resource.XenServer610Resource;
5555
import com.cloud.hypervisor.xenserver.resource.XenServer620Resource;
5656
import com.cloud.hypervisor.xenserver.resource.XenServer620SP1Resource;
57+
import com.cloud.hypervisor.xenserver.resource.XenServer650Resource;
5758
import com.cloud.hypervisor.xenserver.resource.XenServerConnectionPool;
5859
import com.cloud.hypervisor.xenserver.resource.Xenserver625Resource;
59-
import com.cloud.hypervisor.xenserver.resource.XenServer650Resource;
6060
import com.cloud.resource.Discoverer;
6161
import com.cloud.resource.DiscovererBase;
6262
import com.cloud.resource.ResourceStateAdapter;
@@ -81,15 +81,13 @@
8181
import com.xensource.xenapi.Types.SessionAuthenticationFailed;
8282
import com.xensource.xenapi.Types.UuidInvalid;
8383
import com.xensource.xenapi.Types.XenAPIException;
84-
8584
import org.apache.cloudstack.hypervisor.xenserver.XenserverConfigs;
8685
import org.apache.log4j.Logger;
8786
import org.apache.xmlrpc.XmlRpcException;
8887

8988
import javax.inject.Inject;
9089
import javax.naming.ConfigurationException;
9190
import javax.persistence.EntityExistsException;
92-
9391
import java.net.InetAddress;
9492
import java.net.URI;
9593
import java.net.UnknownHostException;
@@ -408,8 +406,6 @@ else if (prodBrand.equals("XenServer") && prodVersion.equals("6.0.2"))
408406
return new XenServer600Resource();
409407
else if (prodBrand.equals("XenServer") && prodVersion.equals("6.1.0"))
410408
return new XenServer610Resource();
411-
else if (prodBrand.equals("XenServer") && prodVersion.equals("6.5.0"))
412-
return new XenServer650Resource();
413409
else if (prodBrand.equals("XenServer") && prodVersion.equals("6.2.0")) {
414410
if (hotfix != null && hotfix.equals(XenserverConfigs.XSHotFix62ESP1004)) {
415411
return new Xenserver625Resource();
@@ -426,9 +422,18 @@ else if (prodBrand.equals("XenServer") && prodVersion.equals("6.2.0")) {
426422
}
427423
} else if (prodBrand.equals("XCP_Kronos")) {
428424
return new XcpOssResource();
425+
} else if (prodBrand.equals("XenServer")) {
426+
final String[] items = prodVersion.split("\\.");
427+
if ((Integer.parseInt(items[0]) > 6) ||
428+
(Integer.parseInt(items[0]) == 6 && Integer.parseInt(items[1]) >= 4)) {
429+
s_logger.warn("defaulting to xenserver650 resource for product brand: " + prodBrand + " with product " +
430+
"version: " + prodVersion);
431+
//default to xenserver650 resource.
432+
return new XenServer650Resource();
433+
}
429434
}
430435
String msg =
431-
"Only support XCP 1.0.0, 1.1.0, 1.4.x, 1.5 beta, 1.6.x; XenServer 5.6, XenServer 5.6 FP1, XenServer 5.6 SP2, Xenserver 6.0, 6.0.2, 6.1.0, 6.2.0, 6.5.0 but this one is " +
436+
"Only support XCP 1.0.0, 1.1.0, 1.4.x, 1.5 beta, 1.6.x; XenServer 5.6, XenServer 5.6 FP1, XenServer 5.6 SP2, Xenserver 6.0, 6.0.2, 6.1.0, 6.2.0, >6.4.0 but this one is " +
432437
prodBrand + " " + prodVersion;
433438
s_logger.warn(msg);
434439
throw new RuntimeException(msg);

plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixHelper.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -227,12 +227,6 @@ public static String getProductVersion(final Host.Record record) {
227227
prodVersion = record.softwareVersion.get("platform_version").trim();
228228
} else {
229229
prodVersion = prodVersion.trim();
230-
final String[] items = prodVersion.split("\\.");
231-
if (Integer.parseInt(items[0]) > 6) {
232-
prodVersion = "6.5.0";
233-
} else if (Integer.parseInt(items[0]) == 6 && Integer.parseInt(items[1]) >= 4) {
234-
prodVersion = "6.5.0";
235-
}
236230
}
237231
return prodVersion;
238232
}

scripts/vm/hypervisor/xenserver/cloudstack_pluginlib.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@
2121
import logging
2222
import os
2323
import subprocess
24-
import simplejson as json
24+
try:
25+
import simplejson as json
26+
except ImportError:
27+
import json
2528
import copy
2629

2730
from time import localtime, asctime

scripts/vm/hypervisor/xenserver/setup_heartbeat_sr.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ else
7272
fi
7373
rm $link -f
7474
fi
75-
lvcreate VG_XenStorage-$2 -n hb-$1 --size 4M
75+
lvcreate VG_XenStorage-$2 -n hb-$1 --size 4M --config global{metadata_read_only=0}
7676
if [ $? -ne 0 ]; then
7777
echo "#6# Unable to create heartbeat volume hb-$1"
7878
exit 0

setup/db/db/schema-490to4910.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervis
5252
INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.5.0', 'Ubuntu Trusty Tahr 14.04', 256, utc_timestamp(), 0);
5353
-- Ensure correct guest_os_name for guest OS type 'Windows Server 2008 R2 64-bit' for VMware
5454
UPDATE IGNORE `cloud`.`guest_os_hypervisor` SET guest_os_name = 'windows7Server64Guest' WHERE guest_os_id IN (SELECT id FROM guest_os WHERE display_name LIKE 'windows%2008%r2%64%') AND hypervisor_type = 'VMware' AND hypervisor_version != 'default';
55+
5556
-- Adding hypervisor mappings for SUSE Linux guest OS variants on VMware 6.0
5657
INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', '6.0', 'slesGuest', 40, utc_timestamp(), 0);
5758
INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'VMware', '6.0', 'sles10Guest', 41, utc_timestamp(), 0);

0 commit comments

Comments
 (0)