zones: introduce Zone.ForEachMachine()
and refactor Zones.ForEachMachine() using it Signed-off-by: Alejandro Mery <amery@jpi.io>
This commit is contained in:
+22
-8
@@ -22,6 +22,16 @@ func (z *Zone) String() string {
|
|||||||
return z.Name
|
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
|
// Zones represents all zones in a cluster
|
||||||
type Zones struct {
|
type Zones struct {
|
||||||
dir fs.FS
|
dir fs.FS
|
||||||
@@ -32,18 +42,22 @@ type Zones struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ForEachMachine calls a function for each Machine in the cluster
|
// ForEachMachine calls a function for each Machine in the cluster
|
||||||
|
// until instructed to terminate the loop
|
||||||
func (m *Zones) ForEachMachine(fn func(*Machine) bool) {
|
func (m *Zones) ForEachMachine(fn func(*Machine) bool) {
|
||||||
for _, z := range m.Zones {
|
m.ForEachZone(func(z *Zone) bool {
|
||||||
for _, p := range z.Machines {
|
var term bool
|
||||||
if fn(p) {
|
|
||||||
// terminate
|
z.ForEachMachine(func(p *Machine) bool {
|
||||||
return
|
term = fn(p)
|
||||||
}
|
return term
|
||||||
}
|
})
|
||||||
}
|
|
||||||
|
return term
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// ForEachZone calls a function for each Zone in the cluster
|
// ForEachZone calls a function for each Zone in the cluster
|
||||||
|
// until instructed to terminate the loop
|
||||||
func (m *Zones) ForEachZone(fn func(*Zone) bool) {
|
func (m *Zones) ForEachZone(fn func(*Zone) bool) {
|
||||||
for _, p := range m.Zones {
|
for _, p := range m.Zones {
|
||||||
if fn(p) {
|
if fn(p) {
|
||||||
|
|||||||
Reference in New Issue
Block a user