From 19d9684a673d360a27d78fb90cc0165425a0ddd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Thu, 18 May 2017 09:59:09 +0200 Subject: [PATCH] Raise ConfigurationMissingError instead of SystemExit --- pillar/__init__.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pillar/__init__.py b/pillar/__init__.py index abe897da..37d17efe 100644 --- a/pillar/__init__.py +++ b/pillar/__init__.py @@ -36,6 +36,13 @@ empty_settings = { } +class ConfigurationMissingError(SystemExit): + """Raised when a vital configuration key is missing. + + Causes Python to exit. + """ + + class PillarServer(Eve): def __init__(self, app_root, **kwargs): kwargs.setdefault('validator', custom_field_validation.ValidateCustomFields) @@ -152,13 +159,13 @@ class PillarServer(Eve): os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = \ self.config['GCLOUD_APP_CREDENTIALS'] except KeyError: - raise SystemExit('GCLOUD_APP_CREDENTIALS configuration is missing') + raise ConfigurationMissingError('GCLOUD_APP_CREDENTIALS configuration is missing') # Storage backend (GCS) try: os.environ['GCLOUD_PROJECT'] = self.config['GCLOUD_PROJECT'] except KeyError: - raise SystemExit('GCLOUD_PROJECT configuration value is missing') + raise ConfigurationMissingError('GCLOUD_PROJECT configuration value is missing') def _config_algolia(self): # Algolia search