hotfix: clear faulty version check

This commit is contained in:
Simon 2023-12-22 09:34:46 +07:00
parent 14e23a4371
commit b84bf78974
No known key found for this signature in database
GPG Key ID: 2C15AA5E89985DD4
2 changed files with 24 additions and 6 deletions

View File

@ -39,6 +39,7 @@ class Command(BaseCommand):
self._clear_redis_keys()
self._clear_tasks()
self._clear_dl_cache()
self._mig_clear_failed_versioncheck()
self._version_check()
self._mig_index_setup()
self._mig_snapshot_check()
@ -148,6 +149,10 @@ class Command(BaseCommand):
self.stdout.write("[MIGRATION] setup snapshots")
ElasticSnapshot().setup()
def _mig_clear_failed_versioncheck(self):
"""hotfix for v0.4.5, clearing faulty versioncheck"""
ReleaseVersion().clear_fail()
def _mig_move_users_to_es(self): # noqa: C901
"""migration: update from 0.4.1 to 0.4.2 move user config to ES"""
self.stdout.write("[MIGRATION] move user configuration to ES")

View File

@ -270,7 +270,7 @@ class ReleaseVersion:
NEW_KEY = "versioncheck:new"
def __init__(self):
self.local_version = self._parse_version(settings.TA_VERSION)
self.local_version = settings.TA_VERSION
self.is_unstable = settings.TA_VERSION.endswith("-unstable")
self.remote_version = False
self.is_breaking = False
@ -298,16 +298,17 @@ class ReleaseVersion:
"""read version from remote"""
sleep(randint(0, 60))
self.response = requests.get(self.REMOTE_URL, timeout=20).json()
remote_version_str = self.response["release_version"]
self.remote_version = self._parse_version(remote_version_str)
self.remote_version = self.response["release_version"]
self.is_breaking = self.response["breaking_changes"]
def _has_update(self):
"""check if there is an update"""
if self.remote_version > self.local_version:
remote_parsed = self._parse_version(self.remote_version)
local_parsed = self._parse_version(self.local_version)
if remote_parsed > local_parsed:
return self.remote_version
if self.is_unstable and self.local_version == self.remote_version:
if self.is_unstable and local_parsed == remote_parsed:
return self.remote_version
return False
@ -324,7 +325,10 @@ class ReleaseVersion:
if not message:
return False
if self.local_version >= self._parse_version(message.get("version")):
local_parsed = self._parse_version(self.local_version)
message_parsed = self._parse_version(message.get("version"))
if local_parsed >= message_parsed:
RedisArchivist().del_message(self.NEW_KEY)
return settings.TA_VERSION
@ -337,3 +341,12 @@ class ReleaseVersion:
return False
return message
def clear_fail(self):
"""clear key, catch previous error in v0.4.5"""
message = self.get_update()
if not message:
return
if isinstance(message.get("version"), list):
RedisArchivist().del_message(self.NEW_KEY)