@@ -450,14 +450,14 @@ func (c *OVNNbClient) UpdateSgACL(sg *kubeovnv1.SecurityGroup, direction string)
450450}
451451
452452func (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