fix: allow new pilot run after completed rollback
This commit is contained in:
@@ -32,7 +32,7 @@ internal static class PilotCli
|
|||||||
Directory.CreateDirectory(Path.Combine(root, "catalog"));
|
Directory.CreateDirectory(Path.Combine(root, "catalog"));
|
||||||
await File.WriteAllTextAsync(Path.Combine(root, "catalog", "P_Rec_Annot.manifest.json"), JsonSerializer.Serialize(manifest));
|
await File.WriteAllTextAsync(Path.Combine(root, "catalog", "P_Rec_Annot.manifest.json"), JsonSerializer.Serialize(manifest));
|
||||||
if (!File.Exists(@"C:\Program Files\Autodesk\AutoCAD 2026\acad.exe")) return Fail(DiscoveryFailed, "PLANT3D_2026_NOT_FOUND");
|
if (!File.Exists(@"C:\Program Files\Autodesk\AutoCAD 2026\acad.exe")) return Fail(DiscoveryFailed, "PLANT3D_2026_NOT_FOUND");
|
||||||
if (command == "run" && File.Exists(SessionPath(root))) return await HandleExistingSession(root);
|
if (command == "run" && File.Exists(SessionPath(root)) && await HasActiveSession(root)) return await HandleExistingSession(root);
|
||||||
var service = CreateService();
|
var service = CreateService();
|
||||||
var product = new ProductInstallation(@"C:\Program Files\Autodesk\AutoCAD 2026\acad.exe", "2026", "x64", []);
|
var product = new ProductInstallation(@"C:\Program Files\Autodesk\AutoCAD 2026\acad.exe", "2026", "x64", []);
|
||||||
var request = new PilotPreparationRequest(config, product, manifest!, manifestHash!, options.PackageSource!, root, Path.Combine(root, "startup", "prepare-only.scr"));
|
var request = new PilotPreparationRequest(config, product, manifest!, manifestHash!, options.PackageSource!, root, Path.Combine(root, "startup", "prepare-only.scr"));
|
||||||
@@ -96,6 +96,11 @@ internal static class PilotCli
|
|||||||
var state = document.RootElement.GetProperty("State").GetString();
|
var state = document.RootElement.GetProperty("State").GetString();
|
||||||
return state == "RolledBack" ? Success : Fail(SessionConflict, "PILOT_SESSION_ALREADY_ACTIVE");
|
return state == "RolledBack" ? Success : Fail(SessionConflict, "PILOT_SESSION_ALREADY_ACTIVE");
|
||||||
}
|
}
|
||||||
|
private static async Task<bool> HasActiveSession(string root)
|
||||||
|
{
|
||||||
|
using var document = JsonDocument.Parse(await File.ReadAllTextAsync(SessionPath(root)));
|
||||||
|
return document.RootElement.GetProperty("State").GetString() != "RolledBack";
|
||||||
|
}
|
||||||
private static async Task<bool> IsRolledBack(string root)
|
private static async Task<bool> IsRolledBack(string root)
|
||||||
{
|
{
|
||||||
if (!File.Exists(SessionPath(root))) return false;
|
if (!File.Exists(SessionPath(root))) return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user