diff --git a/plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/CloudStackTypes.cs b/plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/CloudStackTypes.cs index 2f5be7f04a6..869f1088469 100644 --- a/plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/CloudStackTypes.cs +++ b/plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/CloudStackTypes.cs @@ -173,11 +173,11 @@ namespace HypervResource PrimaryDataStoreTO store = this.primaryDataStore; if (store.isLocal) { - fileName = Path.Combine(store.Path, this.name); + fileName = Path.Combine(store.Path, this.uuid); } else { - fileName = @"\\" + store.uri.Host + store.uri.LocalPath + @"\" + this.name; + fileName = @"\\" + store.uri.Host + store.uri.LocalPath + @"\" + this.uuid; fileName = Utils.NormalizePath(fileName); } } @@ -198,7 +198,7 @@ namespace HypervResource fileName = Utils.NormalizePath(fileName); if (Directory.Exists(fileName)) { - fileName = Utils.NormalizePath(fileName + @"\" + this.name); + fileName = Utils.NormalizePath(fileName + @"\" + this.uuid); } } } @@ -300,11 +300,11 @@ namespace HypervResource path = Utils.NormalizePath(path); if (Directory.Exists(path)) { - string[] choices = choices = Directory.GetFiles(path, volInfo.name + ".vhd*"); + string[] choices = choices = Directory.GetFiles(path, volInfo.uuid + ".vhd*"); if (choices.Length != 1) { String errMsg = "Tried to guess file extension, but cannot find file corresponding to " + - Path.Combine(volInfo.primaryDataStore.Path, volInfo.name); + Path.Combine(volInfo.primaryDataStore.Path, volInfo.uuid); logger.Debug(errMsg); } else @@ -334,18 +334,18 @@ namespace HypervResource PrimaryDataStoreTO store = this.primaryDataStore; if (store.isLocal) { - fileName = Path.Combine(store.Path, this.name); + fileName = Path.Combine(store.Path, this.uuid); } else { - fileName = @"\\" + store.uri.Host + store.uri.LocalPath + @"\" + this.name; + fileName = @"\\" + store.uri.Host + store.uri.LocalPath + @"\" + this.uuid; } fileName = fileName + '.' + this.format.ToLowerInvariant(); } else if (this.nfsDataStoreTO != null) { NFSTO store = this.nfsDataStoreTO; - fileName = store.UncPath + @"\" + this.path + @"\" + this.name; + fileName = store.UncPath + @"\" + this.path + @"\" + this.uuid; if (!this.format.Equals("RAW")) { fileName = fileName + '.' + this.format.ToLowerInvariant(); diff --git a/plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/HypervResourceController.cs b/plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/HypervResourceController.cs index 5ba78fe5a49..e233d0340d8 100644 --- a/plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/HypervResourceController.cs +++ b/plugins/hypervisors/hyperv/DotNet/ServerResource/HypervResource/HypervResourceController.cs @@ -1168,13 +1168,13 @@ namespace HypervResource bool result = false; string details = null; - + object newData = null; try { VolumeObjectTO volume = VolumeObjectTO.ParseJson(cmd.data); PrimaryDataStoreTO primary = volume.primaryDataStore; ulong volumeSize = volume.size; - string volumeName = volume.name + ".vhd"; + string volumeName = volume.uuid + ".vhd"; string volumePath = null; if (primary.isLocal) @@ -1187,11 +1187,13 @@ namespace HypervResource volumePath = Utils.NormalizePath(volumePath); Utils.ConnectToRemote(primary.UncPath, primary.Domain, primary.User, primary.Password); } - + volume.path = volumePath; wmiCallsV2.CreateDynamicVirtualHardDisk(volumeSize, volumePath); if (File.Exists(volumePath)) { result = true; + JObject ansObj = Utils.CreateCloudStackObject(CloudStackTypes.VolumeObjectTO, volume); + newData = ansObj; } else { @@ -1209,7 +1211,7 @@ namespace HypervResource { result = result, details = details, - data = cmd.data, + data = newData, contextMap = contextMap };