def _process_additional_configuration()

in azext_edge/edge/providers/rpsaas/adr/asset_endpoint_profiles.py [0:0]


def _process_additional_configuration(configuration: str) -> Optional[str]:
    from ....util import read_file_content
    inline_json = False
    if not configuration:
        return

    try:
        logger.debug("Processing additional configuration.")
        configuration = read_file_content(configuration)
        if not configuration:
            raise InvalidArgumentValueError("Given file is empty.")
    except FileOperationError:
        inline_json = True
        logger.debug("Given additional configuration is not a file.")

    # make sure it is an actual json
    try:
        json.loads(configuration)
        return configuration
    except json.JSONDecodeError as e:
        error_msg = "Additional configuration is not a valid JSON. "
        if inline_json:
            error_msg += "For examples of valid JSON formating, please see https://aka.ms/inline-json-examples "
        raise InvalidArgumentValueError(
            f"{error_msg}\n{e.msg}"
        )