From 2ef46ced1029c13a460d11027cb3717596c2f0b5 Mon Sep 17 00:00:00 2001 From: Yuxin Bai Date: Fri, 15 May 2020 15:47:05 -0400 Subject: [PATCH] Fix binding credentials permission deletion failure Connects to #368 --- ...ubPersistingDeleteServiceInstanceBindingWorkflow.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/spring-cloud-app-broker-security-credhub/src/main/java/org/springframework/cloud/appbroker/workflow/binding/CredHubPersistingDeleteServiceInstanceBindingWorkflow.java b/spring-cloud-app-broker-security-credhub/src/main/java/org/springframework/cloud/appbroker/workflow/binding/CredHubPersistingDeleteServiceInstanceBindingWorkflow.java index 89507cf..dd1f96d 100644 --- a/spring-cloud-app-broker-security-credhub/src/main/java/org/springframework/cloud/appbroker/workflow/binding/CredHubPersistingDeleteServiceInstanceBindingWorkflow.java +++ b/spring-cloud-app-broker-security-credhub/src/main/java/org/springframework/cloud/appbroker/workflow/binding/CredHubPersistingDeleteServiceInstanceBindingWorkflow.java @@ -47,12 +47,12 @@ public class CredHubPersistingDeleteServiceInstanceBindingWorkflow extends CredH DeleteServiceInstanceBindingResponseBuilder responseBuilder) { return buildCredentialName(request.getServiceDefinitionId(), request.getBindingId()) .filterWhen(this::credentialExists) - .flatMap(this::deleteCredential) - .flatMap(this::deletePermission) + .delayUntil(this::deletePermission) + .delayUntil(this::deleteCredential) .thenReturn(responseBuilder); } - private Mono deleteCredential(ServiceInstanceCredentialName credentialName) { + private Mono deleteCredential(ServiceInstanceCredentialName credentialName) { return credHubOperations.credentials() .deleteByName(credentialName) .doOnRequest( @@ -61,8 +61,7 @@ public class CredHubPersistingDeleteServiceInstanceBindingWorkflow extends CredH .debug("Finished deleting binding credentials with name '{}' in CredHub", credentialName.getName())) .doOnError(exception -> LOG.error( String.format("Error deleting binding credentials with name '%s' in CredHub with error: '%s'", - credentialName.getName(), exception.getMessage()), exception)) - .thenReturn(credentialName); + credentialName.getName(), exception.getMessage()), exception)); } private Mono deletePermission(ServiceInstanceCredentialName credentialName) {