class stathatBaseHandler: """Abstract JeeNode BaseHandler class that uploads data to stathat""" _stathat = None def __init__(self, cfg): try: self.baseHandlerConfig(cfg) self._stathat = StatHat() except: print "Unexpected error:", sys.exc_info()[0] raise def baseHandlerConfig(self, cfg): self._ezkey = cfg.stathatBaseHandler.ezkey self._retryInterval = int ( cfg.stathatBaseHandler.retryInterval ) self._maxRetries = int ( cfg.stathatBaseHandler.maxRetries ) def log(self, data): nodeid = data['nodeid'] del(data['nodeid']) for k in data: for i in range(self._maxRetries): try: print self._stathat.ez_post_value( self._ezkey, 'node' + str(nodeid) + '-' + k, data[k]) break; except HTTPException as e: print 'Http error ' + str( e ) +\ ', Retrying in ' + str( self._retryInterval ) +\ ', attempt number ' + str (i) if (i == self._maxRetries): raise e else: time.sleep(self._retryInterval)