@@ -325,13 +325,19 @@ func (m *SmbShareManager) getOrCreateServiceAccountOf(
325
325
}
326
326
err = m .client .Create (ctx , saWant , & rtclient.CreateOptions {})
327
327
if err != nil {
328
- if errors .IsAlreadyExists (err ) {
329
- m .logger .Info ("ServiceAccount already exists" , "key" , saKey )
330
- } else {
328
+ if ! errors .IsAlreadyExists (err ) {
331
329
m .logger .Error (err , "Failed to create ServiceAccount" ,
332
330
"key" , saKey )
331
+ return nil , false , err
333
332
}
334
- return nil , false , err
333
+ m .logger .Info ("Retry to get ServiceAccount" , "key" , saKey )
334
+ saCurr , saKey , err = m .getServiceAccountOf (ctx , smbshare )
335
+ if err != nil {
336
+ m .logger .Error (err , "Failed to get existing ServiceAccount" ,
337
+ "key" , saKey )
338
+ return nil , false , err
339
+ }
340
+ return saCurr , false , err
335
341
}
336
342
return saWant , true , nil
337
343
}
@@ -393,12 +399,18 @@ func (m *SmbShareManager) getOrCreateSCCRoleOf(
393
399
}
394
400
err = m .client .Create (ctx , roleWant , & rtclient.CreateOptions {})
395
401
if err != nil {
396
- if errors .IsAlreadyExists (err ) {
397
- m .logger .Info ("SCC Role already exists" , "key" , roleKey )
398
- } else {
402
+ if ! errors .IsAlreadyExists (err ) {
399
403
m .logger .Error (err , "Failed to create SCC Role" , "key" , roleKey )
404
+ return nil , false , err
400
405
}
401
- return nil , false , err
406
+ m .logger .Info ("Retry to get SCC Role" , "key" , roleKey )
407
+ roleCurr , roleKey , err = m .getSCCRoleOf (ctx , smbshare )
408
+ if err != nil {
409
+ m .logger .Error (err , "Failed to get existing SCC Role" ,
410
+ "key" , roleKey )
411
+ return nil , false , err
412
+ }
413
+ return roleCurr , false , err
402
414
}
403
415
return roleWant , true , nil
404
416
}
@@ -450,13 +462,19 @@ func (m *SmbShareManager) getOrCreateSCCRoleBindingOf(
450
462
}
451
463
err = m .client .Create (ctx , roleBindWant , & rtclient.CreateOptions {})
452
464
if err != nil {
453
- if errors .IsAlreadyExists (err ) {
454
- m .logger .Info ("SCC RoleBinding already exists" , "key" , roleBindKey )
455
- } else {
465
+ if ! errors .IsAlreadyExists (err ) {
456
466
m .logger .Error (err , "Failed to create RoleBinding" ,
457
467
"key" , roleBindKey )
468
+ return nil , false , err
458
469
}
459
- return nil , false , err
470
+ m .logger .Info ("Retry to get RoleBinding" , "key" , roleBindKey )
471
+ roleBindCurr , roleBindKey , err = m .getSCCRoleBindingOf (ctx , smbshare )
472
+ if err != nil {
473
+ m .logger .Error (err , "Failed to get existing RoleBinding" ,
474
+ "key" , roleBindKey )
475
+ return nil , false , err
476
+ }
477
+ return roleBindCurr , false , nil
460
478
}
461
479
return roleBindWant , true , nil
462
480
}
@@ -517,13 +535,19 @@ func (m *SmbShareManager) getOrCreateMetricsRoleOf(
517
535
}
518
536
err = m .client .Create (ctx , roleWant , & rtclient.CreateOptions {})
519
537
if err != nil {
520
- if errors .IsAlreadyExists (err ) {
521
- m .logger .Info ("Metrics Role already exists" , "key" , roleKey )
522
- } else {
538
+ if ! errors .IsAlreadyExists (err ) {
523
539
m .logger .Error (err , "Failed to create Metrics Role" ,
524
540
"key" , roleKey )
541
+ return nil , false , err
525
542
}
526
- return nil , false , err
543
+ m .logger .Info ("Retry to get Metrics Role" , "key" , roleKey )
544
+ roleCurr , roleKey , err = m .getMetricsRoleOf (ctx , smbshare )
545
+ if err != nil {
546
+ m .logger .Error (err , "Failed to get existing Metrics Role" ,
547
+ "key" , roleKey )
548
+ return nil , false , err
549
+ }
550
+ return roleCurr , false , err
527
551
}
528
552
return roleWant , true , nil
529
553
}
@@ -576,14 +600,19 @@ func (m *SmbShareManager) getOrCreateMetricsRoleBindingOf(
576
600
}
577
601
err = m .client .Create (ctx , roleBindWant , & rtclient.CreateOptions {})
578
602
if err != nil {
579
- if errors .IsAlreadyExists (err ) {
580
- m .logger .Info ("Metrics RoleBinding already exists" ,
581
- "key" , roleBindKey )
582
- } else {
603
+ if ! errors .IsAlreadyExists (err ) {
583
604
m .logger .Error (err , "Failed to create Metrics RoleBinding" ,
584
605
"key" , roleBindKey )
606
+ return nil , false , err
585
607
}
586
- return nil , false , err
608
+ m .logger .Info ("Retry to get Metrics RoleBinding" , "key" , roleBindKey )
609
+ roleBindCurr , roleBindKey , err = m .getMetricsRoleBindingOf (ctx , smbshare )
610
+ if err != nil {
611
+ m .logger .Error (err , "Failed to get existing Metrics RoleBinding" ,
612
+ "key" , roleBindKey )
613
+ return nil , false , err
614
+ }
615
+ return roleBindCurr , false , err
587
616
}
588
617
return roleBindWant , true , nil
589
618
}
0 commit comments