Skip to content
This repository has been archived by the owner on May 30, 2022. It is now read-only.

Commit

Permalink
Some improvements based on review input
Browse files Browse the repository at this point in the history
  • Loading branch information
rtorrero committed Jul 22, 2021
1 parent ada5192 commit 9106f60
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 20 deletions.
21 changes: 6 additions & 15 deletions agent/discovery/sapsystem.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,21 +50,10 @@ func (d SAPSystemsDiscovery) Discover() error {
return nil
}

func storeSAPSystemTags(client consul.Client, systems []*sapsystem.SAPSystem) error {
var envName, landName string
sysNames := ""
var err error
for i, system := range systems {
var sysName string
envName, landName, sysName, err = loadSAPSystemTags(client, system.SID)
if err != nil {
return err
}

sysNames += sysName
if len(systems) > (i + 1) {
sysNames = sysNames + ","
}
func storeSAPSystemTags(client consul.Client, systems sapsystem.SAPSystemsList) error {
envName, landName, _, err := loadSAPSystemTags(client, systems[0].SID)
if err != nil {
return err
}

// If we didn't find any environment, we create a new default one
Expand All @@ -84,6 +73,8 @@ func storeSAPSystemTags(client consul.Client, systems []*sapsystem.SAPSystem) er
landName = land.Name
}

sysNames := systems.GetSIDs()

// Store host metadata
metadata := hosts.Metadata{
Environment: envName,
Expand Down
6 changes: 6 additions & 0 deletions internal/environments/environments.go
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,12 @@ func (l *Landscape) AddSystem(system *SAPSystem) {
l.SAPSystems[system.Name] = system
}

func (l *Landscape) AddSystems(systems []*SAPSystem) {
for _, system := range systems {
l.AddSystem(system)
}
}

func (s *SAPSystem) Health() EnvironmentHealth {
var health = NewEnvironmentHealth()

Expand Down
13 changes: 8 additions & 5 deletions internal/hosts/hosts.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,22 +117,25 @@ func (n *Host) GetSAPSystemsList() (sapsystem.SAPSystemsList, error) {
// https://github.com/hashicorp/consul/blob/master/agent/consul/catalog_endpoint.go#L298
func CreateFilterMetaQuery(query map[string][]string) string {
var filters []string
var operator string
// Need to sort the keys to have stable output. Mostly for unit testing
sortedQuery := sortKeys(query)

if len(query) != 0 {
var filter string
for _, key := range sortedQuery {
switch key {
case "trento-sap-systems":
operator = "contains"
default:
operator = "=="
}
if strings.HasPrefix(key, TrentoPrefix) {
filter = ""
values := query[key]
for _, value := range values {
if key == "trento-sap-systems" {
filter = fmt.Sprintf("%sMeta[\"%s\"] contains \"%s\"", filter, key, value)
} else {
filter = fmt.Sprintf("%sMeta[\"%s\"] %s \"%s\"", filter, key, operator, value)

filter = fmt.Sprintf("%sMeta[\"%s\"] == \"%s\"", filter, key, value)
}
if values[len(values)-1] != value {
filter = fmt.Sprintf("%s or ", filter)
}
Expand Down
13 changes: 13 additions & 0 deletions internal/sapsystem/sapsystem.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,19 @@ type CustomCommand func(name string, arg ...string) *exec.Cmd

var customExecCommand CustomCommand = exec.Command

func (systems SAPSystemsList) GetSIDs() string {
var sysNames string
for i, system := range systems {
separator := ","
if i < 1 {
separator = ""
}
sysNames = strings.Join([]string{sysNames, system.SID}, separator)
}

return sysNames
}

func NewSAPSystemsList() (SAPSystemsList, error) {
var systems = SAPSystemsList{}

Expand Down

0 comments on commit 9106f60

Please sign in to comment.