From 76527d5826b86fc6fbdc1317f848d4a8f784e3d6 Mon Sep 17 00:00:00 2001 From: Zbynek Roubalik Date: Wed, 23 Mar 2022 15:24:29 +0100 Subject: [PATCH] Internally represent `value` and `threshold` as int64 (#2801) Signed-off-by: Zbynek Roubalik --- CHANGELOG.md | 1 + CREATE-NEW-SCALER.md | 2 +- pkg/scalers/activemq_scaler.go | 14 ++++----- pkg/scalers/artemis_scaler.go | 14 ++++----- pkg/scalers/aws_dynamodb_scaler.go | 6 ++-- pkg/scalers/aws_kinesis_stream_scaler.go | 6 ++-- pkg/scalers/aws_sqs_queue_scaler.go | 16 +++++----- pkg/scalers/azure/azure_app_insights.go | 6 ++-- pkg/scalers/azure/azure_app_insights_test.go | 2 +- pkg/scalers/azure/azure_blob.go | 4 +-- pkg/scalers/azure/azure_monitor.go | 6 ++-- pkg/scalers/azure/azure_queue.go | 10 +++--- pkg/scalers/azure_app_insights_scaler.go | 8 ++--- pkg/scalers/azure_blob_scaler.go | 8 ++--- pkg/scalers/azure_monitor_scaler.go | 8 ++--- pkg/scalers/azure_pipelines_scaler.go | 12 ++++---- pkg/scalers/azure_queue_scaler.go | 8 ++--- pkg/scalers/azure_servicebus_scaler.go | 22 +++++++------- pkg/scalers/azure_servicebus_scaler_test.go | 4 +-- pkg/scalers/cassandra_scaler.go | 12 ++++---- pkg/scalers/cron_scaler.go | 4 +-- pkg/scalers/datadog_scaler.go | 6 ++-- pkg/scalers/elasticsearch_scaler.go | 16 +++++----- pkg/scalers/gcp_pubsub_scaler.go | 8 ++--- pkg/scalers/gcp_storage_scaler.go | 14 ++++----- pkg/scalers/graphite_scaler.go | 12 ++++---- pkg/scalers/ibmmq_scaler.go | 12 ++++---- pkg/scalers/kubernetes_workload_scaler.go | 8 ++--- pkg/scalers/mongo_scaler.go | 12 ++++---- pkg/scalers/mssql_scaler.go | 12 ++++---- pkg/scalers/mssql_scaler_test.go | 2 +- pkg/scalers/mysql_scaler.go | 12 ++++---- pkg/scalers/newrelic_scaler.go | 12 ++++---- pkg/scalers/openstack_swift_scaler.go | 18 +++++------ pkg/scalers/postgresql_scaler.go | 12 ++++---- pkg/scalers/prometheus_scaler.go | 6 ++-- pkg/scalers/rabbitmq_scaler.go | 16 +++++----- pkg/scalers/redis_scaler.go | 6 ++-- pkg/scalers/redis_streams_scaler.go | 6 ++-- pkg/scalers/redis_streams_scaler_test.go | 2 +- pkg/scalers/selenium_grid_scaler.go | 24 +++++++-------- pkg/scalers/selenium_grid_scaler_test.go | 18 +++++------ pkg/scalers/solace_scaler.go | 12 ++++---- pkg/scaling/cache/scalers_cache_test.go | 32 ++++++++++---------- pkg/scaling/scale_handler_test.go | 4 +-- 45 files changed, 227 insertions(+), 228 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bfec0d5250f..e0d918f1e33 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -64,6 +64,7 @@ - **General:** Fix mismatched errors for updating HPA ([#2719](https://github.com/kedacore/keda/issues/2719)) - **General:** Improve e2e tests reliability ([#2580](https://github.com/kedacore/keda/issues/2580)) - **General:** Improve e2e tests to always cleanup resources in cluster ([#2584](https://github.com/kedacore/keda/issues/2584)) +- **General:** Internally represent value and threshold as int64 ([#2790](https://github.com/kedacore/keda/issues/2790)) - **GCP Pubsub Scaler:** Adding e2e test ([#1528](https://github.com/kedacore/keda/issues/1528)) - **Memory Scaler:** Adding e2e test ([#2220](https://github.com/kedacore/keda/issues/2220)) diff --git a/CREATE-NEW-SCALER.md b/CREATE-NEW-SCALER.md index b380aa4f270..b10dd57b5de 100644 --- a/CREATE-NEW-SCALER.md +++ b/CREATE-NEW-SCALER.md @@ -53,7 +53,7 @@ For example: >**Note:** There is a naming helper function `GenerateMetricNameWithIndex(scalerIndex int, metricName string)`, that receives the current index and the original metric name (without the prefix) and returns the concatenated string using the convention (please use this function).
Next lines are an example about how to use it: >```golang >func (s *artemisScaler) GetMetricSpecForScaling() []v2beta2.MetricSpec { -> targetMetricValue := resource.NewQuantity(int64(s.metadata.queueLength), resource.DecimalSI) +> targetMetricValue := resource.NewQuantity(s.metadata.queueLength, resource.DecimalSI) > externalMetric := &v2beta2.ExternalMetricSource{ > Metric: v2beta2.MetricIdentifier{ > Name: GenerateMetricNameWithIndex(s.metadata.scalerIndex, kedautil.NormalizeString(fmt.Sprintf("%s-%s-%s", "artemis", s.metadata.brokerName, s.metadata.queueName))), diff --git a/pkg/scalers/activemq_scaler.go b/pkg/scalers/activemq_scaler.go index 5e854ad26f2..09fad2cf7e0 100644 --- a/pkg/scalers/activemq_scaler.go +++ b/pkg/scalers/activemq_scaler.go @@ -34,7 +34,7 @@ type activeMQMetadata struct { username string password string restAPITemplate string - targetQueueSize int + targetQueueSize int64 metricName string scalerIndex int } @@ -94,7 +94,7 @@ func parseActiveMQMetadata(config *ScalerConfig) (*activeMQMetadata, error) { } if val, ok := config.TriggerMetadata["targetQueueSize"]; ok { - queueSize, err := strconv.Atoi(val) + queueSize, err := strconv.ParseInt(val, 10, 64) if err != nil { return nil, fmt.Errorf("invalid targetQueueSize - must be an integer") } @@ -200,9 +200,9 @@ func (s *activeMQScaler) getMonitoringEndpoint() (string, error) { return monitoringEndpoint, nil } -func (s *activeMQScaler) getQueueMessageCount(ctx context.Context) (int, error) { +func (s *activeMQScaler) getQueueMessageCount(ctx context.Context) (int64, error) { var monitoringInfo *activeMQMonitoring - var queueMessageCount int + var queueMessageCount int64 client := s.httpClient url, err := s.getMonitoringEndpoint() @@ -230,7 +230,7 @@ func (s *activeMQScaler) getQueueMessageCount(ctx context.Context) (int, error) return -1, err } if resp.StatusCode == 200 && monitoringInfo.Status == 200 { - queueMessageCount = monitoringInfo.MsgCount + queueMessageCount = int64(monitoringInfo.MsgCount) } else { return -1, fmt.Errorf("ActiveMQ management endpoint response error code : %d %d", resp.StatusCode, monitoringInfo.Status) } @@ -242,7 +242,7 @@ func (s *activeMQScaler) getQueueMessageCount(ctx context.Context) (int, error) // GetMetricSpecForScaling returns the MetricSpec for the Horizontal Pod Autoscaler func (s *activeMQScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetMetricValue := resource.NewQuantity(int64(s.metadata.targetQueueSize), resource.DecimalSI) + targetMetricValue := resource.NewQuantity(s.metadata.targetQueueSize, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ Name: s.metadata.metricName, @@ -266,7 +266,7 @@ func (s *activeMQScaler) GetMetrics(ctx context.Context, metricName string, metr metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *resource.NewQuantity(int64(queueSize), resource.DecimalSI), + Value: *resource.NewQuantity(queueSize, resource.DecimalSI), Timestamp: metav1.Now(), } diff --git a/pkg/scalers/artemis_scaler.go b/pkg/scalers/artemis_scaler.go index c1190f2911d..ccb91a4bd67 100644 --- a/pkg/scalers/artemis_scaler.go +++ b/pkg/scalers/artemis_scaler.go @@ -34,7 +34,7 @@ type artemisMetadata struct { username string password string restAPITemplate string - queueLength int + queueLength int64 corsHeader string scalerIndex int } @@ -115,7 +115,7 @@ func parseArtemisMetadata(config *ScalerConfig) (*artemisMetadata, error) { } if val, ok := config.TriggerMetadata["queueLength"]; ok { - queueLength, err := strconv.Atoi(val) + queueLength, err := strconv.ParseInt(val, 10, 64) if err != nil { return nil, fmt.Errorf("can't parse queueLength: %s", err) } @@ -214,9 +214,9 @@ func (s *artemisScaler) getMonitoringEndpoint() string { return monitoringEndpoint } -func (s *artemisScaler) getQueueMessageCount(ctx context.Context) (int, error) { +func (s *artemisScaler) getQueueMessageCount(ctx context.Context) (int64, error) { var monitoringInfo *artemisMonitoring - messageCount := 0 + var messageCount int64 client := s.httpClient url := s.getMonitoringEndpoint() @@ -240,7 +240,7 @@ func (s *artemisScaler) getQueueMessageCount(ctx context.Context) (int, error) { return -1, err } if resp.StatusCode == 200 && monitoringInfo.Status == 200 { - messageCount = monitoringInfo.MsgCount + messageCount = int64(monitoringInfo.MsgCount) } else { return -1, fmt.Errorf("artemis management endpoint response error code : %d %d", resp.StatusCode, monitoringInfo.Status) } @@ -251,7 +251,7 @@ func (s *artemisScaler) getQueueMessageCount(ctx context.Context) (int, error) { } func (s *artemisScaler) GetMetricSpecForScaling(ctx context.Context) []v2beta2.MetricSpec { - targetMetricValue := resource.NewQuantity(int64(s.metadata.queueLength), resource.DecimalSI) + targetMetricValue := resource.NewQuantity(s.metadata.queueLength, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ Name: GenerateMetricNameWithIndex(s.metadata.scalerIndex, kedautil.NormalizeString(fmt.Sprintf("artemis-%s", s.metadata.queueName))), @@ -276,7 +276,7 @@ func (s *artemisScaler) GetMetrics(ctx context.Context, metricName string, metri metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *resource.NewQuantity(int64(messages), resource.DecimalSI), + Value: *resource.NewQuantity(messages, resource.DecimalSI), Timestamp: metav1.Now(), } diff --git a/pkg/scalers/aws_dynamodb_scaler.go b/pkg/scalers/aws_dynamodb_scaler.go index 1c1a706a6dd..4430ebf3b99 100644 --- a/pkg/scalers/aws_dynamodb_scaler.go +++ b/pkg/scalers/aws_dynamodb_scaler.go @@ -35,7 +35,7 @@ type awsDynamoDBMetadata struct { keyConditionExpression string expressionAttributeNames map[string]*string expressionAttributeValues map[string]*dynamodb.AttributeValue - targetValue int + targetValue int64 awsAuthorization awsAuthorizationMetadata scalerIndex int metricName string @@ -101,7 +101,7 @@ func parseAwsDynamoDBMetadata(config *ScalerConfig) (*awsDynamoDBMetadata, error } if val, ok := config.TriggerMetadata["targetValue"]; ok && val != "" { - n, err := strconv.Atoi(val) + n, err := strconv.ParseInt(val, 10, 64) if err != nil { return nil, fmt.Errorf("error parsing metadata targetValue") } @@ -171,7 +171,7 @@ func (c *awsDynamoDBScaler) GetMetrics(ctx context.Context, metricName string, m } func (c *awsDynamoDBScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetMetricValue := resource.NewQuantity(int64(c.metadata.targetValue), resource.DecimalSI) + targetMetricValue := resource.NewQuantity(c.metadata.targetValue, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ Name: c.metadata.metricName, diff --git a/pkg/scalers/aws_kinesis_stream_scaler.go b/pkg/scalers/aws_kinesis_stream_scaler.go index 3ffedcecb4a..ae0b398de3f 100644 --- a/pkg/scalers/aws_kinesis_stream_scaler.go +++ b/pkg/scalers/aws_kinesis_stream_scaler.go @@ -32,7 +32,7 @@ type awsKinesisStreamScaler struct { } type awsKinesisStreamMetadata struct { - targetShardCount int + targetShardCount int64 streamName string awsRegion string awsAuthorization awsAuthorizationMetadata @@ -59,7 +59,7 @@ func parseAwsKinesisStreamMetadata(config *ScalerConfig) (*awsKinesisStreamMetad meta.targetShardCount = targetShardCountDefault if val, ok := config.TriggerMetadata["shardCount"]; ok && val != "" { - shardCount, err := strconv.Atoi(val) + shardCount, err := strconv.ParseInt(val, 10, 64) if err != nil { meta.targetShardCount = targetShardCountDefault kinesisStreamLog.Error(err, "Error parsing Kinesis stream metadata shardCount, using default %n", targetShardCountDefault) @@ -133,7 +133,7 @@ func (s *awsKinesisStreamScaler) Close(context.Context) error { } func (s *awsKinesisStreamScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetShardCountQty := resource.NewQuantity(int64(s.metadata.targetShardCount), resource.DecimalSI) + targetShardCountQty := resource.NewQuantity(s.metadata.targetShardCount, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ Name: GenerateMetricNameWithIndex(s.metadata.scalerIndex, kedautil.NormalizeString(fmt.Sprintf("aws-kinesis-%s", s.metadata.streamName))), diff --git a/pkg/scalers/aws_sqs_queue_scaler.go b/pkg/scalers/aws_sqs_queue_scaler.go index 419229c26fe..489b1a12ac8 100644 --- a/pkg/scalers/aws_sqs_queue_scaler.go +++ b/pkg/scalers/aws_sqs_queue_scaler.go @@ -42,7 +42,7 @@ type awsSqsQueueScaler struct { } type awsSqsQueueMetadata struct { - targetQueueLength int + targetQueueLength int64 queueURL string queueName string awsRegion string @@ -68,7 +68,7 @@ func parseAwsSqsQueueMetadata(config *ScalerConfig) (*awsSqsQueueMetadata, error meta.targetQueueLength = defaultTargetQueueLength if val, ok := config.TriggerMetadata["queueLength"]; ok && val != "" { - queueLength, err := strconv.Atoi(val) + queueLength, err := strconv.ParseInt(val, 10, 64) if err != nil { meta.targetQueueLength = targetQueueLengthDefault sqsQueueLog.Error(err, "Error parsing SQS queue metadata queueLength, using default %n", targetQueueLengthDefault) @@ -142,7 +142,7 @@ func createSqsClient(metadata *awsSqsQueueMetadata) *sqs.SQS { // IsActive determines if we need to scale from zero func (s *awsSqsQueueScaler) IsActive(ctx context.Context) (bool, error) { - length, err := s.GetAwsSqsQueueLength() + length, err := s.getAwsSqsQueueLength() if err != nil { return false, err @@ -156,7 +156,7 @@ func (s *awsSqsQueueScaler) Close(context.Context) error { } func (s *awsSqsQueueScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetQueueLengthQty := resource.NewQuantity(int64(s.metadata.targetQueueLength), resource.DecimalSI) + targetQueueLengthQty := resource.NewQuantity(s.metadata.targetQueueLength, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ Name: GenerateMetricNameWithIndex(s.metadata.scalerIndex, kedautil.NormalizeString(fmt.Sprintf("aws-sqs-%s", s.metadata.queueName))), @@ -172,7 +172,7 @@ func (s *awsSqsQueueScaler) GetMetricSpecForScaling(context.Context) []v2beta2.M // GetMetrics returns value for a supported metric and an error if there is a problem getting the metric func (s *awsSqsQueueScaler) GetMetrics(ctx context.Context, metricName string, metricSelector labels.Selector) ([]external_metrics.ExternalMetricValue, error) { - queuelen, err := s.GetAwsSqsQueueLength() + queuelen, err := s.getAwsSqsQueueLength() if err != nil { sqsQueueLog.Error(err, "Error getting queue length") @@ -181,7 +181,7 @@ func (s *awsSqsQueueScaler) GetMetrics(ctx context.Context, metricName string, m metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *resource.NewQuantity(int64(queuelen), resource.DecimalSI), + Value: *resource.NewQuantity(queuelen, resource.DecimalSI), Timestamp: metav1.Now(), } @@ -189,7 +189,7 @@ func (s *awsSqsQueueScaler) GetMetrics(ctx context.Context, metricName string, m } // Get SQS Queue Length -func (s *awsSqsQueueScaler) GetAwsSqsQueueLength() (int32, error) { +func (s *awsSqsQueueScaler) getAwsSqsQueueLength() (int64, error) { input := &sqs.GetQueueAttributesInput{ AttributeNames: aws.StringSlice(awsSqsQueueMetricNames), QueueUrl: aws.String(s.metadata.queueURL), @@ -209,5 +209,5 @@ func (s *awsSqsQueueScaler) GetAwsSqsQueueLength() (int32, error) { approximateNumberOfMessages += metricValue } - return int32(approximateNumberOfMessages), nil + return approximateNumberOfMessages, nil } diff --git a/pkg/scalers/azure/azure_app_insights.go b/pkg/scalers/azure/azure_app_insights.go index fe63e1eb23a..b6353a9bd0f 100644 --- a/pkg/scalers/azure/azure_app_insights.go +++ b/pkg/scalers/azure/azure_app_insights.go @@ -64,7 +64,7 @@ func getAuthConfig(info AppInsightsInfo, podIdentity kedav1alpha1.PodIdentityPro return config } -func extractAppInsightValue(info AppInsightsInfo, metric ApplicationInsightsMetric) (int32, error) { +func extractAppInsightValue(info AppInsightsInfo, metric ApplicationInsightsMetric) (int64, error) { if _, ok := metric.Value[info.MetricID]; !ok { return -1, fmt.Errorf("metric named %s not found in app insights response", info.MetricID) } @@ -81,7 +81,7 @@ func extractAppInsightValue(info AppInsightsInfo, metric ApplicationInsightsMetr azureAppInsightsLog.V(2).Info("value extracted from metric request", "metric type", info.AggregationType, "metric value", floatVal) - return int32(math.Round(floatVal)), nil + return int64(math.Round(floatVal)), nil } func queryParamsForAppInsightsRequest(info AppInsightsInfo) (map[string]interface{}, error) { @@ -102,7 +102,7 @@ func queryParamsForAppInsightsRequest(info AppInsightsInfo) (map[string]interfac } // GetAzureAppInsightsMetricValue returns the value of an Azure App Insights metric, rounded to the nearest int -func GetAzureAppInsightsMetricValue(ctx context.Context, info AppInsightsInfo, podIdentity kedav1alpha1.PodIdentityProvider) (int32, error) { +func GetAzureAppInsightsMetricValue(ctx context.Context, info AppInsightsInfo, podIdentity kedav1alpha1.PodIdentityProvider) (int64, error) { config := getAuthConfig(info, podIdentity) authorizer, err := config.Authorizer() if err != nil { diff --git a/pkg/scalers/azure/azure_app_insights_test.go b/pkg/scalers/azure/azure_app_insights_test.go index 6988eacdf09..36b953d1ae1 100644 --- a/pkg/scalers/azure/azure_app_insights_test.go +++ b/pkg/scalers/azure/azure_app_insights_test.go @@ -11,7 +11,7 @@ import ( type testExtractAzAppInsightsTestData struct { testName string isError bool - expectedValue int32 + expectedValue int64 info AppInsightsInfo metricResult ApplicationInsightsMetric } diff --git a/pkg/scalers/azure/azure_blob.go b/pkg/scalers/azure/azure_blob.go index 0902afe35c2..36d3323504a 100644 --- a/pkg/scalers/azure/azure_blob.go +++ b/pkg/scalers/azure/azure_blob.go @@ -26,7 +26,7 @@ import ( ) // GetAzureBlobListLength returns the count of the blobs in blob container in int -func GetAzureBlobListLength(ctx context.Context, httpClient util.HTTPDoer, podIdentity kedav1alpha1.PodIdentityProvider, connectionString, blobContainerName string, accountName string, blobDelimiter string, blobPrefix string, endpointSuffix string) (int, error) { +func GetAzureBlobListLength(ctx context.Context, httpClient util.HTTPDoer, podIdentity kedav1alpha1.PodIdentityProvider, connectionString, blobContainerName string, accountName string, blobDelimiter string, blobPrefix string, endpointSuffix string) (int64, error) { credential, endpoint, err := ParseAzureStorageBlobConnection(ctx, httpClient, podIdentity, connectionString, accountName, endpointSuffix) if err != nil { return -1, err @@ -44,5 +44,5 @@ func GetAzureBlobListLength(ctx context.Context, httpClient util.HTTPDoer, podId return -1, err } - return len(props.Segment.BlobItems), nil + return int64(len(props.Segment.BlobItems)), nil } diff --git a/pkg/scalers/azure/azure_monitor.go b/pkg/scalers/azure/azure_monitor.go index 7229115d5f1..f69486bf8f5 100644 --- a/pkg/scalers/azure/azure_monitor.go +++ b/pkg/scalers/azure/azure_monitor.go @@ -65,7 +65,7 @@ type MonitorInfo struct { var azureMonitorLog = logf.Log.WithName("azure_monitor_scaler") // GetAzureMetricValue returns the value of an Azure Monitor metric, rounded to the nearest int -func GetAzureMetricValue(ctx context.Context, info MonitorInfo, podIdentity kedav1alpha1.PodIdentityProvider) (int32, error) { +func GetAzureMetricValue(ctx context.Context, info MonitorInfo, podIdentity kedav1alpha1.PodIdentityProvider) (int64, error) { var podIdentityEnabled = true if podIdentity == "" || podIdentity == kedav1alpha1.PodIdentityProviderNone { @@ -121,14 +121,14 @@ func createMetricsRequest(info MonitorInfo) (*azureExternalMetricRequest, error) return &metricRequest, nil } -func executeRequest(ctx context.Context, client insights.MetricsClient, request *azureExternalMetricRequest) (int32, error) { +func executeRequest(ctx context.Context, client insights.MetricsClient, request *azureExternalMetricRequest) (int64, error) { metricResponse, err := getAzureMetric(ctx, client, *request) if err != nil { return -1, fmt.Errorf("error getting azure monitor metric %s: %w", request.MetricName, err) } // casting drops everything after decimal, so round first - metricValue := int32(math.Round(metricResponse)) + metricValue := int64(math.Round(metricResponse)) return metricValue, nil } diff --git a/pkg/scalers/azure/azure_queue.go b/pkg/scalers/azure/azure_queue.go index 62b5ca32224..9d2e5f10afd 100644 --- a/pkg/scalers/azure/azure_queue.go +++ b/pkg/scalers/azure/azure_queue.go @@ -30,7 +30,7 @@ const ( ) // GetAzureQueueLength returns the length of a queue in int -func GetAzureQueueLength(ctx context.Context, httpClient util.HTTPDoer, podIdentity kedav1alpha1.PodIdentityProvider, connectionString, queueName, accountName, endpointSuffix string) (int32, error) { +func GetAzureQueueLength(ctx context.Context, httpClient util.HTTPDoer, podIdentity kedav1alpha1.PodIdentityProvider, connectionString, queueName, accountName, endpointSuffix string) (int64, error) { credential, endpoint, err := ParseAzureStorageQueueConnection(ctx, httpClient, podIdentity, connectionString, accountName, endpointSuffix) if err != nil { return -1, err @@ -46,7 +46,7 @@ func GetAzureQueueLength(ctx context.Context, httpClient util.HTTPDoer, podIdent } // Queue has less messages than we allowed to peek for, so no need to get the approximation - if visibleMessageCount < maxPeekMessages { + if visibleMessageCount < int64(maxPeekMessages) { return visibleMessageCount, nil } @@ -55,15 +55,15 @@ func GetAzureQueueLength(ctx context.Context, httpClient util.HTTPDoer, podIdent return -1, err } - return props.ApproximateMessagesCount(), nil + return int64(props.ApproximateMessagesCount()), nil } -func getVisibleCount(ctx context.Context, queueURL *azqueue.QueueURL, maxCount int32) (int32, error) { +func getVisibleCount(ctx context.Context, queueURL *azqueue.QueueURL, maxCount int32) (int64, error) { messagesURL := queueURL.NewMessagesURL() queue, err := messagesURL.Peek(ctx, maxCount) if err != nil { return 0, err } num := queue.NumMessages() - return num, nil + return int64(num), nil } diff --git a/pkg/scalers/azure_app_insights_scaler.go b/pkg/scalers/azure_app_insights_scaler.go index 5326004714f..636eff3d856 100644 --- a/pkg/scalers/azure_app_insights_scaler.go +++ b/pkg/scalers/azure_app_insights_scaler.go @@ -30,7 +30,7 @@ const ( type azureAppInsightsMetadata struct { azureAppInsightsInfo azure.AppInsightsInfo - targetValue int + targetValue int64 scalerIndex int } @@ -63,7 +63,7 @@ func parseAzureAppInsightsMetadata(config *ScalerConfig) (*azureAppInsightsMetad if err != nil { return nil, err } - meta.targetValue, err = strconv.Atoi(val) + meta.targetValue, err = strconv.ParseInt(val, 10, 64) if err != nil { azureAppInsightsLog.Error(err, "Error parsing azure app insights metadata", "targetValue", targetValueName) return nil, fmt.Errorf("error parsing azure app insights metadata %s: %s", targetValueName, err.Error()) @@ -139,7 +139,7 @@ func (s *azureAppInsightsScaler) Close(context.Context) error { } func (s *azureAppInsightsScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetMetricVal := resource.NewQuantity(int64(s.metadata.targetValue), resource.DecimalSI) + targetMetricVal := resource.NewQuantity(s.metadata.targetValue, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ Name: GenerateMetricNameWithIndex(s.metadata.scalerIndex, kedautil.NormalizeString(fmt.Sprintf("azure-app-insights-%s", s.metadata.azureAppInsightsInfo.MetricID))), @@ -163,7 +163,7 @@ func (s *azureAppInsightsScaler) GetMetrics(ctx context.Context, metricName stri metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *resource.NewQuantity(int64(val), resource.DecimalSI), + Value: *resource.NewQuantity(val, resource.DecimalSI), Timestamp: metav1.Now(), } diff --git a/pkg/scalers/azure_blob_scaler.go b/pkg/scalers/azure_blob_scaler.go index 129a1f233e9..862889ae61a 100644 --- a/pkg/scalers/azure_blob_scaler.go +++ b/pkg/scalers/azure_blob_scaler.go @@ -48,7 +48,7 @@ type azureBlobScaler struct { } type azureBlobMetadata struct { - targetBlobCount int + targetBlobCount int64 blobContainerName string blobDelimiter string blobPrefix string @@ -82,7 +82,7 @@ func parseAzureBlobMetadata(config *ScalerConfig) (*azureBlobMetadata, kedav1alp meta.blobPrefix = defaultBlobPrefix if val, ok := config.TriggerMetadata[blobCountMetricName]; ok { - blobCount, err := strconv.Atoi(val) + blobCount, err := strconv.ParseInt(val, 10, 64) if err != nil { azureBlobLog.Error(err, "Error parsing azure blob metadata", "blobCountMetricName", blobCountMetricName) return nil, "", fmt.Errorf("error parsing azure blob metadata %s: %s", blobCountMetricName, err.Error()) @@ -181,7 +181,7 @@ func (s *azureBlobScaler) Close(context.Context) error { } func (s *azureBlobScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetBlobCount := resource.NewQuantity(int64(s.metadata.targetBlobCount), resource.DecimalSI) + targetBlobCount := resource.NewQuantity(s.metadata.targetBlobCount, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ Name: GenerateMetricNameWithIndex(s.metadata.scalerIndex, s.metadata.metricName), @@ -216,7 +216,7 @@ func (s *azureBlobScaler) GetMetrics(ctx context.Context, metricName string, met metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *resource.NewQuantity(int64(bloblen), resource.DecimalSI), + Value: *resource.NewQuantity(bloblen, resource.DecimalSI), Timestamp: metav1.Now(), } diff --git a/pkg/scalers/azure_monitor_scaler.go b/pkg/scalers/azure_monitor_scaler.go index 2032f2f5917..659b8c25466 100644 --- a/pkg/scalers/azure_monitor_scaler.go +++ b/pkg/scalers/azure_monitor_scaler.go @@ -46,7 +46,7 @@ type azureMonitorScaler struct { type azureMonitorMetadata struct { azureMonitorInfo azure.MonitorInfo - targetValue int + targetValue int64 scalerIndex int } @@ -71,7 +71,7 @@ func parseAzureMonitorMetadata(config *ScalerConfig) (*azureMonitorMetadata, err } if val, ok := config.TriggerMetadata[targetValueName]; ok && val != "" { - targetValue, err := strconv.Atoi(val) + targetValue, err := strconv.ParseInt(val, 10, 64) if err != nil { azureMonitorLog.Error(err, "Error parsing azure monitor metadata", "targetValue", targetValueName) return nil, fmt.Errorf("error parsing azure monitor metadata %s: %s", targetValueName, err.Error()) @@ -191,7 +191,7 @@ func (s *azureMonitorScaler) Close(context.Context) error { } func (s *azureMonitorScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetMetricVal := resource.NewQuantity(int64(s.metadata.targetValue), resource.DecimalSI) + targetMetricVal := resource.NewQuantity(s.metadata.targetValue, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ Name: GenerateMetricNameWithIndex(s.metadata.scalerIndex, kedautil.NormalizeString(fmt.Sprintf("azure-monitor-%s", s.metadata.azureMonitorInfo.Name))), @@ -215,7 +215,7 @@ func (s *azureMonitorScaler) GetMetrics(ctx context.Context, metricName string, metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *resource.NewQuantity(int64(val), resource.DecimalSI), + Value: *resource.NewQuantity(val, resource.DecimalSI), Timestamp: metav1.Now(), } diff --git a/pkg/scalers/azure_pipelines_scaler.go b/pkg/scalers/azure_pipelines_scaler.go index 8d0d8ec7ce8..07d5c6d7419 100644 --- a/pkg/scalers/azure_pipelines_scaler.go +++ b/pkg/scalers/azure_pipelines_scaler.go @@ -42,7 +42,7 @@ type azurePipelinesMetadata struct { organizationName string personalAccessToken string poolID int - targetPipelinesQueueLength int + targetPipelinesQueueLength int64 scalerIndex int } @@ -68,7 +68,7 @@ func parseAzurePipelinesMetadata(ctx context.Context, config *ScalerConfig, http meta.targetPipelinesQueueLength = defaultTargetPipelinesQueueLength if val, ok := config.TriggerMetadata["targetPipelinesQueueLength"]; ok { - queueLength, err := strconv.Atoi(val) + queueLength, err := strconv.ParseInt(val, 10, 64) if err != nil { return nil, fmt.Errorf("error parsing azure pipelines metadata targetPipelinesQueueLength: %s", err.Error()) } @@ -200,14 +200,14 @@ func (s *azurePipelinesScaler) GetMetrics(ctx context.Context, metricName string metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *resource.NewQuantity(int64(queuelen), resource.DecimalSI), + Value: *resource.NewQuantity(queuelen, resource.DecimalSI), Timestamp: metav1.Now(), } return append([]external_metrics.ExternalMetricValue{}, metric), nil } -func (s *azurePipelinesScaler) GetAzurePipelinesQueueLength(ctx context.Context) (int, error) { +func (s *azurePipelinesScaler) GetAzurePipelinesQueueLength(ctx context.Context) (int64, error) { url := fmt.Sprintf("%s/_apis/distributedtask/pools/%d/jobrequests", s.metadata.organizationURL, s.metadata.poolID) body, err := getAzurePipelineRequest(ctx, url, s.metadata, s.httpClient) if err != nil { @@ -220,7 +220,7 @@ func (s *azurePipelinesScaler) GetAzurePipelinesQueueLength(ctx context.Context) return -1, err } - var count = 0 + var count int64 jobs, ok := result["value"].([]interface{}) if !ok { @@ -238,7 +238,7 @@ func (s *azurePipelinesScaler) GetAzurePipelinesQueueLength(ctx context.Context) } func (s *azurePipelinesScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetPipelinesQueueLengthQty := resource.NewQuantity(int64(s.metadata.targetPipelinesQueueLength), resource.DecimalSI) + targetPipelinesQueueLengthQty := resource.NewQuantity(s.metadata.targetPipelinesQueueLength, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ Name: GenerateMetricNameWithIndex(s.metadata.scalerIndex, kedautil.NormalizeString(fmt.Sprintf("azure-pipelines-%d", s.metadata.poolID))), diff --git a/pkg/scalers/azure_queue_scaler.go b/pkg/scalers/azure_queue_scaler.go index 4b39986d633..4cb7014175b 100644 --- a/pkg/scalers/azure_queue_scaler.go +++ b/pkg/scalers/azure_queue_scaler.go @@ -48,7 +48,7 @@ type azureQueueScaler struct { } type azureQueueMetadata struct { - targetQueueLength int + targetQueueLength int64 queueName string connection string accountName string @@ -77,7 +77,7 @@ func parseAzureQueueMetadata(config *ScalerConfig) (*azureQueueMetadata, kedav1a meta.targetQueueLength = defaultTargetQueueLength if val, ok := config.TriggerMetadata[queueLengthMetricName]; ok { - queueLength, err := strconv.Atoi(val) + queueLength, err := strconv.ParseInt(val, 10, 64) if err != nil { azureQueueLog.Error(err, "Error parsing azure queue metadata", "queueLengthMetricName", queueLengthMetricName) return nil, "", fmt.Errorf("error parsing azure queue metadata %s: %s", queueLengthMetricName, err.Error()) @@ -163,7 +163,7 @@ func (s *azureQueueScaler) Close(context.Context) error { } func (s *azureQueueScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetQueueLengthQty := resource.NewQuantity(int64(s.metadata.targetQueueLength), resource.DecimalSI) + targetQueueLengthQty := resource.NewQuantity(s.metadata.targetQueueLength, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ Name: GenerateMetricNameWithIndex(s.metadata.scalerIndex, kedautil.NormalizeString(fmt.Sprintf("azure-queue-%s", s.metadata.queueName))), @@ -196,7 +196,7 @@ func (s *azureQueueScaler) GetMetrics(ctx context.Context, metricName string, me metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *resource.NewQuantity(int64(queuelen), resource.DecimalSI), + Value: *resource.NewQuantity(queuelen, resource.DecimalSI), Timestamp: metav1.Now(), } diff --git a/pkg/scalers/azure_servicebus_scaler.go b/pkg/scalers/azure_servicebus_scaler.go index a7daf10fd9f..b0201058d5d 100755 --- a/pkg/scalers/azure_servicebus_scaler.go +++ b/pkg/scalers/azure_servicebus_scaler.go @@ -57,7 +57,7 @@ type azureServiceBusScaler struct { } type azureServiceBusMetadata struct { - targetLength int + targetLength int64 queueName string topicName string subscriptionName string @@ -91,7 +91,7 @@ func parseAzureServiceBusMetadata(config *ScalerConfig) (*azureServiceBusMetadat // get target metric value if val, ok := config.TriggerMetadata[messageCountMetricName]; ok { - messageCount, err := strconv.Atoi(val) + messageCount, err := strconv.ParseInt(val, 10, 64) if err != nil { azureServiceBusLog.Error(err, "Error parsing azure queue metadata", "messageCount", messageCountMetricName) } else { @@ -165,7 +165,7 @@ func parseAzureServiceBusMetadata(config *ScalerConfig) (*azureServiceBusMetadat // Returns true if the scaler's queue has messages in it, false otherwise func (s *azureServiceBusScaler) IsActive(ctx context.Context) (bool, error) { - length, err := s.GetAzureServiceBusLength(ctx) + length, err := s.getAzureServiceBusLength(ctx) if err != nil { azureServiceBusLog.Error(err, "error") return false, err @@ -181,7 +181,7 @@ func (s *azureServiceBusScaler) Close(context.Context) error { // Returns the metric spec to be used by the HPA func (s *azureServiceBusScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetLengthQty := resource.NewQuantity(int64(s.metadata.targetLength), resource.DecimalSI) + targetLengthQty := resource.NewQuantity(s.metadata.targetLength, resource.DecimalSI) metricName := "" if s.metadata.entityType == queue { @@ -205,7 +205,7 @@ func (s *azureServiceBusScaler) GetMetricSpecForScaling(context.Context) []v2bet // Returns the current metrics to be served to the HPA func (s *azureServiceBusScaler) GetMetrics(ctx context.Context, metricName string, metricSelector labels.Selector) ([]external_metrics.ExternalMetricValue, error) { - queuelen, err := s.GetAzureServiceBusLength(ctx) + queuelen, err := s.getAzureServiceBusLength(ctx) if err != nil { azureServiceBusLog.Error(err, "error getting service bus entity length") @@ -214,7 +214,7 @@ func (s *azureServiceBusScaler) GetMetrics(ctx context.Context, metricName strin metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *resource.NewQuantity(int64(queuelen), resource.DecimalSI), + Value: *resource.NewQuantity(queuelen, resource.DecimalSI), Timestamp: metav1.Now(), } @@ -243,7 +243,7 @@ func (a azureTokenProvider) GetToken(uri string) (*auth.Token, error) { } // Returns the length of the queue or subscription -func (s *azureServiceBusScaler) GetAzureServiceBusLength(ctx context.Context) (int32, error) { +func (s *azureServiceBusScaler) getAzureServiceBusLength(ctx context.Context) (int64, error) { // get namespace namespace, err := s.getServiceBusNamespace(ctx) if err != nil { @@ -286,7 +286,7 @@ func (s *azureServiceBusScaler) getServiceBusNamespace(ctx context.Context) (*se return namespace, nil } -func getQueueEntityFromNamespace(ctx context.Context, ns *servicebus.Namespace, queueName string) (int32, error) { +func getQueueEntityFromNamespace(ctx context.Context, ns *servicebus.Namespace, queueName string) (int64, error) { // get queue manager from namespace queueManager := ns.NewQueueManager() @@ -296,10 +296,10 @@ func getQueueEntityFromNamespace(ctx context.Context, ns *servicebus.Namespace, return -1, err } - return *queueEntity.CountDetails.ActiveMessageCount, nil + return int64(*queueEntity.CountDetails.ActiveMessageCount), nil } -func getSubscriptionEntityFromNamespace(ctx context.Context, ns *servicebus.Namespace, topicName, subscriptionName string) (int32, error) { +func getSubscriptionEntityFromNamespace(ctx context.Context, ns *servicebus.Namespace, topicName, subscriptionName string) (int64, error) { // get subscription manager from namespace subscriptionManager, err := ns.NewSubscriptionManager(topicName) if err != nil { @@ -312,5 +312,5 @@ func getSubscriptionEntityFromNamespace(ctx context.Context, ns *servicebus.Name return -1, err } - return *subscriptionEntity.CountDetails.ActiveMessageCount, nil + return int64(*subscriptionEntity.CountDetails.ActiveMessageCount), nil } diff --git a/pkg/scalers/azure_servicebus_scaler_test.go b/pkg/scalers/azure_servicebus_scaler_test.go index 53e9ad70e67..dcf783c9272 100755 --- a/pkg/scalers/azure_servicebus_scaler_test.go +++ b/pkg/scalers/azure_servicebus_scaler_test.go @@ -168,7 +168,7 @@ func TestGetServiceBusLength(t *testing.T) { if connectionString != "" { // Can actually test that numbers return scaler.metadata.connection = connectionString - length, err := scaler.GetAzureServiceBusLength(context.TODO()) + length, err := scaler.getAzureServiceBusLength(context.TODO()) if err != nil { t.Errorf("Expected success but got error: %s", err) @@ -179,7 +179,7 @@ func TestGetServiceBusLength(t *testing.T) { } } else { // Just test error message - length, err := scaler.GetAzureServiceBusLength(context.TODO()) + length, err := scaler.getAzureServiceBusLength(context.TODO()) if length != -1 || err == nil { t.Errorf("Expected error but got success") diff --git a/pkg/scalers/cassandra_scaler.go b/pkg/scalers/cassandra_scaler.go index ed54b69e2ae..75ede424252 100644 --- a/pkg/scalers/cassandra_scaler.go +++ b/pkg/scalers/cassandra_scaler.go @@ -33,7 +33,7 @@ type CassandraMetadata struct { protocolVersion int keyspace string query string - targetQueryValue int + targetQueryValue int64 metricName string scalerIndex int } @@ -69,7 +69,7 @@ func ParseCassandraMetadata(config *ScalerConfig) (*CassandraMetadata, error) { } if val, ok := config.TriggerMetadata["targetQueryValue"]; ok { - targetQueryValue, err := strconv.Atoi(val) + targetQueryValue, err := strconv.ParseInt(val, 10, 64) if err != nil { return nil, fmt.Errorf("targetQueryValue parsing error %s", err.Error()) } @@ -175,7 +175,7 @@ func (s *cassandraScaler) IsActive(ctx context.Context) (bool, error) { // GetMetricSpecForScaling returns the MetricSpec for the Horizontal Pod Autoscaler. func (s *cassandraScaler) GetMetricSpecForScaling(ctx context.Context) []v2beta2.MetricSpec { - targetQueryValue := resource.NewQuantity(int64(s.metadata.targetQueryValue), resource.DecimalSI) + targetQueryValue := resource.NewQuantity(s.metadata.targetQueryValue, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ Name: GenerateMetricNameWithIndex(s.metadata.scalerIndex, s.metadata.metricName), @@ -201,7 +201,7 @@ func (s *cassandraScaler) GetMetrics(ctx context.Context, metricName string, met metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *resource.NewQuantity(int64(num), resource.DecimalSI), + Value: *resource.NewQuantity(num, resource.DecimalSI), Timestamp: metav1.Now(), } @@ -209,8 +209,8 @@ func (s *cassandraScaler) GetMetrics(ctx context.Context, metricName string, met } // GetQueryResult returns the result of the scaler query. -func (s *cassandraScaler) GetQueryResult(ctx context.Context) (int, error) { - var value int +func (s *cassandraScaler) GetQueryResult(ctx context.Context) (int64, error) { + var value int64 if err := s.session.Query(s.metadata.query).WithContext(ctx).Scan(&value); err != nil { if err != gocql.ErrNotFound { cassandraLog.Error(err, "query failed") diff --git a/pkg/scalers/cron_scaler.go b/pkg/scalers/cron_scaler.go index bb838878111..f992b74333e 100644 --- a/pkg/scalers/cron_scaler.go +++ b/pkg/scalers/cron_scaler.go @@ -153,8 +153,8 @@ func parseCronTimeFormat(s string) string { // GetMetricSpecForScaling returns the metric spec for the HPA func (s *cronScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - specReplicas := 1 - targetMetricValue := resource.NewQuantity(int64(specReplicas), resource.DecimalSI) + var specReplicas int64 = 1 + targetMetricValue := resource.NewQuantity(specReplicas, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ Name: GenerateMetricNameWithIndex(s.metadata.scalerIndex, kedautil.NormalizeString(fmt.Sprintf("cron-%s-%s-%s", s.metadata.timezone, parseCronTimeFormat(s.metadata.start), parseCronTimeFormat(s.metadata.end)))), diff --git a/pkg/scalers/datadog_scaler.go b/pkg/scalers/datadog_scaler.go index a212ab9c400..888097b09bf 100644 --- a/pkg/scalers/datadog_scaler.go +++ b/pkg/scalers/datadog_scaler.go @@ -36,7 +36,7 @@ type datadogMetadata struct { appKey string datadogSite string query string - queryValue int + queryValue int64 vType valueType metricName string age int @@ -108,7 +108,7 @@ func parseDatadogMetadata(config *ScalerConfig) (*datadogMetadata, error) { } if val, ok := config.TriggerMetadata["queryValue"]; ok { - queryValue, err := strconv.Atoi(val) + queryValue, err := strconv.ParseInt(val, 10, 64) if err != nil { return nil, fmt.Errorf("queryValue parsing error %s", err.Error()) } @@ -290,7 +290,7 @@ func (s *datadogScaler) getQueryResult(ctx context.Context) (float64, error) { func (s *datadogScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { externalMetric := new(v2beta2.ExternalMetricSource) - targetQueryValue := resource.NewQuantity(int64(s.metadata.queryValue), resource.DecimalSI) + targetQueryValue := resource.NewQuantity(s.metadata.queryValue, resource.DecimalSI) switch s.metadata.vType { case average: diff --git a/pkg/scalers/elasticsearch_scaler.go b/pkg/scalers/elasticsearch_scaler.go index cf5330112bc..2c11c7147d3 100644 --- a/pkg/scalers/elasticsearch_scaler.go +++ b/pkg/scalers/elasticsearch_scaler.go @@ -37,7 +37,7 @@ type elasticsearchMetadata struct { searchTemplateName string parameters []string valueLocation string - targetValue int + targetValue int64 metricName string } @@ -117,7 +117,7 @@ func parseElasticsearchMetadata(config *ScalerConfig) (*elasticsearchMetadata, e if err != nil { return nil, err } - meta.targetValue, err = strconv.Atoi(targetValue) + meta.targetValue, err = strconv.ParseInt(targetValue, 10, 64) if err != nil { return nil, fmt.Errorf("targetValue parsing error %s", err.Error()) } @@ -169,7 +169,7 @@ func (s *elasticsearchScaler) IsActive(ctx context.Context) (bool, error) { } // getQueryResult returns result of the scaler query -func (s *elasticsearchScaler) getQueryResult(ctx context.Context) (int, error) { +func (s *elasticsearchScaler) getQueryResult(ctx context.Context) (int64, error) { // Build the request body. var body bytes.Buffer if err := json.NewEncoder(&body).Encode(buildQuery(s.metadata)); err != nil { @@ -216,11 +216,11 @@ func buildQuery(metadata *elasticsearchMetadata) map[string]interface{} { return query } -func getValueFromSearch(body []byte, valueLocation string) (int, error) { +func getValueFromSearch(body []byte, valueLocation string) (int64, error) { r := gjson.GetBytes(body, valueLocation) errorMsg := "valueLocation must point to value of type number but got: '%s'" if r.Type == gjson.String { - q, err := strconv.Atoi(r.String()) + q, err := strconv.ParseInt(r.String(), 10, 64) if err != nil { return 0, fmt.Errorf(errorMsg, r.String()) } @@ -229,12 +229,12 @@ func getValueFromSearch(body []byte, valueLocation string) (int, error) { if r.Type != gjson.Number { return 0, fmt.Errorf(errorMsg, r.Type.String()) } - return int(r.Num), nil + return int64(r.Num), nil } // GetMetricSpecForScaling returns the MetricSpec for the Horizontal Pod Autoscaler func (s *elasticsearchScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetValue := resource.NewQuantity(int64(s.metadata.targetValue), resource.DecimalSI) + targetValue := resource.NewQuantity(s.metadata.targetValue, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ @@ -260,7 +260,7 @@ func (s *elasticsearchScaler) GetMetrics(ctx context.Context, metricName string, metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *resource.NewQuantity(int64(num), resource.DecimalSI), + Value: *resource.NewQuantity(num, resource.DecimalSI), Timestamp: metav1.Now(), } diff --git a/pkg/scalers/gcp_pubsub_scaler.go b/pkg/scalers/gcp_pubsub_scaler.go index 254cc549eec..25b85ef36e2 100644 --- a/pkg/scalers/gcp_pubsub_scaler.go +++ b/pkg/scalers/gcp_pubsub_scaler.go @@ -38,7 +38,7 @@ type pubsubScaler struct { type pubsubMetadata struct { mode string - value int + value int64 subscriptionName string gcpAuthorization *gcpAuthorizationMetadata @@ -72,7 +72,7 @@ func parsePubSubMetadata(config *ScalerConfig) (*pubsubMetadata, error) { } gcpPubSubLog.Info("subscriptionSize field is deprecated. Use mode and value fields instead") meta.mode = pubsubModeSubscriptionSize - subSizeValue, err := strconv.Atoi(subSize) + subSizeValue, err := strconv.ParseInt(subSize, 10, 64) if err != nil { return nil, fmt.Errorf("value parsing error %s", err.Error()) } @@ -92,7 +92,7 @@ func parsePubSubMetadata(config *ScalerConfig) (*pubsubMetadata, error) { } if valuePresent { - triggerValue, err := strconv.Atoi(value) + triggerValue, err := strconv.ParseInt(value, 10, 64) if err != nil { return nil, fmt.Errorf("value parsing error %s", err.Error()) } @@ -156,7 +156,7 @@ func (s *pubsubScaler) Close(context.Context) error { // GetMetricSpecForScaling returns the metric spec for the HPA func (s *pubsubScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { // Construct the target value as a quantity - targetValueQty := resource.NewQuantity(int64(s.metadata.value), resource.DecimalSI) + targetValueQty := resource.NewQuantity(s.metadata.value, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ diff --git a/pkg/scalers/gcp_storage_scaler.go b/pkg/scalers/gcp_storage_scaler.go index 4716348e39b..6826d032191 100644 --- a/pkg/scalers/gcp_storage_scaler.go +++ b/pkg/scalers/gcp_storage_scaler.go @@ -38,7 +38,7 @@ type gcsMetadata struct { gcpAuthorization *gcpAuthorizationMetadata maxBucketItemsToScan int metricName string - targetObjectCount int + targetObjectCount int64 } var gcsLog = logf.Log.WithName("gcp_storage_scaler") @@ -101,7 +101,7 @@ func parseGcsMetadata(config *ScalerConfig) (*gcsMetadata, error) { } if val, ok := config.TriggerMetadata["targetObjectCount"]; ok { - targetObjectCount, err := strconv.Atoi(val) + targetObjectCount, err := strconv.ParseInt(val, 10, 64) if err != nil { gcsLog.Error(err, "Error parsing targetObjectCount") return nil, fmt.Errorf("error parsing targetObjectCount: %s", err.Error()) @@ -151,7 +151,7 @@ func (s *gcsScaler) Close(context.Context) error { // GetMetricSpecForScaling returns the metric spec for the HPA func (s *gcsScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetValueQty := resource.NewQuantity(int64(s.metadata.targetObjectCount), resource.DecimalSI) + targetValueQty := resource.NewQuantity(s.metadata.targetObjectCount, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ Name: s.metadata.metricName, @@ -174,7 +174,7 @@ func (s *gcsScaler) GetMetrics(ctx context.Context, metricName string, metricSel metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *resource.NewQuantity(int64(items), resource.DecimalSI), + Value: *resource.NewQuantity(items, resource.DecimalSI), Timestamp: metav1.Now(), } @@ -182,7 +182,7 @@ func (s *gcsScaler) GetMetrics(ctx context.Context, metricName string, metricSel } // getItemCount gets the number of items in the bucket, up to maxCount -func (s *gcsScaler) getItemCount(ctx context.Context, maxCount int) (int, error) { +func (s *gcsScaler) getItemCount(ctx context.Context, maxCount int) (int64, error) { query := &storage.Query{Prefix: ""} err := query.SetAttrSelection([]string{"Name"}) if err != nil { @@ -191,9 +191,9 @@ func (s *gcsScaler) getItemCount(ctx context.Context, maxCount int) (int, error) } it := s.bucket.Objects(ctx, query) - count := 0 + var count int64 - for count < maxCount { + for count < int64(maxCount) { _, err := it.Next() if err == iterator.Done { break diff --git a/pkg/scalers/graphite_scaler.go b/pkg/scalers/graphite_scaler.go index 597d34d9678..15a00ab2d64 100644 --- a/pkg/scalers/graphite_scaler.go +++ b/pkg/scalers/graphite_scaler.go @@ -36,7 +36,7 @@ type graphiteMetadata struct { serverAddress string metricName string query string - threshold int + threshold int64 from string // basic auth @@ -97,7 +97,7 @@ func parseGraphiteMetadata(config *ScalerConfig) (*graphiteMetadata, error) { } if val, ok := config.TriggerMetadata[grapThreshold]; ok && val != "" { - t, err := strconv.Atoi(val) + t, err := strconv.ParseInt(val, 10, 64) if err != nil { return nil, fmt.Errorf("error parsing %s: %s", grapThreshold, err) } @@ -130,7 +130,7 @@ func parseGraphiteMetadata(config *ScalerConfig) (*graphiteMetadata, error) { } func (s *graphiteScaler) IsActive(ctx context.Context) (bool, error) { - val, err := s.ExecuteGrapQuery(ctx) + val, err := s.executeGrapQuery(ctx) if err != nil { graphiteLog.Error(err, "error executing graphite query") return false, err @@ -144,7 +144,7 @@ func (s *graphiteScaler) Close(context.Context) error { } func (s *graphiteScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetMetricValue := resource.NewQuantity(int64(s.metadata.threshold), resource.DecimalSI) + targetMetricValue := resource.NewQuantity(s.metadata.threshold, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ Name: GenerateMetricNameWithIndex(s.metadata.scalerIndex, kedautil.NormalizeString(fmt.Sprintf("graphite-%s", s.metadata.metricName))), @@ -160,7 +160,7 @@ func (s *graphiteScaler) GetMetricSpecForScaling(context.Context) []v2beta2.Metr return []v2beta2.MetricSpec{metricSpec} } -func (s *graphiteScaler) ExecuteGrapQuery(ctx context.Context) (float64, error) { +func (s *graphiteScaler) executeGrapQuery(ctx context.Context) (float64, error) { queryEscaped := url_pkg.QueryEscape(s.metadata.query) url := fmt.Sprintf("%s/render?from=%s&target=%s&format=json", s.metadata.serverAddress, s.metadata.from, queryEscaped) req, err := http.NewRequestWithContext(ctx, "GET", url, nil) @@ -205,7 +205,7 @@ func (s *graphiteScaler) ExecuteGrapQuery(ctx context.Context) (float64, error) } func (s *graphiteScaler) GetMetrics(ctx context.Context, metricName string, metricSelector labels.Selector) ([]external_metrics.ExternalMetricValue, error) { - val, err := s.ExecuteGrapQuery(ctx) + val, err := s.executeGrapQuery(ctx) if err != nil { graphiteLog.Error(err, "error executing graphite query") return []external_metrics.ExternalMetricValue{}, err diff --git a/pkg/scalers/ibmmq_scaler.go b/pkg/scalers/ibmmq_scaler.go index c1f28ff623c..4032f51594c 100644 --- a/pkg/scalers/ibmmq_scaler.go +++ b/pkg/scalers/ibmmq_scaler.go @@ -41,7 +41,7 @@ type IBMMQMetadata struct { queueName string username string password string - targetQueueDepth int + targetQueueDepth int64 tlsDisabled bool scalerIndex int } @@ -106,7 +106,7 @@ func parseIBMMQMetadata(config *ScalerConfig) (*IBMMQMetadata, error) { } if val, ok := config.TriggerMetadata["queueDepth"]; ok && val != "" { - queueDepth, err := strconv.Atoi(val) + queueDepth, err := strconv.ParseInt(val, 10, 64) if err != nil { return nil, fmt.Errorf("invalid targetQueueDepth - must be an integer") } @@ -158,7 +158,7 @@ func (s *IBMMQScaler) IsActive(ctx context.Context) (bool, error) { } // getQueueDepthViaHTTP returns the depth of the MQ Queue from the Admin endpoint -func (s *IBMMQScaler) getQueueDepthViaHTTP(ctx context.Context) (int, error) { +func (s *IBMMQScaler) getQueueDepthViaHTTP(ctx context.Context) (int64, error) { queue := s.metadata.queueName url := s.metadata.host @@ -197,12 +197,12 @@ func (s *IBMMQScaler) getQueueDepthViaHTTP(ctx context.Context) (int, error) { if response.CommandResponse == nil || len(response.CommandResponse) == 0 { return 0, fmt.Errorf("failed to parse response from REST call: %s", err) } - return response.CommandResponse[0].Parameters.Curdepth, nil + return int64(response.CommandResponse[0].Parameters.Curdepth), nil } // GetMetricSpecForScaling returns the MetricSpec for the Horizontal Pod Autoscaler func (s *IBMMQScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetQueueLengthQty := resource.NewQuantity(int64(s.metadata.targetQueueDepth), resource.DecimalSI) + targetQueueLengthQty := resource.NewQuantity(s.metadata.targetQueueDepth, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ Name: GenerateMetricNameWithIndex(s.metadata.scalerIndex, kedautil.NormalizeString(fmt.Sprintf("ibmmq-%s", s.metadata.queueName))), @@ -225,7 +225,7 @@ func (s *IBMMQScaler) GetMetrics(ctx context.Context, metricName string, metricS metric := external_metrics.ExternalMetricValue{ MetricName: ibmMqQueueDepthMetricName, - Value: *resource.NewQuantity(int64(queueDepth), resource.DecimalSI), + Value: *resource.NewQuantity(queueDepth, resource.DecimalSI), Timestamp: metav1.Now(), } diff --git a/pkg/scalers/kubernetes_workload_scaler.go b/pkg/scalers/kubernetes_workload_scaler.go index b7185b96ead..57544a8cc6f 100644 --- a/pkg/scalers/kubernetes_workload_scaler.go +++ b/pkg/scalers/kubernetes_workload_scaler.go @@ -109,14 +109,14 @@ func (s *kubernetesWorkloadScaler) GetMetrics(ctx context.Context, metricName st metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *resource.NewQuantity(int64(pods), resource.DecimalSI), + Value: *resource.NewQuantity(pods, resource.DecimalSI), Timestamp: metav1.Now(), } return append([]external_metrics.ExternalMetricValue{}, metric), nil } -func (s *kubernetesWorkloadScaler) getMetricValue(ctx context.Context) (int, error) { +func (s *kubernetesWorkloadScaler) getMetricValue(ctx context.Context) (int64, error) { podList := &corev1.PodList{} listOptions := client.ListOptions{} listOptions.LabelSelector = s.metadata.podSelector @@ -130,7 +130,7 @@ func (s *kubernetesWorkloadScaler) getMetricValue(ctx context.Context) (int, err return 0, err } - count := 0 + var count int64 for _, pod := range podList.Items { count += getCountValue(pod) } @@ -138,7 +138,7 @@ func (s *kubernetesWorkloadScaler) getMetricValue(ctx context.Context) (int, err return count, nil } -func getCountValue(pod corev1.Pod) int { +func getCountValue(pod corev1.Pod) int64 { for _, ignore := range phasesCountedAsTerminated { if pod.Status.Phase == ignore { return 0 diff --git a/pkg/scalers/mongo_scaler.go b/pkg/scalers/mongo_scaler.go index 788c31c2d2a..67b4de776eb 100644 --- a/pkg/scalers/mongo_scaler.go +++ b/pkg/scalers/mongo_scaler.go @@ -57,7 +57,7 @@ type mongoDBMetadata struct { query string // A threshold that is used as targetAverageValue in HPA // +required - queryValue int + queryValue int64 // The name of the metric to use in the Horizontal Pod Autoscaler. This value will be prefixed with "mongodb-". // +optional metricName string @@ -120,7 +120,7 @@ func parseMongoDBMetadata(config *ScalerConfig) (*mongoDBMetadata, string, error } if val, ok := config.TriggerMetadata["queryValue"]; ok { - queryValue, err := strconv.Atoi(val) + queryValue, err := strconv.ParseInt(val, 10, 64) if err != nil { return nil, "", fmt.Errorf("failed to convert %v to int, because of %v", queryValue, err.Error()) } @@ -208,7 +208,7 @@ func (s *mongoDBScaler) Close(ctx context.Context) error { } // getQueryResult query mongoDB by meta.query -func (s *mongoDBScaler) getQueryResult(ctx context.Context) (int, error) { +func (s *mongoDBScaler) getQueryResult(ctx context.Context) (int64, error) { ctx, cancel := context.WithTimeout(ctx, mongoDBDefaultTimeOut) defer cancel() @@ -224,7 +224,7 @@ func (s *mongoDBScaler) getQueryResult(ctx context.Context) (int, error) { return 0, err } - return int(docsNum), nil + return docsNum, nil } // GetMetrics query from mongoDB,and return to external metrics @@ -236,7 +236,7 @@ func (s *mongoDBScaler) GetMetrics(ctx context.Context, metricName string, metri metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *resource.NewQuantity(int64(num), resource.DecimalSI), + Value: *resource.NewQuantity(num, resource.DecimalSI), Timestamp: metav1.Now(), } @@ -245,7 +245,7 @@ func (s *mongoDBScaler) GetMetrics(ctx context.Context, metricName string, metri // GetMetricSpecForScaling get the query value for scaling func (s *mongoDBScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetQueryValue := resource.NewQuantity(int64(s.metadata.queryValue), resource.DecimalSI) + targetQueryValue := resource.NewQuantity(s.metadata.queryValue, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ diff --git a/pkg/scalers/mssql_scaler.go b/pkg/scalers/mssql_scaler.go index 764131667c8..e66ba0bf194 100644 --- a/pkg/scalers/mssql_scaler.go +++ b/pkg/scalers/mssql_scaler.go @@ -51,7 +51,7 @@ type mssqlMetadata struct { query string // The threshold that is used as targetAverageValue in the Horizontal Pod Autoscaler. // +required - targetValue int + targetValue int64 // The name of the metric to use in the Horizontal Pod Autoscaler. This value will be prefixed with "mssql-". // +optional metricName string @@ -93,7 +93,7 @@ func parseMSSQLMetadata(config *ScalerConfig) (*mssqlMetadata, error) { // Target query value if val, ok := config.TriggerMetadata["targetValue"]; ok { - targetValue, err := strconv.Atoi(val) + targetValue, err := strconv.ParseInt(val, 10, 64) if err != nil { return nil, fmt.Errorf("targetValue parsing error %s", err.Error()) } @@ -210,7 +210,7 @@ func getMSSQLConnectionString(meta *mssqlMetadata) string { // GetMetricSpecForScaling returns the MetricSpec for the Horizontal Pod Autoscaler func (s *mssqlScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetQueryValue := resource.NewQuantity(int64(s.metadata.targetValue), resource.DecimalSI) + targetQueryValue := resource.NewQuantity(s.metadata.targetValue, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ Name: GenerateMetricNameWithIndex(s.metadata.scalerIndex, s.metadata.metricName), @@ -237,7 +237,7 @@ func (s *mssqlScaler) GetMetrics(ctx context.Context, metricName string, metricS metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *resource.NewQuantity(int64(num), resource.DecimalSI), + Value: *resource.NewQuantity(num, resource.DecimalSI), Timestamp: metav1.Now(), } @@ -245,8 +245,8 @@ func (s *mssqlScaler) GetMetrics(ctx context.Context, metricName string, metricS } // getQueryResult returns the result of the scaler query -func (s *mssqlScaler) getQueryResult(ctx context.Context) (int, error) { - var value int +func (s *mssqlScaler) getQueryResult(ctx context.Context) (int64, error) { + var value int64 err := s.connection.QueryRowContext(ctx, s.metadata.query).Scan(&value) switch { case err == sql.ErrNoRows: diff --git a/pkg/scalers/mssql_scaler_test.go b/pkg/scalers/mssql_scaler_test.go index 7f510c16b9b..0842968d6e5 100644 --- a/pkg/scalers/mssql_scaler_test.go +++ b/pkg/scalers/mssql_scaler_test.go @@ -127,7 +127,7 @@ func TestMSSQLMetadataParsing(t *testing.T) { t.Errorf("Wrong query. Expected '%s' but got '%s'", expectedQuery, outputMetadata.query) } - expectedTargetValue := 1 + var expectedTargetValue int64 = 1 if outputMetadata.targetValue != expectedTargetValue { t.Errorf("Wrong targetValue. Expected %d but got %d", expectedTargetValue, outputMetadata.targetValue) } diff --git a/pkg/scalers/mysql_scaler.go b/pkg/scalers/mysql_scaler.go index 0bd04435b8f..b643c23345e 100644 --- a/pkg/scalers/mysql_scaler.go +++ b/pkg/scalers/mysql_scaler.go @@ -31,7 +31,7 @@ type mySQLMetadata struct { port string dbName string query string - queryValue int + queryValue int64 metricName string } @@ -64,7 +64,7 @@ func parseMySQLMetadata(config *ScalerConfig) (*mySQLMetadata, error) { } if val, ok := config.TriggerMetadata["queryValue"]; ok { - queryValue, err := strconv.Atoi(val) + queryValue, err := strconv.ParseInt(val, 10, 64) if err != nil { return nil, fmt.Errorf("queryValue parsing error %s", err.Error()) } @@ -187,8 +187,8 @@ func (s *mySQLScaler) IsActive(ctx context.Context) (bool, error) { } // getQueryResult returns result of the scaler query -func (s *mySQLScaler) getQueryResult(ctx context.Context) (int, error) { - var value int +func (s *mySQLScaler) getQueryResult(ctx context.Context) (int64, error) { + var value int64 err := s.connection.QueryRowContext(ctx, s.metadata.query).Scan(&value) if err != nil { mySQLLog.Error(err, fmt.Sprintf("Could not query MySQL database: %s", err)) @@ -199,7 +199,7 @@ func (s *mySQLScaler) getQueryResult(ctx context.Context) (int, error) { // GetMetricSpecForScaling returns the MetricSpec for the Horizontal Pod Autoscaler func (s *mySQLScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetQueryValue := resource.NewQuantity(int64(s.metadata.queryValue), resource.DecimalSI) + targetQueryValue := resource.NewQuantity(s.metadata.queryValue, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ @@ -225,7 +225,7 @@ func (s *mySQLScaler) GetMetrics(ctx context.Context, metricName string, metricS metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *resource.NewQuantity(int64(num), resource.DecimalSI), + Value: *resource.NewQuantity(num, resource.DecimalSI), Timestamp: metav1.Now(), } diff --git a/pkg/scalers/newrelic_scaler.go b/pkg/scalers/newrelic_scaler.go index ff9d4f3f0d0..3c57ea1faa6 100644 --- a/pkg/scalers/newrelic_scaler.go +++ b/pkg/scalers/newrelic_scaler.go @@ -39,7 +39,7 @@ type newrelicMetadata struct { queryKey string noDataError bool nrql string - threshold int + threshold int64 scalerIndex int } @@ -99,7 +99,7 @@ func parseNewRelicMetadata(config *ScalerConfig) (*newrelicMetadata, error) { } if val, ok := config.TriggerMetadata[threshold]; ok && val != "" { - t, err := strconv.Atoi(val) + t, err := strconv.ParseInt(val, 10, 64) if err != nil { return nil, fmt.Errorf("error parsing %s", threshold) } @@ -124,7 +124,7 @@ func parseNewRelicMetadata(config *ScalerConfig) (*newrelicMetadata, error) { } func (s *newrelicScaler) IsActive(ctx context.Context) (bool, error) { - val, err := s.ExecuteNewRelicQuery(ctx) + val, err := s.executeNewRelicQuery(ctx) if err != nil { newrelicLog.Error(err, "error executing NRQL") return false, err @@ -136,7 +136,7 @@ func (s *newrelicScaler) Close(context.Context) error { return nil } -func (s *newrelicScaler) ExecuteNewRelicQuery(ctx context.Context) (float64, error) { +func (s *newrelicScaler) executeNewRelicQuery(ctx context.Context) (float64, error) { nrdbQuery := nrdb.NRQL(s.metadata.nrql) resp, err := s.nrClient.Nrdb.QueryWithContext(ctx, s.metadata.account, nrdbQuery) if err != nil { @@ -156,7 +156,7 @@ func (s *newrelicScaler) ExecuteNewRelicQuery(ctx context.Context) (float64, err } func (s *newrelicScaler) GetMetrics(ctx context.Context, metricName string, metricSelector labels.Selector) ([]external_metrics.ExternalMetricValue, error) { - val, err := s.ExecuteNewRelicQuery(ctx) + val, err := s.executeNewRelicQuery(ctx) if err != nil { newrelicLog.Error(err, "error executing NRQL query") return []external_metrics.ExternalMetricValue{}, err @@ -172,7 +172,7 @@ func (s *newrelicScaler) GetMetrics(ctx context.Context, metricName string, metr } func (s *newrelicScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetMetricValue := resource.NewQuantity(int64(s.metadata.threshold), resource.DecimalSI) + targetMetricValue := resource.NewQuantity(s.metadata.threshold, resource.DecimalSI) metricName := kedautil.NormalizeString(scalerName) externalMetric := &v2beta2.ExternalMetricSource{ diff --git a/pkg/scalers/openstack_swift_scaler.go b/pkg/scalers/openstack_swift_scaler.go index 58adf178a47..3dbc9a1166f 100644 --- a/pkg/scalers/openstack_swift_scaler.go +++ b/pkg/scalers/openstack_swift_scaler.go @@ -33,7 +33,7 @@ const ( type openstackSwiftMetadata struct { swiftURL string containerName string - objectCount int + objectCount int64 objectPrefix string objectDelimiter string objectLimit string @@ -59,7 +59,7 @@ type openstackSwiftScaler struct { var openstackSwiftLog = logf.Log.WithName("openstack_swift_scaler") -func (s *openstackSwiftScaler) getOpenstackSwiftContainerObjectCount(ctx context.Context) (int, error) { +func (s *openstackSwiftScaler) getOpenstackSwiftContainerObjectCount(ctx context.Context) (int64, error) { var containerName = s.metadata.containerName var swiftURL = s.metadata.swiftURL @@ -125,7 +125,7 @@ func (s *openstackSwiftScaler) getOpenstackSwiftContainerObjectCount(ctx context // If onlyFiles is set to "true", return the total amount of files (excluding empty objects/folders) if s.metadata.onlyFiles { - var count = 0 + var count int64 for i := 0; i < len(objectsList); i++ { if !strings.HasSuffix(objectsList[i], "/") { count++ @@ -133,7 +133,7 @@ func (s *openstackSwiftScaler) getOpenstackSwiftContainerObjectCount(ctx context } if s.metadata.objectLimit != defaultObjectLimit { - objectLimit, conversionError := strconv.Atoi(s.metadata.objectLimit) + objectLimit, conversionError := strconv.ParseInt(s.metadata.objectLimit, 10, 64) if conversionError != nil { openstackSwiftLog.Error(err, fmt.Sprintf("the objectLimit value provided is invalid: %v", s.metadata.objectLimit)) @@ -150,11 +150,11 @@ func (s *openstackSwiftScaler) getOpenstackSwiftContainerObjectCount(ctx context // Otherwise, if either prefix and/or delimiter are provided, return the total amount of objects if s.metadata.objectPrefix != defaultObjectPrefix || s.metadata.objectDelimiter != defaultObjectDelimiter { - return len(objectsList), nil + return int64(len(objectsList)), nil } // Finally, if nothing is set, return the standard total amount of objects inside the container - objectCount, conversionError := strconv.Atoi(resp.Header["X-Container-Object-Count"][0]) + objectCount, conversionError := strconv.ParseInt(resp.Header["X-Container-Object-Count"][0], 10, 64) return objectCount, conversionError } @@ -254,7 +254,7 @@ func parseOpenstackSwiftMetadata(config *ScalerConfig) (*openstackSwiftMetadata, } if val, ok := config.TriggerMetadata["objectCount"]; ok { - targetObjectCount, err := strconv.Atoi(val) + targetObjectCount, err := strconv.ParseInt(val, 10, 64) if err != nil { return nil, fmt.Errorf("objectCount parsing error: %s", err.Error()) } @@ -374,7 +374,7 @@ func (s *openstackSwiftScaler) GetMetrics(ctx context.Context, metricName string metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *resource.NewQuantity(int64(objectCount), resource.DecimalSI), + Value: *resource.NewQuantity(objectCount, resource.DecimalSI), Timestamp: metav1.Now(), } @@ -382,7 +382,7 @@ func (s *openstackSwiftScaler) GetMetrics(ctx context.Context, metricName string } func (s *openstackSwiftScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetObjectCount := resource.NewQuantity(int64(s.metadata.objectCount), resource.DecimalSI) + targetObjectCount := resource.NewQuantity(s.metadata.objectCount, resource.DecimalSI) var metricName string diff --git a/pkg/scalers/postgresql_scaler.go b/pkg/scalers/postgresql_scaler.go index 99a7fb7daf0..f1a7444aebb 100644 --- a/pkg/scalers/postgresql_scaler.go +++ b/pkg/scalers/postgresql_scaler.go @@ -24,7 +24,7 @@ type postgreSQLScaler struct { } type postgreSQLMetadata struct { - targetQueryValue int + targetQueryValue int64 connection string query string metricName string @@ -60,7 +60,7 @@ func parsePostgreSQLMetadata(config *ScalerConfig) (*postgreSQLMetadata, error) } if val, ok := config.TriggerMetadata["targetQueryValue"]; ok { - targetQueryValue, err := strconv.Atoi(val) + targetQueryValue, err := strconv.ParseInt(val, 10, 64) if err != nil { return nil, fmt.Errorf("queryValue parsing error %s", err.Error()) } @@ -161,8 +161,8 @@ func (s *postgreSQLScaler) IsActive(ctx context.Context) (bool, error) { return messages > 0, nil } -func (s *postgreSQLScaler) getActiveNumber(ctx context.Context) (int, error) { - var id int +func (s *postgreSQLScaler) getActiveNumber(ctx context.Context) (int64, error) { + var id int64 err := s.connection.QueryRowContext(ctx, s.metadata.query).Scan(&id) if err != nil { postgreSQLLog.Error(err, fmt.Sprintf("could not query postgreSQL: %s", err)) @@ -173,7 +173,7 @@ func (s *postgreSQLScaler) getActiveNumber(ctx context.Context) (int, error) { // GetMetricSpecForScaling returns the MetricSpec for the Horizontal Pod Autoscaler func (s *postgreSQLScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetQueryValue := resource.NewQuantity(int64(s.metadata.targetQueryValue), resource.DecimalSI) + targetQueryValue := resource.NewQuantity(s.metadata.targetQueryValue, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ @@ -199,7 +199,7 @@ func (s *postgreSQLScaler) GetMetrics(ctx context.Context, metricName string, me metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *resource.NewQuantity(int64(num), resource.DecimalSI), + Value: *resource.NewQuantity(num, resource.DecimalSI), Timestamp: metav1.Now(), } diff --git a/pkg/scalers/prometheus_scaler.go b/pkg/scalers/prometheus_scaler.go index a3870de0956..032302fb030 100644 --- a/pkg/scalers/prometheus_scaler.go +++ b/pkg/scalers/prometheus_scaler.go @@ -40,7 +40,7 @@ type prometheusMetadata struct { serverAddress string metricName string query string - threshold int + threshold int64 prometheusAuth *authentication.AuthMeta namespace string scalerIndex int @@ -109,7 +109,7 @@ func parsePrometheusMetadata(config *ScalerConfig) (meta *prometheusMetadata, er } if val, ok := config.TriggerMetadata[promThreshold]; ok && val != "" { - t, err := strconv.Atoi(val) + t, err := strconv.ParseInt(val, 10, 64) if err != nil { return nil, fmt.Errorf("error parsing %s: %s", promThreshold, err) } @@ -153,7 +153,7 @@ func (s *prometheusScaler) Close(context.Context) error { } func (s *prometheusScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetMetricValue := resource.NewQuantity(int64(s.metadata.threshold), resource.DecimalSI) + targetMetricValue := resource.NewQuantity(s.metadata.threshold, resource.DecimalSI) metricName := kedautil.NormalizeString(fmt.Sprintf("prometheus-%s", s.metadata.metricName)) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ diff --git a/pkg/scalers/rabbitmq_scaler.go b/pkg/scalers/rabbitmq_scaler.go index ee9f524388d..c78e8d95340 100644 --- a/pkg/scalers/rabbitmq_scaler.go +++ b/pkg/scalers/rabbitmq_scaler.go @@ -63,7 +63,7 @@ type rabbitMQScaler struct { type rabbitMQMetadata struct { queueName string mode string // QueueLength or MessageRate - value int // trigger value (queue length or publish/sec. rate) + value int64 // trigger value (queue length or publish/sec. rate) host string // connection string for either HTTP or AMQP protocol protocol string // either http or amqp protocol vhostName *string // override the vhost from the connection info @@ -279,7 +279,7 @@ func parseTrigger(meta *rabbitMQMetadata, config *ScalerConfig) (*rabbitMQMetada // Parse deprecated `queueLength` value if deprecatedQueueLengthPresent { - queueLength, err := strconv.Atoi(deprecatedQueueLengthValue) + queueLength, err := strconv.ParseInt(deprecatedQueueLengthValue, 10, 64) if err != nil { return nil, fmt.Errorf("can't parse %s: %s", rabbitQueueLengthMetricName, err) } @@ -305,7 +305,7 @@ func parseTrigger(meta *rabbitMQMetadata, config *ScalerConfig) (*rabbitMQMetada default: return nil, fmt.Errorf("trigger mode %s must be one of %s, %s", mode, rabbitModeQueueLength, rabbitModeMessageRate) } - triggerValue, err := strconv.Atoi(value) + triggerValue, err := strconv.ParseInt(value, 10, 64) if err != nil { return nil, fmt.Errorf("can't parse %s: %s", rabbitValueTriggerConfigName, err) } @@ -357,7 +357,7 @@ func (s *rabbitMQScaler) IsActive(ctx context.Context) (bool, error) { return publishRate > 0 || messages > 0, nil } -func (s *rabbitMQScaler) getQueueStatus() (int, float64, error) { +func (s *rabbitMQScaler) getQueueStatus() (int64, float64, error) { if s.metadata.protocol == httpProtocol { info, err := s.getQueueInfoViaHTTP() if err != nil { @@ -365,7 +365,7 @@ func (s *rabbitMQScaler) getQueueStatus() (int, float64, error) { } // messages count includes count of ready and unack-ed - return info.Messages, info.MessageStat.PublishDetail.Rate, nil + return int64(info.Messages), info.MessageStat.PublishDetail.Rate, nil } items, err := s.channel.QueueInspect(s.metadata.queueName) @@ -373,7 +373,7 @@ func (s *rabbitMQScaler) getQueueStatus() (int, float64, error) { return -1, -1, err } - return items.Messages, 0, nil + return int64(items.Messages), 0, nil } func getJSON(s *rabbitMQScaler, url string) (queueInfo, error) { @@ -459,7 +459,7 @@ func (s *rabbitMQScaler) getQueueInfoViaHTTP() (*queueInfo, error) { // GetMetricSpecForScaling returns the MetricSpec for the Horizontal Pod Autoscaler func (s *rabbitMQScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - metricValue := resource.NewQuantity(int64(s.metadata.value), resource.DecimalSI) + metricValue := resource.NewQuantity(s.metadata.value, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ Name: GenerateMetricNameWithIndex(s.metadata.scalerIndex, s.metadata.metricName), @@ -485,7 +485,7 @@ func (s *rabbitMQScaler) GetMetrics(ctx context.Context, metricName string, metr var metricValue resource.Quantity if s.metadata.mode == rabbitModeQueueLength { - metricValue = *resource.NewQuantity(int64(messages), resource.DecimalSI) + metricValue = *resource.NewQuantity(messages, resource.DecimalSI) } else { metricValue = *resource.NewMilliQuantity(int64(publishRate*1000), resource.DecimalSI) } diff --git a/pkg/scalers/redis_scaler.go b/pkg/scalers/redis_scaler.go index 0fa76c2eeb3..f9063573d7d 100644 --- a/pkg/scalers/redis_scaler.go +++ b/pkg/scalers/redis_scaler.go @@ -45,7 +45,7 @@ type redisConnectionInfo struct { } type redisMetadata struct { - targetListLength int + targetListLength int64 listName string databaseIndex int connectionInfo redisConnectionInfo @@ -191,7 +191,7 @@ func parseRedisMetadata(config *ScalerConfig, parserFn redisAddressParser) (*red meta.targetListLength = defaultTargetListLength if val, ok := config.TriggerMetadata["listLength"]; ok { - listLength, err := strconv.Atoi(val) + listLength, err := strconv.ParseInt(val, 10, 64) if err != nil { return nil, fmt.Errorf("list length parsing error %s", err.Error()) } @@ -234,7 +234,7 @@ func (s *redisScaler) Close(context.Context) error { // GetMetricSpecForScaling returns the metric spec for the HPA func (s *redisScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetListLengthQty := resource.NewQuantity(int64(s.metadata.targetListLength), resource.DecimalSI) + targetListLengthQty := resource.NewQuantity(s.metadata.targetListLength, resource.DecimalSI) metricName := kedautil.NormalizeString(fmt.Sprintf("redis-%s", s.metadata.listName)) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ diff --git a/pkg/scalers/redis_streams_scaler.go b/pkg/scalers/redis_streams_scaler.go index 1857837ac36..c093b027321 100644 --- a/pkg/scalers/redis_streams_scaler.go +++ b/pkg/scalers/redis_streams_scaler.go @@ -37,7 +37,7 @@ type redisStreamsScaler struct { } type redisStreamsMetadata struct { - targetPendingEntriesCount int + targetPendingEntriesCount int64 streamName string consumerGroupName string databaseIndex int @@ -167,7 +167,7 @@ func parseRedisStreamsMetadata(config *ScalerConfig, parseFn redisAddressParser) meta.targetPendingEntriesCount = defaultTargetPendingEntriesCount if val, ok := config.TriggerMetadata[pendingEntriesCountMetadata]; ok { - pendingEntriesCount, err := strconv.Atoi(val) + pendingEntriesCount, err := strconv.ParseInt(val, 10, 64) if err != nil { return nil, fmt.Errorf("error parsing pending entries count %v", err) } @@ -218,7 +218,7 @@ func (s *redisStreamsScaler) Close(context.Context) error { // GetMetricSpecForScaling returns the metric spec for the HPA func (s *redisStreamsScaler) GetMetricSpecForScaling(context.Context) []v2beta2.MetricSpec { - targetPendingEntriesCount := resource.NewQuantity(int64(s.metadata.targetPendingEntriesCount), resource.DecimalSI) + targetPendingEntriesCount := resource.NewQuantity(s.metadata.targetPendingEntriesCount, resource.DecimalSI) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ Name: GenerateMetricNameWithIndex(s.metadata.scalerIndex, kedautil.NormalizeString(fmt.Sprintf("redis-streams-%s", s.metadata.streamName))), diff --git a/pkg/scalers/redis_streams_scaler_test.go b/pkg/scalers/redis_streams_scaler_test.go index d14cc43aa0b..5ecdb0fb60f 100644 --- a/pkg/scalers/redis_streams_scaler_test.go +++ b/pkg/scalers/redis_streams_scaler_test.go @@ -51,7 +51,7 @@ func TestParseRedisStreamsMetadata(t *testing.T) { assert.Nil(t, err) assert.Equal(t, m.streamName, tc.metadata[streamNameMetadata]) assert.Equal(t, m.consumerGroupName, tc.metadata[consumerGroupNameMetadata]) - assert.Equal(t, strconv.Itoa(m.targetPendingEntriesCount), tc.metadata[pendingEntriesCountMetadata]) + assert.Equal(t, strconv.FormatInt(m.targetPendingEntriesCount, 10), tc.metadata[pendingEntriesCountMetadata]) if authParams != nil { // if authParam is used assert.Equal(t, m.connectionInfo.username, authParams[usernameMetadata]) diff --git a/pkg/scalers/selenium_grid_scaler.go b/pkg/scalers/selenium_grid_scaler.go index ae11d702a7b..548a10ce825 100644 --- a/pkg/scalers/selenium_grid_scaler.go +++ b/pkg/scalers/selenium_grid_scaler.go @@ -133,7 +133,7 @@ func (s *seleniumGridScaler) GetMetrics(ctx context.Context, metricName string, metric := external_metrics.ExternalMetricValue{ MetricName: metricName, - Value: *v, + Value: *resource.NewQuantity(v, resource.DecimalSI), Timestamp: metav1.Now(), } @@ -164,51 +164,51 @@ func (s *seleniumGridScaler) IsActive(ctx context.Context) (bool, error) { return false, err } - return v.AsApproximateFloat64() > 0.0, nil + return v > 0, nil } -func (s *seleniumGridScaler) getSessionsCount(ctx context.Context) (*resource.Quantity, error) { +func (s *seleniumGridScaler) getSessionsCount(ctx context.Context) (int64, error) { body, err := json.Marshal(map[string]string{ "query": "{ grid { maxSession }, sessionsInfo { sessionQueueRequests, sessions { id, capabilities, nodeId } } }", }) if err != nil { - return nil, err + return -1, err } req, err := http.NewRequestWithContext(ctx, "POST", s.metadata.url, bytes.NewBuffer(body)) if err != nil { - return nil, err + return -1, err } res, err := s.client.Do(req) if err != nil { - return nil, err + return -1, err } if res.StatusCode != http.StatusOK { msg := fmt.Sprintf("selenium grid returned %d", res.StatusCode) - return nil, errors.New(msg) + return -1, errors.New(msg) } defer res.Body.Close() b, err := ioutil.ReadAll(res.Body) if err != nil { - return nil, err + return -1, err } v, err := getCountFromSeleniumResponse(b, s.metadata.browserName, s.metadata.browserVersion) if err != nil { - return nil, err + return -1, err } return v, nil } -func getCountFromSeleniumResponse(b []byte, browserName string, browserVersion string) (*resource.Quantity, error) { +func getCountFromSeleniumResponse(b []byte, browserName string, browserVersion string) (int64, error) { var count int64 var seleniumResponse = seleniumResponse{} if err := json.Unmarshal(b, &seleniumResponse); err != nil { - return nil, err + return 0, err } var sessionQueueRequests = seleniumResponse.Data.SessionsInfo.SessionQueueRequests @@ -249,5 +249,5 @@ func getCountFromSeleniumResponse(b []byte, browserName string, browserVersion s count = (count + gridMaxSession - 1) / gridMaxSession } - return resource.NewQuantity(count, resource.DecimalSI), nil + return count, nil } diff --git a/pkg/scalers/selenium_grid_scaler_test.go b/pkg/scalers/selenium_grid_scaler_test.go index 6a7ada1632b..1a6d50dcfe3 100644 --- a/pkg/scalers/selenium_grid_scaler_test.go +++ b/pkg/scalers/selenium_grid_scaler_test.go @@ -3,8 +3,6 @@ package scalers import ( "reflect" "testing" - - "k8s.io/apimachinery/pkg/api/resource" ) func Test_getCountFromSeleniumResponse(t *testing.T) { @@ -16,7 +14,7 @@ func Test_getCountFromSeleniumResponse(t *testing.T) { tests := []struct { name string args args - want *resource.Quantity + want int64 wantErr bool }{ { @@ -25,7 +23,7 @@ func Test_getCountFromSeleniumResponse(t *testing.T) { b: []byte(nil), browserName: "", }, - // want: resource.NewQuantity(0, resource.DecimalSI), + // want: 0, wantErr: true, }, { @@ -53,7 +51,7 @@ func Test_getCountFromSeleniumResponse(t *testing.T) { }`), browserName: "", }, - want: resource.NewQuantity(0, resource.DecimalSI), + want: 0, wantErr: false, }, { @@ -79,7 +77,7 @@ func Test_getCountFromSeleniumResponse(t *testing.T) { browserName: "", browserVersion: "latest", }, - want: resource.NewQuantity(0, resource.DecimalSI), + want: 0, wantErr: false, }, { @@ -99,7 +97,7 @@ func Test_getCountFromSeleniumResponse(t *testing.T) { browserName: "chrome", browserVersion: "latest", }, - want: resource.NewQuantity(2, resource.DecimalSI), + want: 2, wantErr: false, }, { @@ -119,7 +117,7 @@ func Test_getCountFromSeleniumResponse(t *testing.T) { browserName: "chrome", browserVersion: "latest", }, - want: resource.NewQuantity(1, resource.DecimalSI), + want: 1, wantErr: false, }, { @@ -145,7 +143,7 @@ func Test_getCountFromSeleniumResponse(t *testing.T) { browserName: "chrome", browserVersion: "latest", }, - want: resource.NewQuantity(3, resource.DecimalSI), + want: 3, wantErr: false, }, { @@ -171,7 +169,7 @@ func Test_getCountFromSeleniumResponse(t *testing.T) { browserName: "chrome", browserVersion: "91.0", }, - want: resource.NewQuantity(2, resource.DecimalSI), + want: 2, wantErr: false, }, } diff --git a/pkg/scalers/solace_scaler.go b/pkg/scalers/solace_scaler.go index de471b50143..9fbd8b2b372 100644 --- a/pkg/scalers/solace_scaler.go +++ b/pkg/scalers/solace_scaler.go @@ -73,8 +73,8 @@ type SolaceMetadata struct { // Basic Auth Password password string // Target Message Count - msgCountTarget int - msgSpoolUsageTarget int // Spool Use Target in Megabytes + msgCountTarget int64 + msgSpoolUsageTarget int64 // Spool Use Target in Megabytes // Scaler index scalerIndex int } @@ -152,7 +152,7 @@ func parseSolaceMetadata(config *ScalerConfig) (*SolaceMetadata, error) { // GET METRIC TARGET VALUES // GET msgCountTarget if val, ok := config.TriggerMetadata[solaceMetaMsgCountTarget]; ok && val != "" { - if msgCount, err := strconv.Atoi(val); err == nil { + if msgCount, err := strconv.ParseInt(val, 10, 64); err == nil { meta.msgCountTarget = msgCount } else { return nil, fmt.Errorf("can't parse [%s], not a valid integer: %s", solaceMetaMsgCountTarget, err) @@ -160,7 +160,7 @@ func parseSolaceMetadata(config *ScalerConfig) (*SolaceMetadata, error) { } // GET msgSpoolUsageTarget if val, ok := config.TriggerMetadata[solaceMetaMsgSpoolUsageTarget]; ok && val != "" { - if msgSpoolUsage, err := strconv.Atoi(val); err == nil { + if msgSpoolUsage, err := strconv.ParseInt(val, 10, 64); err == nil { meta.msgSpoolUsageTarget = msgSpoolUsage * 1024 * 1024 } else { return nil, fmt.Errorf("can't parse [%s], not a valid integer: %s", solaceMetaMsgSpoolUsageTarget, err) @@ -243,7 +243,7 @@ func (s *SolaceScaler) GetMetricSpecForScaling(context.Context) []v2beta2.Metric var metricSpecList []v2beta2.MetricSpec // Message Count Target Spec if s.metadata.msgCountTarget > 0 { - targetMetricValue := resource.NewQuantity(int64(s.metadata.msgCountTarget), resource.DecimalSI) + targetMetricValue := resource.NewQuantity(s.metadata.msgCountTarget, resource.DecimalSI) metricName := kedautil.NormalizeString(fmt.Sprintf("solace-%s-%s", s.metadata.queueName, solaceTriggermsgcount)) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ @@ -259,7 +259,7 @@ func (s *SolaceScaler) GetMetricSpecForScaling(context.Context) []v2beta2.Metric } // Message Spool Usage Target Spec if s.metadata.msgSpoolUsageTarget > 0 { - targetMetricValue := resource.NewQuantity(int64(s.metadata.msgSpoolUsageTarget), resource.DecimalSI) + targetMetricValue := resource.NewQuantity(s.metadata.msgSpoolUsageTarget, resource.DecimalSI) metricName := kedautil.NormalizeString(fmt.Sprintf("solace-%s-%s", s.metadata.queueName, solaceTriggermsgspoolusage)) externalMetric := &v2beta2.ExternalMetricSource{ Metric: v2beta2.MetricIdentifier{ diff --git a/pkg/scaling/cache/scalers_cache_test.go b/pkg/scaling/cache/scalers_cache_test.go index 6395e9bce54..694ab68705f 100644 --- a/pkg/scaling/cache/scalers_cache_test.go +++ b/pkg/scaling/cache/scalers_cache_test.go @@ -49,8 +49,8 @@ func TestTargetAverageValue(t *testing.T) { assert.Equal(t, int64(4), targetAverageValue) } -func createMetricSpec(averageValue int) v2beta2.MetricSpec { - qty := resource.NewQuantity(int64(averageValue), resource.DecimalSI) +func createMetricSpec(averageValue int64) v2beta2.MetricSpec { + qty := resource.NewQuantity(averageValue, resource.DecimalSI) return v2beta2.MetricSpec{ External: &v2beta2.ExternalMetricSource{ Target: v2beta2.MetricTarget{ @@ -68,9 +68,9 @@ func TestIsScaledJobActive(t *testing.T) { // Assme 1 trigger only scaledJobSingle := createScaledObject(100, "") // testing default = max scalerSingle := []ScalerBuilder{{ - Scaler: createScaler(ctrl, int64(20), int32(2), true), + Scaler: createScaler(ctrl, int64(20), int64(2), true), Factory: func() (scalers.Scaler, error) { - return createScaler(ctrl, int64(20), int32(2), true), nil + return createScaler(ctrl, int64(20), int64(2), true), nil }, }} @@ -88,9 +88,9 @@ func TestIsScaledJobActive(t *testing.T) { // Non-Active trigger only scalerSingle = []ScalerBuilder{{ - Scaler: createScaler(ctrl, int64(0), int32(2), false), + Scaler: createScaler(ctrl, int64(0), int64(2), false), Factory: func() (scalers.Scaler, error) { - return createScaler(ctrl, int64(0), int32(2), false), nil + return createScaler(ctrl, int64(0), int64(2), false), nil }, }} @@ -176,16 +176,16 @@ func newScalerTestData( MaxReplicaCount: int32(maxReplicaCount), MultipleScalersCalculation: multipleScalersCalculation, Scaler1QueueLength: int64(scaler1QueueLength), - Scaler1AverageValue: int32(scaler1AverageValue), + Scaler1AverageValue: int64(scaler1AverageValue), Scaler1IsActive: scaler1IsActive, Scaler2QueueLength: int64(scaler2QueueLength), - Scaler2AverageValue: int32(scaler2AverageValue), + Scaler2AverageValue: int64(scaler2AverageValue), Scaler2IsActive: scaler2IsActive, Scaler3QueueLength: int64(scaler3QueueLength), - Scaler3AverageValue: int32(scaler3AverageValue), + Scaler3AverageValue: int64(scaler3AverageValue), Scaler3IsActive: scaler3IsActive, Scaler4QueueLength: int64(scaler4QueueLength), - Scaler4AverageValue: int32(scaler4AverageValue), + Scaler4AverageValue: int64(scaler4AverageValue), Scaler4IsActive: scaler4IsActive, ResultIsActive: resultIsActive, ResultQueueLength: int64(resultQueueLength), @@ -197,16 +197,16 @@ type scalerTestData struct { MaxReplicaCount int32 MultipleScalersCalculation string Scaler1QueueLength int64 - Scaler1AverageValue int32 + Scaler1AverageValue int64 Scaler1IsActive bool Scaler2QueueLength int64 - Scaler2AverageValue int32 + Scaler2AverageValue int64 Scaler2IsActive bool Scaler3QueueLength int64 - Scaler3AverageValue int32 + Scaler3AverageValue int64 Scaler3IsActive bool Scaler4QueueLength int64 - Scaler4AverageValue int32 + Scaler4AverageValue int64 Scaler4IsActive bool ResultIsActive bool ResultQueueLength int64 @@ -231,10 +231,10 @@ func createScaledObject(maxReplicaCount int32, multipleScalersCalculation string } } -func createScaler(ctrl *gomock.Controller, queueLength int64, averageValue int32, isActive bool) *mock_scalers.MockScaler { +func createScaler(ctrl *gomock.Controller, queueLength int64, averageValue int64, isActive bool) *mock_scalers.MockScaler { metricName := "queueLength" scaler := mock_scalers.NewMockScaler(ctrl) - metricsSpecs := []v2beta2.MetricSpec{createMetricSpec(int(averageValue))} + metricsSpecs := []v2beta2.MetricSpec{createMetricSpec(averageValue)} metrics := []external_metrics.ExternalMetricValue{ { MetricName: metricName, diff --git a/pkg/scaling/scale_handler_test.go b/pkg/scaling/scale_handler_test.go index e2399774a52..57ec69eba8b 100644 --- a/pkg/scaling/scale_handler_test.go +++ b/pkg/scaling/scale_handler_test.go @@ -134,8 +134,8 @@ func TestCheckScaledObjectFindFirstActiveNotIgnoreOthers(t *testing.T) { assert.Equal(t, true, isError) } -func createMetricSpec(averageValue int) v2beta2.MetricSpec { - qty := resource.NewQuantity(int64(averageValue), resource.DecimalSI) +func createMetricSpec(averageValue int64) v2beta2.MetricSpec { + qty := resource.NewQuantity(averageValue, resource.DecimalSI) return v2beta2.MetricSpec{ External: &v2beta2.ExternalMetricSource{ Target: v2beta2.MetricTarget{