azext_iot/deviceupdate/providers/utility.py (15 lines of code) (raw):

# coding=utf-8 # -------------------------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- from knack.log import get_logger from azext_iot.common.utility import shell_safe_json_parse from azure.cli.core.azclierror import InvalidArgumentValueError logger = get_logger(__name__) invalid_arg_error_str = "Failure processing json string for '{property_name}'. Interpreted value '{inline_json}'. " use_help_warning = "Please append --help to review examples and json input rules across supported shells." def parse_manifest_json(inline_json: str, property_name: str) -> dict: try: result = shell_safe_json_parse(inline_json) if not isinstance(result, dict): raise InvalidArgumentValueError(f"{property_name} must be an object, parsed type: {type(result)}.") return result except Exception: logger.warning(use_help_warning) raise InvalidArgumentValueError(invalid_arg_error_str.format(property_name=property_name, inline_json=inline_json))