You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ko...@apache.org on 2014/06/19 06:38:44 UTC
git commit: updated refs/heads/master to 5cbb182
Repository: cloudstack
Updated Branches:
refs/heads/master 05c01a7dc -> 5cbb182c6
CLOUDSTACK-6636: [Windows] Can not create Template from ROOT snapshot on Windows management server with Xen/NFS storage type. This change is only for XenServer with NFS Storage Server. Will fix remaining when we touch them.
Signed-off-by: Koushik Das <ko...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/5cbb182c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/5cbb182c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/5cbb182c
Branch: refs/heads/master
Commit: 5cbb182c6d280a2d286d6b2443b235bcf87f2f17
Parents: 05c01a7
Author: Damodar Reddy <da...@citrix.com>
Authored: Wed Jun 18 14:55:05 2014 +0530
Committer: Koushik Das <ko...@apache.org>
Committed: Thu Jun 19 09:35:26 2014 +0530
----------------------------------------------------------------------
api/src/com/cloud/agent/api/to/DataStoreTO.java | 2 ++
api/src/com/cloud/agent/api/to/NfsTO.java | 6 ++++++
api/src/com/cloud/agent/api/to/S3TO.java | 6 ++++++
api/src/com/cloud/agent/api/to/SwiftTO.java | 6 ++++++
.../cloudstack/storage/to/ImageStoreTO.java | 6 ++++++
.../cloudstack/storage/to/PrimaryDataStoreTO.java | 6 ++++++
.../resource/XenServerStorageProcessor.java | 18 +++++++++---------
7 files changed, 41 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5cbb182c/api/src/com/cloud/agent/api/to/DataStoreTO.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/agent/api/to/DataStoreTO.java b/api/src/com/cloud/agent/api/to/DataStoreTO.java
index 8d47adc..1c901a6 100644
--- a/api/src/com/cloud/agent/api/to/DataStoreTO.java
+++ b/api/src/com/cloud/agent/api/to/DataStoreTO.java
@@ -26,4 +26,6 @@ public interface DataStoreTO {
String getUuid();
String getUrl();
+
+ String getPathSeparator();
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5cbb182c/api/src/com/cloud/agent/api/to/NfsTO.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/agent/api/to/NfsTO.java b/api/src/com/cloud/agent/api/to/NfsTO.java
index 1c9ee38..51d1aad 100644
--- a/api/src/com/cloud/agent/api/to/NfsTO.java
+++ b/api/src/com/cloud/agent/api/to/NfsTO.java
@@ -23,6 +23,7 @@ public class NfsTO implements DataStoreTO {
private String _url;
private DataStoreRole _role;
private String uuid;
+ private static final String pathSeparator = "/";
public NfsTO() {
@@ -65,4 +66,9 @@ public class NfsTO implements DataStoreTO {
public void setUuid(String uuid) {
this.uuid = uuid;
}
+
+ @Override
+ public String getPathSeparator() {
+ return pathSeparator;
+ }
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5cbb182c/api/src/com/cloud/agent/api/to/S3TO.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/agent/api/to/S3TO.java b/api/src/com/cloud/agent/api/to/S3TO.java
index f64fe35..346dd62 100644
--- a/api/src/com/cloud/agent/api/to/S3TO.java
+++ b/api/src/com/cloud/agent/api/to/S3TO.java
@@ -40,6 +40,7 @@ public final class S3TO implements S3Utils.ClientOptions, DataStoreTO {
private Date created;
private boolean enableRRS;
private long maxSingleUploadSizeInBytes;
+ private static final String pathSeparator = "/";
public S3TO() {
@@ -289,4 +290,9 @@ public final class S3TO implements S3Utils.ClientOptions, DataStoreTO {
}
}
}
+
+ @Override
+ public String getPathSeparator() {
+ return pathSeparator;
+ }
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5cbb182c/api/src/com/cloud/agent/api/to/SwiftTO.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/agent/api/to/SwiftTO.java b/api/src/com/cloud/agent/api/to/SwiftTO.java
index 3b76dad..c7a9866 100644
--- a/api/src/com/cloud/agent/api/to/SwiftTO.java
+++ b/api/src/com/cloud/agent/api/to/SwiftTO.java
@@ -26,6 +26,7 @@ public class SwiftTO implements DataStoreTO, SwiftUtil.SwiftClientCfg {
String userName;
String key;
+ private static final String pathSeparator = "/";
public SwiftTO() {
}
@@ -76,4 +77,9 @@ public class SwiftTO implements DataStoreTO, SwiftUtil.SwiftClientCfg {
public String getUuid() {
return null;
}
+
+ @Override
+ public String getPathSeparator() {
+ return pathSeparator;
+ }
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5cbb182c/core/src/org/apache/cloudstack/storage/to/ImageStoreTO.java
----------------------------------------------------------------------
diff --git a/core/src/org/apache/cloudstack/storage/to/ImageStoreTO.java b/core/src/org/apache/cloudstack/storage/to/ImageStoreTO.java
index 93c62f6..09ac2d8 100644
--- a/core/src/org/apache/cloudstack/storage/to/ImageStoreTO.java
+++ b/core/src/org/apache/cloudstack/storage/to/ImageStoreTO.java
@@ -27,6 +27,7 @@ public class ImageStoreTO implements DataStoreTO {
private String providerName;
private DataStoreRole role;
private String uuid;
+ private static final String pathSeparator = "/";
public ImageStoreTO() {
@@ -98,4 +99,9 @@ public class ImageStoreTO implements DataStoreTO {
public void setUuid(String uuid) {
this.uuid = uuid;
}
+
+ @Override
+ public String getPathSeparator() {
+ return pathSeparator;
+ }
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5cbb182c/core/src/org/apache/cloudstack/storage/to/PrimaryDataStoreTO.java
----------------------------------------------------------------------
diff --git a/core/src/org/apache/cloudstack/storage/to/PrimaryDataStoreTO.java b/core/src/org/apache/cloudstack/storage/to/PrimaryDataStoreTO.java
index 29e53b0..c3c9f8c 100644
--- a/core/src/org/apache/cloudstack/storage/to/PrimaryDataStoreTO.java
+++ b/core/src/org/apache/cloudstack/storage/to/PrimaryDataStoreTO.java
@@ -46,6 +46,7 @@ public class PrimaryDataStoreTO implements DataStoreTO {
private int port;
private final String url;
private Map<String, String> details;
+ private static final String pathSeparator = "/";
public PrimaryDataStoreTO(PrimaryDataStore dataStore) {
this.uuid = dataStore.getUuid();
@@ -123,6 +124,11 @@ public class PrimaryDataStoreTO implements DataStoreTO {
}
@Override
+ public String getPathSeparator() {
+ return pathSeparator;
+ }
+
+ @Override
public String toString() {
return new StringBuilder("PrimaryDataStoreTO[uuid=").append(uuid)
.append("|name=")
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5cbb182c/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java
index e96ebf4..2a1ee1b 100644
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java
@@ -109,7 +109,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
return new AttachAnswer("Can't attach a iso which is not created on nfs: ");
}
NfsTO nfsStore = (NfsTO) store;
- isoURL = nfsStore.getUrl() + File.separator + data.getPath();
+ isoURL = nfsStore.getUrl() + nfsStore.getPathSeparator() + data.getPath();
}
String vmName = cmd.getVmName();
@@ -290,7 +290,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
return new AttachAnswer("Can't attach a iso which is not created on nfs: ");
}
NfsTO nfsStore = (NfsTO) store;
- isoURL = nfsStore.getUrl() + File.separator + data.getPath();
+ isoURL = nfsStore.getUrl() + nfsStore.getPathSeparator() + data.getPath();
}
try {
@@ -933,7 +933,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
SR primaryStoragePool = hypervisorResource.getStorageRepository(conn, destVolume.getDataStore().getUuid());
String srUuid = primaryStoragePool.getUuid(conn);
URI uri = new URI(nfsStore.getUrl());
- String volumePath = uri.getHost() + ":" + uri.getPath() + File.separator + srcVolume.getPath();
+ String volumePath = uri.getHost() + ":" + uri.getPath() + nfsStore.getPathSeparator() + srcVolume.getPath();
String uuid = copy_vhd_from_secondarystorage(conn, volumePath, srUuid, wait);
VolumeObjectTO newVol = new VolumeObjectTO();
newVol.setPath(uuid);
@@ -970,7 +970,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
// Create a SR for the volume UUID folder
- secondaryStorage = hypervisorResource.createNfsSRbyURI(conn, new URI(nfsStore.getUrl() + File.separator + destVolume.getPath()), false);
+ secondaryStorage = hypervisorResource.createNfsSRbyURI(conn, new URI(nfsStore.getUrl() + nfsStore.getPathSeparator() + destVolume.getPath()), false);
// Look up the volume on the source primary storage pool
VDI srcVdi = getVDIbyUuid(conn, srcVolume.getPath());
// Copy the volume to secondary storage
@@ -978,7 +978,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
String destVolumeUUID = destVdi.getUuid(conn);
VolumeObjectTO newVol = new VolumeObjectTO();
- newVol.setPath(destVolume.getPath() + File.separator + destVolumeUUID + ".vhd");
+ newVol.setPath(destVolume.getPath() + nfsStore.getPathSeparator() + destVolumeUUID + ".vhd");
newVol.setSize(srcVolume.getSize());
return new CopyCmdAnswer(newVol);
} catch (Exception e) {
@@ -1282,7 +1282,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
// finalPath = folder + File.separator + snapshotBackupUuid;
} else {
- finalPath = folder + File.separator + snapshotBackupUuid;
+ finalPath = folder + cacheStore.getPathSeparator() + snapshotBackupUuid;
}
} finally {
@@ -1310,7 +1310,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
String[] tmp = results.split("#");
snapshotBackupUuid = tmp[1];
physicalSize = Long.parseLong(tmp[2]);
- finalPath = folder + File.separator + snapshotBackupUuid;
+ finalPath = folder + cacheStore.getPathSeparator() + snapshotBackupUuid;
}
}
// delete primary snapshots with only the last one left
@@ -1461,13 +1461,13 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
// Get the absolute path of the snapshot on the secondary storage.
String snapshotInstallPath = snapshot.getPath();
- int index = snapshotInstallPath.lastIndexOf(File.separator);
+ int index = snapshotInstallPath.lastIndexOf(nfsImageStore.getPathSeparator());
String snapshotName = snapshotInstallPath.substring(index + 1);
if (!snapshotName.startsWith("VHD-") && !snapshotName.endsWith(".vhd")) {
snapshotInstallPath = snapshotInstallPath + ".vhd";
}
- URI snapshotURI = new URI(secondaryStorageUrl + File.separator + snapshotInstallPath);
+ URI snapshotURI = new URI(secondaryStorageUrl + nfsImageStore.getPathSeparator() + snapshotInstallPath);
String snapshotPath = snapshotURI.getHost() + ":" + snapshotURI.getPath();
String srUuid = primaryStorageSR.getUuid(conn);
volumeUUID = copy_vhd_from_secondarystorage(conn, snapshotPath, srUuid, wait);