Skip to content

Commit

Permalink
feat: improvement to analysis speed
Browse files Browse the repository at this point in the history
Signed-off-by: Alex Jones <alexsimonjones@gmail.com>
  • Loading branch information
AlexsJones committed Mar 30, 2023
1 parent 0d5b8ad commit 548039e
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 35 deletions.
14 changes: 1 addition & 13 deletions cmd/analyze/analyze.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,23 +77,11 @@ var AnalyzeCmd = &cobra.Command{
}

var analysisResults *[]analyzer.Analysis = &[]analyzer.Analysis{}
if err := analyzer.RunAnalysis(ctx, config, client,
if err := analyzer.RunAnalysis(ctx, filters, config, client,
aiClient, analysisResults); err != nil {
color.Red("Error: %v", err)
os.Exit(1)
}
// Removed filtered results from slice
if len(filters) > 0 {
var filteredResults []analyzer.Analysis
for _, analysis := range *analysisResults {
for _, filter := range filters {
if strings.Contains(analysis.Kind, filter) {
filteredResults = append(filteredResults, analysis)
}
}
}
analysisResults = &filteredResults
}

var bar *progressbar.ProgressBar
if len(*analysisResults) > 0 {
Expand Down
46 changes: 24 additions & 22 deletions pkg/analyzer/analyzer.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,33 +11,35 @@ import (
"github.com/spf13/viper"
)

func RunAnalysis(ctx context.Context, config *AnalysisConfiguration,
var analyzerMap = map[string]func(ctx context.Context, config *AnalysisConfiguration,
client *kubernetes.Client, aiClient ai.IAI, analysisResults *[]Analysis) error{
"Pod": AnalyzePod,
"ReplicaSet": AnalyzeReplicaSet,
"PersistentVolumeClaim": AnalyzePersistentVolumeClaim,
"Service": AnalyzeEndpoints,
"Ingress": AnalyzeIngress,
}

func RunAnalysis(ctx context.Context, filters []string, config *AnalysisConfiguration,
client *kubernetes.Client,
aiClient ai.IAI, analysisResults *[]Analysis) error {

err := AnalyzePod(ctx, config, client, aiClient, analysisResults)
if err != nil {
return err
}

err = AnalyzeReplicaSet(ctx, config, client, aiClient, analysisResults)
if err != nil {
return err
}

err = AnalyzePersistentVolumeClaim(ctx, config, client, aiClient, analysisResults)
if err != nil {
return err
}

err = AnalyzeEndpoints(ctx, config, client, aiClient, analysisResults)
if err != nil {
return err
// if there are no filters selected then run all of them
if len(filters) == 0 {
for _, analyzer := range analyzerMap {
if err := analyzer(ctx, config, client, aiClient, analysisResults); err != nil {
return err
}
}
return nil
}

err = AnalyzeIngress(ctx, config, client, aiClient, analysisResults)
if err != nil {
return err
for _, filter := range filters {
if analyzer, ok := analyzerMap[filter]; ok {
if err := analyzer(ctx, config, client, aiClient, analysisResults); err != nil {
return err
}
}
}
return nil
}
Expand Down

0 comments on commit 548039e

Please sign in to comment.