Skip to content

Commit b122cb9

Browse files
kibbles-n-bytesarschles
authored andcommitted
fix bind injection failure not being persisted in API server (openshift#1546)
* fix bind injection failure not being persisted in API server * have external properties match in-progress properties while injection fails
1 parent 66421d5 commit b122cb9

File tree

3 files changed

+6
-7
lines changed

3 files changed

+6
-7
lines changed

Diff for: pkg/controller/controller_binding.go

-2
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,6 @@ func (c *controller) reconcileServiceBinding(binding *v1beta1.ServiceBinding) er
540540
// request, so this is what the Broker knows about the state of the
541541
// binding.
542542
toUpdate.Status.ExternalProperties = toUpdate.Status.InProgressProperties
543-
toUpdate.Status.InProgressProperties = nil
544543

545544
err = c.injectServiceBinding(binding, response.Credentials)
546545
if err != nil {
@@ -1493,7 +1492,6 @@ func (c *controller) pollServiceBinding(binding *v1beta1.ServiceBinding) error {
14931492
// Update the in progress/external properties, as the changes have been
14941493
// persisted in the broker
14951494
binding.Status.ExternalProperties = binding.Status.InProgressProperties
1496-
binding.Status.InProgressProperties = nil
14971495

14981496
getBindingRequest := &osb.GetBindingRequest{
14991497
InstanceID: instance.Spec.ExternalID,

Diff for: pkg/controller/controller_binding_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ func TestReconcileServiceBindingWithSecretConflict(t *testing.T) {
338338
assertServiceBindingCurrentOperation(t, updatedServiceBinding, v1beta1.ServiceBindingOperationBind)
339339
assertServiceBindingOperationStartTimeSet(t, updatedServiceBinding, true)
340340
assertServiceBindingReconciledGeneration(t, updatedServiceBinding, binding.Status.ReconciledGeneration)
341-
assertServiceBindingInProgressPropertiesNil(t, updatedServiceBinding)
341+
assertServiceBindingInProgressPropertiesParameters(t, updatedServiceBinding, nil, "")
342342
// External properties are updated because the bind request with the Broker was successful
343343
assertServiceBindingExternalPropertiesParameters(t, updatedServiceBinding, nil, "")
344344
assertServiceBindingOrphanMitigationSet(t, updatedServiceBinding, false)
@@ -2116,7 +2116,6 @@ func TestReconcileBindingWithSecretConflictFailedAfterFinalRetry(t *testing.T) {
21162116
assertServiceBindingCondition(t, updatedServiceBinding, v1beta1.ServiceBindingConditionReady, v1beta1.ConditionFalse, errorServiceBindingOrphanMitigation)
21172117
assertServiceBindingCondition(t, updatedServiceBinding, v1beta1.ServiceBindingConditionFailed, v1beta1.ConditionTrue, errorReconciliationRetryTimeoutReason)
21182118
assertServiceBindingStartingOrphanMitigation(t, updatedServiceBinding, binding)
2119-
assertServiceBindingInProgressPropertiesNil(t, updatedServiceBinding)
21202119
assertServiceBindingExternalPropertiesParameters(t, updatedServiceBinding, nil, "")
21212120

21222121
kubeActions := fakeKubeClient.Actions()
@@ -2478,13 +2477,14 @@ func TestReconcileBindingWithSetOrphanMitigation(t *testing.T) {
24782477

24792478
updatedServiceBinding = assertUpdateStatus(t, actions[1], binding).(*v1beta1.ServiceBinding)
24802479

2480+
assertServiceBindingExternalPropertiesNil(t, updatedServiceBinding)
2481+
24812482
if tc.setOrphanMitigation {
24822483
assertServiceBindingStartingOrphanMitigation(t, updatedServiceBinding, binding)
24832484
} else {
24842485
assertServiceBindingReadyFalse(t, updatedServiceBinding)
24852486
assertServiceBindingCondition(t, updatedServiceBinding, v1beta1.ServiceBindingConditionReady, v1beta1.ConditionFalse)
2486-
assertServiceBindingOrphanMitigationSet(t, updatedServiceBinding, tc.setOrphanMitigation)
2487-
assertServiceBindingExternalPropertiesNil(t, updatedServiceBinding)
2487+
assertServiceBindingOrphanMitigationSet(t, updatedServiceBinding, false)
24882488
}
24892489
})
24902490
}

Diff for: pkg/controller/controller_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -2490,6 +2490,7 @@ func assertServiceBindingStartingOrphanMitigation(t *testing.T, obj runtime.Obje
24902490
assertServiceBindingOperationStartTimeSet(t, obj, false)
24912491
assertServiceBindingReconciledGeneration(t, obj, originalBinding.Status.ReconciledGeneration)
24922492
assertServiceBindingOrphanMitigationSet(t, obj, true)
2493+
assertServiceBindingInProgressPropertiesParameters(t, obj, nil, "")
24932494
assertServiceBindingUnbindStatus(t, obj, v1beta1.ServiceBindingUnbindStatusRequired)
24942495
}
24952496

@@ -2575,8 +2576,8 @@ func assertServiceBindingAsyncBindErrorAfterStateSucceeded(t *testing.T, obj run
25752576
assertServiceBindingOperationStartTimeSet(t, obj, false)
25762577
assertServiceBindingReconciledGeneration(t, obj, originalBinding.Status.ReconciledGeneration)
25772578
assertServiceBindingExternalPropertiesParameters(t, obj, nil, "")
2578-
assertServiceBindingInProgressPropertiesNil(t, obj)
25792579
assertServiceBindingUnbindStatus(t, obj, v1beta1.ServiceBindingUnbindStatusRequired)
2580+
assertServiceBindingInProgressPropertiesParameters(t, obj, nil, "")
25802581
assertCatalogFinalizerExists(t, obj)
25812582
}
25822583

0 commit comments

Comments
 (0)