in azext_iot/operations/hub.py [0:0]
def _process_config_content(content, config_type):
from knack.util import to_snake_case
# Supports scenario where configuration payload is contained in 'content' key
if "content" in content:
content = content["content"]
# Create new config dict to remove superflous properties
processed_content = {}
if config_type == ConfigType.adm:
valid_adm_keys = ["deviceContent", "moduleContent"]
if not all(key in content for key in valid_adm_keys):
for key in valid_adm_keys:
if key in content:
processed_content[to_snake_case(key)] = content[key]
return processed_content
raise InvalidArgumentValueError(
"Automatic device configuration payloads require property: {}".format(
" or ".join(map(str, valid_adm_keys))
)
)
if config_type == ConfigType.edge or config_type == ConfigType.layered:
valid_edge_key = "modulesContent"
legacy_edge_key = "moduleContent"
if valid_edge_key in content:
processed_content[valid_edge_key] = content[valid_edge_key]
elif legacy_edge_key in content:
logger.warning(
"'%s' is deprecated for edge deployments. Use '%s' instead - request is still processing...",
legacy_edge_key,
valid_edge_key,
)
processed_content[valid_edge_key] = content[legacy_edge_key]
if processed_content:
# Schema based validation currently for IoT edge deployment only
if config_type == ConfigType.edge:
_validate_payload_schema(processed_content)
processed_content[to_snake_case(valid_edge_key)] = processed_content[
valid_edge_key
]
del processed_content[valid_edge_key]
return processed_content
raise InvalidArgumentValueError(
"Edge deployment payloads require property: {}".format(valid_edge_key)
)