Compare commits

..

7 Commits

Author SHA1 Message Date
amery d2f0a0744b Merge pull request 'zones: Env: allow multiple gateways and drop unused ZONE{zoneID}_IP' (#4)
Reviewed-on: #4
2023-08-28 18:09:00 +02:00
amery 71a1d1a7c2 zones: Env: allow multiple gateways on a Zone
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-28 16:06:32 +00:00
amery de45fa6c30 zones: Env: minor tidy up
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-28 16:06:32 +00:00
amery af2d836000 zones: Env: drop unused ZONE{zoneID}_IP
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-08-28 15:52:40 +01:00
amery 1655ce85bc Merge pull request 'zones: FilterMachines() and Zone.GatewayIDs()' (#3)
Reviewed-on: #3
2023-08-28 16:47:57 +02:00
amery 9c4f6d987d Merge pull request 'env: introduce Env() factory and jpictl env -e to export variables' (#2)
Reviewed-on: #2
2023-08-28 16:47:37 +02:00
amery fb82a7f358 Merge pull request 'zones: fix PruneWireguardConfig recursion' (#1)
Reviewed-on: #1
2023-08-28 16:47:13 +02:00
+21 -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,27 @@ 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 {
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, s, name, args...)
}
func (m *Env) writeEnvVar(w io.Writer, value string, name string, args ...any) {
@@ -81,15 +98,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)