Skip to content

Commit

Permalink
Move error handling to method GetDrift, GetAllDrift from command
Browse files Browse the repository at this point in the history
  • Loading branch information
nikhilsbhat committed Jun 10, 2023
1 parent fa59f0d commit 7e4f793
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 22 deletions.
8 changes: 6 additions & 2 deletions cmd/commands.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,9 @@ func getRunCommand() *cobra.Command {
}
}

return drifts.GetDrift()
drifts.GetDrift()

return nil
},
}

Expand Down Expand Up @@ -98,7 +100,9 @@ Do note that this is expensive operation since multiple kubectl command would be

drifts.All = true

return drifts.GetAllDrift()
drifts.GetAllDrift()

return nil
},
}

Expand Down
2 changes: 1 addition & 1 deletion pkg/disk.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ func (drift *Drift) renderToDisk(manifests []string, chartName, releaseName, rel

drift.log.Debugf("generating manifest '%s'", template.Resource)

manifestPath := filepath.Join(templatePath, fmt.Sprintf("%s.%s.yaml", template.Resource, template.Kind))
manifestPath := filepath.Join(templatePath, fmt.Sprintf("%s.%s.%s.yaml", template.Resource, template.Kind, releaseName))
if err = os.WriteFile(manifestPath, []byte(manifest), manifestFilePermission); err != nil {
return deviation.DriftedRelease{}, err
}
Expand Down
24 changes: 12 additions & 12 deletions pkg/drift.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ func (drift *Drift) SetWriter(writer io.Writer) {
}

// GetDrift gets all the drifts that the given release/chart has.
func (drift *Drift) GetDrift() error {
func (drift *Drift) GetDrift() {
startTime := time.Now()

if err := drift.cleanManifests(true); err != nil {
Expand All @@ -79,19 +79,19 @@ func (drift *Drift) GetDrift() error {
drift.setNameSpace()

if err := drift.setExternalDiff(); err != nil {
return err
drift.log.Fatalf("%v", err)
}

chart, err := drift.getChartManifests()
if err != nil {
return err
drift.log.Fatalf("%v", err)
}

kubeKindTemplates := drift.getTemplates(chart)

deviations, err := drift.renderToDisk(kubeKindTemplates, drift.chart, drift.release, drift.namespace)
if err != nil {
return err
drift.log.Fatalf("%v", err)
}

defer func(drift *Drift) {
Expand All @@ -104,20 +104,20 @@ func (drift *Drift) GetDrift() error {

out, err := drift.Diff(deviations)
if err != nil {
return err
drift.log.Fatalf("%v", err)
}

if len(out.Deviations) == 0 {
drift.log.Info("no drifts were identified")
} else {
driftedReleases = append(driftedReleases, out)

return nil
}

driftedReleases = append(driftedReleases, out)
drift.timeSpent = time.Since(startTime).Seconds()

drift.timeSpent = time.Since(startTime).Seconds()

return drift.render(driftedReleases)
if err = drift.render(driftedReleases); err != nil {
drift.log.Fatalf("%v", err)
}
}
}

func (drift *Drift) getChartManifests() ([]byte, error) {
Expand Down
12 changes: 7 additions & 5 deletions pkg/drift_all.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
helmRelease "helm.sh/helm/v3/pkg/release"
)

func (drift *Drift) GetAllDrift() error {
func (drift *Drift) GetAllDrift() {
startTime := time.Now()

if err := drift.cleanManifests(true); err != nil {
Expand All @@ -23,12 +23,12 @@ func (drift *Drift) GetAllDrift() error {
drift.setNameSpace()

if err := drift.setExternalDiff(); err != nil {
return err
drift.log.Fatalf("%v", err)
}

releases, err := drift.getChartsFromReleases()
if err != nil {
return err
drift.log.Fatalf("%v", err)
}

defer func(drift *Drift) {
Expand Down Expand Up @@ -86,10 +86,12 @@ func (drift *Drift) GetAllDrift() error {
}

if len(driftErrors) != 0 {
return &errors.DriftError{Message: fmt.Sprintf("identifying drifts errored with: %s", strings.Join(driftErrors, "\n"))}
drift.log.Fatalf("%v", &errors.DriftError{Message: fmt.Sprintf("identifying drifts errored with: %s", strings.Join(driftErrors, "\n"))})
}

drift.timeSpent = time.Since(startTime).Seconds()

return drift.render(driftedReleases)
if err = drift.render(driftedReleases); err != nil {
drift.log.Fatalf("%v", err)
}
}
5 changes: 3 additions & 2 deletions pkg/errors/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,11 @@ func (e *NotAllError) Error() string {
var diffs []deviation.Deviation

for _, resource := range e.Manifests {
rs := resource
if !funk.Contains(e.ResourceFromDeviations, func(dvn deviation.Deviation) bool {
return (dvn.Resource == resource.Resource) && (dvn.Kind == resource.Kind)
return (dvn.Resource == rs.Resource) && (dvn.Kind == rs.Kind)
}) {
diffs = append(diffs, resource)
diffs = append(diffs, rs)
}
}

Expand Down

0 comments on commit 7e4f793

Please sign in to comment.