Fix for live migration of vm. Use the host name as the migration

destination. Also mapped the vm state corrected in check vm on host
answer.
This commit is contained in:
Devdeep Singh 2013-12-04 02:27:27 +05:30
parent 8454885fbe
commit 2d90ee469a
2 changed files with 7 additions and 3 deletions

View File

@ -738,7 +738,7 @@ namespace HypervResource
}
else
{
state = EnabledState.ToString(sys.EnabledState); // TODO: V2 changes?
state = EnabledState.ToCloudStackState(sys.EnabledState); // TODO: V2 changes?
result = true;
}

View File

@ -890,13 +890,17 @@ namespace HypervResource
VirtualSystemMigrationSettingData migrationSettingData = VirtualSystemMigrationSettingData.CreateInstance();
VirtualSystemMigrationService service = GetVirtualisationSystemMigrationService();
IPAddress addr = IPAddress.Parse(destination);
IPHostEntry entry = Dns.GetHostEntry(addr);
string[] destinationHost = new string[] { destination };
migrationSettingData.LateBoundObject["MigrationType"] = MigrationType.VirtualSystem;
migrationSettingData.LateBoundObject["TransportType"] = TransportType.TCP;
migrationSettingData.LateBoundObject["DestinationIPAddressList"] = destinationHost;
string migrationSettings = migrationSettingData.LateBoundObject.GetText(System.Management.TextFormat.CimDtd20);
ManagementPath jobPath;
string destinationHost = "band-cloud153.blr.cloudstack.org";
var ret_val = service.MigrateVirtualSystemToHost(vm.Path, destinationHost, migrationSettings, null, null, out jobPath);
var ret_val = service.MigrateVirtualSystemToHost(vm.Path, entry.HostName, migrationSettings, null, null, out jobPath);
if (ret_val == ReturnCode.Started)
{
MigrationJobCompleted(jobPath);