-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathvalidate_config.py
More file actions
38 lines (28 loc) · 1.36 KB
/
validate_config.py
File metadata and controls
38 lines (28 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import re
from src.utils import config
from src.utils.logger import get_logger
from src.utils.regions import is_valid_region
logging = get_logger()
def validate_config():
logging.info("Validating environment variables...")
error_messages = []
valid_strategies = ["SEQUENTIAL", "PARALLEL", "DISABLED"]
if config.UPDATE_STRATEGY not in valid_strategies:
error_messages.append(
f"Invalid UPDATE_STRATEGY: '{config.UPDATE_STRATEGY}'. Must be one of {valid_strategies}."
)
if not re.match(r"^\d+[dhm]$", config.UPDATE_INTERVAL):
error_messages.append(
f"Invalid UPDATE_INTERVAL format: '{config.UPDATE_INTERVAL}'. Expected format like '30d', '12h', or '30m'."
)
if config.REGION and not is_valid_region(config.REGION):
error_messages.append(f"Invalid REGION: '{config.REGION}'. Must be a valid continent, sub-region, or 'planet'.")
if config.OPENSEARCH_TRANSPORT_ADDRESSES and config.REGION:
logging.warning(
"REGION is set alongside OPENSEARCH_TRANSPORT_ADDRESSES — "
"REGION will be ignored (index data is managed by external OpenSearch)"
)
if error_messages:
full_error_message = "Configuration validation failed:\n" + "\n".join(error_messages)
raise ValueError(full_error_message)
logging.info("Environment variables are valid.")