caches: cleanup code

- emails from cache should skip default user as that user does not have extra emails
This commit is contained in:
RhodeCode Admin 2023-03-28 10:33:16 +02:00
parent 0c2d385eb8
commit 061c3d3f5e
4 changed files with 21 additions and 18 deletions

View file

@ -693,13 +693,15 @@ class User(Base, BaseModel):
return [self.email] + [x.email for x in other]
def emails_cached(self):
emails = UserEmailMap.query()\
.filter(UserEmailMap.user == self) \
.order_by(UserEmailMap.email_id.asc())
emails = []
if self.user_id != self.get_default_user_id():
emails = UserEmailMap.query()\
.filter(UserEmailMap.user == self) \
.order_by(UserEmailMap.email_id.asc())
emails = emails.options(
FromCache("sql_cache_short", "get_user_{}_emails".format(self.user_id))
)
emails = emails.options(
FromCache("sql_cache_short", f"get_user_{self.user_id}_emails")
)
return [self.email] + [x.email for x in emails]
@ -724,7 +726,7 @@ class User(Base, BaseModel):
.filter(UserApiKeys.role == UserApiKeys.ROLE_FEED)
if cache:
feed_tokens = feed_tokens.options(
FromCache("sql_cache_short", "get_user_feed_token_%s" % self.user_id))
FromCache("sql_cache_short", f"get_user_feed_token_{self.user_id}"))
feed_tokens = feed_tokens.all()
if feed_tokens:
@ -744,7 +746,7 @@ class User(Base, BaseModel):
if cache:
artifacts_tokens = artifacts_tokens.options(
FromCache("sql_cache_short", "get_user_artifact_token_%s" % self.user_id))
FromCache("sql_cache_short", f"get_user_artifact_token_{self.user_id}"))
artifacts_tokens = artifacts_tokens.all()
if artifacts_tokens:
@ -777,7 +779,7 @@ class User(Base, BaseModel):
user = cls.query()
if cache:
user = user.options(
FromCache("sql_cache_short", "get_users_%s" % user_id))
FromCache("sql_cache_short", f"get_users_{user_id}"))
return user.get(user_id)
@classmethod
@ -858,7 +860,7 @@ class User(Base, BaseModel):
@property
def username_or_name_or_email(self):
full_name = self.full_name if self.full_name is not ' ' else None
full_name = self.full_name if self.full_name != ' ' else None
return self.username or full_name or self.email
@property
@ -943,7 +945,7 @@ class User(Base, BaseModel):
UserApiKeys.expires >= time.time()))
if cache:
q = q.options(
FromCache("sql_cache_short", "get_auth_token_%s" % auth_token))
FromCache("sql_cache_short", f"get_auth_token_{auth_token}"))
match = q.first()
if match:
@ -961,7 +963,7 @@ class User(Base, BaseModel):
email_key = _hash_key(email)
if cache:
q = q.options(
FromCache("sql_cache_short", "get_email_key_%s" % email_key))
FromCache("sql_cache_short", f"get_email_key_{email_key}"))
ret = q.scalar()
if ret is None:
@ -974,7 +976,7 @@ class User(Base, BaseModel):
q = q.options(joinedload(UserEmailMap.user))
if cache:
q = q.options(
FromCache("sql_cache_short", "get_email_map_key_%s" % email_key))
FromCache("sql_cache_short", f"get_email_map_key_{email_key}"))
ret = getattr(q.scalar(), 'user', None)
return ret
@ -1486,8 +1488,9 @@ class UserGroup(Base, BaseModel):
else:
q = cls.query().filter(cls.users_group_name == group_name)
if cache:
name_key = _hash_key(group_name)
q = q.options(
FromCache("sql_cache_short", "get_group_%s" % _hash_key(group_name)))
FromCache("sql_cache_short", f"get_group_{name_key}"))
return q.scalar()
@classmethod

View file

@ -107,7 +107,7 @@ class RepoModel(BaseModel):
if cache:
name_key = _hash_key(repo_name)
repo = repo.options(
FromCache("sql_cache_short", "get_repo_%s" % name_key))
FromCache("sql_cache_short", f"get_repo_{name_key}"))
return repo.scalar()
def _extract_id_from_repo_name(self, repo_name):

View file

@ -80,7 +80,7 @@ class RepoGroupModel(BaseModel):
if cache:
name_key = _hash_key(repo_group_name)
repo = repo.options(
FromCache("sql_cache_short", "get_repo_group_%s" % name_key))
FromCache("sql_cache_short", f"get_repo_group_{name_key}"))
return repo.scalar()
def get_default_create_personal_repo_group(self):

View file

@ -58,7 +58,7 @@ class UserModel(BaseModel):
user = self.sa.query(User)
if cache:
user = user.options(
FromCache("sql_cache_short", "get_user_%s" % user_id))
FromCache("sql_cache_short", f"get_user_{user_id}"))
return user.get(user_id)
def get_user(self, user):
@ -118,7 +118,7 @@ class UserModel(BaseModel):
if cache:
name_key = _hash_key(username)
user = user.options(
FromCache("sql_cache_short", "get_user_%s" % name_key))
FromCache("sql_cache_short", f"get_user_{name_key}"))
return user.scalar()
def get_by_email(self, email, cache=False, case_insensitive=False):