Skip to content

Commit f7c857c

Browse files
authored
del and add acls in one transaction (#5394)
Signed-off-by: Mengxin Liu <liumengxinfly@gmail.com>
1 parent 1f9a8e2 commit f7c857c

1 file changed

Lines changed: 19 additions & 7 deletions

File tree

pkg/ovs/ovn-nb-acl.go

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -450,14 +450,14 @@ func (c *OVNNbClient) UpdateSgACL(sg *kubeovnv1.SecurityGroup, direction string)
450450
}
451451

452452
func (c *OVNNbClient) UpdateLogicalSwitchACL(lsName, cidrBlock string, subnetAcls []kubeovnv1.ACL, allowEWTraffic bool) error {
453-
if err := c.DeleteAcls(lsName, logicalSwitchKey, "", map[string]string{"subnet": lsName}); err != nil {
454-
klog.Error(err)
455-
return fmt.Errorf("delete subnet acls from %s: %w", lsName, err)
456-
}
457-
458453
if len(subnetAcls) == 0 {
454+
if err := c.DeleteAcls(lsName, logicalSwitchKey, "", map[string]string{"subnet": lsName}); err != nil {
455+
klog.Error(err)
456+
return fmt.Errorf("delete subnet acls from %s: %w", lsName, err)
457+
}
459458
return nil
460459
}
460+
461461
acls := make([]*ovnnb.ACL, 0)
462462

463463
options := func(acl *ovnnb.ACL) {
@@ -508,9 +508,21 @@ func (c *OVNNbClient) UpdateLogicalSwitchACL(lsName, cidrBlock string, subnetAcl
508508
acls = append(acls, acl)
509509
}
510510

511-
if err := c.CreateAcls(lsName, logicalSwitchKey, acls...); err != nil {
511+
delOps, err := c.DeleteAclsOps(lsName, logicalSwitchKey, "", map[string]string{"subnet": lsName})
512+
if err != nil {
513+
klog.Error(err)
514+
return err
515+
}
516+
517+
addOps, err := c.CreateAclsOps(lsName, logicalSwitchKey, acls...)
518+
if err != nil {
519+
klog.Error(err)
520+
return err
521+
}
522+
523+
if err := c.Transact("acls-update", append(delOps, addOps...)); err != nil {
512524
klog.Error(err)
513-
return fmt.Errorf("add acls to logical switch %s: %w", lsName, err)
525+
return fmt.Errorf("update acls for logical switch %s: %w", lsName, err)
514526
}
515527

516528
return nil

0 commit comments

Comments
 (0)