Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4d78214b82 | |||
| 8f4ac9f789 | |||
| a769bdaaac | |||
| b2e7cb5f91 | |||
| c8c330d93a | |||
| 111951a86c | |||
| 3efe9c1d20 | |||
| 464c968381 |
+16
-11
@@ -4,6 +4,7 @@ import (
|
|||||||
"io/fs"
|
"io/fs"
|
||||||
"path"
|
"path"
|
||||||
"sort"
|
"sort"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"darvaza.org/core"
|
"darvaza.org/core"
|
||||||
)
|
)
|
||||||
@@ -225,22 +226,26 @@ func (z *Zone) loadRegions() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (z *Zone) loadClusterToken() error {
|
func (z *Zone) loadClusterToken() error {
|
||||||
|
var token string
|
||||||
|
|
||||||
filename := path.Join(z.Name, RegionClusterTokenFileName)
|
filename := path.Join(z.Name, RegionClusterTokenFileName)
|
||||||
lines, err := z.zones.ReadLines(filename)
|
lines, err := z.zones.ReadLines(filename)
|
||||||
if err == nil {
|
if err != nil {
|
||||||
var token string
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
for _, s := range lines {
|
// first non-empty line
|
||||||
if s != "" {
|
for _, s := range lines {
|
||||||
token = s
|
s = strings.TrimSpace(s)
|
||||||
break
|
if s != "" {
|
||||||
}
|
token = s
|
||||||
|
break
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
err = z.zones.setRegionClusterToken(z.Name, token)
|
err = z.zones.setRegionClusterToken(z.Name, token)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = core.Wrap(err, filename)
|
err = core.Wrap(err, filename)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
|
|||||||
+19
-12
@@ -85,22 +85,29 @@ func (m *Env) writeEnvZone(w io.Writer, z *Zone) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *Env) writeEnvVarInts(w io.Writer, value []int, name string, args ...any) {
|
func (m *Env) writeEnvVarInts(w io.Writer, value []int, name string, args ...any) {
|
||||||
var s string
|
var buf bytes.Buffer
|
||||||
|
|
||||||
if n := len(value); n > 0 {
|
for _, v := range value {
|
||||||
var buf bytes.Buffer
|
if buf.Len() > 0 {
|
||||||
|
_, _ = fmt.Fprint(&buf, " ")
|
||||||
for i, v := range value {
|
|
||||||
if i != 0 {
|
|
||||||
_, _ = fmt.Fprint(&buf, " ")
|
|
||||||
}
|
|
||||||
_, _ = fmt.Fprintf(&buf, "%v", v)
|
|
||||||
}
|
}
|
||||||
|
_, _ = fmt.Fprintf(&buf, "%v", v)
|
||||||
s = buf.String()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m.writeEnvVar(w, s, name, args...)
|
m.writeEnvVar(w, buf.String(), name, args...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *Env) writeEnvVarStrings(w io.Writer, value []string, name string, args ...any) {
|
||||||
|
var buf bytes.Buffer
|
||||||
|
|
||||||
|
for _, v := range value {
|
||||||
|
if buf.Len() > 0 {
|
||||||
|
_, _ = fmt.Fprint(&buf, " ")
|
||||||
|
}
|
||||||
|
_, _ = fmt.Fprintf(&buf, "%s", v)
|
||||||
|
}
|
||||||
|
|
||||||
|
m.writeEnvVar(w, buf.String(), name, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Env) writeEnvVar(w io.Writer, value string, name string, args ...any) {
|
func (m *Env) writeEnvVar(w io.Writer, value string, name string, args ...any) {
|
||||||
|
|||||||
@@ -8,8 +8,14 @@ import (
|
|||||||
var (
|
var (
|
||||||
_ MachineIterator = (*Region)(nil)
|
_ MachineIterator = (*Region)(nil)
|
||||||
_ ZoneIterator = (*Region)(nil)
|
_ ZoneIterator = (*Region)(nil)
|
||||||
|
_ RegionIterator = (*Cluster)(nil)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// A RegionIterator is a set of Regions we can iterate on
|
||||||
|
type RegionIterator interface {
|
||||||
|
ForEachRegion(func(*Region) bool)
|
||||||
|
}
|
||||||
|
|
||||||
// Region represents a group of zones geographically related
|
// Region represents a group of zones geographically related
|
||||||
type Region struct {
|
type Region struct {
|
||||||
m *Cluster
|
m *Cluster
|
||||||
@@ -204,6 +210,11 @@ func (z *Zone) SyncRegions() error {
|
|||||||
} else {
|
} else {
|
||||||
err = p.WriteStringFile("none\n", "region")
|
err = p.WriteStringFile("none\n", "region")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err == nil {
|
||||||
|
err = p.RemoveFile(RegionClusterTokenFileName)
|
||||||
|
}
|
||||||
|
|
||||||
return err != nil
|
return err != nil
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user