diff --git a/build/build-cloud-plugins.xml b/build/build-cloud-plugins.xml
index 53dc1d34d85..a464de99661 100755
--- a/build/build-cloud-plugins.xml
+++ b/build/build-cloud-plugins.xml
@@ -207,7 +207,7 @@
-
+
@@ -279,8 +279,8 @@
-
-
+
+
@@ -297,4 +297,9 @@
+
+
+
+
+
diff --git a/client/tomcatconf/components.xml.in b/client/tomcatconf/components.xml.in
index 5add24cfd55..be3218e0ae4 100755
--- a/client/tomcatconf/components.xml.in
+++ b/client/tomcatconf/components.xml.in
@@ -158,6 +158,7 @@
+
@@ -165,6 +166,8 @@
+
+
diff --git a/plugins/network-elements/ovs/.classpath b/plugins/network-elements/ovs/.classpath
new file mode 100644
index 00000000000..a3f5d12a4c8
--- /dev/null
+++ b/plugins/network-elements/ovs/.classpath
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/plugins/network-elements/ovs/.project b/plugins/network-elements/ovs/.project
new file mode 100644
index 00000000000..0423b307112
--- /dev/null
+++ b/plugins/network-elements/ovs/.project
@@ -0,0 +1,17 @@
+
+
+ ovs
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/plugins/network-elements/ovs/build.xml b/plugins/network-elements/ovs/build.xml
new file mode 100755
index 00000000000..718720b7736
--- /dev/null
+++ b/plugins/network-elements/ovs/build.xml
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+ Cloud Stack ant build file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/server/src/com/cloud/network/element/OvsElement.java b/plugins/network-elements/ovs/src/com/cloud/network/element/OvsElement.java
similarity index 100%
rename from server/src/com/cloud/network/element/OvsElement.java
rename to plugins/network-elements/ovs/src/com/cloud/network/element/OvsElement.java
diff --git a/server/src/com/cloud/network/guru/OvsGuestNetworkGuru.java b/plugins/network-elements/ovs/src/com/cloud/network/guru/OvsGuestNetworkGuru.java
similarity index 100%
rename from server/src/com/cloud/network/guru/OvsGuestNetworkGuru.java
rename to plugins/network-elements/ovs/src/com/cloud/network/guru/OvsGuestNetworkGuru.java
diff --git a/server/src/com/cloud/network/ovs/GreTunnelException.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/GreTunnelException.java
similarity index 100%
rename from server/src/com/cloud/network/ovs/GreTunnelException.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/GreTunnelException.java
diff --git a/api/src/com/cloud/network/ovs/OvsCreateGreTunnelAnswer.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsCreateGreTunnelAnswer.java
similarity index 100%
rename from api/src/com/cloud/network/ovs/OvsCreateGreTunnelAnswer.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsCreateGreTunnelAnswer.java
diff --git a/api/src/com/cloud/network/ovs/OvsCreateGreTunnelCommand.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsCreateGreTunnelCommand.java
similarity index 100%
rename from api/src/com/cloud/network/ovs/OvsCreateGreTunnelCommand.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsCreateGreTunnelCommand.java
diff --git a/api/src/com/cloud/network/ovs/OvsCreateTunnelAnswer.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsCreateTunnelAnswer.java
similarity index 100%
rename from api/src/com/cloud/network/ovs/OvsCreateTunnelAnswer.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsCreateTunnelAnswer.java
diff --git a/api/src/com/cloud/network/ovs/OvsCreateTunnelCommand.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsCreateTunnelCommand.java
similarity index 100%
rename from api/src/com/cloud/network/ovs/OvsCreateTunnelCommand.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsCreateTunnelCommand.java
diff --git a/api/src/com/cloud/network/ovs/OvsDeleteFlowCommand.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsDeleteFlowCommand.java
similarity index 100%
rename from api/src/com/cloud/network/ovs/OvsDeleteFlowCommand.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsDeleteFlowCommand.java
diff --git a/api/src/com/cloud/network/ovs/OvsDestroyBridgeCommand.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsDestroyBridgeCommand.java
similarity index 100%
rename from api/src/com/cloud/network/ovs/OvsDestroyBridgeCommand.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsDestroyBridgeCommand.java
diff --git a/api/src/com/cloud/network/ovs/OvsDestroyTunnelCommand.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsDestroyTunnelCommand.java
similarity index 100%
rename from api/src/com/cloud/network/ovs/OvsDestroyTunnelCommand.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsDestroyTunnelCommand.java
diff --git a/api/src/com/cloud/network/ovs/OvsFetchInterfaceAnswer.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsFetchInterfaceAnswer.java
similarity index 100%
rename from api/src/com/cloud/network/ovs/OvsFetchInterfaceAnswer.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsFetchInterfaceAnswer.java
diff --git a/api/src/com/cloud/network/ovs/OvsFetchInterfaceCommand.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsFetchInterfaceCommand.java
similarity index 100%
rename from api/src/com/cloud/network/ovs/OvsFetchInterfaceCommand.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsFetchInterfaceCommand.java
diff --git a/api/src/com/cloud/network/ovs/OvsSetTagAndFlowAnswer.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsSetTagAndFlowAnswer.java
similarity index 100%
rename from api/src/com/cloud/network/ovs/OvsSetTagAndFlowAnswer.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsSetTagAndFlowAnswer.java
diff --git a/api/src/com/cloud/network/ovs/OvsSetTagAndFlowCommand.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsSetTagAndFlowCommand.java
similarity index 100%
rename from api/src/com/cloud/network/ovs/OvsSetTagAndFlowCommand.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsSetTagAndFlowCommand.java
diff --git a/api/src/com/cloud/network/ovs/OvsSetupBridgeCommand.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsSetupBridgeCommand.java
similarity index 100%
rename from api/src/com/cloud/network/ovs/OvsSetupBridgeCommand.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsSetupBridgeCommand.java
diff --git a/server/src/com/cloud/network/ovs/OvsTunnelManager.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsTunnelManager.java
similarity index 100%
rename from server/src/com/cloud/network/ovs/OvsTunnelManager.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsTunnelManager.java
diff --git a/server/src/com/cloud/network/ovs/OvsTunnelManagerImpl.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsTunnelManagerImpl.java
similarity index 100%
rename from server/src/com/cloud/network/ovs/OvsTunnelManagerImpl.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsTunnelManagerImpl.java
diff --git a/server/src/com/cloud/network/ovs/dao/OvsTunnelInterfaceDao.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/dao/OvsTunnelInterfaceDao.java
similarity index 100%
rename from server/src/com/cloud/network/ovs/dao/OvsTunnelInterfaceDao.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/dao/OvsTunnelInterfaceDao.java
diff --git a/server/src/com/cloud/network/ovs/dao/OvsTunnelInterfaceDaoImpl.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/dao/OvsTunnelInterfaceDaoImpl.java
similarity index 100%
rename from server/src/com/cloud/network/ovs/dao/OvsTunnelInterfaceDaoImpl.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/dao/OvsTunnelInterfaceDaoImpl.java
diff --git a/server/src/com/cloud/network/ovs/dao/OvsTunnelInterfaceVO.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/dao/OvsTunnelInterfaceVO.java
similarity index 100%
rename from server/src/com/cloud/network/ovs/dao/OvsTunnelInterfaceVO.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/dao/OvsTunnelInterfaceVO.java
diff --git a/server/src/com/cloud/network/ovs/dao/OvsTunnelNetworkDao.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/dao/OvsTunnelNetworkDao.java
similarity index 100%
rename from server/src/com/cloud/network/ovs/dao/OvsTunnelNetworkDao.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/dao/OvsTunnelNetworkDao.java
diff --git a/server/src/com/cloud/network/ovs/dao/OvsTunnelNetworkDaoImpl.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/dao/OvsTunnelNetworkDaoImpl.java
similarity index 100%
rename from server/src/com/cloud/network/ovs/dao/OvsTunnelNetworkDaoImpl.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/dao/OvsTunnelNetworkDaoImpl.java
diff --git a/server/src/com/cloud/network/ovs/dao/OvsTunnelNetworkVO.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/dao/OvsTunnelNetworkVO.java
similarity index 100%
rename from server/src/com/cloud/network/ovs/dao/OvsTunnelNetworkVO.java
rename to plugins/network-elements/ovs/src/com/cloud/network/ovs/dao/OvsTunnelNetworkVO.java
diff --git a/server/src/com/cloud/configuration/DefaultComponentLibrary.java b/server/src/com/cloud/configuration/DefaultComponentLibrary.java
index 61b6861df89..ca0b406f6fc 100755
--- a/server/src/com/cloud/configuration/DefaultComponentLibrary.java
+++ b/server/src/com/cloud/configuration/DefaultComponentLibrary.java
@@ -99,9 +99,6 @@ import com.cloud.network.firewall.FirewallManagerImpl;
import com.cloud.network.lb.ElasticLoadBalancerManagerImpl;
import com.cloud.network.lb.LoadBalancingRulesManagerImpl;
import com.cloud.network.lb.dao.ElasticLbVmMapDaoImpl;
-import com.cloud.network.ovs.OvsTunnelManagerImpl;
-import com.cloud.network.ovs.dao.OvsTunnelInterfaceDaoImpl;
-import com.cloud.network.ovs.dao.OvsTunnelNetworkDaoImpl;
import com.cloud.network.router.VirtualNetworkApplianceManagerImpl;
import com.cloud.network.rules.RulesManagerImpl;
import com.cloud.network.rules.dao.PortForwardingRulesDaoImpl;
@@ -286,8 +283,6 @@ public class DefaultComponentLibrary extends ComponentLibraryBase implements Com
addDao("UsageEventDao", UsageEventDaoImpl.class);
addDao("ClusterDetailsDao", ClusterDetailsDaoImpl.class);
addDao("UserVmDetailsDao", UserVmDetailsDaoImpl.class);
- addDao("OvsTunnelInterfaceDao", OvsTunnelInterfaceDaoImpl.class);
- addDao("OvsTunnelAccountDao", OvsTunnelNetworkDaoImpl.class);
addDao("StoragePoolWorkDao", StoragePoolWorkDaoImpl.class);
addDao("HostTagsDao", HostTagsDaoImpl.class);
addDao("NetworkDomainDao", NetworkDomainDaoImpl.class);
@@ -360,7 +355,6 @@ public class DefaultComponentLibrary extends ComponentLibraryBase implements Com
addManager("LoadBalancingRulesManager", LoadBalancingRulesManagerImpl.class);
addManager("RulesManager", RulesManagerImpl.class);
addManager("RemoteAccessVpnManager", RemoteAccessVpnManagerImpl.class);
- addManager("OvsTunnelManager", OvsTunnelManagerImpl.class);
addManager("Capacity Manager", CapacityManagerImpl.class);
addManager("VirtualMachineManager", ClusteredVirtualMachineManagerImpl.class);
addManager("HypervisorGuruManager", HypervisorGuruManagerImpl.class);
diff --git a/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java b/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java
index 6c381f2b18e..b887fc6b307 100644
--- a/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java
+++ b/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java
@@ -35,7 +35,6 @@ import com.cloud.network.Networks.BroadcastDomainType;
import com.cloud.network.PhysicalNetworkVO;
import com.cloud.network.dao.NetworkDao;
import com.cloud.network.dao.PhysicalNetworkDao;
-import com.cloud.network.ovs.OvsTunnelManager;
import com.cloud.network.rules.PortForwardingRuleVO;
import com.cloud.network.rules.dao.PortForwardingRulesDao;
import com.cloud.offering.NetworkOffering;
@@ -64,12 +63,13 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
DataCenterDao _zoneDao;
@Inject
PortForwardingRulesDao _pfRulesDao;
- @Inject
- OvsTunnelManager _tunnelMgr;
+ //FIXME: why there is dependency on Ovs tunnel manager.
+
@Override
public Network design(NetworkOffering offering, DeploymentPlan plan, Network userSpecified, Account owner) {
- if (_tunnelMgr.isOvsTunnelEnabled()) {
+
+ if (Boolean.parseBoolean(_configDao.getValue(Config.OvsTunnelNetwork.key()))) {
return null;
}
@@ -88,7 +88,7 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
public Network implement(Network config, NetworkOffering offering, DeployDestination dest, ReservationContext context) throws InsufficientVirtualNetworkCapcityException {
assert (config.getState() == State.Implementing) : "Why are we implementing " + config;
- if (_tunnelMgr.isOvsTunnelEnabled()) {
+ if (Boolean.parseBoolean(_configDao.getValue(Config.OvsTunnelNetwork.key()))) {
return null;
}
@@ -171,7 +171,8 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
NicProfile profile = super.allocate(config, nic, vm);
- if (_tunnelMgr.isOvsTunnelEnabled()) {
+ boolean _isEnabled = Boolean.parseBoolean(_configDao.getValue(Config.OvsTunnelNetwork.key()));
+ if (_isEnabled) {
return null;
}
@@ -190,7 +191,7 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
public void deallocate(Network config, NicProfile nic, VirtualMachineProfile extends VirtualMachine> vm) {
super.deallocate(config, nic, vm);
- if (_tunnelMgr.isOvsTunnelEnabled()) {
+ if (Boolean.parseBoolean(_configDao.getValue(Config.OvsTunnelNetwork.key()))) {
return;
}
@@ -207,7 +208,8 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
public void reserve(NicProfile nic, Network config, VirtualMachineProfile extends VirtualMachine> vm, DeployDestination dest, ReservationContext context)
throws InsufficientVirtualNetworkCapcityException, InsufficientAddressCapacityException {
assert (nic.getReservationStrategy() == ReservationStrategy.Start) : "What can I do for nics that are not allocated at start? ";
- if (_tunnelMgr.isOvsTunnelEnabled()) {
+ boolean _isEnabled = Boolean.parseBoolean(_configDao.getValue(Config.OvsTunnelNetwork.key()));
+ if (_isEnabled) {
return;
}
@@ -241,7 +243,8 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
@Override
public boolean release(NicProfile nic, VirtualMachineProfile extends VirtualMachine> vm, String reservationId) {
- if (_tunnelMgr.isOvsTunnelEnabled()) {
+
+ if (Boolean.parseBoolean(_configDao.getValue(Config.OvsTunnelNetwork.key()))) {
return true;
}