lifecycle: add migration to 0.12 which removes old outpost state from cache

This commit is contained in:
Jens Langhammer 2020-10-19 14:35:38 +02:00
parent 386e23dfac
commit c6661ef4d2
1 changed files with 28 additions and 0 deletions

View File

@ -0,0 +1,28 @@
from pickle import loads # nosec
from redis import Redis
from lifecycle.migrate import BaseMigration
from passbook.lib.config import CONFIG
class To012Migration(BaseMigration):
def __init__(self) -> None:
self.redis = Redis(
host=CONFIG.y("redis.host"),
port=6379,
db=CONFIG.y("redis.cache_db"),
password=CONFIG.y("redis.password"),
)
def needs_migration(self) -> bool:
keys = self.redis.keys(":1:outpost_*")
for key in keys:
value = loads(self.redis.get(key)) # nosec
if isinstance(value, str):
return True
return False
def run(self):
keys_to_delete = self.redis.keys(":1:outpost_*")
self.redis.delete(*keys_to_delete)