Skip to content

Commit 6af749c

Browse files
refactor: move diracx function in Framework
1 parent bb9c3d8 commit 6af749c

File tree

3 files changed

+28
-32
lines changed

3 files changed

+28
-32
lines changed

src/DIRAC/ConfigurationSystem/private/DiracX.py

Lines changed: 0 additions & 21 deletions
This file was deleted.

src/DIRAC/ConfigurationSystem/private/Modificator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88

99
from DIRAC import gLogger
1010
from DIRAC.ConfigurationSystem.Client.ConfigurationData import gConfigurationData
11-
from DIRAC.ConfigurationSystem.private.DiracX import diracxVerifyConfig
1211
from DIRAC.Core.Security.ProxyInfo import getProxyInfo
1312
from DIRAC.Core.Utilities import List
13+
from DIRAC.FrameworkSystem.Utilities.diracx import diracxVerifyConfig
1414

1515

1616
class Modificator:

src/DIRAC/FrameworkSystem/Utilities/diracx.py

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
import requests
2-
3-
from cachetools import TTLCache, LRUCache, cached
4-
from cachetools.keys import hashkey
1+
from collections.abc import Generator
2+
from contextlib import contextmanager
53
from pathlib import Path
64
from tempfile import NamedTemporaryFile
75
from typing import Any
8-
from collections.abc import Generator
9-
from DIRAC import gConfig
10-
from DIRAC.ConfigurationSystem.Client.Helpers import Registry
11-
from contextlib import contextmanager
126

7+
import requests
8+
from cachetools import LRUCache, TTLCache, cached
9+
from cachetools.keys import hashkey
10+
from diracx.core.config.schema import Config as DiracxConfig
11+
from diracx.core.models import TokenResponse
1312
from diracx.core.preferences import DiracxPreferences
14-
1513
from diracx.core.utils import write_credentials
14+
from pydantic import ValidationError
1615

17-
from diracx.core.models import TokenResponse
16+
from DIRAC import S_ERROR, S_OK, gConfig
17+
from DIRAC.ConfigurationSystem.Client.Helpers import Registry
1818

1919
try:
2020
from diracx.client.sync import SyncDiracClient
@@ -104,3 +104,20 @@ def TheImpersonator(credDict: dict[str, Any], *, source: str = "") -> Generator[
104104
client.__enter__()
105105
diracx_client_cache[token_location] = client
106106
yield client
107+
108+
109+
def diracxVerifyConfig(cfgData):
110+
"""Verify CS config using DiracX config validation
111+
112+
Args:
113+
cfgData: CFG data
114+
115+
Returns:
116+
S_OK | S_ERROR: Value: diracx Config validation
117+
"""
118+
cfg = cfgData.getAsDict()
119+
try:
120+
validation = DiracxConfig.model_validate(cfg)
121+
except ValidationError as exc:
122+
return S_ERROR(exc)
123+
return S_OK(validation)

0 commit comments

Comments
 (0)