From a95a9dc07c4edcfd1ef4c3ece955ce13f2223b79 Mon Sep 17 00:00:00 2001 From: Edison Su Date: Wed, 26 Sep 2012 11:49:34 -0700 Subject: [PATCH] find local storage based on name label --- .../hypervisor/xen/resource/XcpOssResource.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XcpOssResource.java b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XcpOssResource.java index 0a1064707b1..d22c8b533ec 100644 --- a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XcpOssResource.java +++ b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XcpOssResource.java @@ -20,6 +20,7 @@ package com.cloud.hypervisor.xen.resource; import java.io.File; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Set; import javax.ejb.Local; @@ -44,6 +45,7 @@ import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.script.Script; import com.cloud.vm.VirtualMachine; import com.xensource.xenapi.Connection; +import com.xensource.xenapi.SR; import com.xensource.xenapi.Types; import com.xensource.xenapi.VBD; import com.xensource.xenapi.VDI; @@ -82,9 +84,18 @@ public class XcpOssResource extends CitrixResourceBase { } protected VBD createPatchVbd(Connection conn, String vmName, VM vm) throws XmlRpcException, XenAPIException { - if (_host.localSRuuid != null) { + String localStorageUuid = null; + Map map = SR.getAllRecords(conn); + for (Map.Entry entry : map.entrySet()) { + SR.Record srRec = entry.getValue(); + if (srRec.nameLabel.equalsIgnoreCase("local-storage")) { + localStorageUuid = srRec.uuid; + break; + } + } + if (localStorageUuid != null) { //create an iso vdi on it - String result = callHostPlugin(conn, "vmops", "createISOVHD", "uuid", _host.localSRuuid); + String result = callHostPlugin(conn, "vmops", "createISOVHD", "uuid", localStorageUuid); if (result == null || result.equalsIgnoreCase("Failed")) { throw new CloudRuntimeException("can not create systemvm vdi"); }