From a54734e9ae92a0e907e38146d5c3796218b1d0c0 Mon Sep 17 00:00:00 2001 From: Ritikaa96 Date: Thu, 12 Aug 2021 23:21:01 +0530 Subject: [PATCH 1/2] validation and check in cron scaler for same start and end case Signed-off-by: Ritikaa96 --- pkg/scalers/cron_scaler.go | 3 +++ pkg/scalers/cron_scaler_test.go | 1 + 2 files changed, 4 insertions(+) diff --git a/pkg/scalers/cron_scaler.go b/pkg/scalers/cron_scaler.go index 81b98922a25..71fbf2a122d 100644 --- a/pkg/scalers/cron_scaler.go +++ b/pkg/scalers/cron_scaler.go @@ -89,6 +89,9 @@ func parseCronMetadata(config *ScalerConfig) (*cronMetadata, error) { } else { return nil, fmt.Errorf("no end schedule specified. %s", config.TriggerMetadata) } + if meta.start == meta.end { + return nil, fmt.Errorf("error parsing schedule. %s: start and end can not have exactly same time input", config.TriggerMetadata) + } if val, ok := config.TriggerMetadata["desiredReplicas"]; ok && val != "" { metadataDesiredReplicas, err := strconv.Atoi(val) if err != nil { diff --git a/pkg/scalers/cron_scaler_test.go b/pkg/scalers/cron_scaler_test.go index 68e841c2c29..0a0c2975dba 100644 --- a/pkg/scalers/cron_scaler_test.go +++ b/pkg/scalers/cron_scaler_test.go @@ -36,6 +36,7 @@ var testCronMetadata = []parseCronMetadataTestData{ {map[string]string{"timezone": "Asia/Kolkata", "start": "-30 * * * *", "end": "45 * * * *", "desiredReplicas": "10"}, true}, {map[string]string{"timezone": "Asia/Kolkata", "start": "30 * * * *", "end": "-50 * * * *", "desiredReplicas": "10"}, true}, {map[string]string{"timezone": "Asia/Kolkata", "start": "30 * * * *", "end": "50 * * -3 *", "desiredReplicas": "10"}, true}, + {map[string]string{"timezone": "Asia/Kolkata", "start": "30 * * * *", "end": "30 * * * *", "desiredReplicas": "10"}, true}, } var cronMetricIdentifiers = []cronMetricIdentifier{ From 50209fec85b3732ec3f51a92dbf49db2a3c30842 Mon Sep 17 00:00:00 2001 From: Ritikaa96 Date: Wed, 18 Aug 2021 15:40:46 +0530 Subject: [PATCH 2/2] updating changelog Signed-off-by: Ritikaa96 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d72d239bb2b..8a0ea210164 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,7 +26,7 @@ ### Improvements -- TODO ([#XXX](https://github.com/kedacore/keda/pull/XXX)) +- Improve validation in Cron scaler in case start & end input is same.([#2032](https://github.com/kedacore/keda/pull/2032)) ### Breaking Changes