544
544
def delete_nat_rules_by_match(cluster, router_id, rule_type,
545
545
max_num_expected,
546
546
min_num_expected=0,
547
raise_on_len_mismatch=True,
548
549
# remove nat rules
549
550
nat_rules = query_nat_rules(cluster, router_id)
559
560
to_delete_ids.append(r['uuid'])
560
if not (len(to_delete_ids) in
561
range(min_num_expected, max_num_expected + 1)):
562
raise nsx_exc.NatRuleMismatch(actual_rules=len(to_delete_ids),
563
min_rules=min_num_expected,
564
max_rules=max_num_expected)
561
num_rules_to_delete = len(to_delete_ids)
562
if (num_rules_to_delete < min_num_expected or
563
num_rules_to_delete > max_num_expected):
564
if raise_on_len_mismatch:
565
raise nsx_exc.NatRuleMismatch(actual_rules=num_rules_to_delete,
566
min_rules=min_num_expected,
567
max_rules=max_num_expected)
569
LOG.warn(_("Found %(actual_rule_num)d matching NAT rules, which "
570
"is not in the expected range (%(min_exp_rule_num)d,"
571
"%(max_exp_rule_num)d)"),
572
{'actual_rule_num': num_rules_to_delete,
573
'min_exp_rule_num': min_num_expected,
574
'max_exp_rule_num': max_num_expected})
566
576
for rule_id in to_delete_ids:
567
577
delete_router_nat_rule(cluster, router_id, rule_id)
578
# Return number of deleted rules - useful at least for
580
return num_rules_to_delete
570
583
def delete_router_nat_rule(cluster, router_id, rule_id):