fix(provisioning): ensure versionClients map is shared across dashboard export calls

- Store versionClients map returned from createDashboardConversionShim
- The map is captured in the shim closure and shared across all dashboard conversion calls
- This ensures client caching works correctly when exporting multiple dashboards
This commit is contained in:
Roberto Jimenez Sanchez
2025-12-02 19:36:25 +01:00
parent 335108fe74
commit 244516cec2
@@ -138,7 +138,9 @@ func ExportSpecificResources(ctx context.Context, options provisioning.ExportJob
}
// Create a shared dashboard conversion shim and cache for all dashboard resources
// The versionClients map will be shared across all dashboard conversion calls
var dashboardShim conversionShim
var versionClients map[string]dynamic.ResourceInterface
for _, resourceRef := range options.Resources {
result := jobs.JobResourceResult{
@@ -233,8 +235,9 @@ func ExportSpecificResources(ctx context.Context, options provisioning.ExportJob
// Handle dashboard version conversion using the shared shim logic
if gvr.GroupResource() == resources.DashboardResource.GroupResource() {
// Create or reuse the dashboard shim (shared across all dashboard resources)
// The versionClients map is shared across all calls to preserve client caching
if dashboardShim == nil {
dashboardShim, _ = createDashboardConversionShim(ctx, clients, gvr)
dashboardShim, versionClients = createDashboardConversionShim(ctx, clients, gvr)
}
item, err = dashboardShim(ctx, item)