Skip to content

Commit 8ceb542

Browse files
committed
Retain resources ID
Previously, when the CR entered a failed state, all IDs were wiped, causing other functions relying on those IDs from the status to fail. This commit refactors the status function to retain IDs from the previous state.
1 parent a3d4b43 commit 8ceb542

File tree

5 files changed

+43
-25
lines changed

5 files changed

+43
-25
lines changed

controllers/capabilities/activedoc_status_reconciler.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,22 +76,22 @@ func (s *ActiveDocStatusReconciler) Reconcile() (reconcile.Result, error) {
7676
}
7777

7878
func (s *ActiveDocStatusReconciler) calculateStatus() (*capabilitiesv1beta1.ActiveDocStatus, error) {
79-
newStatus := &capabilitiesv1beta1.ActiveDocStatus{}
79+
newStatus := &capabilitiesv1beta1.ActiveDocStatus{
80+
ID: s.resource.Status.ID,
81+
ProviderAccountHost: s.providerAccountHost,
82+
ObservedGeneration: s.resource.Status.ObservedGeneration,
83+
}
8084

8185
if s.activeDoc != nil {
8286
newStatus.ID = s.activeDoc.Element.ID
8387
}
8488

85-
newStatus.ProviderAccountHost = s.providerAccountHost
86-
8789
productResourceName, err := s.getReferencedProduct()
8890
if err != nil {
8991
return nil, err
9092
}
9193
newStatus.ProductResourceName = productResourceName
9294

93-
newStatus.ObservedGeneration = s.resource.Status.ObservedGeneration
94-
9595
newStatus.Conditions = s.resource.Status.Conditions.Copy()
9696
newStatus.Conditions.SetCondition(s.readyCondition())
9797
newStatus.Conditions.SetCondition(s.orphanCondition())

controllers/capabilities/application_status_reconciler.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,13 @@ func (s *ApplicationStatusReconciler) Reconcile() (reconcile.Result, error) {
7373
}
7474

7575
func (s *ApplicationStatusReconciler) calculateStatus() *capabilitiesv1beta1.ApplicationStatus {
76-
newStatus := &capabilitiesv1beta1.ApplicationStatus{}
76+
newStatus := &capabilitiesv1beta1.ApplicationStatus{
77+
ID: s.applicationResource.Status.ID,
78+
State: s.applicationResource.Status.State,
79+
ProviderAccountHost: s.applicationResource.Status.ProviderAccountHost,
80+
ObservedGeneration: s.applicationResource.Status.ObservedGeneration,
81+
Conditions: s.applicationResource.Status.Conditions.Copy(),
82+
}
7783

7884
if s.entity != nil {
7985
tmpID := s.entity.ID()
@@ -84,11 +90,10 @@ func (s *ApplicationStatusReconciler) calculateStatus() *capabilitiesv1beta1.App
8490
newStatus.State = s.entity.ApplicationState()
8591
}
8692

87-
newStatus.ProviderAccountHost = s.providerAccountHost
88-
89-
newStatus.ObservedGeneration = s.applicationResource.Status.ObservedGeneration
93+
if s.providerAccountHost != "" {
94+
newStatus.ProviderAccountHost = s.providerAccountHost
95+
}
9096

91-
newStatus.Conditions = s.applicationResource.Status.Conditions.Copy()
9297
newStatus.Conditions.SetCondition(s.ReadyCondition())
9398

9499
return newStatus

controllers/capabilities/backend_status_reconciler.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,17 +72,22 @@ func (s *BackendStatusReconciler) Reconcile() (reconcile.Result, error) {
7272
}
7373

7474
func (s *BackendStatusReconciler) calculateStatus() *capabilitiesv1beta1.BackendStatus {
75-
newStatus := &capabilitiesv1beta1.BackendStatus{}
75+
newStatus := &capabilitiesv1beta1.BackendStatus{
76+
ID: s.backendResource.Status.ID,
77+
ProviderAccountHost: s.backendResource.Status.ProviderAccountHost,
78+
ObservedGeneration: s.backendResource.Status.ObservedGeneration,
79+
Conditions: s.backendResource.Status.Conditions.Copy(),
80+
}
81+
7682
if s.backendAPIEntity != nil {
7783
tmp := s.backendAPIEntity.ID()
7884
newStatus.ID = &tmp
7985
}
8086

81-
newStatus.ProviderAccountHost = s.providerAccountHost
82-
83-
newStatus.ObservedGeneration = s.backendResource.Status.ObservedGeneration
87+
if s.providerAccountHost != "" {
88+
newStatus.ProviderAccountHost = s.providerAccountHost
89+
}
8490

85-
newStatus.Conditions = s.backendResource.Status.Conditions.Copy()
8691
newStatus.Conditions.SetCondition(s.syncCondition())
8792
newStatus.Conditions.SetCondition(s.invalidCondition())
8893
newStatus.Conditions.SetCondition(s.failedCondition())

controllers/capabilities/custompolicydefinition_status_reconciler.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,17 +72,21 @@ func (s *CustomPolicyDefinitionStatusReconciler) Reconcile() (reconcile.Result,
7272
}
7373

7474
func (s *CustomPolicyDefinitionStatusReconciler) calculateStatus() *capabilitiesv1beta1.CustomPolicyDefinitionStatus {
75-
newStatus := &capabilitiesv1beta1.CustomPolicyDefinitionStatus{}
75+
newStatus := &capabilitiesv1beta1.CustomPolicyDefinitionStatus{
76+
ID: s.resource.Status.ID,
77+
ProviderAccountHost: s.resource.Status.ProviderAccountHost,
78+
ObservedGeneration: s.resource.Status.ObservedGeneration,
79+
Conditions: s.resource.Status.Conditions.Copy(),
80+
}
7681

7782
if s.customPolicy != nil {
7883
newStatus.ID = s.customPolicy.Element.ID
7984
}
8085

81-
newStatus.ProviderAccountHost = s.providerAccountHost
82-
83-
newStatus.ObservedGeneration = s.resource.Status.ObservedGeneration
86+
if s.providerAccountHost != "" {
87+
newStatus.ProviderAccountHost = s.providerAccountHost
88+
}
8489

85-
newStatus.Conditions = s.resource.Status.Conditions.Copy()
8690
newStatus.Conditions.SetCondition(s.readyCondition())
8791
newStatus.Conditions.SetCondition(s.invalidCondition())
8892
newStatus.Conditions.SetCondition(s.failedCondition())

controllers/capabilities/product_status_reconciler.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,17 +72,21 @@ func (s *ProductStatusReconciler) Reconcile() (reconcile.Result, error) {
7272
}
7373

7474
func (s *ProductStatusReconciler) calculateStatus() *capabilitiesv1beta1.ProductStatus {
75-
newStatus := &capabilitiesv1beta1.ProductStatus{}
75+
newStatus := &capabilitiesv1beta1.ProductStatus{
76+
ID: s.resource.Status.ID,
77+
ProviderAccountHost: s.resource.Status.ProviderAccountHost,
78+
ObservedGeneration: s.resource.Status.ObservedGeneration,
79+
Conditions: s.resource.Status.Conditions.Copy(),
80+
}
7681
if s.entity != nil {
7782
tmpID := s.entity.ID()
7883
newStatus.ID = &tmpID
7984
}
8085

81-
newStatus.ProviderAccountHost = s.providerAccountHost
82-
83-
newStatus.ObservedGeneration = s.resource.Status.ObservedGeneration
86+
if s.providerAccountHost != "" {
87+
newStatus.ProviderAccountHost = s.providerAccountHost
88+
}
8489

85-
newStatus.Conditions = s.resource.Status.Conditions.Copy()
8690
newStatus.Conditions.SetCondition(s.syncCondition())
8791
newStatus.Conditions.SetCondition(s.orphanCondition())
8892
newStatus.Conditions.SetCondition(s.invalidCondition())

0 commit comments

Comments
 (0)