fix: add kanidm login -D idm_admin

This commit is contained in:
dettlaff 2024-11-27 16:52:05 +04:00
parent 5ded1f15a2
commit 8eecf1f16b

View file

@ -1,13 +1,11 @@
from typing import Optional
import os
import subprocess
import requests
import re
import logging
from contextlib import contextmanager
from selfprivacy_api.utils import get_domain
from selfprivacy_api.utils import get_domain, temporary_env_var
from selfprivacy_api.utils.redis_pool import RedisPool
from selfprivacy_api.models.user import UserDataUser, UserDataUserOrigin
from selfprivacy_api.repositories.users.abstract_user_repository import (
@ -21,19 +19,6 @@ redis = RedisPool().get_connection()
logger = logging.getLogger(__name__)
@contextmanager
def temporary_env_var(key, value):
"""
A context manager for temporarily setting an environment variable
with automatic cleanup after exiting the block, even in case of an error.
"""
os.environ[key] = value
try:
yield
finally:
del os.environ[key]
class KanidmAdminToken:
@staticmethod
def get() -> str:
@ -58,21 +43,22 @@ class KanidmAdminToken:
logging.error("create_and_save_token START")
with temporary_env_var(key="KANIDM_PASSWORD", value=kanidm_admin_password):
try:
kanidm_admin_token = subprocess.check_output(
[
"kanidm",
"service-account",
"api-token",
"generate",
"--rw",
"selfprivacy",
"token2",
],
text=True,
)
except subprocess.CalledProcessError as e:
print(e)
subprocess.run("kanidm login -D idm_admin")
kanidm_admin_token = subprocess.check_output(
[
"kanidm",
"service-account",
"api-token",
"generate",
"--rw",
"selfprivacy",
"token2",
],
text=True,
)
# except subprocess.CalledProcessError as e:
# logger.error(e)
kanidm_admin_token = kanidm_admin_token.splitlines()[-1]