Signed-off-by: Alejandro Mery <amery@jpi.io>
This commit is contained in:
2023-08-24 21:48:00 +00:00
parent 568fd71d89
commit a454938bd7
4 changed files with 151 additions and 17 deletions
+14 -17
View File
@@ -10,18 +10,21 @@ import (
// WriteEnv generates environment variables for shell scripts
func (m *Zones) WriteEnv(w io.Writer) error {
var buf bytes.Buffer
var err error
m.writeEnvVarFn(&buf, genEnvZones, "ZONES")
m.ForEachZone(func(z *Zone) bool {
m.writeEnvZone(&buf, z)
return false
err = m.writeEnvZone(&buf, z)
return err != nil
})
_, err := buf.WriteTo(w)
if err == nil {
_, err = buf.WriteTo(w)
}
return err
}
func (m *Zones) writeEnvZone(w io.Writer, z *Zone) {
func (m *Zones) writeEnvZone(w io.Writer, z *Zone) error {
zoneID := z.ID
// ZONE{zoneID}
@@ -35,8 +38,11 @@ func (m *Zones) writeEnvZone(w io.Writer, z *Zone) {
m.writeEnvVar(w, fmt.Sprintf("%v", gatewayID), "ZONE%v_%s", zoneID, "GW")
// ZONE{zoneID}_IP
ip, _ := RingZeroAddress(zoneID, gatewayID)
m.writeEnvVar(w, ip.String(), "ZONE%v_%s", zoneID, "IP")
if ip, ok := RingZeroAddress(zoneID, gatewayID); ok {
m.writeEnvVar(w, ip.String(), "ZONE%v_%s", zoneID, "IP")
}
return nil
}
func (m *Zones) writeEnvVarFn(w io.Writer, fn func(*Zones) string, name string, args ...any) {
@@ -79,13 +85,9 @@ func genEnvZoneNodes(z *Zone) string {
}
func getRingZeroGatewayID(z *Zone) int {
var firstNodeID, gatewayID int
var gatewayID int
z.ForEachMachine(func(p *Machine) bool {
if firstNodeID == 0 {
firstNodeID = p.ID
}
if p.IsGateway() {
gatewayID = p.ID
}
@@ -93,10 +95,5 @@ func getRingZeroGatewayID(z *Zone) int {
return gatewayID != 0
})
switch {
case gatewayID == 0:
return firstNodeID
default:
return gatewayID
}
return gatewayID
}