You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ed...@apache.org on 2012/10/29 19:37:06 UTC

[1/2] git commit: CLOUDSTACK-423 : During VM migration on KVM, VifDriver.unplug is not called.

Updated Branches:
  refs/heads/master ce60cfee8 -> c03712e86


CLOUDSTACK-423 : During VM migration on KVM, VifDriver.unplug is not
called.

VifDriver.unplug must be called in MigrateCommand which hooks VM
migration in source host, because plug will be called in
PrepareForMigration in destination host. But that operation is missing
in current LibvirtComputingResources.

Signed-off-by: Edison Su <su...@gmail.com>


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

Branch: refs/heads/master
Commit: c03712e86ac9f36d9cf8522807583969eef2ea70
Parents: cb93954
Author: Hiroaki Kawai <ka...@stratosphere.co.jp>
Authored: Mon Oct 29 11:36:25 2012 -0700
Committer: Edison Su <su...@gmail.com>
Committed: Mon Oct 29 11:36:25 2012 -0700

----------------------------------------------------------------------
 .../kvm/resource/LibvirtComputingResource.java     |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c03712e8/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
index fe2c83a..be22c50 100755
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
@@ -2320,12 +2320,15 @@ public class LibvirtComputingResource extends ServerResourceBase implements
             _vms.put(vmName, State.Stopping);
         }
 
+        List<InterfaceDef> ifaces = null;
+
         Domain dm = null;
         Connect dconn = null;
         Domain destDomain = null;
         Connect conn = null;
         try {
             conn = LibvirtConnection.getConnection();
+            ifaces = getInterfaces(conn, vmName);
             dm = conn.domainLookupByUUID(UUID.nameUUIDFromBytes(vmName
                     .getBytes()));
             dconn = new Connect("qemu+tcp://" + cmd.getDestinationIp()
@@ -2364,6 +2367,9 @@ public class LibvirtComputingResource extends ServerResourceBase implements
             }
         } else {
             destroy_network_rules_for_vm(conn, vmName);
+            for (InterfaceDef iface : ifaces) {
+                _vifDriver.unplug(iface);
+            }
             cleanupVM(conn, vmName,
                     getVnetId(VirtualMachineName.getVnet(vmName)));
         }