From cb61d35ad05b2007b68feb4337308f0e1e910df1 Mon Sep 17 00:00:00 2001 From: Anthony Xu Date: Wed, 26 Mar 2014 14:56:58 -0700 Subject: [PATCH] set nosubdir for NFS SR --- .../xen/resource/CitrixResourceBase.java | 20 +++++++++++++------ .../resource/XenServerStorageProcessor.java | 6 +++--- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java index a57b606bce2..3115cbe071a 100644 --- a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java +++ b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java @@ -5091,6 +5091,14 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe s_logger.debug("Checking " + srr.nameLabel + " or SR " + srr.uuid + " on " + _host); } if (srr.shared) { + if (SRType.NFS.equals(srr.type) ){ + Map smConfig = srr.smConfig; + if( !smConfig.containsKey("nosubdir")) { + smConfig.put("nosubdir", "true"); + sr.setSmConfig(conn,smConfig); + } + } + Host host = Host.getByUuid(conn, _host.uuid); boolean found = false; for (PBD pbd : pbds) { @@ -5910,10 +5918,10 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe } Host host = Host.getByUuid(conn, _host.uuid); + Map smConfig = new HashMap(); + smConfig.put("nosubdir", "true"); + SR sr = SR.create(conn, host, deviceConfig, new Long(0), name, uri.getHost() + uri.getPath(), SRType.NFS.toString(), "user", shared, smConfig); - SR sr = - SR.create(conn, host, deviceConfig, new Long(0), name, uri.getHost() + uri.getPath(), SRType.NFS.toString(), "user", shared, - new HashMap()); if (!checkSR(conn, sr)) { throw new Exception("no attached PBD"); } @@ -6183,9 +6191,9 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe deviceConfig.put("server", server); deviceConfig.put("serverpath", serverpath); Host host = Host.getByUuid(conn, _host.uuid); - SR sr = - SR.create(conn, host, deviceConfig, new Long(0), pool.getUuid(), Long.toString(pool.getId()), SRType.NFS.toString(), "user", true, - new HashMap()); + Map smConfig = new HashMap(); + smConfig.put("nosubdir", "true"); + SR sr = SR.create(conn, host, deviceConfig, new Long(0), pool.getUuid(), Long.toString(pool.getId()), SRType.NFS.toString(), "user", true, smConfig); sr.scan(conn); return sr; } catch (XenAPIException e) { diff --git a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java index e512046b35b..a762f862c7a 100644 --- a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java +++ b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java @@ -560,9 +560,9 @@ public class XenServerStorageProcessor implements StorageProcessor { deviceConfig.put("server", server); deviceConfig.put("serverpath", serverpath); Host host = Host.getByUuid(conn, hypervisorResource.getHost().uuid); - SR sr = - SR.create(conn, host, deviceConfig, new Long(0), pool.getUuid(), Long.toString(pool.getId()), SRType.NFS.toString(), "user", true, - new HashMap()); + Map smConfig = new HashMap(); + smConfig.put("nosubdir", "true"); + SR sr = SR.create(conn, host, deviceConfig, new Long(0), pool.getUuid(), Long.toString(pool.getId()), SRType.NFS.toString(), "user", true, smConfig); sr.scan(conn); return sr; } catch (XenAPIException e) {