From af2d8360008a4a3697e946fbdb435597826525e6 Mon Sep 17 00:00:00 2001 From: Alejandro Mery Date: Sun, 27 Aug 2023 16:31:50 +0000 Subject: [PATCH 1/3] zones: Env: drop unused ZONE{zoneID}_IP Signed-off-by: Alejandro Mery --- pkg/zones/env.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pkg/zones/env.go b/pkg/zones/env.go index d362278..c51bf83 100644 --- a/pkg/zones/env.go +++ b/pkg/zones/env.go @@ -48,11 +48,6 @@ func (m *Env) writeEnvZone(w io.Writer, z *Zone) { gatewayID := getRingZeroGatewayID(z) if gatewayID > 0 { m.writeEnvVar(w, fmt.Sprintf("%v", gatewayID), "ZONE%v_%s", zoneID, "GW") - - // ZONE{zoneID}_IP - if ip, ok := RingZeroAddress(zoneID, gatewayID); ok { - m.writeEnvVar(w, ip.String(), "ZONE%v_%s", zoneID, "IP") - } } } From de45fa6c306f914cba832e39fafe4237cb4e0f96 Mon Sep 17 00:00:00 2001 From: Alejandro Mery Date: Sun, 27 Aug 2023 16:40:13 +0000 Subject: [PATCH 2/3] zones: Env: minor tidy up Signed-off-by: Alejandro Mery --- pkg/zones/env.go | 56 +++++++++++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 20 deletions(-) diff --git a/pkg/zones/env.go b/pkg/zones/env.go index c51bf83..c70698a 100644 --- a/pkg/zones/env.go +++ b/pkg/zones/env.go @@ -22,11 +22,23 @@ func (m *Zones) Env(export bool) *Env { } } +// Zones returns the list of Zone IDs +func (m *Env) Zones() []int { + var zones []int + + m.ForEachZone(func(z *Zone) bool { + zones = append(zones, z.ID) + return false + }) + + return zones +} + // WriteTo generates environment variables for shell scripts func (m *Env) WriteTo(w io.Writer) (int64, error) { var buf bytes.Buffer - m.writeEnvVarFn(&buf, genEnvZones, "ZONES") + m.writeEnvVarInts(&buf, m.Zones(), "ZONES") m.ForEachZone(func(z *Zone) bool { m.writeEnvZone(&buf, z) return false @@ -51,14 +63,23 @@ func (m *Env) writeEnvZone(w io.Writer, z *Zone) { } } -func (m *Env) writeEnvVarFn(w io.Writer, fn func(*Env) string, name string, args ...any) { - var value string +func (m *Env) writeEnvVarInts(w io.Writer, value []int, name string, args ...any) { + var s string - if fn != nil { - value = fn(m) + if n := len(value); n > 0 { + var buf bytes.Buffer + + for i, v := range value { + if i != 0 { + _, _ = fmt.Fprint(&buf, " ") + } + _, _ = fmt.Fprintf(&buf, "%v", v) + } + + s = buf.String() } - m.writeEnvVar(w, value, name, args...) + m.writeEnvVar(w, s, name, args...) } func (m *Env) writeEnvVar(w io.Writer, value string, name string, args ...any) { @@ -79,23 +100,18 @@ func (m *Env) writeEnvVar(w io.Writer, value string, name string, args ...any) { } } -func genEnvZones(m *Env) string { - var s []string - - m.ForEachZone(func(z *Zone) bool { - s = append(s, fmt.Sprintf("%v", z.ID)) - return false - }) +func genEnvZoneNodes(z *Zone) string { + if n := z.Len(); n > 0 { + s := make([]string, 0, n) - return strings.Join(s, " ") -} + z.ForEachMachine(func(p *Machine) bool { + s = append(s, p.Name) + return false + }) -func genEnvZoneNodes(z *Zone) string { - s := make([]string, 0, len(z.Machines)) - for _, p := range z.Machines { - s = append(s, p.Name) + return strings.Join(s, " ") } - return strings.Join(s, " ") + return "" } func getRingZeroGatewayID(z *Zone) int { From 71a1d1a7c2c0dfc5dc36e8136ffd316a34a0d1e5 Mon Sep 17 00:00:00 2001 From: Alejandro Mery Date: Sun, 27 Aug 2023 16:45:54 +0000 Subject: [PATCH 3/3] zones: Env: allow multiple gateways on a Zone Signed-off-by: Alejandro Mery --- pkg/zones/env.go | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/pkg/zones/env.go b/pkg/zones/env.go index c70698a..a1da645 100644 --- a/pkg/zones/env.go +++ b/pkg/zones/env.go @@ -57,10 +57,8 @@ func (m *Env) writeEnvZone(w io.Writer, z *Zone) { m.writeEnvVar(w, z.Name, "ZONE%v_%s", zoneID, "NAME") // ZONE{zoneID}_GW - gatewayID := getRingZeroGatewayID(z) - if gatewayID > 0 { - m.writeEnvVar(w, fmt.Sprintf("%v", gatewayID), "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) { @@ -113,17 +111,3 @@ func genEnvZoneNodes(z *Zone) string { } return "" } - -func getRingZeroGatewayID(z *Zone) int { - var gatewayID int - - z.ForEachMachine(func(p *Machine) bool { - if p.IsGateway() { - gatewayID = p.ID - } - - return gatewayID != 0 - }) - - return gatewayID -}