Skip to content

Commit

Permalink
changed InstanceTemplateNameType to InstanceTemplateName
Browse files Browse the repository at this point in the history
  • Loading branch information
Edwinhr716 committed Mar 13, 2024
1 parent fd8b89e commit cd3ab2c
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 65 deletions.
14 changes: 7 additions & 7 deletions cluster-autoscaler/cloudprovider/gce/autoscaling_gce_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ type AutoscalingGceClient interface {
FetchMigTargetSize(GceRef) (int64, error)
FetchMigBasename(GceRef) (string, error)
FetchMigInstances(GceRef) ([]GceInstance, error)
FetchMigTemplateName(migRef GceRef) (InstanceTemplateNameType, error)
FetchMigTemplateName(migRef GceRef) (InstanceTemplateName, error)
FetchMigTemplate(migRef GceRef, templateName string, regional bool) (*gce.InstanceTemplate, error)
FetchMigsWithName(zone string, filter *regexp.Regexp) ([]string, error)
FetchZones(region string) ([]string, error)
Expand Down Expand Up @@ -580,28 +580,28 @@ func (client *autoscalingGceClientV1) FetchAvailableCpuPlatforms() (map[string][
return availableCpuPlatforms, nil
}

func (client *autoscalingGceClientV1) FetchMigTemplateName(migRef GceRef) (InstanceTemplateNameType, error) {
func (client *autoscalingGceClientV1) FetchMigTemplateName(migRef GceRef) (InstanceTemplateName, error) {
registerRequest("instance_group_managers", "get")
igm, err := client.gceService.InstanceGroupManagers.Get(migRef.Project, migRef.Zone, migRef.Name).Do()
if err != nil {
if err, ok := err.(*googleapi.Error); ok {
if err.Code == http.StatusNotFound {
return InstanceTemplateNameType{}, errors.NewAutoscalerError(errors.NodeGroupDoesNotExistError, "%s", err.Error())
return InstanceTemplateName{}, errors.NewAutoscalerError(errors.NodeGroupDoesNotExistError, "%s", err.Error())
}
}
return InstanceTemplateNameType{}, err
return InstanceTemplateName{}, err
}
templateUrl, err := url.Parse(igm.InstanceTemplate)
if err != nil {
return InstanceTemplateNameType{}, err
return InstanceTemplateName{}, err
}
regional, err := regexp.MatchString("(/projects/.*[A-Za-z0-9]+.*/regions/)", templateUrl.String())
if err != nil {
return InstanceTemplateNameType{}, err
return InstanceTemplateName{}, err
}

_, templateName := path.Split(templateUrl.EscapedPath())
return InstanceTemplateNameType{templateName, regional}, nil
return InstanceTemplateName{templateName, regional}, nil
}

func (client *autoscalingGceClientV1) FetchMigTemplate(migRef GceRef, templateName string, regional bool) (*gce.InstanceTemplate, error) {
Expand Down
20 changes: 10 additions & 10 deletions cluster-autoscaler/cloudprovider/gce/cache.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@ type MachineTypeKey struct {
MachineTypeName string
}

// InstanceTemplateNameType is used to store the name, and
// InstanceTemplateName is used to store the name, and
// whether or not the instance template is regional
type InstanceTemplateNameType struct {
type InstanceTemplateName struct {
Name string
Regional bool
}
Expand Down Expand Up @@ -74,7 +74,7 @@ type GceCache struct {
migTargetSizeCache map[GceRef]int64
migBaseNameCache map[GceRef]string
listManagedInstancesResultsCache map[GceRef]string
instanceTemplateNameCache map[GceRef]InstanceTemplateNameType
instanceTemplateNameCache map[GceRef]InstanceTemplateName
instanceTemplatesCache map[GceRef]*gce.InstanceTemplate
kubeEnvCache map[GceRef]KubeEnv
}
Expand All @@ -92,7 +92,7 @@ func NewGceCache() *GceCache {
migTargetSizeCache: map[GceRef]int64{},
migBaseNameCache: map[GceRef]string{},
listManagedInstancesResultsCache: map[GceRef]string{},
instanceTemplateNameCache: map[GceRef]InstanceTemplateNameType{},
instanceTemplateNameCache: map[GceRef]InstanceTemplateName{},
instanceTemplatesCache: map[GceRef]*gce.InstanceTemplate{},
kubeEnvCache: map[GceRef]KubeEnv{},
}
Expand Down Expand Up @@ -341,23 +341,23 @@ func (gc *GceCache) InvalidateAllMigTargetSizes() {
}

// GetMigInstanceTemplateName returns the cached instance template ref for a mig GceRef
func (gc *GceCache) GetMigInstanceTemplateName(ref GceRef) (InstanceTemplateNameType, bool) {
func (gc *GceCache) GetMigInstanceTemplateName(ref GceRef) (InstanceTemplateName, bool) {
gc.cacheMutex.Lock()
defer gc.cacheMutex.Unlock()

instanceTemplateNameType, found := gc.instanceTemplateNameCache[ref]
instanceTemplateName, found := gc.instanceTemplateNameCache[ref]
if found {
klog.V(5).Infof("Instance template names cache hit for %s", ref)
}
return instanceTemplateNameType, found
return instanceTemplateName, found
}

// SetMigInstanceTemplateName sets instance template ref for a mig GceRef
func (gc *GceCache) SetMigInstanceTemplateName(ref GceRef, instanceTemplateNameType InstanceTemplateNameType) {
func (gc *GceCache) SetMigInstanceTemplateName(ref GceRef, instanceTemplateName InstanceTemplateName) {
gc.cacheMutex.Lock()
defer gc.cacheMutex.Unlock()

gc.instanceTemplateNameCache[ref] = instanceTemplateNameType
gc.instanceTemplateNameCache[ref] = instanceTemplateName
}

// InvalidateMigInstanceTemplateName clears the instance template ref cache for a mig GceRef
Expand All @@ -377,7 +377,7 @@ func (gc *GceCache) InvalidateAllMigInstanceTemplateNames() {
defer gc.cacheMutex.Unlock()

klog.V(5).Infof("Instance template names cache invalidated")
gc.instanceTemplateNameCache = map[GceRef]InstanceTemplateNameType{}
gc.instanceTemplateNameCache = map[GceRef]InstanceTemplateName{}
}

// GetMigInstanceTemplate returns the cached gce.InstanceTemplate for a mig GceRef
Expand Down
2 changes: 1 addition & 1 deletion cluster-autoscaler/cloudprovider/gce/gce_manager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,7 @@ func newTestGceManager(t *testing.T, testServerURL string, regional bool) *gceMa
{"us-central1-f", "n1-standard-1"}: {Name: "n1-standard-1", CPU: 1, Memory: 1},
},
migTargetSizeCache: map[GceRef]int64{},
instanceTemplateNameCache: map[GceRef]InstanceTemplateNameType{},
instanceTemplateNameCache: map[GceRef]InstanceTemplateName{},
instanceTemplatesCache: map[GceRef]*gce.InstanceTemplate{},
kubeEnvCache: map[GceRef]KubeEnv{},
migBaseNameCache: map[GceRef]string{},
Expand Down
34 changes: 17 additions & 17 deletions cluster-autoscaler/cloudprovider/gce/mig_info_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ type MigInfoProvider interface {
// GetMigBasename returns basename for given MIG ref
GetMigBasename(migRef GceRef) (string, error)
// GetMigInstanceTemplateName returns instance template name for given MIG ref
GetMigInstanceTemplateName(migRef GceRef) (InstanceTemplateNameType, error)
GetMigInstanceTemplateName(migRef GceRef) (InstanceTemplateName, error)
// GetMigInstanceTemplate returns instance template for given MIG ref
GetMigInstanceTemplate(migRef GceRef) (*gce.InstanceTemplate, error)
// GetMigKubeEnv returns kube-env for given MIG ref
Expand Down Expand Up @@ -244,44 +244,44 @@ func (c *cachingMigInfoProvider) GetMigBasename(migRef GceRef) (string, error) {
return basename, nil
}

func (c *cachingMigInfoProvider) GetMigInstanceTemplateName(migRef GceRef) (InstanceTemplateNameType, error) {
func (c *cachingMigInfoProvider) GetMigInstanceTemplateName(migRef GceRef) (InstanceTemplateName, error) {
c.migInfoMutex.Lock()
defer c.migInfoMutex.Unlock()

instanceTemplateNameType, found := c.cache.GetMigInstanceTemplateName(migRef)
instanceTemplateName, found := c.cache.GetMigInstanceTemplateName(migRef)
if found {
return instanceTemplateNameType, nil
return instanceTemplateName, nil
}

err := c.fillMigInfoCache()
instanceTemplateNameType, found = c.cache.GetMigInstanceTemplateName(migRef)
instanceTemplateName, found = c.cache.GetMigInstanceTemplateName(migRef)
if err == nil && found {
return instanceTemplateNameType, nil
return instanceTemplateName, nil
}

// fallback to querying for single mig
instanceTemplateNameType, err = c.gceClient.FetchMigTemplateName(migRef)
instanceTemplateName, err = c.gceClient.FetchMigTemplateName(migRef)
if err != nil {
c.migLister.HandleMigIssue(migRef, err)
return InstanceTemplateNameType{}, err
return InstanceTemplateName{}, err
}
c.cache.SetMigInstanceTemplateName(migRef, instanceTemplateNameType)
return instanceTemplateNameType, nil
c.cache.SetMigInstanceTemplateName(migRef, instanceTemplateName)
return instanceTemplateName, nil
}

func (c *cachingMigInfoProvider) GetMigInstanceTemplate(migRef GceRef) (*gce.InstanceTemplate, error) {
instanceTemplateNameType, err := c.GetMigInstanceTemplateName(migRef)
instanceTemplateName, err := c.GetMigInstanceTemplateName(migRef)
if err != nil {
return nil, err
}

template, found := c.cache.GetMigInstanceTemplate(migRef)
if found && template.Name == instanceTemplateNameType.Name {
if found && template.Name == instanceTemplateName.Name {
return template, nil
}

klog.V(2).Infof("Instance template of mig %v changed to %v", migRef.Name, instanceTemplateNameType.Name)
template, err = c.gceClient.FetchMigTemplate(migRef, instanceTemplateNameType.Name, instanceTemplateNameType.Regional)
klog.V(2).Infof("Instance template of mig %v changed to %v", migRef.Name, instanceTemplateName.Name)
template, err = c.gceClient.FetchMigTemplate(migRef, instanceTemplateName.Name, instanceTemplateName.Regional)
if err != nil {
return nil, err
}
Expand All @@ -290,13 +290,13 @@ func (c *cachingMigInfoProvider) GetMigInstanceTemplate(migRef GceRef) (*gce.Ins
}

func (c *cachingMigInfoProvider) GetMigKubeEnv(migRef GceRef) (KubeEnv, error) {
instanceTemplateNameType, err := c.GetMigInstanceTemplateName(migRef)
instanceTemplateName, err := c.GetMigInstanceTemplateName(migRef)
if err != nil {
return KubeEnv{}, err
}

kubeEnv, kubeEnvFound := c.cache.GetMigKubeEnv(migRef)
if kubeEnvFound && kubeEnv.templateName == instanceTemplateNameType.Name {
if kubeEnvFound && kubeEnv.templateName == instanceTemplateName.Name {
return kubeEnv, nil
}

Expand Down Expand Up @@ -365,7 +365,7 @@ func (c *cachingMigInfoProvider) fillMigInfoCache() error {
if err == nil {
_, templateName := path.Split(templateUrl.EscapedPath())
regional, _ := regexp.MatchString("(/projects/.*[A-Za-z0-9]+.*/regions/)", templateUrl.String())
c.cache.SetMigInstanceTemplateName(zoneMigRef, InstanceTemplateNameType{templateName, regional})
c.cache.SetMigInstanceTemplateName(zoneMigRef, InstanceTemplateName{templateName, regional})
}
}
}
Expand Down
Loading

0 comments on commit cd3ab2c

Please sign in to comment.