From efe57b3ebeb5594f9a7067be8fef5247e3e2f5ff Mon Sep 17 00:00:00 2001 From: Eric Date: Mon, 14 Aug 2023 17:18:13 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BF=AE=E5=A4=8D=E6=89=8B=E5=8A=A8?= =?UTF-8?q?=E7=99=BB=E9=99=86=E8=B4=A6=E5=8F=B7=E5=AF=86=E7=A0=81=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E8=B5=8B=E5=80=BC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/accounts/models/mixins/vault.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/apps/accounts/models/mixins/vault.py b/apps/accounts/models/mixins/vault.py index e517516a9..b16927b62 100644 --- a/apps/accounts/models/mixins/vault.py +++ b/apps/accounts/models/mixins/vault.py @@ -52,17 +52,18 @@ class VaultModelMixin(models.Model): abstract = True # 缓存 secret 值, lazy-property 不能用 - __secret = False + __secret = None @property def secret(self): - if self.__secret is False: - from accounts.backends import vault_client - secret = vault_client.get(self) - if not secret and not self.secret_has_save_to_vault: - # vault_client 获取不到, 并且 secret 没有保存到 vault, 就从 self._secret 获取 - secret = self._secret - self.__secret = secret + if self.__secret: + return self.__secret + from accounts.backends import vault_client + secret = vault_client.get(self) + if not secret and not self.secret_has_save_to_vault: + # vault_client 获取不到, 并且 secret 没有保存到 vault, 就从 self._secret 获取 + secret = self._secret + self.__secret = secret return self.__secret @secret.setter @@ -72,6 +73,7 @@ class VaultModelMixin(models.Model): 先保存到 db, 再保存到 vault 同时删除本地 db _secret 值 """ self._secret = value + self.__secret = value _secret_save_to_vault_mark = '# Secret-has-been-saved-to-vault #'