mirror of
https://github.com/speatzle/nfsense.git
synced 2025-05-11 02:48:21 +00:00
add service utilities
This commit is contained in:
parent
db54f8aa8c
commit
b70a2688b5
1 changed files with 55 additions and 0 deletions
55
pkg/util/service.go
Normal file
55
pkg/util/service.go
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
package util
|
||||||
|
|
||||||
|
import "github.con/speatzle/nfsense/pkg/definitions"
|
||||||
|
|
||||||
|
// ResolveBaseServices Resolves all groups to their base Services
|
||||||
|
func ResolveBaseServices(allServices map[string]definitions.Service, serviceNames []string) []definitions.Service {
|
||||||
|
baseServices := []definitions.Service{}
|
||||||
|
|
||||||
|
for _, serviceName := range serviceNames {
|
||||||
|
service := allServices[serviceName]
|
||||||
|
|
||||||
|
if service.Type == definitions.ServiceGroup {
|
||||||
|
baseServices = append(baseServices, resolveChildren(allServices, service)...)
|
||||||
|
} else {
|
||||||
|
baseServices = append(baseServices, service)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return baseServices
|
||||||
|
}
|
||||||
|
|
||||||
|
func resolveChildren(allServices map[string]definitions.Service, s definitions.Service) []definitions.Service {
|
||||||
|
serviceList := []definitions.Service{}
|
||||||
|
for _, serviceName := range *s.Children {
|
||||||
|
service := allServices[serviceName]
|
||||||
|
|
||||||
|
if service.Type == definitions.ServiceGroup {
|
||||||
|
serviceList = append(serviceList, resolveChildren(allServices, service)...)
|
||||||
|
} else {
|
||||||
|
serviceList = append(serviceList, service)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return serviceList
|
||||||
|
}
|
||||||
|
|
||||||
|
func ConvertSliceToSetString(slice []string) string {
|
||||||
|
if len(slice) == 0 {
|
||||||
|
return ""
|
||||||
|
} else if len(slice) == 1 {
|
||||||
|
return slice[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
res := "{ "
|
||||||
|
|
||||||
|
for i := range slice {
|
||||||
|
res += " " + slice[i]
|
||||||
|
if i < len(slice)-1 {
|
||||||
|
res += ","
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
res += " }"
|
||||||
|
return res
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue