@@ -103,10 +103,14 @@ func (r *DataguardBrokerReconciler) Reconcile(ctx context.Context, req ctrl.Requ
103103
104104 // Manage SingleInstanceDatabase Deletion
105105 result , err := r .manageDataguardBrokerDeletion (req , ctx , dataguardBroker )
106- if result .Requeue || err != nil {
106+ if result .Requeue {
107107 r .Log .Info ("Reconcile queued" )
108108 return result , err
109109 }
110+ if err != nil {
111+ r .Log .Error (err ,err .Error ())
112+ return result ,err
113+ }
110114
111115 // Fetch Primary Database Reference
112116 singleInstanceDatabase := & dbapi.SingleInstanceDatabase {}
@@ -251,6 +255,15 @@ func (r *DataguardBrokerReconciler) instantiateSVCSpec(m *dbapi.DataguardBroker)
251255 Labels : map [string ]string {
252256 "app" : m .Name ,
253257 },
258+ Annotations : func () map [string ]string {
259+ annotations := make (map [string ]string )
260+ if len (m .Spec .ServiceAnnotations ) != 0 {
261+ for key , value := range m .Spec .ServiceAnnotations {
262+ annotations [key ] = value
263+ }
264+ }
265+ return annotations
266+ }(),
254267 },
255268 Spec : corev1.ServiceSpec {
256269 Ports : []corev1.ServicePort {
@@ -1052,33 +1065,6 @@ func (r *DataguardBrokerReconciler) manageDataguardBrokerDeletion(req ctrl.Reque
10521065 // indicated by the deletion timestamp being set.
10531066 isDataguardBrokerMarkedToBeDeleted := m .GetDeletionTimestamp () != nil
10541067 if isDataguardBrokerMarkedToBeDeleted {
1055-
1056- // Make a singleinstancedatabase with empty
1057- singleInstanceDatabase := & dbapi.SingleInstanceDatabase {}
1058- err := r .Get (ctx , types.NamespacedName {Namespace : req .Namespace , Name : m .Spec .PrimaryDatabaseRef }, singleInstanceDatabase )
1059- if err != nil {
1060- log .Error (err ,err .Error ())
1061- return requeueY ,err
1062- }
1063- // Get its POD
1064- // Validate if Primary Database Reference is ready
1065- result , sidbReadyPod , _ := r .validateSidbReadiness (m , singleInstanceDatabase , ctx , req )
1066- if result .Requeue {
1067- log .Info ("Reconcile queued" )
1068- return result , nil
1069- }
1070- // Get its Role
1071- out , err := dbcommons .GetDatabaseRole (sidbReadyPod , r , r .Config , ctx , req , singleInstanceDatabase .Spec .Edition )
1072- // check if its PRIMARY
1073- if strings .ToUpper (out ) != "PRIMARY" {
1074- eventReason := "Deletion"
1075- eventMsg := "DataGuard Broker cannot be deleted since primaryDatabaseRef is not in PRIMARY role"
1076- log .Info ("DataGuard Broker cannot be deleted since primaryDatabaseRef is not in PRIMARY role" )
1077- r .Recorder .Eventf (m , corev1 .EventTypeWarning , eventReason , eventMsg )
1078- return requeueN , nil
1079- }
1080- // if not PRIMARY throw error and log it
1081-
10821068 if controllerutil .ContainsFinalizer (m , dataguardBrokerFinalizer ) {
10831069 // Run finalization logic for dataguardBrokerFinalizer. If the
10841070 // finalization logic fails, don't remove the finalizer so
@@ -1138,8 +1124,22 @@ func (r *DataguardBrokerReconciler) cleanupDataguardBroker(req ctrl.Request, ctx
11381124 return result , nil
11391125 }
11401126
1127+ // Get its Role
1128+ out , err := dbcommons .GetDatabaseRole (sidbReadyPod , r , r .Config , ctx , req , singleInstanceDatabase .Spec .Edition )
1129+ if err != nil {
1130+ log .Error (err , err .Error ())
1131+ return requeueY , err
1132+ }
1133+ // check if its PRIMARY database
1134+ if strings .ToUpper (out ) != "PRIMARY" {
1135+ eventReason := "Deletion"
1136+ eventMsg := "DataGuard Broker cannot be deleted since primaryDatabaseRef is not in PRIMARY role"
1137+ r .Recorder .Eventf (m , corev1 .EventTypeWarning , eventReason , eventMsg )
1138+ return requeueY , errors .New (eventMsg )
1139+ }
1140+
11411141 // Get Primary database to remove dataguard configuration
1142- _ , out , err : = dbcommons .GetDatabasesInDgConfig (sidbReadyPod , r , r .Config , ctx , req )
1142+ _ , out , err = dbcommons .GetDatabasesInDgConfig (sidbReadyPod , r , r .Config , ctx , req )
11431143 if err != nil {
11441144 log .Error (err , err .Error ())
11451145 return requeueY , err
0 commit comments