0ab44e153c
This refactors the the config error handling based on nested context managers that add increasing amounts of information about error locations. In other words, when we start processing a Job object, we will: with ParseContext.errorContext(info about job): do some stuff with ParseContext.errorContext(info about job attr): do some stuff regarding the job attribute with ParseContext.errorContext(next job attr): do stuff with a different attr We store a stack of error contexts on the parse context, and at any point we can access the accumulator for the most recent one with ParseContext.accumulator in order to add a warning or error. If we have an attribute line number, we'll use it, otherwise we'll just use the object-level information. We also collapse the exception hnadlers into a single context manager which catches exceptions and adds them to the accumulator. This lets us decide when to catch an exception and skip to the next phase of processing separately from where we narrow our focus to a new object or attribute. These two actions often happen together, but not always. This should serve to simplify the configloader code and make it easier to have consistent error handling within. Change-Id: I180f9b271acd4b62039003fa8b38900f9863bad8 |
||
---|---|---|
.. | ||
__init__.py | ||
zuulmodel.py | ||
zuultrigger.py |