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 <372575+khos...@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" <commits@cloudstack.apache.org>'].