Beispiel #1
0
 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
Beispiel #2
0
 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
Beispiel #3
0
 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
Beispiel #4
0
 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
Beispiel #5
0
 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())
Beispiel #6
0
 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())
Beispiel #7
0
 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
Beispiel #8
0
 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
Beispiel #9
0
 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
Beispiel #10
0
 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