NSXV: Octavia L7 rule delete
Fix a bug with L7 rule deletion Change-Id: Ib40040c5d85ebef7d8566d1d2a46438367887927
This commit is contained in:
parent
98c9df4cc0
commit
a7575ae6af
@ -42,7 +42,7 @@ def policy_to_application_rule(policy):
|
|||||||
condition = ''
|
condition = ''
|
||||||
rule_lines = []
|
rule_lines = []
|
||||||
for rule in policy['rules']:
|
for rule in policy['rules']:
|
||||||
if rule['provisioning_status'] == constants.PENDING_DELETE:
|
if rule.get('provisioning_status') == constants.PENDING_DELETE:
|
||||||
# skip this rule as it is being deleted
|
# skip this rule as it is being deleted
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
from neutron_lib import constants
|
||||||
from oslo_log import helpers as log_helpers
|
from oslo_log import helpers as log_helpers
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
from oslo_utils import excutils
|
from oslo_utils import excutils
|
||||||
@ -29,8 +30,7 @@ class EdgeL7RuleManagerFromDict(base_mgr.EdgeLoadbalancerBaseManager):
|
|||||||
def __init__(self, vcns_driver):
|
def __init__(self, vcns_driver):
|
||||||
super(EdgeL7RuleManagerFromDict, self).__init__(vcns_driver)
|
super(EdgeL7RuleManagerFromDict, self).__init__(vcns_driver)
|
||||||
|
|
||||||
def _handle_l7policy_rules_change(self, context, rule, completor,
|
def _handle_l7policy_rules_change(self, context, rule, completor):
|
||||||
delete=False):
|
|
||||||
# Get the nsx application rule id and edge id
|
# Get the nsx application rule id and edge id
|
||||||
edge_id, app_rule_id = l7policy_mgr.policy_to_edge_and_rule_id(
|
edge_id, app_rule_id = l7policy_mgr.policy_to_edge_and_rule_id(
|
||||||
context, rule['l7policy_id'])
|
context, rule['l7policy_id'])
|
||||||
@ -60,8 +60,11 @@ class EdgeL7RuleManagerFromDict(base_mgr.EdgeLoadbalancerBaseManager):
|
|||||||
self._handle_l7policy_rules_change(context, new_rule, completor)
|
self._handle_l7policy_rules_change(context, new_rule, completor)
|
||||||
|
|
||||||
def delete(self, context, rule, completor):
|
def delete(self, context, rule, completor):
|
||||||
self._handle_l7policy_rules_change(context, rule, completor,
|
# Mark rule for deletion in policy rule list
|
||||||
delete=True)
|
for r in rule['policy']['rules']:
|
||||||
|
if r['l7rule_id'] == rule['l7rule_id']:
|
||||||
|
r['provisioning_status'] = constants.PENDING_DELETE
|
||||||
|
self._handle_l7policy_rules_change(context, rule, completor)
|
||||||
|
|
||||||
def delete_cascade(self, context, rule, completor):
|
def delete_cascade(self, context, rule, completor):
|
||||||
self.delete(context, rule, completor)
|
self.delete(context, rule, completor)
|
||||||
|
Loading…
Reference in New Issue
Block a user