You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ja...@apache.org on 2014/06/19 11:40:09 UTC

[1/2] git commit: updated refs/heads/master to cc98d44

Repository: cloudstack
Updated Branches:
  refs/heads/master 89854de18 -> cc98d4454


CLOUDSTACK-6923: updated listLBStickinessPolicies API to list using stickinesspolicy id


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

Branch: refs/heads/master
Commit: 2be26e03af248118ce6293306927a0f24bf296a9
Parents: 89854de
Author: Jayapal <ja...@apache.org>
Authored: Tue Jun 17 16:14:33 2014 +0530
Committer: Jayapal <ja...@apache.org>
Committed: Thu Jun 19 15:05:22 2014 +0530

----------------------------------------------------------------------
 .../network/lb/LoadBalancingRulesService.java   |  2 ++
 .../ListLBStickinessPoliciesCmd.java            | 35 ++++++++++++++++++--
 .../lb/LoadBalancingRulesManagerImpl.java       | 22 ++++++++++--
 3 files changed, 55 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2be26e03/api/src/com/cloud/network/lb/LoadBalancingRulesService.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/lb/LoadBalancingRulesService.java b/api/src/com/cloud/network/lb/LoadBalancingRulesService.java
index c497633..3e11014 100644
--- a/api/src/com/cloud/network/lb/LoadBalancingRulesService.java
+++ b/api/src/com/cloud/network/lb/LoadBalancingRulesService.java
@@ -159,4 +159,6 @@ public interface LoadBalancingRulesService {
     StickinessPolicy updateLBStickinessPolicy(long id, String customId, Boolean forDisplay);
 
     HealthCheckPolicy updateLBHealthCheckPolicy(long id, String customId, Boolean forDisplay);
+
+    LoadBalancer findLbByStickinessId(long stickinessPolicyId);
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2be26e03/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBStickinessPoliciesCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBStickinessPoliciesCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBStickinessPoliciesCmd.java
index 9905c0b..80ae3eb 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBStickinessPoliciesCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBStickinessPoliciesCmd.java
@@ -19,6 +19,7 @@ package org.apache.cloudstack.api.command.user.loadbalancer;
 import java.util.ArrayList;
 import java.util.List;
 
+import com.cloud.exception.InvalidParameterValueException;
 import org.apache.cloudstack.acl.RoleType;
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
@@ -47,10 +48,16 @@ public class ListLBStickinessPoliciesCmd extends BaseListCmd {
     @Parameter(name = ApiConstants.LBID,
                type = CommandType.UUID,
                entityType = FirewallRuleResponse.class,
-               required = true,
                description = "the ID of the load balancer rule")
     private Long lbRuleId;
 
+    @Parameter(name = ApiConstants.ID,
+            type = CommandType.UUID,
+            entityType = LBStickinessResponse.class,
+            description = "the ID of the load balancer stickiness policy")
+    private Long id;
+
+
     @Parameter(name = ApiConstants.FOR_DISPLAY, type = CommandType.BOOLEAN, description = "list resources by display flag; only ROOT admin is eligible to pass this parameter", since = "4.4", authorized = {RoleType.Admin})
     private Boolean display;
 
@@ -61,6 +68,10 @@ public class ListLBStickinessPoliciesCmd extends BaseListCmd {
         return lbRuleId;
     }
 
+    public Long getId() {
+        return id;
+    }
+
     public boolean getDisplay() {
         if (display != null) {
             return display;
@@ -79,8 +90,28 @@ public class ListLBStickinessPoliciesCmd extends BaseListCmd {
 
     @Override
     public void execute() {
+
+        LoadBalancer lb = null;
+        if (lbRuleId == null && id == null) {
+            throw new InvalidParameterValueException("LB rule id and stickiness policy id can't be null");
+        }
+
+        if (id != null) {
+            lb = _lbService.findLbByStickinessId(id);
+            if (lb == null) {
+                throw new InvalidParameterValueException("stickiness policy id doesn't exist");
+            }
+
+            if ((lbRuleId != null) && (lbRuleId != lb.getId())) {
+                throw new InvalidParameterValueException("stickiness policy id doesn't belong to lbId" + lbRuleId);
+            }
+        }
+
+        if (lbRuleId != null && lb != null) {
+            lb = _lbService.findById(getLbRuleId());
+        }
+
         List<LBStickinessResponse> spResponses = new ArrayList<LBStickinessResponse>();
-        LoadBalancer lb = _lbService.findById(getLbRuleId());
         ListResponse<LBStickinessResponse> response = new ListResponse<LBStickinessResponse>();
 
         if (lb != null) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2be26e03/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 919c512..227a72c 100755
--- a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
+++ b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
@@ -2215,16 +2215,24 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
     public List<LBStickinessPolicyVO> searchForLBStickinessPolicies(ListLBStickinessPoliciesCmd cmd) throws PermissionDeniedException {
         Account caller = CallContext.current().getCallingAccount();
         Long loadBalancerId = cmd.getLbRuleId();
+        Long stickinessId = cmd.getId();
+
         boolean forDisplay = cmd.getDisplay();
+        LoadBalancerVO loadBalancer = null;
+
+        if (loadBalancerId == null) {
+            loadBalancer = findLbByStickinessId(stickinessId);
+        } else {
+            loadBalancer = _lbDao.findById(loadBalancerId);
+        }
 
-        LoadBalancerVO loadBalancer = _lbDao.findById(loadBalancerId);
         if (loadBalancer == null) {
             return null;
         }
 
         _accountMgr.checkAccess(caller, null, true, loadBalancer);
 
-        List<LBStickinessPolicyVO> sDbpolicies = _lb2stickinesspoliciesDao.listByLoadBalancerIdAndDisplayFlag(cmd.getLbRuleId(), forDisplay);
+        List<LBStickinessPolicyVO> sDbpolicies = _lb2stickinesspoliciesDao.listByLoadBalancerIdAndDisplayFlag(loadBalancer.getId(), forDisplay);
 
         return sDbpolicies;
     }
@@ -2365,6 +2373,16 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
     }
 
     @Override
+    public LoadBalancerVO findLbByStickinessId(long stickinessPolicyId) {
+        LBStickinessPolicyVO stickinessPolicy = _lb2stickinesspoliciesDao.findById(stickinessPolicyId);
+
+        if (stickinessPolicy == null) {
+            return null;
+        }
+        return _lbDao.findById(stickinessPolicy.getLoadBalancerId());
+    }
+
+    @Override
     public void removeLBRule(LoadBalancer rule) {
         // remove the rule
         _lbDao.remove(rule.getId());


[2/2] git commit: updated refs/heads/master to cc98d44

Posted by ja...@apache.org.
CLOUDSTACK-6922: Updated events for firewall ingress and egress


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

Branch: refs/heads/master
Commit: cc98d44542a52199cfdef278a43702f560efafe5
Parents: 2be26e0
Author: Jayapal <ja...@apache.org>
Authored: Tue Jun 17 12:06:03 2014 +0530
Committer: Jayapal <ja...@apache.org>
Committed: Thu Jun 19 15:06:56 2014 +0530

----------------------------------------------------------------------
 api/src/com/cloud/event/EventTypes.java         |  8 +++++
 .../cloud/network/firewall/FirewallService.java |  8 +++--
 .../firewall/CreateEgressFirewallRuleCmd.java   |  4 +--
 .../user/firewall/CreateFirewallRuleCmd.java    |  4 +--
 .../firewall/DeleteEgressFirewallRuleCmd.java   |  4 +--
 .../user/firewall/DeleteFirewallRuleCmd.java    |  2 +-
 .../firewall/UpdateEgressFirewallRuleCmd.java   |  4 +--
 .../user/firewall/UpdateFirewallRuleCmd.java    |  2 +-
 .../network/firewall/FirewallManagerImpl.java   | 36 +++++++++++++++++---
 .../cloud/network/MockFirewallManagerImpl.java  | 35 ++++++++++++++-----
 10 files changed, 83 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cc98d445/api/src/com/cloud/event/EventTypes.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/event/EventTypes.java b/api/src/com/cloud/event/EventTypes.java
index 471b3f6..0fa3cd5 100755
--- a/api/src/com/cloud/event/EventTypes.java
+++ b/api/src/com/cloud/event/EventTypes.java
@@ -128,6 +128,10 @@ public class EventTypes {
     public static final String EVENT_FIREWALL_CLOSE = "FIREWALL.CLOSE";
     public static final String EVENT_FIREWALL_UPDATE = "FIREWALL.UPDATE";
 
+    public static final String EVENT_FIREWALL_EGRESS_OPEN = "FIREWALL.EGRESS.OPEN";
+    public static final String EVENT_FIREWALL_EGRESS_CLOSE = "FIREWALL.EGRESS.CLOSE";
+    public static final String EVENT_FIREWALL_EGRESS_UPDATE = "FIREWALL.EGRESS.UPDATE";
+
     //NIC Events
     public static final String EVENT_NIC_CREATE = "NIC.CREATE";
     public static final String EVENT_NIC_DELETE = "NIC.DELETE";
@@ -556,6 +560,10 @@ public class EventTypes {
         entityEventDetails.put(EVENT_NET_RULE_MODIFY, FirewallRule.class);
         entityEventDetails.put(EVENT_FIREWALL_OPEN, FirewallRule.class);
         entityEventDetails.put(EVENT_FIREWALL_CLOSE, FirewallRule.class);
+        entityEventDetails.put(EVENT_FIREWALL_EGRESS_OPEN, FirewallRule.class);
+        entityEventDetails.put(EVENT_FIREWALL_EGRESS_CLOSE, FirewallRule.class);
+        entityEventDetails.put(EVENT_FIREWALL_EGRESS_UPDATE, FirewallRule.class);
+
 
         // Load Balancers
         entityEventDetails.put(EVENT_ASSIGN_TO_LOAD_BALANCER_RULE, FirewallRule.class);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cc98d445/api/src/com/cloud/network/firewall/FirewallService.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/firewall/FirewallService.java b/api/src/com/cloud/network/firewall/FirewallService.java
index 5ab7891..41b170d 100644
--- a/api/src/com/cloud/network/firewall/FirewallService.java
+++ b/api/src/com/cloud/network/firewall/FirewallService.java
@@ -40,7 +40,8 @@ public interface FirewallService {
      *            the id of the rule to revoke.
      * @return
      */
-    boolean revokeFirewallRule(long ruleId, boolean apply);
+    boolean revokeIngressFirewallRule(long ruleId, boolean apply);
+    boolean revokeEgressFirewallRule(long ruleId, boolean apply);
 
     boolean applyEgressFirewallRules(FirewallRule rule, Account caller) throws ResourceUnavailableException;
 
@@ -50,6 +51,9 @@ public interface FirewallService {
 
     boolean revokeRelatedFirewallRule(long ruleId, boolean apply);
 
-    FirewallRule updateFirewallRule(long ruleId, String customId, Boolean forDisplay);
+    FirewallRule updateIngressFirewallRule(long ruleId, String customId, Boolean forDisplay);
+    FirewallRule updateEgressFirewallRule(long ruleId, String customId, Boolean forDisplay);
 
+    boolean applyIngressFwRules(long ipId, Account caller) throws ResourceUnavailableException;
+    boolean revokeIngressFwRule(long ruleId, boolean apply);
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cc98d445/api/src/org/apache/cloudstack/api/command/user/firewall/CreateEgressFirewallRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/firewall/CreateEgressFirewallRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/firewall/CreateEgressFirewallRuleCmd.java
index 579cccb..90aed5e 100644
--- a/api/src/org/apache/cloudstack/api/command/user/firewall/CreateEgressFirewallRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/firewall/CreateEgressFirewallRuleCmd.java
@@ -154,7 +154,7 @@ public class CreateEgressFirewallRuleCmd extends BaseAsyncCreateCmd implements F
             fwResponse.setResponseName(getCommandName());
         } finally {
             if (!success || rule == null) {
-                _firewallService.revokeFirewallRule(getEntityId(), true);
+                _firewallService.revokeEgressFirewallRule(getEntityId(), true);
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create firewall rule");
             }
         }
@@ -270,7 +270,7 @@ public class CreateEgressFirewallRuleCmd extends BaseAsyncCreateCmd implements F
 
     @Override
     public String getEventType() {
-        return EventTypes.EVENT_FIREWALL_OPEN;
+        return EventTypes.EVENT_FIREWALL_EGRESS_OPEN;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cc98d445/api/src/org/apache/cloudstack/api/command/user/firewall/CreateFirewallRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/firewall/CreateFirewallRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/firewall/CreateFirewallRuleCmd.java
index b09d3a7..0666935 100644
--- a/api/src/org/apache/cloudstack/api/command/user/firewall/CreateFirewallRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/firewall/CreateFirewallRuleCmd.java
@@ -134,7 +134,7 @@ public class CreateFirewallRuleCmd extends BaseAsyncCreateCmd implements Firewal
         FirewallRule rule = _entityMgr.findById(FirewallRule.class, getEntityId());
         try {
             CallContext.current().setEventDetails("Rule Id: " + getEntityId());
-            success = _firewallService.applyIngressFirewallRules(rule.getSourceIpAddressId(), callerContext.getCallingAccount());
+            success = _firewallService.applyIngressFwRules(rule.getSourceIpAddressId(), callerContext.getCallingAccount());
 
             // State is different after the rule is applied, so get new object here
             rule = _entityMgr.findById(FirewallRule.class, getEntityId());
@@ -146,7 +146,7 @@ public class CreateFirewallRuleCmd extends BaseAsyncCreateCmd implements Firewal
             fwResponse.setResponseName(getCommandName());
         } finally {
             if (!success || rule == null) {
-                _firewallService.revokeFirewallRule(getEntityId(), true);
+                _firewallService.revokeIngressFwRule(getEntityId(), true);
                 throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create firewall rule");
             }
         }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cc98d445/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteEgressFirewallRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteEgressFirewallRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteEgressFirewallRuleCmd.java
index 4d22772..17968fc 100644
--- a/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteEgressFirewallRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteEgressFirewallRuleCmd.java
@@ -74,7 +74,7 @@ public class DeleteEgressFirewallRuleCmd extends BaseAsyncCmd {
 
     @Override
     public String getEventType() {
-        return EventTypes.EVENT_FIREWALL_CLOSE;
+        return EventTypes.EVENT_FIREWALL_EGRESS_CLOSE;
     }
 
     @Override
@@ -98,7 +98,7 @@ public class DeleteEgressFirewallRuleCmd extends BaseAsyncCmd {
     @Override
     public void execute() throws ResourceUnavailableException {
         CallContext.current().setEventDetails("Rule Id: " + id);
-        boolean result = _firewallService.revokeFirewallRule(id, true);
+        boolean result = _firewallService.revokeEgressFirewallRule(id, true);
 
         if (result) {
             SuccessResponse response = new SuccessResponse(getCommandName());

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cc98d445/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteFirewallRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteFirewallRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteFirewallRuleCmd.java
index 66dcc03..f8d1c18 100644
--- a/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteFirewallRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/firewall/DeleteFirewallRuleCmd.java
@@ -96,7 +96,7 @@ public class DeleteFirewallRuleCmd extends BaseAsyncCmd {
     @Override
     public void execute() throws ResourceUnavailableException {
         CallContext.current().setEventDetails("Rule Id: " + id);
-        boolean result = _firewallService.revokeFirewallRule(id, true);
+        boolean result = _firewallService.revokeIngressFwRule(id, true);
 
         if (result) {
             SuccessResponse response = new SuccessResponse(getCommandName());

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cc98d445/api/src/org/apache/cloudstack/api/command/user/firewall/UpdateEgressFirewallRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/firewall/UpdateEgressFirewallRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/firewall/UpdateEgressFirewallRuleCmd.java
index 0795396..b597a89 100644
--- a/api/src/org/apache/cloudstack/api/command/user/firewall/UpdateEgressFirewallRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/firewall/UpdateEgressFirewallRuleCmd.java
@@ -78,7 +78,7 @@ public class UpdateEgressFirewallRuleCmd extends BaseAsyncCustomIdCmd {
     @Override
     public void execute() throws ResourceUnavailableException {
         CallContext.current().setEventDetails("Rule Id: " + id);
-        FirewallRule rule = _firewallService.updateFirewallRule(id, this.getCustomId(), getDisplay());
+        FirewallRule rule = _firewallService.updateEgressFirewallRule(id, this.getCustomId(), getDisplay());
 
         FirewallResponse fwResponse = new FirewallResponse();
         if (rule != null) {
@@ -97,7 +97,7 @@ public class UpdateEgressFirewallRuleCmd extends BaseAsyncCustomIdCmd {
 
     @Override
     public String getEventType() {
-        return EventTypes.EVENT_FIREWALL_UPDATE;
+        return EventTypes.EVENT_FIREWALL_EGRESS_UPDATE;
 
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cc98d445/api/src/org/apache/cloudstack/api/command/user/firewall/UpdateFirewallRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/firewall/UpdateFirewallRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/firewall/UpdateFirewallRuleCmd.java
index f684371..e9c87d0 100644
--- a/api/src/org/apache/cloudstack/api/command/user/firewall/UpdateFirewallRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/firewall/UpdateFirewallRuleCmd.java
@@ -79,7 +79,7 @@ public class UpdateFirewallRuleCmd extends BaseAsyncCustomIdCmd {
     @Override
     public void execute() throws ResourceUnavailableException {
         CallContext.current().setEventDetails("Rule Id: " + id);
-        FirewallRule rule = _firewallService.updateFirewallRule(id, this.getCustomId(), getDisplay());
+        FirewallRule rule = _firewallService.updateIngressFirewallRule(id, this.getCustomId(), getDisplay());
 
         FirewallResponse fwResponse = new FirewallResponse();
         if (rule != null) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cc98d445/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 4f853b3..dd928d8 100644
--- a/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
+++ b/server/src/com/cloud/network/firewall/FirewallManagerImpl.java
@@ -161,7 +161,7 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
     }
 
     @Override
-    @ActionEvent(eventType = EventTypes.EVENT_FIREWALL_OPEN, eventDescription = "creating firewall rule", create = true)
+    @ActionEvent(eventType = EventTypes.EVENT_FIREWALL_EGRESS_OPEN, eventDescription = "creating egress firewall rule for network", create = true)
     public FirewallRule createEgressFirewallRule(FirewallRule rule) throws NetworkRuleConflictException {
         Account caller = CallContext.current().getCallingAccount();
 
@@ -613,12 +613,19 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
     }
 
     @Override
+    @ActionEvent(eventType = EventTypes.EVENT_FIREWALL_OPEN, eventDescription = "creating firewall rule", async = true)
+    public boolean applyIngressFwRules(long ipId, Account caller) throws ResourceUnavailableException {
+        return applyIngressFirewallRules(ipId, caller);
+    }
+
+    @Override
     public boolean applyIngressFirewallRules(long ipId, Account caller) throws ResourceUnavailableException {
         List<FirewallRuleVO> rules = _firewallDao.listByIpAndPurpose(ipId, Purpose.Firewall);
         return applyFirewallRules(rules, false, caller);
     }
 
     @Override
+    @ActionEvent(eventType = EventTypes.EVENT_FIREWALL_EGRESS_OPEN, eventDescription = "creating egress firewall rule", async = true)
     public boolean applyEgressFirewallRules(FirewallRule rule, Account caller) throws ResourceUnavailableException {
                 List<FirewallRuleVO> rules = _firewallDao.listByNetworkPurposeTrafficType(rule.getNetworkId(), Purpose.Firewall, FirewallRule.TrafficType.Egress);
                 return applyFirewallRules(rules, false, caller);
@@ -719,7 +726,21 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
 
     @Override
     @ActionEvent(eventType = EventTypes.EVENT_FIREWALL_CLOSE, eventDescription = "revoking firewall rule", async = true)
-    public boolean revokeFirewallRule(long ruleId, boolean apply) {
+    public boolean revokeIngressFwRule(long ruleId, boolean apply) {
+        return revokeIngressFirewallRule(ruleId, apply);
+    }
+
+
+    @Override
+    public boolean revokeIngressFirewallRule(long ruleId, boolean apply) {
+        Account caller = CallContext.current().getCallingAccount();
+        long userId = CallContext.current().getCallingUserId();
+        return revokeFirewallRule(ruleId, apply, caller, userId);
+    }
+
+    @Override
+    @ActionEvent(eventType = EventTypes.EVENT_FIREWALL_EGRESS_CLOSE, eventDescription = "revoking egress firewall rule", async = true)
+    public boolean revokeEgressFirewallRule(long ruleId, boolean apply) {
         Account caller = CallContext.current().getCallingAccount();
         long userId = CallContext.current().getCallingUserId();
         return revokeFirewallRule(ruleId, apply, caller, userId);
@@ -727,7 +748,14 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
 
     @Override
     @ActionEvent(eventType = EventTypes.EVENT_FIREWALL_UPDATE, eventDescription = "updating firewall rule", async = true)
-    public FirewallRule updateFirewallRule(long ruleId, String customId, Boolean forDisplay) {
+    public FirewallRule updateIngressFirewallRule(long ruleId, String customId, Boolean forDisplay) {
+        Account caller = CallContext.current().getCallingAccount();
+        return updateFirewallRule(ruleId, customId, caller, forDisplay);
+    }
+
+    @Override
+    @ActionEvent(eventType = EventTypes.EVENT_FIREWALL_EGRESS_UPDATE, eventDescription = "updating egress firewall rule", async = true)
+    public FirewallRule updateEgressFirewallRule(long ruleId, String customId, Boolean forDisplay) {
         Account caller = CallContext.current().getCallingAccount();
         return updateFirewallRule(ruleId, customId, caller, forDisplay);
     }
@@ -881,7 +909,7 @@ public class FirewallManagerImpl extends ManagerBase implements FirewallService,
         }
 
         s_logger.debug("Revoking Firewall rule id=" + fwRule.getId() + " as a part of rule delete id=" + ruleId + " with apply=" + apply);
-        return revokeFirewallRule(fwRule.getId(), apply);
+        return revokeIngressFirewallRule(fwRule.getId(), apply);
 
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cc98d445/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 3c02613..e484e61 100644
--- a/server/test/com/cloud/network/MockFirewallManagerImpl.java
+++ b/server/test/com/cloud/network/MockFirewallManagerImpl.java
@@ -70,9 +70,13 @@ public class MockFirewallManagerImpl extends ManagerBase implements FirewallMana
     }
 
     @Override
-    public boolean revokeFirewallRule(long ruleId, boolean apply) {
-        // TODO Auto-generated method stub
-        return false;
+    public boolean revokeIngressFirewallRule(long ruleId, boolean apply) {
+        return false;  //To change body of implemented methods use File | Settings | File Templates.
+    }
+
+    @Override
+    public boolean revokeEgressFirewallRule(long ruleId, boolean apply) {
+        return false;  //To change body of implemented methods use File | Settings | File Templates.
     }
 
     @Override
@@ -88,6 +92,26 @@ public class MockFirewallManagerImpl extends ManagerBase implements FirewallMana
     }
 
     @Override
+    public FirewallRule updateIngressFirewallRule(long ruleId, String customId, Boolean forDisplay) {
+        return null;  //To change body of implemented methods use File | Settings | File Templates.
+    }
+
+    @Override
+    public FirewallRule updateEgressFirewallRule(long ruleId, String customId, Boolean forDisplay) {
+        return null;  //To change body of implemented methods use File | Settings | File Templates.
+    }
+
+    @Override
+    public boolean applyIngressFwRules(long ipId, Account caller) throws ResourceUnavailableException {
+        return false;  //To change body of implemented methods use File | Settings | File Templates.
+    }
+
+    @Override
+    public boolean revokeIngressFwRule(long ruleId, boolean apply) {
+        return false;  //To change body of implemented methods use File | Settings | File Templates.
+    }
+
+    @Override
     public void detectRulesConflict(FirewallRule newRule) throws NetworkRuleConflictException {
         // TODO Auto-generated method stub
 
@@ -184,10 +208,5 @@ public class MockFirewallManagerImpl extends ManagerBase implements FirewallMana
         return null;
     }
 
-    @Override
-    public FirewallRule updateFirewallRule(long ruleId, String customId, Boolean forDisplay) {
-        // TODO Auto-generated method stub
-        return null;
-    }
 
 }