From: Thanh Ha Date: Mon, 29 Oct 2018 23:42:59 +0000 (-0400) Subject: Refactor config sys error handler X-Git-Tag: v0.19.0~21^2~1 X-Git-Url: https://gerrit.linuxfoundation.org/infra/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F37%2F13237%2F3;p=releng%2Flftools.git Refactor config sys error handler Use exception system to allow downstream users to raise their own exceptions. Change-Id: I184eadf93f101cbe96ea5a1e10406dac6c906767 Signed-off-by: Thanh Ha --- diff --git a/lftools/cli/config.py b/lftools/cli/config.py index ad088492..29e24421 100644 --- a/lftools/cli/config.py +++ b/lftools/cli/config.py @@ -12,8 +12,10 @@ __author__ = 'Thanh Ha' import logging +import sys import click +from six.moves import configparser from lftools import config @@ -33,7 +35,13 @@ def config_sys(ctx): @click.pass_context def get_setting(ctx, section, option): """Print section or setting from config file.""" - result = config.get_setting(section, option) + try: + result = config.get_setting(section, option) + except (configparser.NoOptionError, + configparser.NoSectionError) as e: + log.error(e) + sys.exit(1) + if isinstance(result, list): for i in result: log.info('{}: {}'.format(i, config.get_setting(section, i))) diff --git a/lftools/config.py b/lftools/config.py index e4d94b59..4b969be7 100644 --- a/lftools/config.py +++ b/lftools/config.py @@ -13,7 +13,6 @@ __author__ = 'Thanh Ha' import logging -import sys from six.moves import configparser from xdg import XDG_CONFIG_HOME @@ -36,20 +35,15 @@ def get_setting(section, option=None): if option: try: return config.get(section, option) - except configparser.NoOptionError: - print(section, option) - log.error('Config option does not exist.') - sys.exit(1) - except configparser.NoSectionError: - log.error('Config section does not exist.') - sys.exit(1) + except (configparser.NoOptionError, + configparser.NoSectionError) as e: + raise e else: try: return config.options(section) - except configparser.NoSectionError: - log.error('Config section does not exist.') - sys.exit(1) + except configparser.NoSectionError as e: + raise e def set_setting(section, option, value):