miroir/crates/miroir-proxy/tests
jedarden b0f89e1f6d Phase 4 — Topology Operations: Complete rebalancer and failure handling
Implements plan §2 topology changes and §4 rebalancer with full elastic
cluster operations: node addition/removal, replica group management, and
unplanned failure handling.

Core changes:
- topology.rs: Add GroupState::Draining for group removal flow
- router.rs: query_group_active() excludes draining groups via is_routing()
- scatter.rs: Health filtering with cross-group fallback for failed nodes
- rebalancer.rs: Add handle_node_recovery() for RF restore after recovery
- main.rs: Unplanned node failure detection with consecutive failure/success
  tracking, automatic Degraded/Failed transitions, and recovery event triggers

Admin API:
- POST /_miroir/nodes/{id}/recover - Mark failed node as recovered
- DELETE /_miroir/nodes/{id} - Remove node (after drain)
- POST /_miroir/nodes/{id}/drain - Start node drain for removal
- POST /_miroir/nodes/{id}/fail - Mark node as failed
- POST /_miroir/replica_groups - Add replica group
- GET /_miroir/replica_groups/{id}/status - Group sync progress
- POST /_miroir/replica_groups/{id}/activate - Mark group active
- DELETE /_miroir/replica_groups/{id} - Remove replica group

Tests:
- p4_topology_chaos.rs: All 5 chaos tests pass
  * Add node mid-indexing: docs readable, no duplicates
  * Drain node while querying: zero client-visible failures
  * Add replica group while querying: existing groups unaffected
  * Rebalance moves ≤ 2×(1/4) of docs (optimal)
  * Restart node mid-rebalance: pauses + resumes, no data loss
- p25_task_reconciliation.rs: Task ID reconciliation acceptance tests

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 23:57:53 -04:00
..
docker_compose_integration.rs P9.2: Integration test harness with docker-compose 2026-05-23 07:33:34 -04:00
error_format_parity.rs P2.5 Task reconciliation: Add test helpers and fix error tests 2026-05-23 22:53:02 -04:00
header_contract.rs P2.10: Implement custom HTTP header contract test suite 2026-05-20 07:14:53 -04:00
integration_test.rs P2.5 Task ID reconciliation: Add test helpers and fix error tests 2026-05-23 23:02:42 -04:00
p2_2_write_path_acceptance.rs P2.2: Add write path acceptance tests 2026-05-23 13:01:33 -04:00
p2_5_task_reconciliation.rs P2.5 Task reconciliation: Fix multi-threaded runtime test 2026-05-23 22:53:02 -04:00
p2_8_middleware_acceptance_tests.rs P2.8: Verify middleware implementation - structured logging + Prometheus metrics + request IDs 2026-05-23 12:43:49 -04:00
p2_phase2_dod.rs P2.4 Index lifecycle endpoints: implementation verification 2026-05-23 22:28:33 -04:00
p3_phase3_task_registry.rs P5.5.b: Fix verify phase parallel execution + test compilation 2026-05-23 07:59:14 -04:00
p5_5_two_phase_settings_broadcast.rs P5.5 §13.5 Two-phase settings broadcast + drift reconciler (OP#4) 2026-05-05 12:50:25 -04:00
p5_8_a_anti_entropy_fingerprint.rs P5.8 §13.8: Anti-entropy shard reconciler (OP#1 closure) 2026-05-23 11:23:36 -04:00
p5_8_b_anti_entropy_diff.rs P5.8 §13.8: Anti-entropy shard reconciler (OP#1 closure) 2026-05-23 11:23:36 -04:00
p5_14_ttl_automatic_expiration.rs P5.8 §13.8: Anti-entropy shard reconciler (OP#1 closure) 2026-05-23 11:23:36 -04:00
p7_1_core_metrics.rs P7.1: Core metrics families acceptance tests 2026-05-23 02:29:28 -04:00
p7_5_structured_logging.rs P3.3.d: Fix compilation - add missing local_search_ui_rate_limiter field 2026-04-26 11:18:02 -04:00
p10_5_scoped_key_rotation.rs P3: Task Registry + Persistence — 14-table SQLite schema, Redis mirror, Helm validation 2026-04-24 15:50:20 -04:00
p10_admin_session_revocation.rs P3: Task Registry + Persistence — 14-table SQLite schema, Redis mirror, Helm validation 2026-04-24 15:50:20 -04:00
p13_6_session_pinning.rs Phase 4 — Topology Operations: Complete rebalancer and failure handling 2026-05-23 23:57:53 -04:00
p13_7_alias_resolution.rs P5.7 §13.7: Add atomic index alias integration tests 2026-05-23 00:48:14 -04:00
p13_7_full_alias_integration.rs P5.7 §13.7: Add atomic index alias integration tests 2026-05-23 00:48:14 -04:00
p24_index_lifecycle.rs P2.4: Fix build and test for index lifecycle endpoints 2026-04-19 07:49:46 -04:00
p29_reserved_field_rejection.rs miroir-zc2.3: Validate 2× transient load caveat for online resharding (P12.OP3) 2026-05-20 07:24:22 -04:00
README_integration.md P9.2: Integration test harness with docker-compose 2026-05-23 07:33:34 -04:00