@@ -301,7 +301,7 @@ func (r *GrafanaFolderReconciler) onFolderCreated(ctx context.Context, grafana *
301
301
}
302
302
303
303
// always update after resync period has elapsed even if cr is unchanged.
304
- if exists && cr .Unchanged () && ! cr .ResyncPeriodHasElapsed () {
304
+ if exists && cr .Unchanged () && ! cr .ResyncPeriodHasElapsed () && ! cr . Moved () {
305
305
return nil
306
306
}
307
307
@@ -327,6 +327,15 @@ func (r *GrafanaFolderReconciler) onFolderCreated(ctx context.Context, grafana *
327
327
return err
328
328
}
329
329
}
330
+
331
+ if cr .Moved () {
332
+ _ , err = grafanaClient .Folders .MoveFolder (remoteUID , & models.MoveFolderCommand { //nolint
333
+ ParentUID : cr .Spec .ParentFolderUID ,
334
+ })
335
+ if err != nil {
336
+ return err
337
+ }
338
+ }
330
339
} else {
331
340
body := & models.CreateFolderCommand {
332
341
Title : title ,
@@ -365,6 +374,7 @@ func (r *GrafanaFolderReconciler) onFolderCreated(ctx context.Context, grafana *
365
374
366
375
func (r * GrafanaFolderReconciler ) UpdateStatus (ctx context.Context , cr * grafanav1beta1.GrafanaFolder ) error {
367
376
cr .Status .Hash = cr .Hash ()
377
+ cr .Status .ParentFolderUID = cr .Spec .ParentFolderUID
368
378
return r .Client .Status ().Update (ctx , cr )
369
379
}
370
380
@@ -375,7 +385,7 @@ func (r *GrafanaFolderReconciler) Exists(client *genapi.GrafanaHTTPAPI, cr *graf
375
385
page := int64 (1 )
376
386
limit := int64 (10000 )
377
387
for {
378
- params := folders .NewGetFoldersParams ().WithPage (& page ).WithLimit (& limit ).WithParentUID (& cr .Spec .ParentFolderUID )
388
+ params := folders .NewGetFoldersParams ().WithPage (& page ).WithLimit (& limit ).WithParentUID (& cr .Status .ParentFolderUID )
379
389
380
390
foldersResp , err := client .Folders .GetFolders (params )
381
391
if err != nil {
0 commit comments