Skip to content

Commit

Permalink
chore: add trace log instead of returning err in config traversal
Browse files Browse the repository at this point in the history
  • Loading branch information
yashmehrotra committed Jan 31, 2024
1 parent bb91454 commit d7a80a3
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 13 deletions.
11 changes: 6 additions & 5 deletions query/config_traversal.go
Original file line number Diff line number Diff line change
@@ -1,33 +1,34 @@
package query

import (
"fmt"
"strings"

"github.com/flanksource/duty/context"
"github.com/flanksource/duty/models"
)

func TraverseConfig(ctx context.Context, id, relationType string) (models.ConfigItem, error) {
func TraverseConfig(ctx context.Context, id, relationType string) *models.ConfigItem {
var configItem models.ConfigItem

relationTypeList := strings.Split(relationType, "/")

for _, relType := range relationTypeList {
configIDs, err := ConfigIDsByTypeFromCache(ctx, id, relType)
if err != nil || len(configIDs) == 0 {
return configItem, fmt.Errorf("no related type %s exists for config[%s]: %w", relType, id, err)
ctx.Tracef("no related type %s exists for config[%s]: %v", relType, id, err)
return nil
}

configID := configIDs[0]
configItem, err = ConfigItemFromCache(ctx, configID)
if err != nil {
return configItem, fmt.Errorf("no config[%s] found in cache: %w", configID, err)
ctx.Tracef("no config[%s] found in cache: %v", configID, err)
return nil
}

// Updating for next loop iteration
id = configItem.ID.String()
}

return configItem, nil
return &configItem
}
16 changes: 8 additions & 8 deletions tests/config_traversal_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,19 +32,19 @@ var _ = ginkgo.Describe("Config traversal", ginkgo.Ordered, func() {
err = query.SyncConfigCache(DefaultContext)
Expect(err).ToNot(HaveOccurred())

got, err := query.TraverseConfig(DefaultContext, configItems["deployment"].ID.String(), "Kubernetes::HelmRelease")
Expect(err).ToNot(HaveOccurred())
got := query.TraverseConfig(DefaultContext, configItems["deployment"].ID.String(), "Kubernetes::HelmRelease")
Expect(got).ToNot(BeNil())
Expect(got.ID.String()).To(Equal(configItems["helm-release-of-deployment"].ID.String()))

got, err = query.TraverseConfig(DefaultContext, configItems["deployment"].ID.String(), "Kubernetes::HelmRelease/Kubernetes::Kustomization")
Expect(err).ToNot(HaveOccurred())
got = query.TraverseConfig(DefaultContext, configItems["deployment"].ID.String(), "Kubernetes::HelmRelease/Kubernetes::Kustomization")
Expect(got).ToNot(BeNil())
Expect(got.ID.String()).To(Equal(configItems["kustomize-of-helm-release"].ID.String()))

_, err = query.TraverseConfig(DefaultContext, configItems["deployment"].ID.String(), "Kubernetes::Pod")
Expect(err).To(HaveOccurred())
got = query.TraverseConfig(DefaultContext, configItems["deployment"].ID.String(), "Kubernetes::Pod")
Expect(got).To(BeNil())

_, err = query.TraverseConfig(DefaultContext, configItems["deployment"].ID.String(), "Kubernetes::HelmRelease/Kubernetes::Node")
Expect(err).To(HaveOccurred())
got = query.TraverseConfig(DefaultContext, configItems["deployment"].ID.String(), "Kubernetes::HelmRelease/Kubernetes::Node")
Expect(got).To(BeNil())

// Cleanup for normal tests to pass
err = ctx.DB().Where("config_id in ?", lo.Map(lo.Values(configItems), func(c models.ConfigItem, _ int) string { return c.ID.String() })).Delete(&models.ConfigRelationship{}).Error
Expand Down

0 comments on commit d7a80a3

Please sign in to comment.