finish filterNodes beta
This commit is contained in:
parent
82c29868a1
commit
b78a8cf993
@ -96,7 +96,8 @@ func FilterNodes(nodes []*k3d.Node, filterString string) ([]*k3d.Node, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
filteredNodes := make([]k3d.Node, 1)
|
filteredNodes := make([]*k3d.Node, 1)
|
||||||
|
set := make(map[*k3d.Node]struct{})
|
||||||
|
|
||||||
// range over all instances of group[subset] specs
|
// range over all instances of group[subset] specs
|
||||||
for _, filter := range filters {
|
for _, filter := range filters {
|
||||||
@ -131,8 +132,7 @@ func FilterNodes(nodes []*k3d.Node, filterString string) ([]*k3d.Node, error) {
|
|||||||
groupNodes = workerNodes
|
groupNodes = workerNodes
|
||||||
}
|
}
|
||||||
|
|
||||||
subset := []int{}
|
/* subset defined by list */
|
||||||
|
|
||||||
if submatches["subsetList"] != "" {
|
if submatches["subsetList"] != "" {
|
||||||
for _, index := range strings.Split(submatches["subsetList"], ",") {
|
for _, index := range strings.Split(submatches["subsetList"], ",") {
|
||||||
if index != "" {
|
if index != "" {
|
||||||
@ -140,11 +140,13 @@ func FilterNodes(nodes []*k3d.Node, filterString string) ([]*k3d.Node, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("Failed to convert subset number to integer in '%s'", filter)
|
return nil, fmt.Errorf("Failed to convert subset number to integer in '%s'", filter)
|
||||||
}
|
}
|
||||||
filteredNodes = append(filteredNodes, *groupNodes[num])
|
if _, exists := set[groupNodes[num]]; !exists {
|
||||||
subset = append(subset, num)
|
filteredNodes = append(filteredNodes, groupNodes[num])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* subset defined by range */
|
||||||
} else if submatches["subsetRange"] != "" {
|
} else if submatches["subsetRange"] != "" {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -182,21 +184,26 @@ func FilterNodes(nodes []*k3d.Node, filterString string) ([]*k3d.Node, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := start; i <= end; i++ {
|
for i := start; i <= end; i++ {
|
||||||
subset = append(subset, i)
|
if _, exists := set[groupNodes[i]]; !exists {
|
||||||
|
filteredNodes = append(filteredNodes, groupNodes[i])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* subset defined by wildcard */
|
||||||
} else if submatches["subsetWildcard"] == "*" {
|
} else if submatches["subsetWildcard"] == "*" {
|
||||||
/*
|
/*
|
||||||
* '*' = all nodes
|
* '*' = all nodes
|
||||||
*/
|
*/
|
||||||
return groupNodes, nil
|
return groupNodes, nil
|
||||||
|
|
||||||
|
/* invalid/unknown subset */
|
||||||
} else {
|
} else {
|
||||||
return nil, fmt.Errorf("Failed to parse node specifiers: unknown subset in '%s'", filter)
|
return nil, fmt.Errorf("Failed to parse node specifiers: unknown subset in '%s'", filter)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Debugf("ROLESMAP: %+v", rolesMap)
|
log.Debugf("Filtered nodes: %+v", filteredNodes)
|
||||||
|
|
||||||
return rolesMap, nil
|
return filteredNodes, nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user