github.com/gocrane/crane@v0.11.0/pkg/recommendation/recommender/volume/registry.go (about)

     1  package volume
     2  
     3  import (
     4  	analysisv1alph1 "github.com/gocrane/api/analysis/v1alpha1"
     5  
     6  	"github.com/gocrane/crane/pkg/recommendation/config"
     7  	"github.com/gocrane/crane/pkg/recommendation/recommender"
     8  	"github.com/gocrane/crane/pkg/recommendation/recommender/apis"
     9  	"github.com/gocrane/crane/pkg/recommendation/recommender/base"
    10  )
    11  
    12  var _ recommender.Recommender = &VolumeRecommender{}
    13  
    14  type VolumeRecommender struct {
    15  	base.BaseRecommender
    16  }
    17  
    18  func init() {
    19  	recommender.RegisterRecommenderProvider(recommender.VolumeRecommender, NewVolumeRecommender)
    20  }
    21  
    22  func (vr *VolumeRecommender) Name() string {
    23  	return recommender.VolumeRecommender
    24  }
    25  
    26  // NewVolumeRecommender create a new Volumes recommender.
    27  func NewVolumeRecommender(recommender apis.Recommender, recommendationRule analysisv1alph1.RecommendationRule) (recommender.Recommender, error) {
    28  	recommender = config.MergeRecommenderConfigFromRule(recommender, recommendationRule)
    29  	return &VolumeRecommender{
    30  		*base.NewBaseRecommender(recommender),
    31  	}, nil
    32  }