mirror of
https://github.com/speatzle/nfsense.git
synced 2025-09-13 15:19:08 +00:00
restructure project
This commit is contained in:
parent
dd2db438f3
commit
2ca35d4461
46 changed files with 158 additions and 84 deletions
35
internal/util/address.go
Normal file
35
internal/util/address.go
Normal file
|
@ -0,0 +1,35 @@
|
|||
package util
|
||||
|
||||
import "nfsense.net/nfsense/internal/definitions"
|
||||
|
||||
// ResolveBaseAddresses Resolves all groups to their base Addresses
|
||||
func ResolveBaseAddresses(allAddresses map[string]definitions.Address, addressNames []string) []definitions.Address {
|
||||
baseAddresses := []definitions.Address{}
|
||||
|
||||
for _, addressName := range addressNames {
|
||||
address := allAddresses[addressName]
|
||||
|
||||
if address.Type == definitions.AddressGroup {
|
||||
baseAddresses = append(baseAddresses, resolveAddressChildren(allAddresses, address)...)
|
||||
} else {
|
||||
baseAddresses = append(baseAddresses, address)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return baseAddresses
|
||||
}
|
||||
|
||||
func resolveAddressChildren(allAddresses map[string]definitions.Address, a definitions.Address) []definitions.Address {
|
||||
addressList := []definitions.Address{}
|
||||
for _, addressName := range *a.Children {
|
||||
address := allAddresses[addressName]
|
||||
|
||||
if address.Type == definitions.AddressGroup {
|
||||
addressList = append(addressList, resolveAddressChildren(allAddresses, address)...)
|
||||
} else {
|
||||
addressList = append(addressList, address)
|
||||
}
|
||||
}
|
||||
return addressList
|
||||
}
|
35
internal/util/service.go
Normal file
35
internal/util/service.go
Normal file
|
@ -0,0 +1,35 @@
|
|||
package util
|
||||
|
||||
import "nfsense.net/nfsense/internal/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, resolveServiceChildren(allServices, service)...)
|
||||
} else {
|
||||
baseServices = append(baseServices, service)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return baseServices
|
||||
}
|
||||
|
||||
func resolveServiceChildren(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, resolveServiceChildren(allServices, service)...)
|
||||
} else {
|
||||
serviceList = append(serviceList, service)
|
||||
}
|
||||
}
|
||||
return serviceList
|
||||
}
|
21
internal/util/set.go
Normal file
21
internal/util/set.go
Normal file
|
@ -0,0 +1,21 @@
|
|||
package util
|
||||
|
||||
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
Add a link
Reference in a new issue