More descriptive error when package constructor fails.
- helps package_sanity test identify which package failed. - encountered while upgrading versions in Adam's packages to the new format.
This commit is contained in:
parent
3779c78c00
commit
cabfc374eb
@ -69,7 +69,10 @@ def get(self, spec):
|
||||
|
||||
if not spec in self.instances:
|
||||
package_class = self.get_class_for_package_name(spec.name)
|
||||
try:
|
||||
self.instances[spec.name] = package_class(spec)
|
||||
except Exception, e:
|
||||
raise FailedConstructorError(spec.name, e)
|
||||
|
||||
return self.instances[spec.name]
|
||||
|
||||
@ -227,3 +230,12 @@ class UnknownPackageError(spack.error.SpackError):
|
||||
def __init__(self, name):
|
||||
super(UnknownPackageError, self).__init__("Package %s not found." % name)
|
||||
self.name = name
|
||||
|
||||
|
||||
class FailedConstructorError(spack.error.SpackError):
|
||||
"""Raised when a package's class constructor fails."""
|
||||
def __init__(self, name, reason):
|
||||
super(FailedConstructorError, self).__init__(
|
||||
"Class constructor failed for package '%s'." % name,
|
||||
str(reason))
|
||||
self.name = name
|
||||
|
Loading…
Reference in New Issue
Block a user