zones: env: use SetGateway()

Signed-off-by: Alejandro Mery <amery@jpi.io>
This commit is contained in:
2023-08-23 14:33:29 +00:00
parent 61d1ea85ee
commit 07fd7b450a
+13 -9
View File
@@ -78,14 +78,15 @@ func genEnvZoneNodes(z *Zone) string {
return strings.Join(s, " ") return strings.Join(s, " ")
} }
func getRingZeroGatewayID(z *Zone) int { func getRingZeroGatewayID(z *Zone) (int, error) {
var firstNodeID, gatewayID int var gatewayID int
var first *Machine
z.ForEachMachine(func(p *Machine) bool { z.ForEachMachine(func(p *Machine) bool {
nodeID := p.ID() nodeID := p.ID()
if firstNodeID == 0 { if first == nil {
firstNodeID = nodeID first = p
} }
if p.IsGateway() { if p.IsGateway() {
@@ -95,10 +96,13 @@ func getRingZeroGatewayID(z *Zone) int {
return gatewayID != 0 return gatewayID != 0
}) })
switch { if gatewayID == 0 {
case gatewayID == 0: gatewayID = first.ID()
return firstNodeID
default: if err := first.SetGateway(true); err != nil {
return gatewayID return gatewayID, err
}
} }
return gatewayID, nil
} }