Skip to content

Commit

Permalink
[CLOUDSTACK-9662] Add support for XenServer 7
Browse files Browse the repository at this point in the history
  • Loading branch information
syed committed Dec 21, 2016
1 parent 7da9517 commit eabf862
Show file tree
Hide file tree
Showing 8 changed files with 255 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,9 @@
import com.cloud.hypervisor.xenserver.resource.XenServer610Resource;
import com.cloud.hypervisor.xenserver.resource.XenServer620Resource;
import com.cloud.hypervisor.xenserver.resource.XenServer620SP1Resource;
import com.cloud.hypervisor.xenserver.resource.XenServer650Resource;
import com.cloud.hypervisor.xenserver.resource.XenServerConnectionPool;
import com.cloud.hypervisor.xenserver.resource.Xenserver625Resource;
import com.cloud.hypervisor.xenserver.resource.XenServer650Resource;
import com.cloud.resource.Discoverer;
import com.cloud.resource.DiscovererBase;
import com.cloud.resource.ResourceStateAdapter;
Expand All @@ -81,15 +81,13 @@
import com.xensource.xenapi.Types.SessionAuthenticationFailed;
import com.xensource.xenapi.Types.UuidInvalid;
import com.xensource.xenapi.Types.XenAPIException;

import org.apache.cloudstack.hypervisor.xenserver.XenserverConfigs;
import org.apache.log4j.Logger;
import org.apache.xmlrpc.XmlRpcException;

import javax.inject.Inject;
import javax.naming.ConfigurationException;
import javax.persistence.EntityExistsException;

import java.net.InetAddress;
import java.net.URI;
import java.net.UnknownHostException;
Expand Down Expand Up @@ -408,8 +406,6 @@ else if (prodBrand.equals("XenServer") && prodVersion.equals("6.0.2"))
return new XenServer600Resource();
else if (prodBrand.equals("XenServer") && prodVersion.equals("6.1.0"))
return new XenServer610Resource();
else if (prodBrand.equals("XenServer") && prodVersion.equals("6.5.0"))
return new XenServer650Resource();
else if (prodBrand.equals("XenServer") && prodVersion.equals("6.2.0")) {
if (hotfix != null && hotfix.equals(XenserverConfigs.XSHotFix62ESP1004)) {
return new Xenserver625Resource();
Expand All @@ -426,9 +422,18 @@ else if (prodBrand.equals("XenServer") && prodVersion.equals("6.2.0")) {
}
} else if (prodBrand.equals("XCP_Kronos")) {
return new XcpOssResource();
} else if (prodBrand.equals("XenServer")) {
final String[] items = prodVersion.split("\\.");
if ((Integer.parseInt(items[0]) > 6) ||
(Integer.parseInt(items[0]) == 6 && Integer.parseInt(items[1]) >= 4)) {
s_logger.warn("defaulting to xenserver650 resource for product brand: " + prodBrand + " with product " +
"version: " + prodVersion);
//default to xenserver650 resource.
return new XenServer650Resource();
}
}
String msg =
"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 " +
"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 " +
prodBrand + " " + prodVersion;
s_logger.warn(msg);
throw new RuntimeException(msg);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -227,12 +227,6 @@ public static String getProductVersion(final Host.Record record) {
prodVersion = record.softwareVersion.get("platform_version").trim();
} else {
prodVersion = prodVersion.trim();
final String[] items = prodVersion.split("\\.");
if (Integer.parseInt(items[0]) > 6) {
prodVersion = "6.5.0";
} else if (Integer.parseInt(items[0]) == 6 && Integer.parseInt(items[1]) >= 4) {
prodVersion = "6.5.0";
}
}
return prodVersion;
}
Expand Down
5 changes: 4 additions & 1 deletion scripts/vm/hypervisor/xenserver/cloudstack_pluginlib.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,10 @@
import logging
import os
import subprocess
import simplejson as json
try:
import simplejson as json
except ImportError:
import json
import copy

from time import localtime, asctime
Expand Down
2 changes: 1 addition & 1 deletion scripts/vm/hypervisor/xenserver/setup_heartbeat_sr.sh
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ else
fi
rm $link -f
fi
lvcreate VG_XenStorage-$2 -n hb-$1 --size 4M
lvcreate VG_XenStorage-$2 -n hb-$1 --size 4M --config global{metadata_read_only=0}
if [ $? -ne 0 ]; then
echo "#6# Unable to create heartbeat volume hb-$1"
exit 0
Expand Down
1 change: 1 addition & 0 deletions setup/db/db/schema-490to4910.sql
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervis
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);
-- Ensure correct guest_os_name for guest OS type 'Windows Server 2008 R2 64-bit' for VMware
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';

-- Adding hypervisor mappings for SUSE Linux guest OS variants on VMware 6.0
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);
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);
Expand Down

0 comments on commit eabf862

Please sign in to comment.