cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From d...@apache.org
Subject [15/16] git commit: updated refs/heads/4.4 to 6b342ff
Date Fri, 25 Apr 2014 20:26:55 GMT
CLOUDSTACK-6431: OVS migrating vm to a new host added to the cluster
does not create gre tunnel port on the new host

ensure OveElement gets a chance to setup tunnel network on the host
before VM is migrated.


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

Branch: refs/heads/4.4
Commit: 5ba7f6c00628dc971a338e4b5ecab49ef1965b37
Parents: 61fc571
Author: Murali Reddy <muralimmreddy@gmail.com>
Authored: Fri Apr 25 17:18:24 2014 +0530
Committer: Daan Hoogland <daan@onecht.net>
Committed: Fri Apr 25 22:13:03 2014 +0200

----------------------------------------------------------------------
 .../com/cloud/network/element/OvsElement.java   | 39 +++++++++++++++++++-
 1 file changed, 37 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5ba7f6c0/plugins/network-elements/ovs/src/com/cloud/network/element/OvsElement.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/ovs/src/com/cloud/network/element/OvsElement.java b/plugins/network-elements/ovs/src/com/cloud/network/element/OvsElement.java
index d767834..faf58fc 100644
--- a/plugins/network-elements/ovs/src/com/cloud/network/element/OvsElement.java
+++ b/plugins/network-elements/ovs/src/com/cloud/network/element/OvsElement.java
@@ -54,6 +54,7 @@ import com.cloud.network.PublicIpAddress;
 import com.cloud.network.dao.NetworkServiceMapDao;
 import com.cloud.network.lb.LoadBalancingRule;
 import com.cloud.network.lb.LoadBalancingRule.LbStickinessPolicy;
+import com.cloud.network.NetworkMigrationResponder;
 import com.cloud.network.ovs.OvsTunnelManager;
 import com.cloud.network.router.VirtualRouter.Role;
 import com.cloud.network.router.VpcVirtualNetworkApplianceManager;
@@ -79,10 +80,10 @@ import com.cloud.vm.VirtualMachine;
 
 @Local(value = {NetworkElement.class, ConnectivityProvider.class,
         SourceNatServiceProvider.class, StaticNatServiceProvider.class,
-        PortForwardingServiceProvider.class, IpDeployer.class})
+        PortForwardingServiceProvider.class, IpDeployer.class, NetworkMigrationResponder.class})
 public class OvsElement extends AdapterBase implements NetworkElement,
 OvsElementService, ConnectivityProvider, ResourceStateAdapter,
-PortForwardingServiceProvider, LoadBalancingServiceProvider,
+PortForwardingServiceProvider, LoadBalancingServiceProvider, NetworkMigrationResponder,
 StaticNatServiceProvider, IpDeployer {
     @Inject
     OvsTunnelManager _ovsTunnelMgr;
@@ -658,4 +659,38 @@ StaticNatServiceProvider, IpDeployer {
         }
         return true;
     }
+
+    @Override
+    public boolean prepareMigration(NicProfile nic, Network network, VirtualMachineProfile
vm, DeployDestination dest, ReservationContext context) {
+        if (!canHandle(network, Service.Connectivity)) {
+            return false;
+        }
+
+        if (nic.getBroadcastType() != Networks.BroadcastDomainType.Vswitch) {
+            return false;
+        }
+
+        if (nic.getTrafficType() != Networks.TrafficType.Guest) {
+            return false;
+        }
+
+        if (vm.getType() != VirtualMachine.Type.User && vm.getType() != VirtualMachine.Type.DomainRouter)
{
+            return false;
+        }
+
+        // prepare the tunnel network on the host, in order for VM to get launched
+        _ovsTunnelMgr.checkAndPrepareHostForTunnelNetwork(network, dest.getHost());
+
+        return true;
+    }
+
+    @Override
+    public void rollbackMigration(NicProfile nic, Network network, VirtualMachineProfile
vm, ReservationContext src, ReservationContext dst) {
+        return;
+    }
+
+    @Override
+    public void commitMigration(NicProfile nic, Network network, VirtualMachineProfile vm,
ReservationContext src, ReservationContext dst) {
+        return;
+    }
 }


Mime
View raw message