Add date modified to state dirs
This commit is contained in:
parent
485b33866b
commit
d19fbf005e
@ -34,7 +34,14 @@ class Store:
|
|||||||
continue
|
continue
|
||||||
v = self.state_store.from_name(s)
|
v = self.state_store.from_name(s)
|
||||||
setattr(self, s, v)
|
setattr(self, s, v)
|
||||||
for v in ['state', 'change', 'set', 'unset', 'name']:
|
for v in [
|
||||||
|
'state',
|
||||||
|
'change',
|
||||||
|
'set',
|
||||||
|
'unset',
|
||||||
|
'name',
|
||||||
|
'modified',
|
||||||
|
]:
|
||||||
setattr(self, v, getattr(self.state_store, v))
|
setattr(self, v, getattr(self.state_store, v))
|
||||||
|
|
||||||
|
|
||||||
@ -48,6 +55,7 @@ class Store:
|
|||||||
tx = cache_adapter()
|
tx = cache_adapter()
|
||||||
tx.deserialize(v)
|
tx.deserialize(v)
|
||||||
self.cache.put(self.chain_spec, tx)
|
self.cache.put(self.chain_spec, tx)
|
||||||
|
return s
|
||||||
|
|
||||||
|
|
||||||
def get(self, k):
|
def get(self, k):
|
||||||
@ -56,7 +64,7 @@ class Store:
|
|||||||
return (s, v,)
|
return (s, v,)
|
||||||
|
|
||||||
|
|
||||||
def by_state(self, state=0, limit=4096, strict=False):
|
def by_state(self, state=0, limit=4096, strict=False, threshold=None):
|
||||||
hashes = []
|
hashes = []
|
||||||
i = 0
|
i = 0
|
||||||
|
|
||||||
@ -70,8 +78,17 @@ class Store:
|
|||||||
item_state = self.state_store.state(ref)
|
item_state = self.state_store.state(ref)
|
||||||
if item_state & state != item_state:
|
if item_state & state != item_state:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
if threshold != None:
|
||||||
|
v = self.state_store.modified(ref)
|
||||||
|
logg.debug('compare {} {}'.format(v, threshold))
|
||||||
|
if v > threshold:
|
||||||
|
continue
|
||||||
|
|
||||||
hashes.append(hsh)
|
hashes.append(hsh)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
hashes.sort()
|
hashes.sort()
|
||||||
return hashes
|
return hashes
|
||||||
|
|
||||||
@ -80,8 +97,8 @@ class Store:
|
|||||||
return self.by_state(state=self.QUEUED, limit=limit)
|
return self.by_state(state=self.QUEUED, limit=limit)
|
||||||
|
|
||||||
|
|
||||||
def deferred(self, limit=4096):
|
def deferred(self, limit=4096, threshold=None):
|
||||||
return self.by_state(state=self.DEFERRED, limit=limit)
|
return self.by_state(state=self.DEFERRED, limit=limit, threshold=threshold)
|
||||||
|
|
||||||
|
|
||||||
def pending(self, limit=4096):
|
def pending(self, limit=4096):
|
||||||
|
@ -3,6 +3,7 @@ import os
|
|||||||
import tempfile
|
import tempfile
|
||||||
import unittest
|
import unittest
|
||||||
import logging
|
import logging
|
||||||
|
import time
|
||||||
|
|
||||||
# external imports
|
# external imports
|
||||||
from shep.store.file import SimpleFileStoreFactory
|
from shep.store.file import SimpleFileStoreFactory
|
||||||
@ -99,5 +100,20 @@ class TestIntegrateBase(TestShepBase):
|
|||||||
self.assertEqual(len(v), 2)
|
self.assertEqual(len(v), 2)
|
||||||
|
|
||||||
|
|
||||||
|
def test_state_date_threshold(self):
|
||||||
|
hx = os.urandom(4).hex()
|
||||||
|
s = self.store.put(hx, os.urandom(8).hex(), cache_adapter=MockCacheTokenTx)
|
||||||
|
self.store.fail(hx)
|
||||||
|
then = self.store.modified(s)
|
||||||
|
time.sleep(0.1)
|
||||||
|
|
||||||
|
hx = os.urandom(4).hex()
|
||||||
|
s = self.store.put(hx, os.urandom(8).hex(), cache_adapter=MockCacheTokenTx)
|
||||||
|
self.store.fail(hx)
|
||||||
|
|
||||||
|
v = self.store.deferred(threshold=then)
|
||||||
|
self.assertEqual(len(v), 1)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
Loading…
Reference in New Issue
Block a user