throw a better exception when environment variables are missing

Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
This commit is contained in:
Nico Schottelius 2013-08-19 13:34:29 +02:00
parent 2f5de23ae9
commit 866645679a

View file

@ -28,7 +28,14 @@ import sys
import cdist
from cdist import core
class MissingEnvironmentVariable(cdist.Error):
class MissingRequiredEnvironmentVariableError(cdist.Error):
def __init__(self, name):
self.name = name
self.message = "Emulator requires the environment variable %s to be setup" % self.name
def __str__(self):
return self.message
class Emulator(object):
def __init__(self, argv, stdin=sys.stdin.buffer, env=os.environ):
@ -46,7 +53,8 @@ class Emulator(object):
self.object_source = self.env['__cdist_manifest']
self.type_base_path = self.env['__cdist_type_base_path']
except KeyError:
except KeyError as e:
raise MissingRequiredEnvironmentVariableError(e.args[0])
self.object_base_path = os.path.join(self.global_path, "object")