Compare commits

..

2 Commits

Author SHA1 Message Date
amery ce2155d696 zones: Env: allow multiple gateways on a Zone
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-27 19:09:48 +00:00
amery af071f6ebb zones: Env: minor tidy up
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-27 19:06:27 +00:00
+16 -13
View File
@@ -38,7 +38,7 @@ func (m *Env) Zones() []int {
func (m *Env) WriteTo(w io.Writer) (int64, error) {
var buf bytes.Buffer
m.writeEnvVar(&buf, genEnvInts(m.Zones()), "ZONES")
m.writeEnvVarInts(&buf, m.Zones(), "ZONES")
m.ForEachZone(func(z *Zone) bool {
m.writeEnvZone(&buf, z)
return false
@@ -57,10 +57,22 @@ func (m *Env) writeEnvZone(w io.Writer, z *Zone) {
m.writeEnvVar(w, z.Name, "ZONE%v_%s", zoneID, "NAME")
// ZONE{zoneID}_GW
gateways := z.GatewayIDs()
if len(gateways) > 0 {
m.writeEnvVar(w, genEnvInts(gateways), "ZONE%v_%s", zoneID, "GW")
gateways, _ := z.GatewayIDs()
m.writeEnvVarInts(w, gateways, "ZONE%v_%s", zoneID, "GW")
}
func (m *Env) writeEnvVarInts(w io.Writer, value []int, name string, args ...any) {
var s string
if n := len(value); n > 0 {
ss := make([]string, len(value))
for i, v := range value {
ss[i] = fmt.Sprintf("%v", v)
}
s = strings.Join(ss, " ")
}
m.writeEnvVar(w, s, name, args...)
}
func (m *Env) writeEnvVar(w io.Writer, value string, name string, args ...any) {
@@ -81,15 +93,6 @@ func (m *Env) writeEnvVar(w io.Writer, value string, name string, args ...any) {
}
}
func genEnvInts(a []int) string {
s := make([]string, len(a))
for i, id := range a {
s[i] = fmt.Sprintf("%v", id)
}
return strings.Join(s, " ")
}
func genEnvZoneNodes(z *Zone) string {
if n := z.Len(); n > 0 {
s := make([]string, 0, n)