def handle_configure(cmd, defaults=None, list_defaults=None, scope=None): from azure.cli.core.cloud import cloud_forbid_telemetry, get_active_cloud_name if defaults: defaults_section = cmd.cli_ctx.config.defaults_section_name with ConfiguredDefaultSetter(cmd.cli_ctx.config, scope.lower() == 'local'): for default in defaults: parts = default.split('=', 1) if len(parts) == 1: raise CLIError('usage error: --defaults STRING=STRING STRING=STRING ...') cmd.cli_ctx.config.set_value(defaults_section, parts[0], _normalize_config_value(parts[1])) return if list_defaults: with ConfiguredDefaultSetter(cmd.cli_ctx.config, scope.lower() == 'local'): defaults_result = cmd.cli_ctx.config.items(cmd.cli_ctx.config.defaults_section_name) return [x for x in defaults_result if x.get('value')] # if nothing supplied, we go interactively try: print(MSG_INTRO) cloud_forbid_telemetry = cloud_forbid_telemetry(cmd.cli_ctx) _handle_global_configuration(cmd.cli_ctx.config, cloud_forbid_telemetry) print(MSG_CLOSING) if cloud_forbid_telemetry: logger.warning(WARNING_CLOUD_FORBID_TELEMETRY, get_active_cloud_name(cmd.cli_ctx)) # TODO: log_telemetry('configure', **answers) except NoTTYException: raise CLIError('This command is interactive and no tty available.') except (EOFError, KeyboardInterrupt): print()
def is_telemetry_enabled(): from azure.cli.core.cloud import cloud_forbid_telemetry if cloud_forbid_telemetry(_session.application): return False return _get_config().getboolean('core', 'collect_telemetry', fallback=True)