X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=cmd%2Fsafcm%2Fconfig%2Fgroups.go;h=13ab0a88b94dae2ac524190285232b77926b990f;hb=d109a6151f48fc9e322bacbd3cc5e4f00eade713;hp=a1dd83a0164267a0f24a351a74966fd108300323;hpb=5d6cc7f14a4bacc36bf3a23cd735a75ad4a90f1d;p=safcm%2Fsafcm.git diff --git a/cmd/safcm/config/groups.go b/cmd/safcm/config/groups.go index a1dd83a..13ab0a8 100644 --- a/cmd/safcm/config/groups.go +++ b/cmd/safcm/config/groups.go @@ -1,6 +1,6 @@ // Config: parse groups.yaml -// Copyright (C) 2021 Simon Ruderich +// Copyright (C) 2021-2023 Simon Ruderich // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -128,11 +128,10 @@ func LoadGroups(cfg *Config, hosts *Hosts) (map[string][]string, error) { return groups, nil } -func ResolveHostGroups(host string, - groups map[string][]string, +func ResolveHostGroups(host string, groups map[string][]string, detectedGroups []string) ([]string, error) { - const maxDepth = 100 + const maxRecursionDepth = 100 detectedGroupsMap := make(map[string]bool) for _, x := range detectedGroups { @@ -144,7 +143,7 @@ func ResolveHostGroups(host string, // groups). var lookup func(string, int) bool lookup = func(group string, depth int) bool { - if depth > maxDepth { + if depth > maxRecursionDepth { cycle = &group return false } @@ -194,7 +193,7 @@ func ResolveHostGroups(host string, // TransitivelyDetectedGroups returns all groups which depend on "detected" // groups, either directly or by depending on groups which transitively depend // on "detected" groups. -func TransitivelyDetectedGroups(groups map[string][]string) []string { +func TransitivelyDetectedGroups(groups map[string][]string) map[string]bool { work := make(map[string][]string) for k, v := range groups { work[k] = v @@ -221,11 +220,5 @@ func TransitivelyDetectedGroups(groups map[string][]string) []string { break } } - - var res []string - for x := range detected { - res = append(res, x) - } - sort.Strings(res) - return res + return detected }