1
0
Fork 0

Introduce plugin initialization phase and consolidate config handling

- Added `initialize_plugins` method to `PluginManager` for requesting and processing file system resources during plugin initialization.
- Introduced `InitializationResult` and `ResourceRequest` structures for fine-grained resource management (e.g., directories, files).
- Enhanced configuration injection by separating `global_configs`, `defaults_configs`, and backend-level `haproxy_config`.
- Updated existing plugins (e.g., JWT Validator, Cloudflare) to use the initialization phase for resource setup.
- Simplified domain plugin execution by consolidating configuration logic into unified loops.
This commit is contained in:
Joao Gilberto Magalhaes 2026-02-13 16:14:05 -05:00
parent 97845b8a52
commit ece012a884
10 changed files with 453 additions and 107 deletions

View file

@ -126,7 +126,7 @@ class TestCloudflarePlugin:
assert "acl from_cloudflare src -f /etc/haproxy/cloudflare_ips.lst" in haproxy_config
assert "http-request set-var(txn.real_ip) req.hdr(CF-Connecting-IP)" in haproxy_config
assert "http-request set-header X-Forwarded-For %[var(txn.real_ip)]" in haproxy_config
# Verify log-format is in defaults section (from defaults_config)
# Verify log-format is in defaults section (from defaults_configs)
assert "log-format" in haproxy_config
assert "%{+Q}[var(txn.real_ip)]" in haproxy_config
@ -987,9 +987,9 @@ class TestFastcgiPlugin:
assert result.haproxy_config is not None
assert "use-fcgi-app fcgi_phpapp_local" in result.haproxy_config
# Check fcgi-app definition in metadata
assert "fcgi_app_definition" in result.metadata
fcgi_app_def = result.metadata["fcgi_app_definition"]
# Check fcgi-app definition in global_configs
assert len(result.global_configs) == 1
fcgi_app_def = result.global_configs[0]
assert "fcgi-app fcgi_phpapp_local" in fcgi_app_def
assert "docroot /var/www/html" in fcgi_app_def
assert "index index.php" in fcgi_app_def
@ -1020,9 +1020,9 @@ class TestFastcgiPlugin:
assert result.haproxy_config is not None
assert "use-fcgi-app fcgi_phpapp_local" in result.haproxy_config
# Check custom params in fcgi-app definition in metadata
assert "fcgi_app_definition" in result.metadata
fcgi_app_def = result.metadata["fcgi_app_definition"]
# Check custom params in fcgi-app definition in global_configs
assert len(result.global_configs) == 1
fcgi_app_def = result.global_configs[0]
assert "set-param CUSTOM_VAR custom_value" in fcgi_app_def
assert "set-param APP_ENV production" in fcgi_app_def
assert result.metadata["custom_params_count"] == 2