github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/operator/nodeagent/firewall/centos/sources.go (about) 1 package centos 2 3 import ( 4 "fmt" 5 6 "github.com/caos/orbos/internal/operator/common" 7 "github.com/caos/orbos/mntr" 8 ) 9 10 func getAddAndRemoveSources( 11 monitor mntr.Monitor, 12 zoneName string, 13 current *common.ZoneDesc, 14 desired common.Firewall, 15 ) ( 16 []string, 17 []string, 18 ) { 19 20 addSources := make([]string, 0) 21 removeSources := make([]string, 0) 22 zone := desired.Zones[zoneName] 23 24 if zone.Sources != nil && len(zone.Sources) > 0 { 25 for _, source := range zone.Sources { 26 foundSource := false 27 if current.Sources != nil && len(current.Sources) > 0 { 28 for _, currentSource := range current.Sources { 29 if currentSource == source { 30 foundSource = true 31 } 32 } 33 } 34 if !foundSource { 35 addSources = append(addSources, fmt.Sprintf("--add-source=%s", source)) 36 } 37 } 38 } 39 if current.Sources != nil && len(current.Sources) > 0 { 40 for _, currentSource := range current.Sources { 41 foundSource := false 42 if zone.Sources != nil && len(zone.Sources) > 0 { 43 for _, source := range zone.Sources { 44 if source == currentSource { 45 foundSource = true 46 } 47 } 48 } 49 if !foundSource { 50 removeSources = append(removeSources, fmt.Sprintf("--remove-source=%s", currentSource)) 51 } 52 } 53 } 54 55 return addSources, removeSources 56 }