You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by tu...@apache.org on 2013/12/09 17:52:38 UTC
[12/21] git commit: updated refs/heads/master to 267ff79
tuna add port forwarding support
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/9c702ff3
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/9c702ff3
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/9c702ff3
Branch: refs/heads/master
Commit: 9c702ff388b859d5d212f0a932d80a2012ebf912
Parents: d935d38
Author: tuna <ng...@gmail.com>
Authored: Tue Aug 13 10:46:21 2013 +0700
Committer: tuna <ng...@gmail.com>
Committed: Mon Dec 9 23:33:14 2013 +0700
----------------------------------------------------------------------
.../com/cloud/network/element/OvsElement.java | 29 ++++++++++----------
1 file changed, 15 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9c702ff3/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 06965e8..9af708c 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
@@ -68,7 +68,7 @@ import com.cloud.vm.dao.DomainRouterDao;
PortForwardingServiceProvider.class, IpDeployer.class })
public class OvsElement extends AdapterBase implements NetworkElement,
OvsElementService, ConnectivityProvider, ResourceStateAdapter,
- SourceNatServiceProvider, PortForwardingServiceProvider,
+ PortForwardingServiceProvider,
StaticNatServiceProvider, IpDeployer {
@Inject
OvsTunnelManager _ovsTunnelMgr;
@@ -228,12 +228,6 @@ public class OvsElement extends AdapterBase implements NetworkElement,
return false;
}
- // if ((services.contains(Service.PortForwarding) || services
- // .contains(Service.StaticNat))
- // && !services.contains(Service.SourceNat)) {
- // s_logger.warn("Unable to provide StaticNat and/or PortForwarding without the SourceNat service");
- // return false;
- // }
return true;
}
@@ -243,7 +237,6 @@ public class OvsElement extends AdapterBase implements NetworkElement,
// L2 Support : SDN provisioning
capabilities.put(Service.Connectivity, null);
- // TODO: we need L3 support for coding L3 services in next period
// L3 Support : Generic?
// capabilities.put(Service.Gateway, null);
@@ -256,7 +249,7 @@ public class OvsElement extends AdapterBase implements NetworkElement,
// capabilities.put(Service.SourceNat, sourceNatCapabilities);
// L3 Support : Port Forwarding
- // capabilities.put(Service.PortForwarding, null);
+ capabilities.put(Service.PortForwarding, null);
// L3 support : StaticNat
capabilities.put(Service.StaticNat, null);
@@ -296,7 +289,6 @@ public class OvsElement extends AdapterBase implements NetworkElement,
return new DeleteHostAnswer(true);
}
- // TODO: Adding L3 services below
@Override
public IpDeployer getIpDeployer(Network network) {
return this;
@@ -331,8 +323,7 @@ public class OvsElement extends AdapterBase implements NetworkElement,
}
@Override
- public boolean applyStaticNats(Network network,
- List<? extends StaticNat> rules)
+ public boolean applyStaticNats(Network network, List<? extends StaticNat> rules)
throws ResourceUnavailableException {
if (!canHandle(network, Service.StaticNat)) {
return false;
@@ -351,7 +342,17 @@ public class OvsElement extends AdapterBase implements NetworkElement,
@Override
public boolean applyPFRules(Network network, List<PortForwardingRule> rules)
throws ResourceUnavailableException {
- // TODO Auto-generated method stub
- return false;
+ if (!canHandle(network, Service.PortForwarding)) {
+ return false;
+ }
+ List<DomainRouterVO> routers = _routerDao.listByNetworkAndRole(
+ network.getId(), Role.VIRTUAL_ROUTER);
+ if (routers == null || routers.isEmpty()) {
+ s_logger.debug("Ovs element doesn't need to apply firewall rules on the backend; virtual "
+ + "router doesn't exist in the network " + network.getId());
+ return true;
+ }
+
+ return _routerMgr.applyFirewallRules(network, rules, routers);
}
}