Add vCenter cache rebuild functionality and related API endpoint
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2026-02-16 08:46:38 +11:00
parent 6fbd6bc9d2
commit bc84931c37
7 changed files with 425 additions and 24 deletions

View File

@@ -310,6 +310,52 @@ VALUES (?,?,?,?,?,?,?,?,?,?)
}
}
func TestClearVcenterReferenceCache(t *testing.T) {
ctx := context.Background()
dbConn := newTestSQLiteDB(t)
if err := EnsureVcenterReferenceCacheTables(ctx, dbConn); err != nil {
t.Fatalf("failed to ensure vcenter reference cache tables: %v", err)
}
if err := UpsertVcenterFolderCache(ctx, dbConn, "vc-a", "group-v123", "/Datacenters/DC1/vm/Prod", 1000); err != nil {
t.Fatalf("failed to upsert folder cache: %v", err)
}
if err := UpsertVcenterResourcePoolCache(ctx, dbConn, "vc-a", "resgroup-1", "Gold", 1000); err != nil {
t.Fatalf("failed to upsert resource pool cache: %v", err)
}
if err := UpsertVcenterHostCache(ctx, dbConn, "vc-a", "host-123", "Cluster-1", "DC1", 1000); err != nil {
t.Fatalf("failed to upsert host cache: %v", err)
}
if err := ClearVcenterReferenceCache(ctx, dbConn, "vc-a"); err != nil {
t.Fatalf("failed to clear vcenter reference cache: %v", err)
}
var folderCount int
if err := dbConn.Get(&folderCount, `SELECT COUNT(1) FROM vcenter_folder_cache WHERE "Vcenter" = ?`, "vc-a"); err != nil {
t.Fatalf("failed to count folder cache rows: %v", err)
}
if folderCount != 0 {
t.Fatalf("expected 0 folder cache rows after clear, got %d", folderCount)
}
var poolCount int
if err := dbConn.Get(&poolCount, `SELECT COUNT(1) FROM vcenter_resource_pool_cache WHERE "Vcenter" = ?`, "vc-a"); err != nil {
t.Fatalf("failed to count resource pool cache rows: %v", err)
}
if poolCount != 0 {
t.Fatalf("expected 0 resource pool cache rows after clear, got %d", poolCount)
}
var hostCount int
if err := dbConn.Get(&hostCount, `SELECT COUNT(1) FROM vcenter_host_cache WHERE "Vcenter" = ?`, "vc-a"); err != nil {
t.Fatalf("failed to count host cache rows: %v", err)
}
if hostCount != 0 {
t.Fatalf("expected 0 host cache rows after clear, got %d", hostCount)
}
}
func TestFetchVmLifecycleIgnoresStaleDeletionFromHourlyCache(t *testing.T) {
ctx := context.Background()
dbConn := newTestSQLiteDB(t)