]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
FWaaS plugin doesn't need to handle firewall rule del ops
authorberlin <linb@vmware.com>
Thu, 22 May 2014 07:42:25 +0000 (15:42 +0800)
committerberlin <linb@vmware.com>
Thu, 29 May 2014 00:40:33 +0000 (08:40 +0800)
If firewall rule is attached to firewall policy, it would raise
FirewallRuleInUse excpetion in DB ops, else it is a pure DB delete ops.
So it is useless to handle delete_firewall_rule ops in fwaas plugin.
Closes-Bug: #1322076

Change-Id: I55a000d206f232c79b41230f526007f684db8f4f

neutron/services/firewall/fwaas_plugin.py

index 793eb870bf620d1046e4865ddf3c8b3e73e00a81..efcf2961bcac21f2fca903d7c2308610fdfa8904 100644 (file)
@@ -214,8 +214,7 @@ class FirewallPlugin(firewall_db.Firewall_db_mixin):
             for firewall_id in firewall_policy['firewall_list']:
                 self._ensure_update_firewall(context, firewall_id)
 
-    def _ensure_update_or_delete_firewall_rule(self, context,
-                                               firewall_rule_id):
+    def _ensure_update_firewall_rule(self, context, firewall_rule_id):
         fw_rule = self.get_firewall_rule(context, firewall_rule_id)
         if 'firewall_policy_id' in fw_rule and fw_rule['firewall_policy_id']:
             self._ensure_update_firewall_policy(context,
@@ -270,7 +269,7 @@ class FirewallPlugin(firewall_db.Firewall_db_mixin):
 
     def update_firewall_rule(self, context, id, firewall_rule):
         LOG.debug(_("update_firewall_rule() called"))
-        self._ensure_update_or_delete_firewall_rule(context, id)
+        self._ensure_update_firewall_rule(context, id)
         fwr = super(FirewallPlugin,
                     self).update_firewall_rule(context, id, firewall_rule)
         firewall_policy_id = fwr['firewall_policy_id']
@@ -278,25 +277,6 @@ class FirewallPlugin(firewall_db.Firewall_db_mixin):
             self._rpc_update_firewall_policy(context, firewall_policy_id)
         return fwr
 
-    def delete_firewall_rule(self, context, id):
-        LOG.debug(_("delete_firewall_rule() called"))
-        self._ensure_update_or_delete_firewall_rule(context, id)
-        fwr = self.get_firewall_rule(context, id)
-        firewall_policy_id = fwr['firewall_policy_id']
-        super(FirewallPlugin, self).delete_firewall_rule(context, id)
-        # At this point we have already deleted the rule in the DB,
-        # however it's still not deleted on the backend firewall.
-        # Until it gets deleted on the backend we will be setting
-        # the firewall in PENDING_UPDATE state. The backend firewall
-        # implementation is responsible for setting the appropriate
-        # configuration (e.g. do not allow any traffic) until the rule
-        # is deleted. Once the rule is deleted, the backend should put
-        # the firewall back in ACTIVE state. While the firewall is in
-        # PENDING_UPDATE state, the firewall behavior might differ based
-        # on the backend implementation.
-        if firewall_policy_id:
-            self._rpc_update_firewall_policy(context, firewall_policy_id)
-
     def insert_rule(self, context, id, rule_info):
         LOG.debug(_("insert_rule() called"))
         self._ensure_update_firewall_policy(context, id)