def __callDone(self, fil): "call done function, if exception, set firstEx if it is None" try: fil.done() except Exception, ex: ex = ExRunException("Exception on file: " + str(fil), cause=ex) self.verb.pr(Verb.error, str(ex)+"\n"+ex.format()) return ex
def __callDone(self, fil): "call done function, if exception, set firstEx if it is None" try: fil.done() except Exception, ex: ex = ExRunException("Exception on file: " + str(fil), cause=ex) self.verb.pr(Verb.error, str(ex) + "\n" + ex.format()) return ex
def execute(self): "execute the rule" self.verb.enter() try: self.run() except Exception, ex: ex = ExRunException("Exception executing rule: " + str(self), cause=ex) self.verb.pr(Verb.error, str(ex)+"\n"+ex.format()) raise
def execute(self): "execute the rule" self.verb.enter() try: self.run() except Exception, ex: ex = ExRunException("Exception executing rule: " + str(self), cause=ex) self.verb.pr(Verb.error, str(ex) + "\n" + ex.format()) raise
def __finishFail(self): """finish up finish up requires/produces on failure, will log errors, but not fail so original error is not lost""" for p in self.rule.produces: try: p.finishFail() except Exception as ex: # FIXME: count these errors ex = ExRunException("Error in Production.finishFail() for "+p.name, cause=ex) self.verb.prall(str(ex)) self.verb.pr(Verb.error, ex.format()) for r in self.rule.requires: try: r.finishRequire() except Exception as ex: ex = ExRunException("Error in Production.finishRequire() for "+name, cause=ex) self.verb.prall(str(ex)) self.verb.pr(Verb.error, +ex.format())
def __finishFail(self): """finish up finish up requires/produces on failure, will log errors, but not fail so original error is not lost""" for p in self.rule.produces: try: p.finishFail() except Exception, ex: # FIXME: count these errors ex = ExRunException("Error in Production.finishFail() for " + p.name, cause=ex) self.verb.prall(str(ex)) self.verb.pr(Verb.error, ex.format())
def call(self, cmd): "run a commands with optional tracing" firstEx = None try: try: cmd.call(self.verb) except Exception, ex: ex = ExRunException("Exception running command: " + str(cmd), cause=ex) self.verb.pr(Verb.error, str(ex)+"\n"+ex.format()) firstEx = ex finally: firstEx = self.__closeFiles(self.requires, firstEx) firstEx = self.__closeFiles(self.produces, firstEx) if firstEx != None: raise firstEx
def call(self, cmd): "run a commands with optional tracing" firstEx = None try: try: cmd.call(self.verb) except Exception, ex: ex = ExRunException("Exception running command: " + str(cmd), cause=ex) self.verb.pr(Verb.error, str(ex) + "\n" + ex.format()) firstEx = ex finally: firstEx = self.__closeFiles(self.requires, firstEx) firstEx = self.__closeFiles(self.produces, firstEx) if firstEx != None: raise firstEx
def __evalRule(self): "evaluate a rule" assert(self.rule.state == RuleState.running) self.verb.enter(Verb.trace, "eval rule:", self.rule) try: self.__preEvalRuleCheck() self.verb.pr(Verb.details, "run:", self.rule) self.rule.execute() self.__finishSucceed() self.__postEvalRuleCheck() self.rule.setState(RuleState.ok) self.verb.leave(Verb.trace, "done rule:", self.rule) except Exception, ex: ex = ExRunException("rule error: "+str(self.rule), cause=ex) self.verb.pr((Verb.trace,Verb.error), str(ex)) self.verb.pr(Verb.error, ex.format()) self.rule.setState(RuleState.failed) self.__finishFail() self.verb.leave((Verb.trace,Verb.error), "failed rule:", self.rule) raise ex
def __evalRule(self): "evaluate a rule" assert (self.rule.state == RuleState.running) self.verb.enter(Verb.trace, "eval rule:", self.rule) try: self.__preEvalRuleCheck() self.verb.pr(Verb.details, "run:", self.rule) self.rule.execute() self.__finishSucceed() self.__postEvalRuleCheck() self.rule.setState(RuleState.ok) self.verb.leave(Verb.trace, "done rule:", self.rule) except Exception, ex: ex = ExRunException("rule error: " + str(self.rule), cause=ex) self.verb.pr((Verb.trace, Verb.error), str(ex)) self.verb.pr(Verb.error, ex.format()) self.rule.setState(RuleState.failed) self.__finishFail() self.verb.leave((Verb.trace, Verb.error), "failed rule:", self.rule) raise ex