You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ro...@apache.org on 2018/01/07 10:30:43 UTC
[cloudstack] branch master updated: CLOUDSTACK-10197: Rename
xentools iso for XenServer 7.0+ (#2365)
This is an automated email from the ASF dual-hosted git repository.
rohit pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/master by this push:
new 25d7d74 CLOUDSTACK-10197: Rename xentools iso for XenServer 7.0+ (#2365)
25d7d74 is described below
commit 25d7d741a7a80fa615c576fda6248e1f1a28dafe
Author: Khosrow Moossavi <37...@users.noreply.github.com>
AuthorDate: Sun Jan 7 05:30:39 2018 -0500
CLOUDSTACK-10197: Rename xentools iso for XenServer 7.0+ (#2365)
The xentools iso has been renamed from xs-tools to guest-tools
starting from XenServer 7.0.
---
.../xenserver/discoverer/XcpServerDiscoverer.java | 2 +-
.../xenserver/resource/CitrixResourceBase.java | 26 ++++++++++++++++++----
2 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/discoverer/XcpServerDiscoverer.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/discoverer/XcpServerDiscoverer.java
index 83a9c23..d23f7a8 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/discoverer/XcpServerDiscoverer.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/discoverer/XcpServerDiscoverer.java
@@ -536,7 +536,7 @@ public class XcpServerDiscoverer extends DiscovererBase implements Discoverer, L
id = _tmpltDao.getNextInSequence(Long.class, "id");
VMTemplateVO template =
VMTemplateVO.createPreHostIso(id, isoName, isoName, ImageFormat.ISO, true, true, TemplateType.PERHOST, null, null, true, 64, Account.ACCOUNT_ID_SYSTEM,
- null, "xen-pv-drv-iso", false, 1, false, HypervisorType.XenServer);
+ null, "XenServer Tools Installer ISO (xen-pv-drv-iso)", false, 1, false, HypervisorType.XenServer);
_tmpltDao.persist(template);
} else {
id = tmplt.getId();
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java
index f960b9f..97d6118 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java
@@ -2592,9 +2592,10 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
String mountpoint = null;
if (isoURL.startsWith("xs-tools")) {
try {
- final Set<VDI> vdis = VDI.getByNameLabel(conn, isoURL);
+ final String actualIsoURL = actualIsoTemplate(conn);
+ final Set<VDI> vdis = VDI.getByNameLabel(conn, actualIsoURL);
if (vdis.isEmpty()) {
- throw new CloudRuntimeException("Could not find ISO with URL: " + isoURL);
+ throw new CloudRuntimeException("Could not find ISO with URL: " + actualIsoURL);
}
return vdis.iterator().next();
@@ -2630,6 +2631,22 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
}
}
+ private String actualIsoTemplate(final Connection conn) throws BadServerResponse, XenAPIException, XmlRpcException {
+ final Host host = Host.getByUuid(conn, _host.getUuid());
+ final Host.Record record = host.getRecord(conn);
+ final String xenBrand = record.softwareVersion.get("product_brand");
+ final String xenVersion = record.softwareVersion.get("product_version");
+ final String[] items = xenVersion.split("\\.");
+
+ // guest-tools.iso for XenServer version 7.0+
+ if (xenBrand.equals("XenServer") && Integer.parseInt(items[0]) >= 7) {
+ return "guest-tools.iso";
+ }
+
+ // xs-tools.iso for older XenServer versions
+ return "xs-tools.iso";
+ }
+
public String getLabel() {
final Connection conn = getConnection();
final String result = callHostPlugin(conn, "ovstunnel", "getLabel");
@@ -3882,9 +3899,10 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
final String templateName = iso.getName();
if (templateName.startsWith("xs-tools")) {
try {
- final Set<VDI> vdis = VDI.getByNameLabel(conn, templateName);
+ final String actualTemplateName = actualIsoTemplate(conn);
+ final Set<VDI> vdis = VDI.getByNameLabel(conn, actualTemplateName);
if (vdis.isEmpty()) {
- throw new CloudRuntimeException("Could not find ISO with URL: " + templateName);
+ throw new CloudRuntimeException("Could not find ISO with URL: " + actualTemplateName);
}
return vdis.iterator().next();
} catch (final XenAPIException e) {
--
To stop receiving notification emails like this one, please contact
['"commits@cloudstack.apache.org" <co...@cloudstack.apache.org>'].