mirror of
https://github.com/GoodOlClint/PSProxmoxVE.git
synced 2026-07-26 07:58:14 +00:00
239aee630f
ASP.NET Minimal API project that simulates the Proxmox VE API using existing JSON fixtures. Supports ticket and API token auth, request tracking for assertions, self-signed HTTPS, and all major API endpoints. Designed for programmatic test startup via MockPveServer.Start(). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
34 lines
1.2 KiB
C#
34 lines
1.2 KiB
C#
using Microsoft.AspNetCore.Builder;
|
|
using Microsoft.AspNetCore.Http;
|
|
|
|
namespace PSProxmoxVE.MockServer.Routes;
|
|
|
|
public static class TaskRoutes
|
|
{
|
|
public static WebApplication MapTaskRoutes(this WebApplication app, MockPveServer server)
|
|
{
|
|
app.MapGet("/api2/json/nodes/{node}/tasks/{upid}/status", (string node, string upid) =>
|
|
{
|
|
// Track call count per UPID: first call returns running, subsequent return completed
|
|
int count;
|
|
lock (server.TaskStatusCallCounts)
|
|
{
|
|
if (!server.TaskStatusCallCounts.TryGetValue(upid, out count))
|
|
count = 0;
|
|
count++;
|
|
server.TaskStatusCallCounts[upid] = count;
|
|
}
|
|
|
|
if (count <= 1)
|
|
return Results.Content(MockPveServer.GetFixture("pve9_task_running"), "application/json");
|
|
else
|
|
return Results.Content(MockPveServer.GetFixture("pve9_tasks"), "application/json");
|
|
});
|
|
|
|
app.MapGet("/api2/json/nodes/{node}/tasks/{upid}/log", (string node, string upid) =>
|
|
Results.Content("{\"data\":[{\"n\":1,\"t\":\"starting task\"}]}", "application/json"));
|
|
|
|
return app;
|
|
}
|
|
}
|