FIX: Change int fields to string

The ./hack/update-expected.sh script generates some fields which are
required to be string fields and hence results in linting errors.

This PR changes those fields to string/*string and removes lint
warnings.
This commit is contained in:
binkkatal 2020-10-18 11:18:38 +05:30 committed by binkkatal
parent 7f035dc824
commit e32717f31d
5 changed files with 46 additions and 30 deletions

View File

@ -314,21 +314,21 @@ func (b *AutoscalingGroupModelBuilder) buildAutoScalingGroupTask(c *fi.ModelBuil
}, },
} }
minSize := int32(1) minSize := fi.Int64(1)
maxSize := int32(1) maxSize := fi.Int64(1)
if ig.Spec.MinSize != nil { if ig.Spec.MinSize != nil {
minSize = fi.Int32Value(ig.Spec.MinSize) minSize = fi.Int64(int64(*ig.Spec.MinSize))
} else if ig.Spec.Role == kops.InstanceGroupRoleNode { } else if ig.Spec.Role == kops.InstanceGroupRoleNode {
minSize = 2 minSize = fi.Int64(2)
} }
if ig.Spec.MaxSize != nil { if ig.Spec.MaxSize != nil {
maxSize = *ig.Spec.MaxSize maxSize = fi.Int64(int64(*ig.Spec.MaxSize))
} else if ig.Spec.Role == kops.InstanceGroupRoleNode { } else if ig.Spec.Role == kops.InstanceGroupRoleNode {
maxSize = 2 maxSize = fi.Int64(2)
} }
t.MinSize = fi.Int64(int64(minSize)) t.MinSize = minSize
t.MaxSize = fi.Int64(int64(maxSize)) t.MaxSize = maxSize
subnets, err := b.GatherSubnets(ig) subnets, err := b.GatherSubnets(ig)
if err != nil { if err != nil {

View File

@ -862,8 +862,8 @@ type cloudformationAutoscalingGroup struct {
Name *string `json:"AutoScalingGroupName,omitempty"` Name *string `json:"AutoScalingGroupName,omitempty"`
LaunchConfigurationName *cloudformation.Literal `json:"LaunchConfigurationName,omitempty"` LaunchConfigurationName *cloudformation.Literal `json:"LaunchConfigurationName,omitempty"`
LaunchTemplate *cloudformationAutoscalingLaunchTemplateSpecification `json:"LaunchTemplate,omitempty"` LaunchTemplate *cloudformationAutoscalingLaunchTemplateSpecification `json:"LaunchTemplate,omitempty"`
MaxSize *int64 `json:"MaxSize,omitempty"` MaxSize *string `json:"MaxSize,omitempty"`
MinSize *int64 `json:"MinSize,omitempty"` MinSize *string `json:"MinSize,omitempty"`
VPCZoneIdentifier []*cloudformation.Literal `json:"VPCZoneIdentifier,omitempty"` VPCZoneIdentifier []*cloudformation.Literal `json:"VPCZoneIdentifier,omitempty"`
Tags []*cloudformationASGTag `json:"Tags,omitempty"` Tags []*cloudformationASGTag `json:"Tags,omitempty"`
MetricsCollection []*cloudformationASGMetricsCollection `json:"MetricsCollection,omitempty"` MetricsCollection []*cloudformationASGMetricsCollection `json:"MetricsCollection,omitempty"`
@ -876,8 +876,8 @@ type cloudformationAutoscalingGroup struct {
func (_ *AutoscalingGroup) RenderCloudformation(t *cloudformation.CloudformationTarget, a, e, changes *AutoscalingGroup) error { func (_ *AutoscalingGroup) RenderCloudformation(t *cloudformation.CloudformationTarget, a, e, changes *AutoscalingGroup) error {
cf := &cloudformationAutoscalingGroup{ cf := &cloudformationAutoscalingGroup{
Name: e.Name, Name: e.Name,
MinSize: e.MinSize, MinSize: fi.ToString(e.MinSize),
MaxSize: e.MaxSize, MaxSize: fi.ToString(e.MaxSize),
MetricsCollection: []*cloudformationASGMetricsCollection{ MetricsCollection: []*cloudformationASGMetricsCollection{
{ {
Granularity: e.Granularity, Granularity: e.Granularity,

View File

@ -349,8 +349,8 @@ func TestAutoscalingGroupCloudformationRender(t *testing.T) {
"Type": "AWS::AutoScaling::AutoScalingGroup", "Type": "AWS::AutoScaling::AutoScalingGroup",
"Properties": { "Properties": {
"AutoScalingGroupName": "test1", "AutoScalingGroupName": "test1",
"MaxSize": 10, "MaxSize": "10",
"MinSize": 5, "MinSize": "5",
"VPCZoneIdentifier": [ "VPCZoneIdentifier": [
{ {
"Ref": "AWSEC2Subnettestsg" "Ref": "AWSEC2Subnettestsg"

View File

@ -805,18 +805,18 @@ type cloudformationLoadBalancer struct {
} }
type cloudformationLoadBalancerListener struct { type cloudformationLoadBalancerListener struct {
InstancePort int `json:"InstancePort"` InstancePort string `json:"InstancePort"`
InstanceProtocol string `json:"InstanceProtocol"` InstanceProtocol string `json:"InstanceProtocol"`
LoadBalancerPort int64 `json:"LoadBalancerPort"` LoadBalancerPort string `json:"LoadBalancerPort"`
LoadBalancerProtocol string `json:"Protocol"` LoadBalancerProtocol string `json:"Protocol"`
} }
type cloudformationLoadBalancerHealthCheck struct { type cloudformationLoadBalancerHealthCheck struct {
Target *string `json:"Target"` Target *string `json:"Target"`
HealthyThreshold *int64 `json:"HealthyThreshold"` HealthyThreshold *string `json:"HealthyThreshold"`
UnhealthyThreshold *int64 `json:"UnhealthyThreshold"` UnhealthyThreshold *string `json:"UnhealthyThreshold"`
Interval *int64 `json:"Interval"` Interval *string `json:"Interval"`
Timeout *int64 `json:"Timeout"` Timeout *string `json:"Timeout"`
} }
type cloudformationConnectionDrainingPolicy struct { type cloudformationConnectionDrainingPolicy struct {
@ -853,15 +853,11 @@ func (_ *LoadBalancer) RenderCloudformation(t *cloudformation.CloudformationTarg
} }
for loadBalancerPort, listener := range e.Listeners { for loadBalancerPort, listener := range e.Listeners {
loadBalancerPortInt, err := strconv.ParseInt(loadBalancerPort, 10, 64)
if err != nil {
return fmt.Errorf("error parsing load balancer listener port: %q", loadBalancerPort)
}
tf.Listener = append(tf.Listener, &cloudformationLoadBalancerListener{ tf.Listener = append(tf.Listener, &cloudformationLoadBalancerListener{
InstanceProtocol: "TCP", InstanceProtocol: "TCP",
InstancePort: listener.InstancePort, InstancePort: strconv.Itoa(listener.InstancePort),
LoadBalancerPort: loadBalancerPortInt, LoadBalancerPort: loadBalancerPort,
LoadBalancerProtocol: "TCP", LoadBalancerProtocol: "TCP",
}) })
} }
@ -869,10 +865,10 @@ func (_ *LoadBalancer) RenderCloudformation(t *cloudformation.CloudformationTarg
if e.HealthCheck != nil { if e.HealthCheck != nil {
tf.HealthCheck = &cloudformationLoadBalancerHealthCheck{ tf.HealthCheck = &cloudformationLoadBalancerHealthCheck{
Target: e.HealthCheck.Target, Target: e.HealthCheck.Target,
HealthyThreshold: e.HealthCheck.HealthyThreshold, HealthyThreshold: fi.ToString(e.HealthCheck.HealthyThreshold),
UnhealthyThreshold: e.HealthCheck.UnhealthyThreshold, UnhealthyThreshold: fi.ToString(e.HealthCheck.UnhealthyThreshold),
Interval: e.HealthCheck.Interval, Interval: fi.ToString(e.HealthCheck.Interval),
Timeout: e.HealthCheck.Timeout, Timeout: fi.ToString(e.HealthCheck.Timeout),
} }
} }

View File

@ -20,6 +20,7 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"reflect" "reflect"
"strconv"
) )
func StringValue(s *string) string { func StringValue(s *string) string {
@ -202,3 +203,22 @@ func DebugAsJsonStringIndent(v interface{}) string {
} }
return string(data) return string(data)
} }
func ToInt64(s *string) *int64 {
if s == nil {
return nil
}
v, err := strconv.ParseInt(*s, 10, 64)
if err != nil {
return nil
}
return &v
}
func ToString(v *int64) *string {
if v == nil {
return nil
}
s := strconv.FormatInt(*v, 10)
return &s
}