def putminerandstats(self, miner: Miner, minerstats, minerpool): '''put miner and status in cache''' self.putminer(miner) schema = MinerStatsSchema() valstats = schema.dumps(minerstats).data self.tryputcache(miner.key() + '.stats', valstats) schema = MinerCurrentPoolSchema() valpool = schema.dumps(minerpool).data self.tryputcache(miner.key() + '.pool', valpool)
def getminer(self, miner: Miner): '''strategies for getting miner from cache originally was key=miner.name but that was not good changed to key='miner.'+minerid ''' valu = self.trygetvaluefromcache('miner.{0}'.format(miner.key())) if valu is None: return None minerfromstore = self.deserialize(MinerSchema(), self.safestring(valu)) minerfromstore.store = 'mem' return minerfromstore
def getknownminer(self, miner: Miner): '''get a known miner''' return self.getknownminerbykey(miner.key())
def putminer(self, miner: Miner): '''put miner in cache''' if miner and miner.key(): valu = self.serialize(miner) self.tryputcache('miner.{0}'.format(miner.key()), valu)
def test_miner_key_is_name(self): miner = Miner("test") self.assertTrue(miner.key() == 'test')
def test_miner_key_is_ip(self): miner = Miner("test", ipaddress='unittest', port='1234') self.assertTrue(miner.key() == 'unittest:1234')
def test_key_notempty_net(self): miner = Miner("test", networkid={}) self.assertFalse(miner.key() == str({}))
def test_miner_key_is_networkid(self): miner = Miner("test", networkid={'unittest1', 'unittest2'}) self.assertTrue(miner.key() == str({'unittest1', 'unittest2'}))
def test_miner_key_not_unknown(self): miner = Miner('test', minerid='unknown', ipaddress='unittest', port='1234') self.assertTrue(miner.key() == 'unittest:1234')
def test_miner_key_is_id(self): miner = Miner("test", minerid='unittest') self.assertTrue(miner.key() == 'unittest')