From 1761024fdadb4b98e138c977f1276d7266ebeb72 Mon Sep 17 00:00:00 2001 From: keshav Date: Tue, 9 Aug 2011 16:38:24 -0700 Subject: [PATCH] Changed RuleTO classes to carry the source VLAN tag. Added guest network gateway to NetworkElementCommand. --- .../agent/api/routing/NetworkElementCommand.java | 1 + api/src/com/cloud/agent/api/to/FirewallRuleTO.java | 14 ++++++++++---- .../cloud/agent/api/to/PortForwardingRuleTO.java | 8 ++++---- .../com/cloud/agent/api/to/StaticNatRuleTO.java | 8 ++++---- .../api/commands/CreatePortForwardingRuleCmd.java | 5 +++++ .../cloud/network/rules/PortForwardingRule.java | 6 ++++++ .../router/VirtualNetworkApplianceManagerImpl.java | 6 +++--- .../cloud/network/rules/PortForwardingRuleVO.java | 9 ++++++++- 8 files changed, 41 insertions(+), 16 deletions(-) diff --git a/api/src/com/cloud/agent/api/routing/NetworkElementCommand.java b/api/src/com/cloud/agent/api/routing/NetworkElementCommand.java index e7e27957202..1bcc7c024a4 100644 --- a/api/src/com/cloud/agent/api/routing/NetworkElementCommand.java +++ b/api/src/com/cloud/agent/api/routing/NetworkElementCommand.java @@ -26,6 +26,7 @@ public abstract class NetworkElementCommand extends Command { public static final String ACCOUNT_ID = "account.id"; public static final String GUEST_NETWORK_CIDR = "guest.network.cidr"; + public static final String GUEST_NETWORK_GATEWAY = "guest.network.gateway"; public static final String GUEST_VLAN_TAG = "guest.vlan.tag"; public static final String ROUTER_NAME = "router.name"; public static final String ROUTER_IP = "router.ip"; diff --git a/api/src/com/cloud/agent/api/to/FirewallRuleTO.java b/api/src/com/cloud/agent/api/to/FirewallRuleTO.java index 236f0562524..8a555225dbb 100644 --- a/api/src/com/cloud/agent/api/to/FirewallRuleTO.java +++ b/api/src/com/cloud/agent/api/to/FirewallRuleTO.java @@ -46,6 +46,7 @@ import com.cloud.utils.net.NetUtils; */ public class FirewallRuleTO { long id; + String srcVlanTag; String srcIp; String protocol; int[] srcPortRange; @@ -56,8 +57,9 @@ public class FirewallRuleTO { protected FirewallRuleTO() { } - public FirewallRuleTO(long id, String srcIp, String protocol, Integer srcPortStart, Integer srcPortEnd, boolean revoked, boolean alreadyAdded, FirewallRule.Purpose purpose) { - this.srcIp = srcIp; + public FirewallRuleTO(long id, String srcVlanTag, String srcIp, String protocol, Integer srcPortStart, Integer srcPortEnd, boolean revoked, boolean alreadyAdded, FirewallRule.Purpose purpose) { + this.srcVlanTag = srcVlanTag; + this.srcIp = srcIp; this.protocol = protocol; if (srcPortStart != null) { @@ -80,14 +82,18 @@ public class FirewallRuleTO { this.purpose = purpose; } - public FirewallRuleTO(FirewallRule rule, String srcIp) { - this(rule.getId(), srcIp, rule.getProtocol(), rule.getSourcePortStart(), rule.getSourcePortEnd(), rule.getState()==State.Revoke, rule.getState()==State.Active, rule.getPurpose()); + public FirewallRuleTO(FirewallRule rule, String srcVlanTag, String srcIp) { + this(rule.getId(), srcVlanTag, srcIp, rule.getProtocol(), rule.getSourcePortStart(), rule.getSourcePortEnd(), rule.getState()==State.Revoke, rule.getState()==State.Active, rule.getPurpose()); } public long getId() { return id; } + public String getSrcVlanTag() { + return srcVlanTag; + } + public String getSrcIp() { return srcIp; } diff --git a/api/src/com/cloud/agent/api/to/PortForwardingRuleTO.java b/api/src/com/cloud/agent/api/to/PortForwardingRuleTO.java index 134433469eb..5535177ed6f 100644 --- a/api/src/com/cloud/agent/api/to/PortForwardingRuleTO.java +++ b/api/src/com/cloud/agent/api/to/PortForwardingRuleTO.java @@ -39,15 +39,15 @@ public class PortForwardingRuleTO extends FirewallRuleTO { super(); } - public PortForwardingRuleTO(PortForwardingRule rule, String srcIp) { - super(rule, srcIp); + public PortForwardingRuleTO(PortForwardingRule rule, String srcVlanTag, String srcIp) { + super(rule, srcVlanTag, srcIp); this.dstIp = rule.getDestinationIpAddress().addr(); this.dstPortRange = new int[] { rule.getDestinationPortStart(), rule.getDestinationPortEnd() }; this.sourceCidrs = rule.getSourceCidrList(); } - protected PortForwardingRuleTO(long id, String srcIp, int srcPortStart, int srcPortEnd, String dstIp, int dstPortStart, int dstPortEnd, String protocol, boolean revoked, boolean brandNew) { - super(id, srcIp, protocol, srcPortStart, srcPortEnd, revoked, brandNew, FirewallRule.Purpose.PortForwarding); + protected PortForwardingRuleTO(long id, String srcVlanTag, String srcIp, int srcPortStart, int srcPortEnd, String dstIp, int dstPortStart, int dstPortEnd, String protocol, boolean revoked, boolean brandNew) { + super(id, srcVlanTag, srcIp, protocol, srcPortStart, srcPortEnd, revoked, brandNew, FirewallRule.Purpose.PortForwarding); this.dstIp = dstIp; this.dstPortRange = new int[] { dstPortStart, dstPortEnd }; } diff --git a/api/src/com/cloud/agent/api/to/StaticNatRuleTO.java b/api/src/com/cloud/agent/api/to/StaticNatRuleTO.java index 2c2f0dfdd1b..f9b47522c53 100644 --- a/api/src/com/cloud/agent/api/to/StaticNatRuleTO.java +++ b/api/src/com/cloud/agent/api/to/StaticNatRuleTO.java @@ -35,14 +35,14 @@ public class StaticNatRuleTO extends FirewallRuleTO{ protected StaticNatRuleTO() { } - public StaticNatRuleTO(StaticNatRule rule, String scrIp, String dstIp) { - super(rule.getId(), scrIp, rule.getProtocol(), rule.getSourcePortStart(), rule.getSourcePortEnd(),rule.getState()==State.Revoke, rule.getState()==State.Active, rule.getPurpose()); + public StaticNatRuleTO(StaticNatRule rule, String srcVlanTag, String srcIp, String dstIp) { + super(rule.getId(), srcVlanTag, srcIp, rule.getProtocol(), rule.getSourcePortStart(), rule.getSourcePortEnd(),rule.getState()==State.Revoke, rule.getState()==State.Active, rule.getPurpose()); this.dstIp = dstIp; } - protected StaticNatRuleTO(long id, String srcIp, int srcPortStart, int srcPortEnd, String dstIp, int dstPortStart, int dstPortEnd, String protocol, boolean revoked, boolean brandNew) { - super(id, srcIp, protocol, srcPortStart, srcPortEnd, revoked, brandNew, FirewallRule.Purpose.StaticNat); + protected StaticNatRuleTO(long id, String srcVlanTag, String srcIp, int srcPortStart, int srcPortEnd, String dstIp, int dstPortStart, int dstPortEnd, String protocol, boolean revoked, boolean brandNew) { + super(id, srcVlanTag, srcIp, protocol, srcPortStart, srcPortEnd, revoked, brandNew, FirewallRule.Purpose.StaticNat); this.dstIp = dstIp; } diff --git a/api/src/com/cloud/api/commands/CreatePortForwardingRuleCmd.java b/api/src/com/cloud/api/commands/CreatePortForwardingRuleCmd.java index 42f9c93ca36..2fc2e5dc325 100644 --- a/api/src/com/cloud/api/commands/CreatePortForwardingRuleCmd.java +++ b/api/src/com/cloud/api/commands/CreatePortForwardingRuleCmd.java @@ -214,6 +214,11 @@ public class CreatePortForwardingRuleCmd extends BaseAsyncCreateCmd implements P public Ip getDestinationIpAddress() { return null; } + + @Override + public void setDestinationIpAddress(Ip destinationIpAddress) { + return; + } @Override public int getDestinationPortStart() { diff --git a/api/src/com/cloud/network/rules/PortForwardingRule.java b/api/src/com/cloud/network/rules/PortForwardingRule.java index aac906291ee..94ee3d8b2c8 100644 --- a/api/src/com/cloud/network/rules/PortForwardingRule.java +++ b/api/src/com/cloud/network/rules/PortForwardingRule.java @@ -28,6 +28,12 @@ public interface PortForwardingRule extends FirewallRule { */ Ip getDestinationIpAddress(); + + /** + * updates the destination ip address. + */ + void setDestinationIpAddress(Ip destinationIpAddress); + /** * @return start of destination port. */ diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index b67ec6eee02..b2762dce7fd 100755 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -1859,7 +1859,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian rulesTO = new ArrayList(); for (PortForwardingRule rule : rules) { IpAddress sourceIp = _networkMgr.getIp(rule.getSourceIpAddressId()); - PortForwardingRuleTO ruleTO = new PortForwardingRuleTO(rule, sourceIp.getAddress().addr()); + PortForwardingRuleTO ruleTO = new PortForwardingRuleTO(rule, null, sourceIp.getAddress().addr()); rulesTO.add(ruleTO); } } @@ -1880,7 +1880,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian rulesTO = new ArrayList(); for (StaticNatRule rule : rules) { IpAddress sourceIp = _networkMgr.getIp(rule.getSourceIpAddressId()); - StaticNatRuleTO ruleTO = new StaticNatRuleTO(rule, sourceIp.getAddress().addr(), rule.getDestIpAddress()); + StaticNatRuleTO ruleTO = new StaticNatRuleTO(rule, null, sourceIp.getAddress().addr(), rule.getDestIpAddress()); rulesTO.add(ruleTO); } } @@ -2142,7 +2142,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian rulesTO = new ArrayList(); for (FirewallRule rule : rules) { IpAddress sourceIp = _networkMgr.getIp(rule.getSourceIpAddressId()); - FirewallRuleTO ruleTO = new FirewallRuleTO(rule, sourceIp.getAddress().addr()); + FirewallRuleTO ruleTO = new FirewallRuleTO(rule, null, sourceIp.getAddress().addr()); rulesTO.add(ruleTO); } } diff --git a/server/src/com/cloud/network/rules/PortForwardingRuleVO.java b/server/src/com/cloud/network/rules/PortForwardingRuleVO.java index f38fcc04b80..cdd2456b737 100644 --- a/server/src/com/cloud/network/rules/PortForwardingRuleVO.java +++ b/server/src/com/cloud/network/rules/PortForwardingRuleVO.java @@ -67,6 +67,11 @@ public class PortForwardingRuleVO extends FirewallRuleVO implements PortForwardi @Override public Ip getDestinationIpAddress() { return destinationIpAddress; + } + + @Override + public void setDestinationIpAddress(Ip destinationIpAddress) { + this.destinationIpAddress = destinationIpAddress; } @Override @@ -82,6 +87,8 @@ public class PortForwardingRuleVO extends FirewallRuleVO implements PortForwardi @Override public long getVirtualMachineId() { return virtualMachineId; - } + } + + }