restructure project

This commit is contained in:
Samuel Lorch 2023-03-26 18:50:18 +02:00
parent dd2db438f3
commit 2ca35d4461
46 changed files with 158 additions and 84 deletions

35
internal/util/address.go Normal file
View 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
View 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
View 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
}