|
|
|
@ -22,6 +22,16 @@ func (z *Zone) String() string {
|
|
|
|
|
return z.Name |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// ForEachMachine calls a function for each Machine in the zone
|
|
|
|
|
// until instructed to terminate the loop
|
|
|
|
|
func (z *Zone) ForEachMachine(fn func(*Machine) bool) { |
|
|
|
|
for _, p := range z.Machines { |
|
|
|
|
if fn(p) { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Zones represents all zones in a cluster
|
|
|
|
|
type Zones struct { |
|
|
|
|
dir fs.FS |
|
|
|
@ -32,18 +42,22 @@ type Zones struct {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// ForEachMachine calls a function for each Machine in the cluster
|
|
|
|
|
// until instructed to terminate the loop
|
|
|
|
|
func (m *Zones) ForEachMachine(fn func(*Machine) bool) { |
|
|
|
|
for _, z := range m.Zones { |
|
|
|
|
for _, p := range z.Machines { |
|
|
|
|
if fn(p) { |
|
|
|
|
// terminate
|
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
m.ForEachZone(func(z *Zone) bool { |
|
|
|
|
var term bool |
|
|
|
|
|
|
|
|
|
z.ForEachMachine(func(p *Machine) bool { |
|
|
|
|
term = fn(p) |
|
|
|
|
return term |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
return term |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// ForEachZone calls a function for each Zone in the cluster
|
|
|
|
|
// until instructed to terminate the loop
|
|
|
|
|
func (m *Zones) ForEachZone(fn func(*Zone) bool) { |
|
|
|
|
for _, p := range m.Zones { |
|
|
|
|
if fn(p) { |
|
|
|
|