Skip to content

Commit

Permalink
fix: duplicate gw nodes (#3500)
Browse files Browse the repository at this point in the history
Signed-off-by: bobz965 <zhangbingbing2_yewu@cmss.chinamobile.com>
  • Loading branch information
zbb88888 committed Dec 7, 2023
1 parent 35c7eaf commit 943a1d9
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 6 deletions.
7 changes: 6 additions & 1 deletion pkg/controller/external_gw.go
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,12 @@ func (c *Controller) getGatewayChassis(config map[string]string) ([]string, erro
nodeNames := strings.Split(config["external-gw-nodes"], ",")
for _, name := range nodeNames {
name = strings.TrimSpace(name)
gwNodes = append(gwNodes, name)
if name == "" {
continue
}
if !util.ContainsString(gwNodes, name) {
gwNodes = append(gwNodes, name)
}
}
}
for _, gw := range gwNodes {
Expand Down
8 changes: 6 additions & 2 deletions pkg/ovs/ovn-nb-gateway_chassis.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,15 @@ import (
func (c *OVNNbClient) CreateGatewayChassises(lrpName string, chassises ...string) error {
op, err := c.CreateGatewayChassisesOp(lrpName, chassises)
if err != nil {
return fmt.Errorf("generate operations for creating gateway chassis %v", err)
err := fmt.Errorf("generate operations for creating gateway chassis %v", err)
klog.Error(err)
return err
}

if err = c.Transact("gateway-chassises-add", op); err != nil {
return fmt.Errorf("create gateway chassis %v for logical router port %s: %v", chassises, lrpName, err)
err := fmt.Errorf("create gateway chassis %v for logical router port %s: %v", chassises, lrpName, err)
klog.Error(err)
return err
}

return nil
Expand Down
18 changes: 15 additions & 3 deletions pkg/ovs/ovn-nb.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"strings"

"github.com/ovn-org/libovsdb/ovsdb"
"k8s.io/klog/v2"

ovsclient "github.com/kubeovn/kube-ovn/pkg/ovsdb/client"
"github.com/kubeovn/kube-ovn/pkg/ovsdb/ovnnb"
Expand Down Expand Up @@ -49,22 +50,33 @@ func (c *OVNNbClient) CreateLogicalPatchPort(lsName, lrName, lspName, lrpName, i
if len(ip) != 0 {
// check ip format: 192.168.231.1/24,fc00::0af4:01/112
if err := util.CheckCidrs(ip); err != nil {
err := fmt.Errorf("invalid ip %s: %v", ip, err)
klog.Error(err)
return err
}
}

/* create router port */
ops, err := c.CreateRouterPortOp(lsName, lrName, lspName, lrpName, ip, mac)
if err != nil {
return fmt.Errorf("generate operations for creating patch port: %v", err)
err := fmt.Errorf("generate operations for creating patch port: %v", err)
klog.Error(err)
return err
}

if err = c.Transact("lrp-lsp-add", ops); err != nil {
return fmt.Errorf("create logical patch port %s and %s: %v", lspName, lrpName, err)
err := fmt.Errorf("create logical patch port %s and %s: %v", lspName, lrpName, err)
klog.Error(err)
return err
}

/* create gateway chassises for logical router port */
return c.CreateGatewayChassises(lrpName, chassises...)
if err := c.CreateGatewayChassises(lrpName, chassises...); err != nil {
err := fmt.Errorf("create gateway chassises for logical router port %s: %v", lrpName, err)
klog.Error(err)
return err
}
return nil
}

// DeleteLogicalGatewaySwitch delete gateway switch and corresponding port
Expand Down

0 comments on commit 943a1d9

Please sign in to comment.