diff --git a/XenModel/Actions/OvfActions/Import.cs b/XenModel/Actions/OvfActions/Import.cs index bf145c2304..0346b2e70e 100644 --- a/XenModel/Actions/OvfActions/Import.cs +++ b/XenModel/Actions/OvfActions/Import.cs @@ -321,13 +321,7 @@ private XenRef ImportFile(string diskName, string pathToOvf, string filenam virtualSize = vhdDisk.Capacity; dataStream = File.OpenRead(filePath); dataLength = dataStream.Length; - format = "vhd"; - } - else if (VirtualDisk.SupportedDiskFormats.Any(f => ext.ToLower().EndsWith(f.ToLower()))) - { - vhdDisk = VirtualDisk.OpenDisk(sourcefile, FileAccess.Read); - dataStream = vhdDisk.Content; - dataLength = virtualSize = vhdDisk.Capacity; + format = "&format=vhd"; } else if (ext.ToLower().EndsWith("iso")) { @@ -340,6 +334,12 @@ private XenRef ImportFile(string diskName, string pathToOvf, string filenam dataStream = File.OpenRead(filePath); dataLength = virtualSize = dataStream.Length; } + else if (VirtualDisk.SupportedDiskFormats.Any(f => ext.ToLower().EndsWith(f.ToLower()))) + { + vhdDisk = VirtualDisk.OpenDisk(sourcefile, FileAccess.Read); + dataStream = vhdDisk.Content; + dataLength = virtualSize = vhdDisk.Capacity; + } else { throw new IOException(string.Format(Messages.UNSUPPORTED_FILE_TYPE, ext)); @@ -414,7 +414,7 @@ private XenRef ImportFile(string diskName, string pathToOvf, string filenam Host = Connection.Hostname, Port = Connection.Port, Path = "/import_raw_vdi", - Query = string.Format("session_id={0}&task_id={1}&vdi={2}&format={3}", + Query = string.Format("session_id={0}&task_id={1}&vdi={2}{3}", Connection.Session.opaque_ref, taskRef.opaque_ref, vdiuuid, format) };