diff --git a/scripts/uncloud b/scripts/uncloud index 1975f84..b8ebafc 100755 --- a/scripts/uncloud +++ b/scripts/uncloud @@ -55,20 +55,22 @@ if __name__ == '__main__': arg_parser.print_help() else: arguments = vars(args) - # print(arguments) - # print(etcd_parser) - name = arguments.pop('command') mod = importlib.import_module('uncloud.{}.main'.format(name)) main = getattr(mod, 'main') - if component in ETCD_COMPONENTS: + # If the component requires etcd3, we import it and catch the + # etcd3.exceptions.ConnectionFailedError + if name in ETCD_COMPONENTS: import etcd3 + try: main(arguments) except UncloudException as err: logger.error(err) sys.exit(1) + except etcd3.exceptions.ConnectionFailedError as err: + logger.error("Cannot connect to etcd") except Exception as err: logger.exception(err) sys.exit(1)