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, " ")
}
func getRingZeroGatewayID(z *Zone) int {
var firstNodeID, gatewayID int
func getRingZeroGatewayID(z *Zone) (int, error) {
var gatewayID int
var first *Machine
z.ForEachMachine(func(p *Machine) bool {
nodeID := p.ID()
if firstNodeID == 0 {
firstNodeID = nodeID
if first == nil {
first = p
}
if p.IsGateway() {
@@ -95,10 +96,13 @@ func getRingZeroGatewayID(z *Zone) int {
return gatewayID != 0
})
switch {
case gatewayID == 0:
return firstNodeID
default:
return gatewayID
if gatewayID == 0 {
gatewayID = first.ID()
if err := first.SetGateway(true); err != nil {
return gatewayID, err
}
}
return gatewayID, nil
}