2.5 KiB
2.5 KiB
Scheduler Graph Job DTOs (GraphBuildJob/GraphOverlayJob)
Module
Scheduler
Status
IMPLEMENTED
Description
New graph-specific job contracts (GraphBuildJob, GraphOverlayJob) with state machine enforcement, metadata fields, and event schemas for graph build/overlay operations coordination between Scheduler and Cartographer/Graph services.
Implementation Details
- Graph Build Job Request:
src/Scheduler/StellaOps.Scheduler.WebService/GraphJobs/GraphBuildJobRequest.cs-- DTO for graph build job requests with source, target, and metadata fields for triggering full graph rebuilds. - Graph Overlay Job Request:
src/Scheduler/StellaOps.Scheduler.WebService/GraphJobs/GraphOverlayJobRequest.cs-- DTO for incremental graph overlay operations that merge new data into existing graphs. - Graph Job Service:
src/Scheduler/StellaOps.Scheduler.WebService/GraphJobs/GraphJobService.cs-- orchestrates graph job lifecycle with state machine enforcement (Pending, Running, Completed, Failed). - In-Memory Graph Job Store:
src/Scheduler/StellaOps.Scheduler.WebService/GraphJobs/InMemoryGraphJobStore.cs-- in-memory persistence for graph job state. - Cartographer Webhook Client:
src/Scheduler/StellaOps.Scheduler.WebService/GraphJobs/CartographerWebhookClient.cs-- HTTP client for notifying the Cartographer service of graph job state changes. - Graph Job Endpoints:
src/Scheduler/StellaOps.Scheduler.WebService/GraphJobs/GraphJobEndpointExtensions.cs-- REST endpoints for submitting, querying, and managing graph jobs. - Tests:
src/Scheduler/__Tests/StellaOps.Scheduler.WebService.Tests/GraphJobs/GraphJobServiceTests.cs,GraphJobEndpointsTests.cs,CartographerWebhookClientTests.cs
E2E Test Plan
- Submit a
GraphBuildJobRequestvia the REST endpoint and verify it is created with "Pending" status and correct metadata fields - Advance the job through the state machine (Pending -> Running -> Completed) and verify each transition is enforced (e.g., cannot go from Pending directly to Completed)
- Submit a
GraphOverlayJobRequestand verify it references the existing graph to overlay onto - Verify webhook notification: start a graph job and confirm the
CartographerWebhookClientsends a webhook to the Cartographer service with the job details - Attempt an invalid state transition (e.g., Completed -> Running) and verify it is rejected with an appropriate error
- Query graph jobs by status and verify filtering works correctly (e.g., only "Running" jobs are returned)