xenoslib 0.1.29.19__py3-none-any.whl → 0.1.29.21__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
xenoslib/about.py CHANGED
@@ -4,4 +4,4 @@ __url__ = "https://github.com/XenosLu/xenoslib.git"
4
4
  __author__ = "Xenocider"
5
5
  __author_email__ = "xenos.lu@gmail.com"
6
6
  __license__ = "MIT License"
7
- __version__ = "0.1.29.19"
7
+ __version__ = "0.1.29.21"
xenoslib/extend.py CHANGED
@@ -221,10 +221,11 @@ class ConfigLoader(SingletonWithArgs):
221
221
  with open(config_file_path, "r") as f:
222
222
  self._raw_config = yaml.safe_load(f) or {}
223
223
 
224
- if not self.vault_client and vault_secret_id is not None:
225
- self._init_vault_client(vault_secret_id)
224
+ if vault_secret_id is not None:
225
+ self.vault_secret_id = vault_secret_id
226
+ self._check_and_renew_vault_client()
226
227
 
227
- def _init_vault_client(self, vault_secret_id):
228
+ def _init_vault_client(self):
228
229
  """Initialize and authenticate the Vault client (imports hvac on demand).
229
230
 
230
231
  Args:
@@ -251,12 +252,19 @@ class ConfigLoader(SingletonWithArgs):
251
252
  if not all([vault_url, vault_space, vault_role_id]):
252
253
  raise KeyError("Missing required Vault configuration in config.yml")
253
254
 
254
- self.vault_client = hvac.Client(url=vault_url, namespace=vault_space)
255
- self.vault_client.auth.approle.login(role_id=vault_role_id, secret_id=vault_secret_id)
255
+ self.vault_client = hvac.Client(url=vault_url, namespace=vault_space, timeout=45)
256
+ help(hvac.Client)
257
+ self.vault_client.auth.approle.login(role_id=vault_role_id, secret_id=self.vault_secret_id)
256
258
  except Exception as e:
257
259
  self.vault_client = None
258
260
  raise Exception(f"Failed to initialize Vault client: {str(e)}")
259
261
 
262
+ def _check_and_renew_vault_client(self):
263
+ # 检查当前Token的状态,包括过期时间和可续租性
264
+ if not self.vault_client or not self.vault_client.is_authenticated():
265
+ # 如果当前Token无效,则重新认证
266
+ self._init_vault_client()
267
+
260
268
  def get(self, section, key_name, use_cache=True):
261
269
  """Retrieve a configuration value.
262
270
 
@@ -366,5 +374,5 @@ if __name__ == "__main__":
366
374
 
367
375
  # This will only work if you provide a valid Vault secret ID
368
376
  # and hvac package is installed
369
- config_with_vault = ConfigLoader("config.yml", vault_secret_id="your-secret-id")
377
+ config_with_vault = ConfigLoader("config.yml", vault_secret_id=os.getenv("VAULT_CF_LANDSCAPES_SECRET_ID"))
370
378
  print("With Vault:", config_with_vault.get("cis", "cis_client_id"))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xenoslib
3
- Version: 0.1.29.19
3
+ Version: 0.1.29.21
4
4
  Summary: Xenos' common lib
5
5
  Home-page: https://github.com/XenosLu/xenoslib.git
6
6
  Author: Xenocider
@@ -1,17 +1,17 @@
1
1
  xenoslib/__init__.py,sha256=vlMWwdD2gTb9ztpm_orYAm_Y0Be0Es64ifvMQwrE1jU,310
2
2
  xenoslib/__main__.py,sha256=UpD3pl4l5ZUFxK6FzNMWRb1AZpEnwerulSFoPb_Pdgw,307
3
- xenoslib/about.py,sha256=GUgm9KLN0JxUTqSE5BA9bKeC0ne0qluGoOrVg0EPmWI,232
3
+ xenoslib/about.py,sha256=kX9zQsM9EzSyXP_gpzz2GnM0L_XKceXzjm6hfHRfsHg,232
4
4
  xenoslib/base.py,sha256=rAXk71AsnWvQ7MaSad5Xxd9Lwucp-cZc15yyqoV5Dk4,12440
5
5
  xenoslib/dev.py,sha256=R6iwKuu-xvaYiBOUyP2gpePyvXss17TOZaCmQEihPCw,1236
6
- xenoslib/extend.py,sha256=RioMMG88w6-cKqP_pFfVrBGCGrwyUYPlM_OklxUhUyo,12485
6
+ xenoslib/extend.py,sha256=XyoBqUrTX39ZSpUGOsGHkVWlJ_tc6_EE8nUgxFfCSw4,12853
7
7
  xenoslib/linux.py,sha256=EFCQBq_JsmNJc3wGlJlzH9W0tjOA7sSwx0u62R5Ut2k,1318
8
8
  xenoslib/mail.py,sha256=pkC4gpMSxKbuvNR-0CdwbJQEJNbBCp5oEYAJS-uxq9s,7286
9
9
  xenoslib/mock.py,sha256=iNIplO7clejqLWfpY4r0WQH5BULy9dCoolDenZEci0c,3572
10
10
  xenoslib/onedrive.py,sha256=-bJJ8Cd_RjJSlDynYqKoZlFKE1HHM34l6NXOQrWOwtg,7783
11
11
  xenoslib/win_trayicon.py,sha256=7GJwX3c2CS1XWQjsyDK5EfM-MmEHdzPJCTX2sGpWmuU,13115
12
12
  xenoslib/windows.py,sha256=lUTD7TowaPqYHgIL6b-GM9PLd-VyJNNGzkzC3K9vOxo,4080
13
- xenoslib-0.1.29.19.dist-info/licenses/LICENSE,sha256=lF6hjufhiR-xAje_Wo7ogxV5phz2d5TgkfL5SGshujg,1066
14
- xenoslib-0.1.29.19.dist-info/METADATA,sha256=bo4WrG1Jxeyz-nxXPSkccZ9E2X9ZX2JK-xpBhJVpYEs,914
15
- xenoslib-0.1.29.19.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
16
- xenoslib-0.1.29.19.dist-info/top_level.txt,sha256=Rfm4GdW0NyA2AHDNUF2wFQOfAo53mAPibddSHGd3X60,9
17
- xenoslib-0.1.29.19.dist-info/RECORD,,
13
+ xenoslib-0.1.29.21.dist-info/licenses/LICENSE,sha256=lF6hjufhiR-xAje_Wo7ogxV5phz2d5TgkfL5SGshujg,1066
14
+ xenoslib-0.1.29.21.dist-info/METADATA,sha256=ynaX_0Sf42nYWxivRIKxJ7WboYZr8iAxz7r8Ou5Ijsg,914
15
+ xenoslib-0.1.29.21.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
16
+ xenoslib-0.1.29.21.dist-info/top_level.txt,sha256=Rfm4GdW0NyA2AHDNUF2wFQOfAo53mAPibddSHGd3X60,9
17
+ xenoslib-0.1.29.21.dist-info/RECORD,,