Example #1
0
File: queue.py Project: Ri0n/rcore
 def run(self):
     while len(self._items):
         item = self._items.pop(0)
         wfd = waitForDeferred(defer.maybeDeferred(self._work, item, *self._args, **self._kw))
         yield wfd
         try:
             result = wfd.getResult()
             self._successCount += 1
             self._lastResult = [True, result, item]
             self._results.append(self._lastResult)
         except Exception as e:
             self._success = False
             failure = getFailureFor(e)
             if not failure.check(RegularError):
                 failure.printTraceback()
             if not self._firstError:
                 self._firstError = (failure, item)
             self._lastResult = [False, failure, item]
             self._results.append(self._lastResult)
             if self._stopOnFailure:
                 raise
                 #yield self._results
                 #return
                 
     yield self._results
Example #2
0
 def __call__(self, *params):
     if self._methodPath:
         try:
             print("XML-RPC %s:" % self.__class__.__name__,
                   self._methodPath, params)
             proxy = self._getProxy()
             proxy.queryFactory.noisy = False
             wfd = waitForDeferred(
                 proxy.callRemote(self._methodPath, *params))
             wfd.setRestoreContext(self.restoreContext)
             yield wfd
             result = wfd.getResult()
             yield result
             return
         except Exception as e:
             errStr = str(e) if isinstance(
                 e, Fault) else getFailureFor(e).getTraceback()
             msg = "Internal XML-RPC Failed: " + self.__class__.__name__ + ":" + self._methodPath + \
                 str(params) + "\n" + errStr
             log.msg(msg)
             self.__class__._lastError = msg
             if self._alertable:
                 Core.instance().getRPCService("alarm").notify([
                     msg,
                     "<div style='color:#ff0000;font-weight:bold'>%s</div>"
                     % escape(self.__class__._lastError).replace(
                         "\n", "<br/>")
                 ], ["error"])
             raise
     else:
         raise InternalError("method name is not given")
Example #3
0
File: xmlrpc.py Project: Ri0n/rcore
 def __call__(self, *params):
     if self._methodPath:
         try:
             print "XML-RPC %s:" % self.__class__.__name__, self._methodPath, params
             proxy = self._getProxy()
             proxy.queryFactory.noisy = False
             wfd = waitForDeferred(proxy.callRemote(self._methodPath, *params))
             wfd.setRestoreContext(self.restoreContext)
             yield wfd
             result = wfd.getResult()
             yield result
             return
         except Exception as e:
             errStr = str(e) if isinstance(e, Fault) else getFailureFor(e).getTraceback()
             msg = (
                 "Internal XML-RPC Failed: "
                 + self.__class__.__name__
                 + ":"
                 + self._methodPath
                 + str(params)
                 + "\n"
                 + errStr
             )
             log.msg(msg)
             self.__class__._lastError = msg
             if self._alertable:
                 Core.instance().getRPCService("alarm").notify(
                     [
                         msg,
                         "<div style='color:#ff0000;font-weight:bold'>%s</div>"
                         % escape(self.__class__._lastError).replace("\n", "<br/>"),
                     ],
                     ["error"],
                 )
             raise
     else:
         raise InternalError("method name is not given")