Hi All, This patch fixes bug - https://fedorahosted.org/freeipa/ticket/3406
Thanks, Abhijeet Kasurde
From d1ede043e6d5d0342433e4eb769b0d48b0e4914c Mon Sep 17 00:00:00 2001 From: Abhijeet Kasurde <akasu...@redhat.com> Date: Mon, 10 Aug 2015 16:56:29 +0530 Subject: [PATCH] Added try/except block for ipautil Added error handling for user input in order to handle various errors like ValueError and EOFError in ipautil. https://fedorahosted.org/freeipa/ticket/3406 --- ipapython/ipautil.py | 48 ++++++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/ipapython/ipautil.py b/ipapython/ipautil.py index 88e89706b8e2aa6dea80809510d88bceaa836e85..bc6530bdc940239ce9e4f3af6021b078460c5120 100644 --- a/ipapython/ipautil.py +++ b/ipapython/ipautil.py @@ -746,30 +746,38 @@ def ipa_generate_password(characters=None,pwd_len=None): def user_input(prompt, default = None, allow_empty = True): if default == None: while True: - ret = raw_input("%s: " % prompt) - if allow_empty or ret.strip(): - return ret + try: + ret = raw_input("%s: " % prompt) + if allow_empty or ret.strip(): + return ret + except EOFError: + pass if isinstance(default, basestring): while True: - ret = raw_input("%s [%s]: " % (prompt, default)) - if not ret and (allow_empty or default): - return default - elif ret.strip(): - return ret + try: + ret = raw_input("%s [%s]: " % (prompt, default)) + if not ret and (allow_empty or default): + return default + elif ret.strip(): + return ret + except EOFError: + pass + if isinstance(default, bool): - if default: - choice = "yes" - else: - choice = "no" + choice = "yes" if default else "no" while True: - ret = raw_input("%s [%s]: " % (prompt, choice)) - if not ret: - return default - elif ret.lower()[0] == "y": - return True - elif ret.lower()[0] == "n": - return False + try: + ret = raw_input("%s [%s]: " % (prompt, choice)) + if not ret: + return default + elif ret.lower()[0] == "y": + return True + elif ret.lower()[0] == "n": + return False + except EOFError: + pass + if isinstance(default, int): while True: try: @@ -777,7 +785,7 @@ def user_input(prompt, default = None, allow_empty = True): if not ret: return default ret = int(ret) - except ValueError: + except EOFError, ValueError: pass else: return ret -- 2.4.3
-- Manage your subscription for the Freeipa-devel mailing list: https://www.redhat.com/mailman/listinfo/freeipa-devel Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code