From 64b8f68d493a85988448db62d6e421b021a71f34 Mon Sep 17 00:00:00 2001 From: RakeshMohan-MSFT <49954584+RakeshMohanMSFT@users.noreply.github.com> Date: Mon, 27 Jun 2022 20:03:05 +0530 Subject: [PATCH 1/4] {servicebus} | Fixing error message raised on a malformed ISO-8601 duration Fixes https://github.com/Azure/azure-cli/issues/23013 --- src/azure-cli/azure/cli/command_modules/servicebus/custom.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/azure-cli/azure/cli/command_modules/servicebus/custom.py b/src/azure-cli/azure/cli/command_modules/servicebus/custom.py index b610503717e..a09fbd77aad 100644 --- a/src/azure-cli/azure/cli/command_modules/servicebus/custom.py +++ b/src/azure-cli/azure/cli/command_modules/servicebus/custom.py @@ -625,7 +625,10 @@ def return_valid_duration(update_value, current_value=None): return current_value if iso8601pattern.match(value_toreturn): - time_duration = parse_duration(value_toreturn) + try: + time_duration = parse_duration(value_toreturn) + except: + raise CLIError("Unable to parse duration string %r" % value_toreturn) if isinstance(time_duration, timedelta): if time_duration <= timedelta(days=DURATION_DAYS, minutes=DURATION_MIN, seconds=DURATION_SECS): From 76053b32d8347acb5fa1b0d7bf0234aef001258e Mon Sep 17 00:00:00 2001 From: RakeshMohan-MSFT <49954584+RakeshMohanMSFT@users.noreply.github.com> Date: Mon, 27 Jun 2022 20:53:10 +0530 Subject: [PATCH 2/4] {Service Bus} | Correct namespace issue Correct namespace issue --- src/azure-cli/azure/cli/command_modules/servicebus/custom.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/azure-cli/azure/cli/command_modules/servicebus/custom.py b/src/azure-cli/azure/cli/command_modules/servicebus/custom.py index a09fbd77aad..5a2e75c3b3c 100644 --- a/src/azure-cli/azure/cli/command_modules/servicebus/custom.py +++ b/src/azure-cli/azure/cli/command_modules/servicebus/custom.py @@ -618,6 +618,7 @@ def return_valid_duration(update_value, current_value=None): from datetime import timedelta from isodate import parse_duration from isodate import Duration + from knack.util import CLIError from azure.cli.command_modules.servicebus.constants import DURATION_SECS, DURATION_MIN, DURATION_DAYS if update_value is not None: value_toreturn = update_value From 2c04d9355a629f48e97be3c46b507972dbd92808 Mon Sep 17 00:00:00 2001 From: RakeshMohan-MSFT <49954584+RakeshMohanMSFT@users.noreply.github.com> Date: Tue, 28 Jun 2022 13:34:29 +0530 Subject: [PATCH 3/4] {servicebus} | updated relevant error type updated relevant error type --- src/azure-cli/azure/cli/command_modules/servicebus/custom.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/servicebus/custom.py b/src/azure-cli/azure/cli/command_modules/servicebus/custom.py index 5a2e75c3b3c..e4e15d257fb 100644 --- a/src/azure-cli/azure/cli/command_modules/servicebus/custom.py +++ b/src/azure-cli/azure/cli/command_modules/servicebus/custom.py @@ -618,7 +618,7 @@ def return_valid_duration(update_value, current_value=None): from datetime import timedelta from isodate import parse_duration from isodate import Duration - from knack.util import CLIError + from azure.cli.core.azclierror import InvalidArgumentValueError from azure.cli.command_modules.servicebus.constants import DURATION_SECS, DURATION_MIN, DURATION_DAYS if update_value is not None: value_toreturn = update_value @@ -629,7 +629,7 @@ def return_valid_duration(update_value, current_value=None): try: time_duration = parse_duration(value_toreturn) except: - raise CLIError("Unable to parse duration string %r" % value_toreturn) + raise raise InvalidArgumentValueError("Unable to parse provided ISO 8601 format duration %r" % value_toreturn) if isinstance(time_duration, timedelta): if time_duration <= timedelta(days=DURATION_DAYS, minutes=DURATION_MIN, seconds=DURATION_SECS): From 3362cdd136c9080c81745ec3a68b18a9454cec4b Mon Sep 17 00:00:00 2001 From: RakeshMohan-MSFT <49954584+RakeshMohanMSFT@users.noreply.github.com> Date: Tue, 28 Jun 2022 13:48:53 +0530 Subject: [PATCH 4/4] {servicebus} | Correcting syntax Correcting syntax --- src/azure-cli/azure/cli/command_modules/servicebus/custom.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/azure-cli/azure/cli/command_modules/servicebus/custom.py b/src/azure-cli/azure/cli/command_modules/servicebus/custom.py index e4e15d257fb..b6aaeb9b4a5 100644 --- a/src/azure-cli/azure/cli/command_modules/servicebus/custom.py +++ b/src/azure-cli/azure/cli/command_modules/servicebus/custom.py @@ -629,7 +629,7 @@ def return_valid_duration(update_value, current_value=None): try: time_duration = parse_duration(value_toreturn) except: - raise raise InvalidArgumentValueError("Unable to parse provided ISO 8601 format duration %r" % value_toreturn) + raise InvalidArgumentValueError("Unable to parse provided ISO 8601 format duration %r" % value_toreturn) if isinstance(time_duration, timedelta): if time_duration <= timedelta(days=DURATION_DAYS, minutes=DURATION_MIN, seconds=DURATION_SECS):