Add validation warnings when loading rotations.json

- Validate that all providers referenced in rotations exist in providers.json
- Log visible warnings with !!! CONFIGURATION WARNING !!! markers
- Show available providers when a referenced provider is missing
- Indicate that missing providers will be skipped during requests
- Provide guidance on how to fix the configuration issue
- Log successful validation with checkmarks for available providers
parent fbfab4ba
...@@ -163,6 +163,26 @@ class Config: ...@@ -163,6 +163,26 @@ class Config:
data = json.load(f) data = json.load(f)
self.rotations = {k: RotationConfig(**v) for k, v in data['rotations'].items()} self.rotations = {k: RotationConfig(**v) for k, v in data['rotations'].items()}
logger.info(f"Loaded {len(self.rotations)} rotations: {list(self.rotations.keys())}") logger.info(f"Loaded {len(self.rotations)} rotations: {list(self.rotations.keys())}")
# Validate that all providers referenced in rotations exist
logger.info(f"=== VALIDATING ROTATION PROVIDERS ===")
available_providers = list(self.providers.keys())
logger.info(f"Available providers: {available_providers}")
for rotation_id, rotation_config in self.rotations.items():
logger.info(f"Validating rotation: {rotation_id}")
for provider in rotation_config.providers:
provider_id = provider['provider_id']
if provider_id not in self.providers:
logger.warning(f"!!! CONFIGURATION WARNING !!!")
logger.warning(f"Rotation '{rotation_id}' references provider '{provider_id}' which is NOT defined in providers.json")
logger.warning(f"Available providers: {available_providers}")
logger.warning(f"This provider will be SKIPPED during rotation requests")
logger.warning(f"Please add the provider to providers.json or remove it from the rotation configuration")
logger.warning(f"!!! END WARNING !!!")
else:
logger.info(f" ✓ Provider '{provider_id}' is available")
logger.info(f"=== Config._load_rotations END ===") logger.info(f"=== Config._load_rotations END ===")
def _load_autoselect(self): def _load_autoselect(self):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment