LB refactoring
1) Added "scheme" field to the load balancer object (can take 2 values now - 
Public and Internal)
2) Moved State/Purpose from FirewallRule to the newly created Interface 
NetworkRule. FirewallRule and LoadBalancer interfaces will extend NetworkRule


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

Branch: refs/heads/internallb
Commit: 50140dc17ddb9b18f32b63a7e34f9a737dbabdc6
Parents: 6af3d76
Author: Alena Prokharchyk <[email protected]>
Authored: Tue Apr 2 20:34:49 2013 -0700
Committer: Alena Prokharchyk <[email protected]>
Committed: Tue Apr 2 21:34:02 2013 -0700

----------------------------------------------------------------------
 api/src/com/cloud/agent/api/to/FirewallRuleTO.java |    2 +-
 api/src/com/cloud/agent/api/to/LoadBalancerTO.java |    2 +-
 .../com/cloud/agent/api/to/StaticNatRuleTO.java    |    2 +-
 api/src/com/cloud/async/AsyncJob.java              |    3 +-
 .../com/cloud/network/lb/LoadBalancingRule.java    |   54 ++++++--------
 api/src/com/cloud/network/rules/FirewallRule.java  |   23 +------
 api/src/com/cloud/network/rules/LoadBalancer.java  |   18 ++----
 api/src/com/cloud/network/rules/NetworkRule.java   |   42 +++++++++++
 .../loadbalancer/CreateLoadBalancerRuleCmd.java    |    2 +-
 .../loadbalancer/DeleteLoadBalancerRuleCmd.java    |    2 +-
 .../network/ExternalFirewallDeviceManagerImpl.java |    2 +-
 .../src/com/cloud/network/NetworkManagerImpl.java  |    2 +-
 server/src/com/cloud/network/NetworkModelImpl.java |    2 +-
 .../src/com/cloud/network/NetworkServiceImpl.java  |    3 -
 .../cloud/network/dao/FirewallRulesDaoImpl.java    |    4 +-
 .../com/cloud/network/dao/LoadBalancerDaoImpl.java |    2 +-
 .../src/com/cloud/network/dao/LoadBalancerVO.java  |   49 ++++++-------
 .../network/firewall/FirewallManagerImpl.java      |    4 +-
 .../network/lb/LoadBalancingRulesManagerImpl.java  |    5 +-
 .../router/VirtualNetworkApplianceManagerImpl.java |    2 +-
 .../VpcVirtualNetworkApplianceManagerImpl.java     |    2 +-
 .../com/cloud/network/rules/FirewallManager.java   |    2 +-
 .../com/cloud/network/rules/RulesManagerImpl.java  |    2 +-
 .../rules/dao/PortForwardingRulesDaoImpl.java      |    7 +--
 .../cloud/network/vpc/NetworkACLManagerImpl.java   |    6 +-
 .../network/vpn/RemoteAccessVpnManagerImpl.java    |    2 +-
 .../com/cloud/network/MockFirewallManagerImpl.java |    5 +-
 .../com/cloud/network/MockNetworkManagerImpl.java  |    7 +-
 .../com/cloud/network/MockRulesManagerImpl.java    |    4 +-
 .../network/firewall/FirewallManagerTest.java      |    2 +-
 .../test/com/cloud/vpc/MockNetworkManagerImpl.java |    8 +-
 setup/db/db/schema-410to420-cleanup.sql            |    2 +
 setup/db/db/schema-410to420.sql                    |   12 ++--
 33 files changed, 141 insertions(+), 145 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/api/src/com/cloud/agent/api/to/FirewallRuleTO.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/agent/api/to/FirewallRuleTO.java 
b/api/src/com/cloud/agent/api/to/FirewallRuleTO.java
index 7f77936..6c6859e8 100644
--- a/api/src/com/cloud/agent/api/to/FirewallRuleTO.java
+++ b/api/src/com/cloud/agent/api/to/FirewallRuleTO.java
@@ -22,7 +22,7 @@ import java.util.List;
 import org.apache.cloudstack.api.InternalIdentity;
 
 import com.cloud.network.rules.FirewallRule;
-import com.cloud.network.rules.FirewallRule.State;
+import com.cloud.network.rules.NetworkRule.State;
 import com.cloud.utils.net.NetUtils;
 
 /**

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/api/src/com/cloud/agent/api/to/LoadBalancerTO.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/agent/api/to/LoadBalancerTO.java 
b/api/src/com/cloud/agent/api/to/LoadBalancerTO.java
index df2f8a8..66bc4b9 100644
--- a/api/src/com/cloud/agent/api/to/LoadBalancerTO.java
+++ b/api/src/com/cloud/agent/api/to/LoadBalancerTO.java
@@ -68,7 +68,7 @@ public class LoadBalancerTO {
         this.stickinessPolicies = null;
         int i = 0;
         for (LbDestination destination : destinations) {
-            this.destinations[i++] = new 
DestinationTO(destination.getIpAddress(), 
destination.getDestinationPortStart(), destination.isRevoked(), false);
+            this.destinations[i++] = new 
DestinationTO(destination.getInstanceIpAddress(), 
destination.getInstancePort(), destination.isRevoked(), false);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/api/src/com/cloud/agent/api/to/StaticNatRuleTO.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/agent/api/to/StaticNatRuleTO.java 
b/api/src/com/cloud/agent/api/to/StaticNatRuleTO.java
index 64ca266..67f2e13 100644
--- a/api/src/com/cloud/agent/api/to/StaticNatRuleTO.java
+++ b/api/src/com/cloud/agent/api/to/StaticNatRuleTO.java
@@ -17,7 +17,7 @@
 package com.cloud.agent.api.to;
 
 import com.cloud.network.rules.FirewallRule;
-import com.cloud.network.rules.FirewallRule.State;
+import com.cloud.network.rules.NetworkRule.State;
 import com.cloud.network.rules.StaticNatRule;
 
 /**

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/api/src/com/cloud/async/AsyncJob.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/async/AsyncJob.java 
b/api/src/com/cloud/async/AsyncJob.java
index 8e4aec0..1528809 100644
--- a/api/src/com/cloud/async/AsyncJob.java
+++ b/api/src/com/cloud/async/AsyncJob.java
@@ -49,7 +49,8 @@ public interface AsyncJob extends Identity, InternalIdentity {
         AutoScalePolicy,
         AutoScaleVmProfile,
         AutoScaleVmGroup,
-        GlobalLoadBalancerRule
+        GlobalLoadBalancerRule,
+        LoadBalancerRule
     }
 
     long getUserId();

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/api/src/com/cloud/network/lb/LoadBalancingRule.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/lb/LoadBalancingRule.java 
b/api/src/com/cloud/network/lb/LoadBalancingRule.java
index 12b7216..5533db2 100644
--- a/api/src/com/cloud/network/lb/LoadBalancingRule.java
+++ b/api/src/com/cloud/network/lb/LoadBalancingRule.java
@@ -24,6 +24,7 @@ import com.cloud.network.as.AutoScaleVmProfile;
 import com.cloud.network.as.Condition;
 import com.cloud.network.as.Counter;
 import com.cloud.network.rules.LoadBalancer;
+import com.cloud.network.rules.NetworkRule;
 import com.cloud.utils.Pair;
 
 public class LoadBalancingRule implements LoadBalancer {
@@ -72,11 +73,6 @@ public class LoadBalancingRule implements LoadBalancer {
     }
 
     @Override
-    public int getDefaultPortEnd() {
-        return lb.getDefaultPortEnd();
-    }
-
-    @Override
     public String getAlgorithm() {
         return lb.getAlgorithm();
     }
@@ -97,17 +93,12 @@ public class LoadBalancingRule implements LoadBalancer {
     }
 
     @Override
-    public Integer getSourcePortEnd() {
-        return lb.getSourcePortEnd();
-    }
-
-    @Override
     public String getProtocol() {
         return lb.getProtocol();
     }
 
     @Override
-    public LoadBalancer.State getState() {
+    public NetworkRule.State getState() {
         return lb.getState();
     }
 
@@ -141,11 +132,9 @@ public class LoadBalancingRule implements LoadBalancer {
     }
 
     public interface Destination {
-        String getIpAddress();
+        String getInstanceIpAddress();
 
-        int getDestinationPortStart();
-
-        int getDestinationPortEnd();
+        int getInstancePort();
 
         boolean isRevoked();
     }
@@ -239,31 +228,24 @@ public class LoadBalancingRule implements LoadBalancer {
     }
 
     public static class LbDestination implements Destination {
-        private int portStart;
-        private int portEnd;
-        private String ip;
+        private int instancePort;
+        private String instanceIp;
         boolean revoked;
 
-        public LbDestination(int portStart, int portEnd, String ip, boolean 
revoked) {
-            this.portStart = portStart;
-            this.portEnd = portEnd;
-            this.ip = ip;
+        public LbDestination(int instancePort, String instanceIp, boolean 
revoked) {
+            this.instancePort = instancePort;
+            this.instanceIp = instanceIp;
             this.revoked = revoked;
         }
 
         @Override
-        public String getIpAddress() {
-            return ip;
-        }
-
-        @Override
-        public int getDestinationPortStart() {
-            return portStart;
+        public String getInstanceIpAddress() {
+            return instanceIp;
         }
 
         @Override
-        public int getDestinationPortEnd() {
-            return portEnd;
+        public int getInstancePort() {
+            return instancePort;
         }
 
         @Override
@@ -432,4 +414,14 @@ public class LoadBalancingRule implements LoadBalancer {
         }
     }
 
+    @Override
+    public Scheme getScheme() {
+        return lb.getScheme();
+    }
+
+    @Override
+    public Purpose getPurpose() {
+        return Purpose.LoadBalancing;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/api/src/com/cloud/network/rules/FirewallRule.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/rules/FirewallRule.java 
b/api/src/com/cloud/network/rules/FirewallRule.java
index 3041bf4..be3d279 100644
--- a/api/src/com/cloud/network/rules/FirewallRule.java
+++ b/api/src/com/cloud/network/rules/FirewallRule.java
@@ -22,28 +22,13 @@ import org.apache.cloudstack.acl.ControlledEntity;
 import org.apache.cloudstack.api.Identity;
 import org.apache.cloudstack.api.InternalIdentity;
 
-public interface FirewallRule extends ControlledEntity, Identity, 
InternalIdentity {
-    enum Purpose {
-        Firewall,
-        PortForwarding,
-        LoadBalancing,
-        Vpn,
-        StaticNat,
-        NetworkACL,
-    }
+public interface FirewallRule extends ControlledEntity, Identity, 
InternalIdentity, NetworkRule {
 
     enum FirewallRuleType {
         System, // The pre-defined rules created by admin, in the system wide
         User // the rules created by user, to a specific ip
     }
 
-    enum State {
-        Staged, // Rule been created but has never got through network rule 
conflict detection.  Rules in this state can not be sent to network elements.
-        Add,    // Add means the rule has been created and has gone through 
network rule conflict detection.
-        Active, // Rule has been sent to the network elements and reported to 
be active.
-        Revoke  // Revoke means this rule has been revoked. If this rule has 
been sent to the network elements, the rule will be deleted from database.
-    }
-
     enum TrafficType {
         Ingress,
         Egress
@@ -69,12 +54,6 @@ public interface FirewallRule extends ControlledEntity, 
Identity, InternalIdenti
      */
     String getProtocol();
 
-    Purpose getPurpose();
-
-    State getState();
-
-    long getNetworkId();
-
     Integer getIcmpCode();
 
     Integer getIcmpType();

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/api/src/com/cloud/network/rules/LoadBalancer.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/rules/LoadBalancer.java 
b/api/src/com/cloud/network/rules/LoadBalancer.java
index 6c16ea7..5132eab 100644
--- a/api/src/com/cloud/network/rules/LoadBalancer.java
+++ b/api/src/com/cloud/network/rules/LoadBalancer.java
@@ -23,13 +23,11 @@ import org.apache.cloudstack.api.InternalIdentity;
 /**
  * Definition for a LoadBalancer
  */
-public interface LoadBalancer extends ControlledEntity, Identity, 
InternalIdentity{
+public interface LoadBalancer extends ControlledEntity, Identity, 
InternalIdentity, NetworkRule{
     
-    enum State {
-        Staged, // Rule been created but has never got through network rule 
conflict detection.  Rules in this state can not be sent to network elements.
-        Add,    // Add means the rule has been created and has gone through 
network rule conflict detection.
-        Active, // Rule has been sent to the network elements and reported to 
be active.
-        Revoke  // Revoke means this rule has been revoked. If this rule has 
been sent to the network elements, the rule will be deleted from database.
+    enum Scheme {
+        Public,
+        Internal
     }
 
     String getName();
@@ -38,20 +36,14 @@ public interface LoadBalancer extends ControlledEntity, 
Identity, InternalIdenti
 
     int getDefaultPortStart();
 
-    int getDefaultPortEnd();
-
     String getAlgorithm();
     
     Long getSourceIpAddressId();
 
     String getProtocol();
-    
-    State getState();
-    
-    long getNetworkId();
 
     Integer getSourcePortStart();
 
-    Integer getSourcePortEnd();
+    Scheme getScheme();
 
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/api/src/com/cloud/network/rules/NetworkRule.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/rules/NetworkRule.java 
b/api/src/com/cloud/network/rules/NetworkRule.java
new file mode 100644
index 0000000..effa858
--- /dev/null
+++ b/api/src/com/cloud/network/rules/NetworkRule.java
@@ -0,0 +1,42 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.network.rules;
+
+public interface NetworkRule {
+    enum Purpose {
+        Firewall,
+        PortForwarding,
+        LoadBalancing,
+        Vpn,
+        StaticNat,
+        NetworkACL,
+    }
+    
+    enum State {
+        Staged, // Rule been created but has never got through network rule 
conflict detection.  Rules in this state can not be sent to network elements.
+        Add,    // Add means the rule has been created and has gone through 
network rule conflict detection.
+        Active, // Rule has been sent to the network elements and reported to 
be active.
+        Revoke  // Revoke means this rule has been revoked. If this rule has 
been sent to the network elements, the rule will be deleted from database.
+    }
+    
+    Purpose getPurpose();
+
+    NetworkRule.State getState();
+
+    long getNetworkId();
+
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java
----------------------------------------------------------------------
diff --git 
a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java
 
b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java
index 5f1d97b..a7b8e31 100644
--- 
a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java
+++ 
b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java
@@ -375,7 +375,7 @@ public class CreateLoadBalancerRuleCmd extends 
BaseAsyncCreateCmd  /*implements
 
     @Override
     public AsyncJob.Type getInstanceType() {
-        return AsyncJob.Type.FirewallRule;
+        return AsyncJob.Type.LoadBalancerRule;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLoadBalancerRuleCmd.java
----------------------------------------------------------------------
diff --git 
a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLoadBalancerRuleCmd.java
 
b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLoadBalancerRuleCmd.java
index 81a1056..0fe66c7 100644
--- 
a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLoadBalancerRuleCmd.java
+++ 
b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLoadBalancerRuleCmd.java
@@ -113,6 +113,6 @@ public class DeleteLoadBalancerRuleCmd extends BaseAsyncCmd 
{
 
     @Override
     public AsyncJob.Type getInstanceType() {
-        return AsyncJob.Type.FirewallRule;
+        return AsyncJob.Type.LoadBalancerRule;
     }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java
----------------------------------------------------------------------
diff --git 
a/server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java 
b/server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java
index ae00bf2..c1fd796 100644
--- a/server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java
+++ b/server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java
@@ -81,7 +81,7 @@ import com.cloud.network.dao.PhysicalNetworkServiceProviderVO;
 import com.cloud.network.dao.PhysicalNetworkVO;
 import com.cloud.network.dao.VpnUserDao;
 import com.cloud.network.rules.FirewallRule;
-import com.cloud.network.rules.FirewallRule.Purpose;
+import com.cloud.network.rules.NetworkRule.Purpose;
 import com.cloud.network.rules.FirewallRuleVO;
 import com.cloud.network.rules.PortForwardingRule;
 import com.cloud.network.rules.StaticNat;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java 
b/server/src/com/cloud/network/NetworkManagerImpl.java
index 409f734..ed9a8bf 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -134,7 +134,7 @@ import com.cloud.network.guru.NetworkGuru;
 import com.cloud.network.lb.LoadBalancingRulesManager;
 import com.cloud.network.rules.FirewallManager;
 import com.cloud.network.rules.FirewallRule;
-import com.cloud.network.rules.FirewallRule.Purpose;
+import com.cloud.network.rules.NetworkRule.Purpose;
 import com.cloud.network.rules.FirewallRuleVO;
 import com.cloud.network.rules.LoadBalancer;
 import com.cloud.network.rules.PortForwardingRuleVO;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/src/com/cloud/network/NetworkModelImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkModelImpl.java 
b/server/src/com/cloud/network/NetworkModelImpl.java
index e90576b..c223410 100644
--- a/server/src/com/cloud/network/NetworkModelImpl.java
+++ b/server/src/com/cloud/network/NetworkModelImpl.java
@@ -81,7 +81,7 @@ import com.cloud.network.element.IpDeployer;
 import com.cloud.network.element.IpDeployingRequester;
 import com.cloud.network.element.NetworkElement;
 import com.cloud.network.element.UserDataServiceProvider;
-import com.cloud.network.rules.FirewallRule.Purpose;
+import com.cloud.network.rules.NetworkRule.Purpose;
 import com.cloud.network.rules.FirewallRuleVO;
 import com.cloud.network.rules.dao.PortForwardingRulesDao;
 import com.cloud.network.vpc.dao.PrivateIpDao;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/src/com/cloud/network/NetworkServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkServiceImpl.java 
b/server/src/com/cloud/network/NetworkServiceImpl.java
index 5db5c1b..b821295 100755
--- a/server/src/com/cloud/network/NetworkServiceImpl.java
+++ b/server/src/com/cloud/network/NetworkServiceImpl.java
@@ -78,7 +78,6 @@ import com.cloud.exception.ResourceAllocationException;
 import com.cloud.exception.ResourceUnavailableException;
 import com.cloud.exception.UnsupportedServiceException;
 import com.cloud.host.dao.HostDao;
-import com.cloud.network.IpAddress.State;
 import com.cloud.network.Network.Capability;
 import com.cloud.network.Network.GuestType;
 import com.cloud.network.Network.Provider;
@@ -106,8 +105,6 @@ import com.cloud.network.element.NetworkElement;
 import com.cloud.network.element.VirtualRouterElement;
 import com.cloud.network.element.VpcVirtualRouterElement;
 import com.cloud.network.guru.NetworkGuru;
-import com.cloud.network.rules.FirewallRule.Purpose;
-import com.cloud.network.rules.FirewallRuleVO;
 import com.cloud.network.rules.PortForwardingRuleVO;
 import com.cloud.network.rules.RulesManager;
 import com.cloud.network.rules.dao.PortForwardingRulesDao;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/src/com/cloud/network/dao/FirewallRulesDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/dao/FirewallRulesDaoImpl.java 
b/server/src/com/cloud/network/dao/FirewallRulesDaoImpl.java
index 43cd537..649a8de 100644
--- a/server/src/com/cloud/network/dao/FirewallRulesDaoImpl.java
+++ b/server/src/com/cloud/network/dao/FirewallRulesDaoImpl.java
@@ -25,8 +25,8 @@ import org.springframework.stereotype.Component;
 
 import com.cloud.network.rules.FirewallRule;
 import com.cloud.network.rules.FirewallRule.FirewallRuleType;
-import com.cloud.network.rules.FirewallRule.Purpose;
-import com.cloud.network.rules.FirewallRule.State;
+import com.cloud.network.rules.NetworkRule.Purpose;
+import com.cloud.network.rules.NetworkRule.State;
 import com.cloud.network.rules.FirewallRule.TrafficType;
 import com.cloud.network.rules.FirewallRuleVO;
 import com.cloud.server.ResourceTag.TaggedResourceType;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/src/com/cloud/network/dao/LoadBalancerDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/dao/LoadBalancerDaoImpl.java 
b/server/src/com/cloud/network/dao/LoadBalancerDaoImpl.java
index 49a2e63..b710eb1 100644
--- a/server/src/com/cloud/network/dao/LoadBalancerDaoImpl.java
+++ b/server/src/com/cloud/network/dao/LoadBalancerDaoImpl.java
@@ -23,7 +23,7 @@ import javax.inject.Inject;
 
 import org.springframework.stereotype.Component;
 
-import com.cloud.network.rules.FirewallRule.State;
+import com.cloud.network.rules.NetworkRule.State;
 import com.cloud.network.rules.LoadBalancer;
 import com.cloud.server.ResourceTag.TaggedResourceType;
 import com.cloud.tags.dao.ResourceTagDao;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/src/com/cloud/network/dao/LoadBalancerVO.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/dao/LoadBalancerVO.java 
b/server/src/com/cloud/network/dao/LoadBalancerVO.java
index 65b3b64..70bbc37 100644
--- a/server/src/com/cloud/network/dao/LoadBalancerVO.java
+++ b/server/src/com/cloud/network/dao/LoadBalancerVO.java
@@ -54,16 +54,10 @@ public class LoadBalancerVO implements LoadBalancer {
     private String algorithm;
 
     @Column(name="default_port_start")
-    private int defaultPortStart;
+    private int instancePort;
     
-    @Column(name="default_port_end")
-    private int defaultPortEnd;
-    
-    @Column(name="start_port", updatable=false)
-    Integer sourcePortStart;
-
-    @Column(name="end_port", updatable=false)
-    Integer sourcePortEnd;
+    @Column(name="source_port", updatable=false)
+    Integer sourcePort;
     
     @Column(name="network_id")
     Long networkId;
@@ -86,14 +80,14 @@ public class LoadBalancerVO implements LoadBalancer {
     
     @Column(name=GenericDao.CREATED_COLUMN)
     Date created;
+    
+    @Enumerated(value=EnumType.STRING)
+    @Column(name="scheme")
+    LoadBalancer.Scheme scheme;
 
 
     public Integer getSourcePortStart() {
-        return sourcePortStart;
-    }
-
-    public Integer getSourcePortEnd() {
-        return sourcePortEnd;
+        return sourcePort;
     }
 
     public long getId() {
@@ -112,21 +106,19 @@ public class LoadBalancerVO implements LoadBalancer {
     }
 
     public LoadBalancerVO(String name, String description, long srcIpId, int 
srcPort, int dstPort, String algorithm,
-            long networkId, long accountId, long domainId) {
+            long networkId, long accountId, long domainId, Scheme scheme) {
         this.name = name;
         this.description = description;
         this.algorithm = algorithm;
-        this.defaultPortStart = dstPort;
-        this.defaultPortEnd = dstPort;
-        this.sourcePortStart = srcPort;
-        this.sourcePortEnd = srcPort;
+        this.instancePort = dstPort;
+        this.sourcePort = srcPort;
         this.state = State.Staged;
         this.networkId = networkId;
         this.accountId = accountId;
         this.domainId = domainId;
         this.uuid = UUID.randomUUID().toString();
         this.sourceIpAddressId = srcIpId;
-
+        this.scheme = scheme;
     }
     
     public void setState(LoadBalancer.State state) {
@@ -150,12 +142,7 @@ public class LoadBalancerVO implements LoadBalancer {
     
     @Override
     public int getDefaultPortStart() { 
-        return defaultPortStart;
-    }
-
-    @Override
-    public int getDefaultPortEnd() {
-        return defaultPortEnd;
+        return instancePort;
     }
 
     public void setName(String name) {
@@ -194,4 +181,14 @@ public class LoadBalancerVO implements LoadBalancer {
     public State getState() {
         return state;
     }
+
+    @Override
+    public LoadBalancer.Scheme getScheme() {
+        return scheme;
+    }
+
+    @Override
+    public Purpose getPurpose() {
+        return Purpose.LoadBalancing;
+    }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/firewall/FirewallManagerImpl.java 
b/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
index bd525e1..9045ecb 100644
--- a/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
+++ b/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
@@ -60,8 +60,8 @@ import com.cloud.network.element.StaticNatServiceProvider;
 import com.cloud.network.rules.FirewallManager;
 import com.cloud.network.rules.FirewallRule;
 import com.cloud.network.rules.FirewallRule.FirewallRuleType;
-import com.cloud.network.rules.FirewallRule.Purpose;
-import com.cloud.network.rules.FirewallRule.State;
+import com.cloud.network.rules.NetworkRule.Purpose;
+import com.cloud.network.rules.NetworkRule.State;
 import com.cloud.network.rules.FirewallRuleVO;
 import com.cloud.network.rules.PortForwardingRule;
 import com.cloud.network.rules.PortForwardingRuleVO;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java 
b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
index cb85ce1..c2d285a 100755
--- a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
+++ b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
@@ -1386,7 +1386,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends 
ManagerBase implements
 
         LoadBalancerVO newRule = new LoadBalancerVO(lb.getName(), 
lb.getDescription(), lb.getSourceIpAddressId(),
                 lb.getSourcePortEnd(), lb.getDefaultPortStart(), 
lb.getAlgorithm(), network.getId(),
-                ipAddr.getAllocatedToAccountId(), 
ipAddr.getAllocatedInDomainId());
+                ipAddr.getAllocatedToAccountId(), 
ipAddr.getAllocatedInDomainId(), LoadBalancer.Scheme.Public);
 
         // verify rule is supported by Lb provider of the network
         LoadBalancingRule loadBalancing = new LoadBalancingRule(newRule, new 
ArrayList<LbDestination>(),
@@ -1693,8 +1693,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends 
ManagerBase implements
             UserVm vm = _vmDao.findById(lbVmMap.getInstanceId());
             Nic nic = 
_nicDao.findByInstanceIdAndNetworkIdIncludingRemoved(lb.getNetworkId(), 
vm.getId());
             dstIp = nic.getIp4Address();
-            LbDestination lbDst = new LbDestination(lb.getDefaultPortStart(), 
lb.getDefaultPortEnd(), dstIp,
-                    lbVmMap.isRevoke());
+            LbDestination lbDst = new LbDestination(lb.getDefaultPortStart(), 
dstIp, lbVmMap.isRevoke());
             dstList.add(lbDst);
         }
         return dstList;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git 
a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java 
b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
index 5227434..d3241b6 100755
--- 
a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ 
b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -171,7 +171,7 @@ import com.cloud.network.lb.LoadBalancingRulesManager;
 import com.cloud.network.router.VirtualRouter.RedundantState;
 import com.cloud.network.router.VirtualRouter.Role;
 import com.cloud.network.rules.FirewallRule;
-import com.cloud.network.rules.FirewallRule.Purpose;
+import com.cloud.network.rules.NetworkRule.Purpose;
 import com.cloud.network.rules.LoadBalancer;
 import com.cloud.network.rules.PortForwardingRule;
 import com.cloud.network.rules.RulesManager;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git 
a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
 
b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
index bdfac06..30eaf7d 100644
--- 
a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
+++ 
b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
@@ -91,7 +91,7 @@ import com.cloud.network.dao.Site2SiteVpnConnectionDao;
 import com.cloud.network.dao.Site2SiteVpnGatewayDao;
 import com.cloud.network.dao.Site2SiteVpnGatewayVO;
 import com.cloud.network.rules.FirewallRule;
-import com.cloud.network.rules.FirewallRule.Purpose;
+import com.cloud.network.rules.NetworkRule.Purpose;
 import com.cloud.network.rules.FirewallRuleVO;
 import com.cloud.network.vpc.NetworkACLManager;
 import com.cloud.network.vpc.PrivateGateway;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/src/com/cloud/network/rules/FirewallManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/rules/FirewallManager.java 
b/server/src/com/cloud/network/rules/FirewallManager.java
index 2bce8fe..15bf8d9 100644
--- a/server/src/com/cloud/network/rules/FirewallManager.java
+++ b/server/src/com/cloud/network/rules/FirewallManager.java
@@ -23,7 +23,7 @@ import com.cloud.exception.ResourceUnavailableException;
 import com.cloud.network.dao.IPAddressVO;
 import com.cloud.network.firewall.FirewallService;
 import com.cloud.network.rules.FirewallRule.FirewallRuleType;
-import com.cloud.network.rules.FirewallRule.Purpose;
+import com.cloud.network.rules.NetworkRule.Purpose;
 import com.cloud.user.Account;
 
 public interface FirewallManager extends FirewallService {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/src/com/cloud/network/rules/RulesManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/rules/RulesManagerImpl.java 
b/server/src/com/cloud/network/rules/RulesManagerImpl.java
index 8b8f0b6..8c80c4c 100755
--- a/server/src/com/cloud/network/rules/RulesManagerImpl.java
+++ b/server/src/com/cloud/network/rules/RulesManagerImpl.java
@@ -52,7 +52,7 @@ import com.cloud.network.dao.IPAddressVO;
 import com.cloud.network.dao.LoadBalancerDao;
 import com.cloud.network.dao.LoadBalancerVO;
 import com.cloud.network.rules.FirewallRule.FirewallRuleType;
-import com.cloud.network.rules.FirewallRule.Purpose;
+import com.cloud.network.rules.NetworkRule.Purpose;
 import com.cloud.network.rules.dao.PortForwardingRulesDao;
 import com.cloud.network.vpc.VpcManager;
 import com.cloud.offering.NetworkOffering;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/src/com/cloud/network/rules/dao/PortForwardingRulesDaoImpl.java
----------------------------------------------------------------------
diff --git 
a/server/src/com/cloud/network/rules/dao/PortForwardingRulesDaoImpl.java 
b/server/src/com/cloud/network/rules/dao/PortForwardingRulesDaoImpl.java
index cc780cb..ba841ad 100644
--- a/server/src/com/cloud/network/rules/dao/PortForwardingRulesDaoImpl.java
+++ b/server/src/com/cloud/network/rules/dao/PortForwardingRulesDaoImpl.java
@@ -24,16 +24,13 @@ import javax.inject.Inject;
 import org.springframework.stereotype.Component;
 
 import com.cloud.network.dao.FirewallRulesCidrsDao;
-import com.cloud.network.dao.FirewallRulesCidrsDaoImpl;
-import com.cloud.network.rules.FirewallRule.Purpose;
-import com.cloud.network.rules.FirewallRule.State;
+import com.cloud.network.rules.NetworkRule.Purpose;
+import com.cloud.network.rules.NetworkRule.State;
 import com.cloud.network.rules.PortForwardingRuleVO;
-
 import com.cloud.utils.db.GenericDaoBase;
 import com.cloud.utils.db.SearchBuilder;
 import com.cloud.utils.db.SearchCriteria;
 import com.cloud.utils.db.SearchCriteria.Op;
-import com.cloud.vm.dao.NicSecondaryIpVO;
 
 @Component
 @Local(value=PortForwardingRulesDao.class)

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java 
b/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java
index cb44866..68716d3 100644
--- a/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java
+++ b/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java
@@ -22,13 +22,12 @@ import java.util.Map;
 
 import javax.ejb.Local;
 import javax.inject.Inject;
-import javax.naming.ConfigurationException;
 
+import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.api.command.user.network.ListNetworkACLsCmd;
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
-import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import com.cloud.event.ActionEvent;
 import com.cloud.event.EventTypes;
 import com.cloud.exception.InvalidParameterValueException;
@@ -43,9 +42,9 @@ import com.cloud.network.dao.FirewallRulesDao;
 import com.cloud.network.firewall.NetworkACLService;
 import com.cloud.network.rules.FirewallManager;
 import com.cloud.network.rules.FirewallRule;
-import com.cloud.network.rules.FirewallRule.Purpose;
 import com.cloud.network.rules.FirewallRule.TrafficType;
 import com.cloud.network.rules.FirewallRuleVO;
+import com.cloud.network.rules.NetworkRule.Purpose;
 import com.cloud.projects.Project.ListProjectResourcesCriteria;
 import com.cloud.server.ResourceTag.TaggedResourceType;
 import com.cloud.tags.ResourceTagVO;
@@ -55,7 +54,6 @@ import com.cloud.user.AccountManager;
 import com.cloud.user.UserContext;
 import com.cloud.utils.Pair;
 import com.cloud.utils.Ternary;
-import com.cloud.utils.component.Manager;
 import com.cloud.utils.component.ManagerBase;
 import com.cloud.utils.db.DB;
 import com.cloud.utils.db.Filter;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java 
b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
index 673535a..c36ba0d 100755
--- a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
+++ b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
@@ -58,7 +58,7 @@ import com.cloud.network.dao.VpnUserDao;
 import com.cloud.network.element.RemoteAccessVPNServiceProvider;
 import com.cloud.network.rules.FirewallManager;
 import com.cloud.network.rules.FirewallRule;
-import com.cloud.network.rules.FirewallRule.Purpose;
+import com.cloud.network.rules.NetworkRule.Purpose;
 import com.cloud.network.rules.FirewallRuleVO;
 import com.cloud.network.rules.RulesManager;
 import com.cloud.projects.Project.ListProjectResourcesCriteria;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/test/com/cloud/network/MockFirewallManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/network/MockFirewallManagerImpl.java 
b/server/test/com/cloud/network/MockFirewallManagerImpl.java
index 95bb1d1..226d68b 100644
--- a/server/test/com/cloud/network/MockFirewallManagerImpl.java
+++ b/server/test/com/cloud/network/MockFirewallManagerImpl.java
@@ -30,13 +30,12 @@ import com.cloud.network.dao.IPAddressVO;
 import com.cloud.network.firewall.FirewallService;
 import com.cloud.network.rules.FirewallManager;
 import com.cloud.network.rules.FirewallRule;
-import com.cloud.network.rules.FirewallRuleVO;
 import com.cloud.network.rules.FirewallRule.FirewallRuleType;
-import com.cloud.network.rules.FirewallRule.Purpose;
 import com.cloud.network.rules.FirewallRule.TrafficType;
+import com.cloud.network.rules.FirewallRuleVO;
+import com.cloud.network.rules.NetworkRule.Purpose;
 import com.cloud.user.Account;
 import com.cloud.utils.Pair;
-import com.cloud.utils.component.Manager;
 import com.cloud.utils.component.ManagerBase;
 
 @Local(value = {FirewallManager.class, FirewallService.class})

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/test/com/cloud/network/MockNetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/network/MockNetworkManagerImpl.java 
b/server/test/com/cloud/network/MockNetworkManagerImpl.java
index d903042..f772a4f 100755
--- a/server/test/com/cloud/network/MockNetworkManagerImpl.java
+++ b/server/test/com/cloud/network/MockNetworkManagerImpl.java
@@ -54,8 +54,7 @@ import com.cloud.network.element.StaticNatServiceProvider;
 import com.cloud.network.element.UserDataServiceProvider;
 import com.cloud.network.guru.NetworkGuru;
 import com.cloud.network.rules.FirewallRule;
-import com.cloud.network.rules.FirewallRule.Purpose;
-import com.cloud.network.rules.LoadBalancer.State;
+import com.cloud.network.rules.NetworkRule;
 import com.cloud.network.rules.StaticNat;
 import com.cloud.offering.NetworkOffering;
 import com.cloud.offerings.NetworkOfferingVO;
@@ -452,7 +451,7 @@ public class MockNetworkManagerImpl extends ManagerBase 
implements NetworkManage
      * @see com.cloud.network.NetworkManager#applyRules(java.util.List, 
com.cloud.network.rules.FirewallRule.Purpose, 
com.cloud.network.NetworkRuleApplier, boolean)
      */
     @Override
-    public boolean applyRules(List<? extends FirewallRule> rules, Purpose 
purpose, NetworkRuleApplier applier,
+    public boolean applyRules(List<? extends FirewallRule> rules, 
NetworkRule.Purpose purpose, NetworkRuleApplier applier,
             boolean continueOnError) throws ResourceUnavailableException {
         // TODO Auto-generated method stub
         return false;
@@ -881,7 +880,7 @@ public class MockNetworkManagerImpl extends ManagerBase 
implements NetworkManage
     }
 
     @Override
-    public int getLbRuleCountForIp(Long addressId, State state) {
+    public int getLbRuleCountForIp(Long addressId, NetworkRule.State state) {
         // TODO Auto-generated method stub
         return 0;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/test/com/cloud/network/MockRulesManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/network/MockRulesManagerImpl.java 
b/server/test/com/cloud/network/MockRulesManagerImpl.java
index d4961ce..4a891af 100644
--- a/server/test/com/cloud/network/MockRulesManagerImpl.java
+++ b/server/test/com/cloud/network/MockRulesManagerImpl.java
@@ -28,7 +28,7 @@ import 
com.cloud.exception.InsufficientAddressCapacityException;
 import com.cloud.exception.NetworkRuleConflictException;
 import com.cloud.exception.ResourceUnavailableException;
 import com.cloud.network.rules.FirewallRule;
-import com.cloud.network.rules.FirewallRule.Purpose;
+import com.cloud.network.rules.NetworkRule;
 import com.cloud.network.rules.PortForwardingRule;
 import com.cloud.network.rules.PortForwardingRuleVO;
 import com.cloud.network.rules.RulesManager;
@@ -216,7 +216,7 @@ public class MockRulesManagerImpl extends ManagerBase 
implements RulesManager, R
 
        @Override
        public FirewallRule[] reservePorts(IpAddress ip, String protocol,
-                       Purpose purpose, boolean openFirewall, Account caller, 
int... ports)
+                       NetworkRule.Purpose purpose, boolean openFirewall, 
Account caller, int... ports)
                        throws NetworkRuleConflictException {
                // TODO Auto-generated method stub
                return null;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/test/com/cloud/network/firewall/FirewallManagerTest.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/network/firewall/FirewallManagerTest.java 
b/server/test/com/cloud/network/firewall/FirewallManagerTest.java
index 33b6c73..40cb9a7 100644
--- a/server/test/com/cloud/network/firewall/FirewallManagerTest.java
+++ b/server/test/com/cloud/network/firewall/FirewallManagerTest.java
@@ -47,7 +47,7 @@ import com.cloud.network.element.VirtualRouterElement;
 import com.cloud.network.element.VpcVirtualRouterElement;
 import com.cloud.network.rules.FirewallManager;
 import com.cloud.network.rules.FirewallRule;
-import com.cloud.network.rules.FirewallRule.Purpose;
+import com.cloud.network.rules.NetworkRule.Purpose;
 import com.cloud.network.rules.FirewallRuleVO;
 import com.cloud.utils.component.ComponentContext;
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/MockNetworkManagerImpl.java 
b/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
index 4cb7444..b7826d9 100644
--- a/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
+++ b/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
@@ -1,3 +1,4 @@
+
 // Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
@@ -68,8 +69,7 @@ import com.cloud.network.element.StaticNatServiceProvider;
 import com.cloud.network.element.UserDataServiceProvider;
 import com.cloud.network.guru.NetworkGuru;
 import com.cloud.network.rules.FirewallRule;
-import com.cloud.network.rules.FirewallRule.Purpose;
-import com.cloud.network.rules.LoadBalancer.State;
+import com.cloud.network.rules.NetworkRule;
 import com.cloud.network.rules.StaticNat;
 import com.cloud.offering.NetworkOffering;
 import com.cloud.offerings.NetworkOfferingVO;
@@ -774,7 +774,7 @@ public class MockNetworkManagerImpl extends ManagerBase 
implements NetworkManage
      * @see com.cloud.network.NetworkManager#applyRules(java.util.List, 
com.cloud.network.rules.FirewallRule.Purpose, 
com.cloud.network.NetworkRuleApplier, boolean)
      */
     @Override
-    public boolean applyRules(List<? extends FirewallRule> rules, Purpose 
purpose, NetworkRuleApplier applier,
+    public boolean applyRules(List<? extends FirewallRule> rules, 
NetworkRule.Purpose purpose, NetworkRuleApplier applier,
             boolean continueOnError) throws ResourceUnavailableException {
         // TODO Auto-generated method stub
         return false;
@@ -1413,7 +1413,7 @@ public class MockNetworkManagerImpl extends ManagerBase 
implements NetworkManage
 
 
     @Override
-    public int getLbRuleCountForIp(Long addressId, State state) {
+    public int getLbRuleCountForIp(Long addressId, NetworkRule.State state) {
         // TODO Auto-generated method stub
         return 0;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/setup/db/db/schema-410to420-cleanup.sql
----------------------------------------------------------------------
diff --git a/setup/db/db/schema-410to420-cleanup.sql 
b/setup/db/db/schema-410to420-cleanup.sql
index c60c01b..c832148 100644
--- a/setup/db/db/schema-410to420-cleanup.sql
+++ b/setup/db/db/schema-410to420-cleanup.sql
@@ -26,3 +26,5 @@ ALTER TABLE `cloud`.`remote_access_vpn` ADD primary key 
(`id`);
 ALTER TABLE `cloud`.`remote_access_vpn` ADD CONSTRAINT 
`fk_remote_access_vpn__vpn_server_addr_id` FOREIGN KEY (`vpn_server_addr_id`) 
REFERENCES `user_ip_address` (`id`);
 
 ALTER TABLE `cloud`.`load_balancing_rules` DROP foreign key 
`fk_load_balancing_rules__id`;
+ALTER TABLE `cloud`.`load_balancing_rules` DROP COLUMN `default_port_end`;
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140dc1/setup/db/db/schema-410to420.sql
----------------------------------------------------------------------
diff --git a/setup/db/db/schema-410to420.sql b/setup/db/db/schema-410to420.sql
index a8a7549..c03a54e 100644
--- a/setup/db/db/schema-410to420.sql
+++ b/setup/db/db/schema-410to420.sql
@@ -407,16 +407,18 @@ INSERT INTO `cloud`.`vm_template` (id, unique_name, name, 
public, created, type,
 -- END: support for LXC
 
 ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `uuid` varchar(40);
-ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `ip_address_id` bigint 
unsigned COMMENT 'id of the corresponding ip address';
-ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `start_port` int(10) 
COMMENT 'starting port of a port range';
-ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `end_port` int(10) 
COMMENT 'end port of a port range';
+ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `ip_address_id` bigint 
unsigned COMMENT 'load balancer ip address id';
+ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `source_port` int(10) 
COMMENT 'load balancer port number';
 ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `state` char(32) NOT 
NULL COMMENT 'current state of this rule';
-ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `protocol` char(16) NOT 
NULL default 'TCP' COMMENT 'protocol to open these ports for';
+ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `protocol` char(16) NOT 
NULL default 'TCP' COMMENT 'protocol to open these ports for; can be TCP only 
for the Load balancer';
 ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `account_id` bigint 
unsigned NOT NULL COMMENT 'owner id';
 ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `domain_id` bigint 
unsigned NOT NULL COMMENT 'domain id';
-ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `network_id` bigint 
unsigned NOT NULL COMMENT 'network id';
+ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `network_id` bigint 
unsigned NOT NULL COMMENT 'network id the rule belongs to';
+ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `scheme` varchar(40) NOT 
NULL COMMENT 'load balancer rule scheme. Can be Public and Internal';
 ALTER TABLE `cloud`.`load_balancing_rules` ADD COLUMN `created` datetime 
COMMENT 'Date created';
 
 ALTER TABLE `cloud`.`load_balancing_rules` MODIFY COLUMN `id` bigint(20) 
unsigned NOT NULL AUTO_INCREMENT COMMENT 'id';
+ALTER TABLE `cloud`.`load_balancing_rules` CHANGE COLUMN `default_port_start` 
`instance_port` int(10) DEFAULT NULL COMMENT 'the port on which instance server 
is listening';
+
 
 

Reply via email to