You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ra...@apache.org on 2013/10/28 14:05:35 UTC

[2/2] git commit: updated refs/heads/hyperv to 8f508a0

Fix to discover the seeded template to bring up the systemvm's for the first startup and fixed UNC path isues


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/8f508a02
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/8f508a02
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/8f508a02

Branch: refs/heads/hyperv
Commit: 8f508a023beccd091996375ce699a8533a399275
Parents: f1b8aa9
Author: Rajesh Battala <ra...@citrix.com>
Authored: Mon Oct 28 18:33:10 2013 +0530
Committer: Rajesh Battala <ra...@citrix.com>
Committed: Mon Oct 28 18:33:10 2013 +0530

----------------------------------------------------------------------
 .../ServerResource/HypervResource/Utils.cs      | 24 +++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8f508a02/plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/Utils.cs
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/Utils.cs b/plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/Utils.cs
index c24a1ae..3baab5b 100644
--- a/plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/Utils.cs
+++ b/plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/Utils.cs
@@ -66,7 +66,29 @@ namespace HypervResource
                 bool isSuccess = LogonUser(cifsShareDetails.User, cifsShareDetails.Domain, cifsShareDetails.Password, LOGON32_LOGON_NEW_CREDENTIALS, LOGON32_PROVIDER_DEFAULT, ref token);
                 using (WindowsImpersonationContext remoteIdentity = new WindowsIdentity(token).Impersonate())
                 {
-                    String dest = Path.Combine(cifsShareDetails.UncPath, filePathRelativeToShare);
+
+                 // if the filePathRelativeToShare string don't have filename and only a dir point then find the vhd files in that folder and use
+                 // In the clean setup, first copy command wont be having the filename it contains onlyu dir path.
+                 // we need to scan the folder point and then copy the file to destination.
+                 String dest = "";
+                 if (!filePathRelativeToShare.Contains(".vhd"))
+                 {
+                     // scan the folder and get the vhd filename.
+                     String uncPath = cifsShareDetails.UncPath + "\\" + filePathRelativeToShare;
+                     uncPath = uncPath.Replace("/", "\\");
+                     DirectoryInfo dir = new DirectoryInfo(uncPath);
+                     FileInfo[] vhdFiles = dir.GetFiles("*.vhd");
+                     if (vhdFiles.Length > 0)
+                     {
+                         FileInfo file = vhdFiles[0];
+                         dest = file.FullName;
+                     }
+                 }
+                 else
+                 {
+                     dest = Path.Combine(cifsShareDetails.UncPath, filePathRelativeToShare);
+                     dest = dest.Replace("/", "\\");
+                 }
                     s_logger.Info(CloudStackTypes.CopyCommand + ": copy " + Path.Combine(cifsShareDetails.UncPath, filePathRelativeToShare) + " to " + destFile);
 
                     File.Copy(dest, destFile, true);