azext_iot/_validators.py (31 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 azext_iot.assets.user_messages import error_no_hub_or_login_on_input from azext_iot.operations.generic import _process_top from azure.cli.core.azclierror import RequiredArgumentMissingError def mode2_iot_login_handler(cmd, namespace): if cmd.name.startswith('iot'): args = vars(namespace) if 'login' in args: login_value = args['login'] iot_cmd_type = None entity_value = None offline = None if 'hub_name' in args: iot_cmd_type = 'IoT Hub' entity_value = args['hub_name'] if 'hub_name_or_hostname' in args: iot_cmd_type = 'IoT Hub' entity_value = args['hub_name_or_hostname'] elif 'dps_name' in args: iot_cmd_type = 'DPS' entity_value = args['dps_name'] if 'connection_string' in args: # support offline az iot hub generate-sas-token offline = args['connection_string'] elif 'symmetric_key' in args: # support offline az iot dps compute-device-keys offline = args['symmetric_key'] elif 'id_scope' in args: offline = args['id_scope'] if not any([login_value, entity_value, offline]): raise RequiredArgumentMissingError(error_no_hub_or_login_on_input(iot_cmd_type)) def process_top(namespace): if hasattr(namespace, "top"): namespace.top = _process_top(top=namespace.top)