From 0f703d2ec6ab4a4750a71f2a1fe42faa7d4861fc Mon Sep 17 00:00:00 2001 From: Alberto Rios Date: Tue, 6 Nov 2018 12:31:37 +0100 Subject: [PATCH] Deploy all the backing apps of a given service to a single space Connected to #133 --- ...reateInstanceWithTargetAcceptanceTest.java | 3 +- ...pdateInstanceWithTargetAcceptanceTest.java | 4 +-- .../deployer/BackingApplication.java | 29 +++---------------- .../appbroker/deployer/BrokeredService.java | 26 ++++++++++++++--- .../extensions/targets/TargetService.java | 2 +- ...ploymentCreateServiceInstanceWorkflow.java | 2 +- ...ploymentDeleteServiceInstanceWorkflow.java | 2 +- .../AppDeploymentInstanceWorkflow.java | 6 ++++ ...ploymentUpdateServiceInstanceWorkflow.java | 2 +- .../extensions/targets/TargetServiceTest.java | 14 ++++----- ...mentCreateServiceInstanceWorkflowTest.java | 7 +++-- ...mentDeleteServiceInstanceWorkflowTest.java | 5 +++- ...mentUpdateServiceInstanceWorkflowTest.java | 7 +++-- ...CreateInstanceWithTargetComponentTest.java | 2 +- 14 files changed, 61 insertions(+), 50 deletions(-) diff --git a/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/CreateInstanceWithTargetAcceptanceTest.java b/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/CreateInstanceWithTargetAcceptanceTest.java index f30ff19..403e17b 100644 --- a/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/CreateInstanceWithTargetAcceptanceTest.java +++ b/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/CreateInstanceWithTargetAcceptanceTest.java @@ -36,10 +36,9 @@ class CreateInstanceWithTargetAcceptanceTest extends CloudFoundryAcceptanceTest "spring.cloud.appbroker.services[0].plan-name=standard", "spring.cloud.appbroker.services[0].apps[0].name=" + BROKER_SAMPLE_APP_CREATE_WITH_TARGET, "spring.cloud.appbroker.services[0].apps[0].path=classpath:demo.jar", - "spring.cloud.appbroker.services[0].apps[0].target.name=SpacePerServiceInstance", "spring.cloud.appbroker.services[0].apps[1].name=" + BROKER_SAMPLE_APP_CREATE_WITH_TARGET_OTHER, "spring.cloud.appbroker.services[0].apps[1].path=classpath:demo.jar", - "spring.cloud.appbroker.services[0].apps[1].target.name=SpacePerServiceInstance" + "spring.cloud.appbroker.services[0].target.name=SpacePerServiceInstance" }) void shouldCreateMultipleAppsInSpace() { // when a service instance is created with targets diff --git a/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/UpdateInstanceWithTargetAcceptanceTest.java b/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/UpdateInstanceWithTargetAcceptanceTest.java index 5ae4d3e..c8a6d52 100644 --- a/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/UpdateInstanceWithTargetAcceptanceTest.java +++ b/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/UpdateInstanceWithTargetAcceptanceTest.java @@ -39,8 +39,8 @@ class UpdateInstanceWithTargetAcceptanceTest extends CloudFoundryAcceptanceTest "spring.cloud.appbroker.services[0].plan-name=standard", "spring.cloud.appbroker.services[0].apps[0].name=" + BROKER_SAMPLE_APP_CREATE_WITH_TARGET, "spring.cloud.appbroker.services[0].apps[0].path=classpath:demo.jar", - "spring.cloud.appbroker.services[0].apps[0].target.name=SpacePerServiceInstance", - "spring.cloud.appbroker.services[0].apps[0].environment.parameter1=config1" + "spring.cloud.appbroker.services[0].apps[0].environment.parameter1=config1", + "spring.cloud.appbroker.services[0].target.name=SpacePerServiceInstance" }) void shouldCreateAppInTargetWhenAddingNewProperties() { // when a service instance is created diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BackingApplication.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BackingApplication.java index 33ebb32..c195caf 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BackingApplication.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BackingApplication.java @@ -34,7 +34,6 @@ public class BackingApplication { private List services; private List parametersTransformers; private List credentialProviders; - private TargetSpec target; public BackingApplication(BackingApplication backingApplicationToCopy) { this.name = backingApplicationToCopy.name; @@ -54,7 +53,6 @@ public class BackingApplication { this.credentialProviders = backingApplicationToCopy.credentialProviders == null ? new ArrayList<>() : new ArrayList<>(backingApplicationToCopy.credentialProviders); - this.target = backingApplicationToCopy.target; } private BackingApplication() { @@ -65,8 +63,7 @@ public class BackingApplication { Map environment, List services, List parametersTransformers, - List credentialProviders, - TargetSpec target) { + List credentialProviders) { this.name = name; this.path = path; this.properties = properties; @@ -74,7 +71,6 @@ public class BackingApplication { this.services = services; this.parametersTransformers = parametersTransformers; this.credentialProviders = credentialProviders; - this.target = target; } public String getName() { @@ -140,15 +136,6 @@ public class BackingApplication { public void setCredentialProviders(List credentialProviders) { this.credentialProviders = credentialProviders; } - - public TargetSpec getTarget() { - return target; - } - - public void setTarget(TargetSpec target) { - this.target = target; - } - public static BackingApplicationBuilder builder() { return new BackingApplicationBuilder(); } @@ -168,14 +155,13 @@ public class BackingApplication { Objects.equals(environment, that.environment) && Objects.equals(services, that.services) && Objects.equals(parametersTransformers, that.parametersTransformers) && - Objects.equals(credentialProviders, that.credentialProviders) && - Objects.equals(target, that.target); + Objects.equals(credentialProviders, that.credentialProviders); } @Override public final int hashCode() { return Objects.hash(name, path, properties, environment, services, - parametersTransformers, credentialProviders, target); + parametersTransformers, credentialProviders); } @Override @@ -188,7 +174,6 @@ public class BackingApplication { ", services=" + services + ", parametersTransformers=" + parametersTransformers + ", credentialProviders=" + credentialProviders + - ", target=" + target + '}'; } @@ -212,7 +197,6 @@ public class BackingApplication { private final List services = new ArrayList<>(); private final List parameterTransformers = new ArrayList<>(); private final List credentialProviders = new ArrayList<>(); - private TargetSpec target; BackingApplicationBuilder() { } @@ -262,14 +246,9 @@ public class BackingApplication { return this; } - public BackingApplicationBuilder target(TargetSpec targetSpec) { - this.target = targetSpec; - return this; - } - public BackingApplication build() { return new BackingApplication(name, path, properties, environment, services, - parameterTransformers, credentialProviders, target); + parameterTransformers, credentialProviders); } } } diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BrokeredService.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BrokeredService.java index 9dbf37f..bc97f7d 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BrokeredService.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BrokeredService.java @@ -24,15 +24,17 @@ public class BrokeredService { private String planName; private BackingApplications apps; private BackingServices services; + private TargetSpec target; private BrokeredService() { } - BrokeredService(String serviceName, String planName, BackingApplications apps, BackingServices services) { + BrokeredService(String serviceName, String planName, BackingApplications apps, BackingServices services, TargetSpec target) { this.serviceName = serviceName; this.planName = planName; this.apps = apps; this.services = services; + this.target = target; } public String getServiceName() { @@ -67,6 +69,14 @@ public class BrokeredService { this.services = services; } + public TargetSpec getTarget() { + return target; + } + + public void setTarget(TargetSpec target) { + this.target = target; + } + public static BrokeredServiceBuilder builder() { return new BrokeredServiceBuilder(); } @@ -83,12 +93,13 @@ public class BrokeredService { return Objects.equals(serviceName, that.serviceName) && Objects.equals(planName, that.planName) && Objects.equals(apps, that.apps) && - Objects.equals(services, that.services); + Objects.equals(services, that.services) && + Objects.equals(target, that.target); } @Override public final int hashCode() { - return Objects.hash(serviceName, planName, apps, services); + return Objects.hash(serviceName, planName, apps, services, target); } @Override @@ -98,6 +109,7 @@ public class BrokeredService { ", planName='" + planName + '\'' + ", apps=" + apps + ", services=" + services + + ", target=" + target + '}'; } @@ -107,6 +119,7 @@ public class BrokeredService { private String planId; private BackingApplications backingApplications; private BackingServices backingServices; + private TargetSpec target; public BrokeredServiceBuilder serviceName(String id) { this.id = id; @@ -128,8 +141,13 @@ public class BrokeredService { return this; } + public BrokeredServiceBuilder target(TargetSpec target) { + this.target = target; + return this; + } + public BrokeredService build() { - return new BrokeredService(id, planId, backingApplications, backingServices); + return new BrokeredService(id, planId, backingApplications, backingServices, target); } } } diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/targets/TargetService.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/targets/TargetService.java index 91e063c..2e31c32 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/targets/TargetService.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/targets/TargetService.java @@ -35,11 +35,11 @@ public class TargetService { } public Mono> add(List backingApplications, + TargetSpec targetSpec, String serviceInstanceId) { return Flux.fromIterable(backingApplications) .flatMap(backingApplication -> { - TargetSpec targetSpec = backingApplication.getTarget(); if (targetSpec != null) { Target target = locator.getByName(targetSpec.getName(), Collections.emptyMap()); return target.apply(backingApplication, serviceInstanceId); diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentCreateServiceInstanceWorkflow.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentCreateServiceInstanceWorkflow.java index 3aa4086..b75b25e 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentCreateServiceInstanceWorkflow.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentCreateServiceInstanceWorkflow.java @@ -66,7 +66,7 @@ public class AppDeploymentCreateServiceInstanceWorkflow .flatMapMany(backingServicesProvisionService::createServiceInstance) .thenMany( getBackingApplicationsForService(request.getServiceDefinition(), request.getPlanId()) - .flatMap(backingApps -> targetService.add(backingApps, request.getServiceInstanceId())) + .flatMap(backingApps -> targetService.add(backingApps, getTargetForService(request.getServiceDefinition(), request.getPlanId()) , request.getServiceInstanceId())) .flatMap(backingApps -> parametersTransformationService.transformParameters(backingApps, request.getParameters())) .flatMap(backingApplications -> credentialProviderService.addCredentials(backingApplications, request.getServiceInstanceId())) .flatMapMany(deploymentService::deploy) diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentDeleteServiceInstanceWorkflow.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentDeleteServiceInstanceWorkflow.java index ecf285c..e0a8ac4 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentDeleteServiceInstanceWorkflow.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentDeleteServiceInstanceWorkflow.java @@ -63,7 +63,7 @@ public class AppDeploymentDeleteServiceInstanceWorkflow .thenMany( getBackingApplicationsForService(request.getServiceDefinition(), request.getPlanId()) .flatMap(backingApplications -> credentialProviderService.deleteCredentials(backingApplications, request.getServiceInstanceId())) - .flatMap(backingApps -> targetService.add(backingApps, request.getServiceInstanceId())) + .flatMap(backingApps -> targetService.add(backingApps, getTargetForService(request.getServiceDefinition(), request.getPlanId()), request.getServiceInstanceId())) .flatMapMany(deploymentService::undeploy) .doOnRequest(l -> log.info("Undeploying applications {}", brokeredServices)) .doOnEach(s -> log.info("Finished undeploying {}", s)) diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentInstanceWorkflow.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentInstanceWorkflow.java index cc54b0a..5e8dc21 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentInstanceWorkflow.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentInstanceWorkflow.java @@ -26,6 +26,7 @@ import org.springframework.cloud.appbroker.deployer.BackingService; import org.springframework.cloud.appbroker.deployer.BackingServices; import org.springframework.cloud.appbroker.deployer.BrokeredService; import org.springframework.cloud.appbroker.deployer.BrokeredServices; +import org.springframework.cloud.appbroker.deployer.TargetSpec; import org.springframework.cloud.servicebroker.model.catalog.ServiceDefinition; class AppDeploymentInstanceWorkflow { @@ -42,6 +43,11 @@ class AppDeploymentInstanceWorkflow { .defaultIfEmpty(false); } + TargetSpec getTargetForService(ServiceDefinition serviceDefinition, String planId) { + BrokeredService brokeredService = findBrokeredService(serviceDefinition, planId); + return brokeredService == null ? null : brokeredService.getTarget(); + } + Mono> getBackingApplicationsForService(ServiceDefinition serviceDefinition, String planId) { return Mono.defer(() -> Mono.justOrEmpty(findBackingApplications(serviceDefinition, planId))); diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentUpdateServiceInstanceWorkflow.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentUpdateServiceInstanceWorkflow.java index 091729b..f480657 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentUpdateServiceInstanceWorkflow.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentUpdateServiceInstanceWorkflow.java @@ -53,7 +53,7 @@ public class AppDeploymentUpdateServiceInstanceWorkflow public Flux update(UpdateServiceInstanceRequest request) { return getBackingApplicationsForService(request.getServiceDefinition(), request.getPlanId()) - .flatMap(backingApps -> targetService.add(backingApps, request.getServiceInstanceId())) + .flatMap(backingApps -> targetService.add(backingApps, getTargetForService(request.getServiceDefinition(), request.getPlanId()), request.getServiceInstanceId())) .flatMap(backingApps -> parametersTransformationService.transformParameters(backingApps, request.getParameters())) .flatMapMany(deploymentService::deploy) diff --git a/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/extensions/targets/TargetServiceTest.java b/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/extensions/targets/TargetServiceTest.java index f3471ff..92a673f 100644 --- a/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/extensions/targets/TargetServiceTest.java +++ b/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/extensions/targets/TargetServiceTest.java @@ -40,11 +40,11 @@ class TargetServiceTest { @Test void shouldAddProperties() { // given an app with a target - TargetSpec spacePerServiceInstanceFactory = TargetSpec.builder().name("SpacePerServiceInstance").build(); - BackingApplication backingApplication = BackingApplication.builder().name("app-name").target(spacePerServiceInstanceFactory).build(); + TargetSpec targetSpec = TargetSpec.builder().name("SpacePerServiceInstance").build(); + BackingApplication backingApplication = BackingApplication.builder().name("app-name").build(); //when add gets called - List updatedBackingApplications = targetService.add(singletonList(backingApplication), "service-id").block(); + List updatedBackingApplications = targetService.add(singletonList(backingApplication), targetSpec, "service-id").block(); //then a host and space are added BackingApplication updatedBackingApplication = updatedBackingApplications.get(0); @@ -55,12 +55,12 @@ class TargetServiceTest { @Test void shouldAddPropertiesToAllBackingApps() { // given an app with a target - TargetSpec spacePerServiceInstanceFactory = TargetSpec.builder().name("SpacePerServiceInstance").build(); - BackingApplication backingApplication1 = BackingApplication.builder().name("app-name1").target(spacePerServiceInstanceFactory).build(); - BackingApplication backingApplication2 = BackingApplication.builder().name("app-name2").target(spacePerServiceInstanceFactory).build(); + TargetSpec targetSpec = TargetSpec.builder().name("SpacePerServiceInstance").build(); + BackingApplication backingApplication1 = BackingApplication.builder().name("app-name1").build(); + BackingApplication backingApplication2 = BackingApplication.builder().name("app-name2").build(); //when add gets called - List updatedBackingApplications = targetService.add(Lists.list(backingApplication1, backingApplication2), "service-id").block(); + List updatedBackingApplications = targetService.add(Lists.list(backingApplication1, backingApplication2), targetSpec, "service-id").block(); //then a host and space are added BackingApplication updatedBackingApplication1 = updatedBackingApplications.get(0); diff --git a/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentCreateServiceInstanceWorkflowTest.java b/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentCreateServiceInstanceWorkflowTest.java index 7272d3d..328803e 100644 --- a/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentCreateServiceInstanceWorkflowTest.java +++ b/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentCreateServiceInstanceWorkflowTest.java @@ -36,6 +36,7 @@ import org.springframework.cloud.appbroker.deployer.BackingServices; import org.springframework.cloud.appbroker.deployer.BackingServicesProvisionService; import org.springframework.cloud.appbroker.deployer.BrokeredService; import org.springframework.cloud.appbroker.deployer.BrokeredServices; +import org.springframework.cloud.appbroker.deployer.TargetSpec; import org.springframework.cloud.appbroker.extensions.credentials.CredentialProviderService; import org.springframework.cloud.appbroker.extensions.parameters.ParametersTransformationService; import org.springframework.cloud.appbroker.extensions.targets.TargetService; @@ -70,6 +71,7 @@ class AppDeploymentCreateServiceInstanceWorkflowTest { private BackingApplications backingApps; private BackingServices backingServices; + private TargetSpec targetSpec; private CreateServiceInstanceWorkflow createServiceInstanceWorkflow; @@ -107,6 +109,7 @@ class AppDeploymentCreateServiceInstanceWorkflowTest { .planName("plan1") .apps(backingApps) .services(backingServices) + .target(targetSpec) .build()) .build(); @@ -170,7 +173,7 @@ class AppDeploymentCreateServiceInstanceWorkflowTest { .verifyComplete(); final String expectedServiceId = "service-instance-id"; - verify(targetService).add(backingApps, expectedServiceId); + verify(targetService).add(backingApps, targetSpec, expectedServiceId); verifyNoMoreInteractionsWithServices(); } @@ -193,7 +196,7 @@ class AppDeploymentCreateServiceInstanceWorkflowTest { .willReturn(Mono.just(backingApps)); given(this.credentialProviderService.addCredentials(eq(backingApps), eq(request.getServiceInstanceId()))) .willReturn(Mono.just(backingApps)); - given(this.targetService.add(eq(backingApps), eq(request.getServiceInstanceId()))) + given(this.targetService.add(eq(backingApps), eq(targetSpec), eq(request.getServiceInstanceId()))) .willReturn(Mono.just(backingApps)); given(this.backingServicesProvisionService.createServiceInstance(eq(backingServices))) .willReturn(Flux.just("my-service-instance")); diff --git a/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentDeleteServiceInstanceWorkflowTest.java b/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentDeleteServiceInstanceWorkflowTest.java index 712ca29..a25ccf7 100644 --- a/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentDeleteServiceInstanceWorkflowTest.java +++ b/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentDeleteServiceInstanceWorkflowTest.java @@ -33,6 +33,7 @@ import org.springframework.cloud.appbroker.deployer.BackingServices; import org.springframework.cloud.appbroker.deployer.BackingServicesProvisionService; import org.springframework.cloud.appbroker.deployer.BrokeredService; import org.springframework.cloud.appbroker.deployer.BrokeredServices; +import org.springframework.cloud.appbroker.deployer.TargetSpec; import org.springframework.cloud.appbroker.extensions.credentials.CredentialProviderService; import org.springframework.cloud.appbroker.extensions.targets.TargetService; import org.springframework.cloud.appbroker.service.DeleteServiceInstanceWorkflow; @@ -61,6 +62,7 @@ class AppDeploymentDeleteServiceInstanceWorkflowTest { private BackingApplications backingApps; private BackingServices backingServices; + private TargetSpec targetSpec; private DeleteServiceInstanceWorkflow deleteServiceInstanceWorkflow; @@ -98,6 +100,7 @@ class AppDeploymentDeleteServiceInstanceWorkflowTest { .planName("plan1") .apps(backingApps) .services(backingServices) + .target(targetSpec) .build()) .build(); @@ -118,7 +121,7 @@ class AppDeploymentDeleteServiceInstanceWorkflowTest { .willReturn(Flux.just("undeployed1", "undeployed2")); given(this.credentialProviderService.deleteCredentials(eq(backingApps), eq(request.getServiceInstanceId()))) .willReturn(Mono.just(backingApps)); - given(this.targetService.add(eq(backingApps), eq("service-instance-id"))) + given(this.targetService.add(eq(backingApps), eq(targetSpec), eq("service-instance-id"))) .willReturn(Mono.just(backingApps)); given(this.backingServicesProvisionService.deleteServiceInstance(eq(backingServices))) .willReturn(Flux.just("my-service-instance")); diff --git a/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentUpdateServiceInstanceWorkflowTest.java b/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentUpdateServiceInstanceWorkflowTest.java index f5acad9..bcadf8b 100644 --- a/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentUpdateServiceInstanceWorkflowTest.java +++ b/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentUpdateServiceInstanceWorkflowTest.java @@ -33,6 +33,7 @@ import org.springframework.cloud.appbroker.deployer.BackingApplication; import org.springframework.cloud.appbroker.deployer.BackingApplications; import org.springframework.cloud.appbroker.deployer.BrokeredService; import org.springframework.cloud.appbroker.deployer.BrokeredServices; +import org.springframework.cloud.appbroker.deployer.TargetSpec; import org.springframework.cloud.appbroker.extensions.parameters.ParametersTransformationService; import org.springframework.cloud.appbroker.extensions.targets.TargetService; import org.springframework.cloud.servicebroker.model.catalog.Plan; @@ -57,6 +58,7 @@ class AppDeploymentUpdateServiceInstanceWorkflowTest { private TargetService targetService; private BackingApplications backingApps; + private TargetSpec targetSpec; private AppDeploymentUpdateServiceInstanceWorkflow updateServiceInstanceWorkflow; @BeforeEach @@ -79,6 +81,7 @@ class AppDeploymentUpdateServiceInstanceWorkflowTest { .serviceName("service1") .planName("plan1") .apps(backingApps) + .target(targetSpec) .build()) .build(); @@ -96,7 +99,7 @@ class AppDeploymentUpdateServiceInstanceWorkflowTest { given(this.backingAppDeploymentService.deploy(eq(backingApps))) .willReturn(Flux.just("app1", "app2")); - given(this.targetService.add(eq(backingApps), eq("service-instance-id"))) + given(this.targetService.add(eq(backingApps), eq(targetSpec), eq("service-instance-id"))) .willReturn(Mono.just(backingApps)); given(this.parametersTransformationService.transformParameters(eq(backingApps), eq(request.getParameters()))) .willReturn(Mono.just(backingApps)); @@ -121,7 +124,7 @@ class AppDeploymentUpdateServiceInstanceWorkflowTest { .willReturn(Flux.just("app1", "app2")); given(this.parametersTransformationService.transformParameters(eq(backingApps), eq(request.getParameters()))) .willReturn(Mono.just(backingApps)); - given(this.targetService.add(eq(backingApps), eq("service-instance-id"))) + given(this.targetService.add(eq(backingApps), eq(targetSpec), eq("service-instance-id"))) .willReturn(Mono.just(backingApps)); StepVerifier diff --git a/spring-cloud-app-broker-sample/src/test/java/org.springframework.cloud.appbroker/sample/CreateInstanceWithTargetComponentTest.java b/spring-cloud-app-broker-sample/src/test/java/org.springframework.cloud.appbroker/sample/CreateInstanceWithTargetComponentTest.java index 4d4db1a..9682b62 100644 --- a/spring-cloud-app-broker-sample/src/test/java/org.springframework.cloud.appbroker/sample/CreateInstanceWithTargetComponentTest.java +++ b/spring-cloud-app-broker-sample/src/test/java/org.springframework.cloud.appbroker/sample/CreateInstanceWithTargetComponentTest.java @@ -36,7 +36,7 @@ import static org.springframework.cloud.appbroker.sample.CreateInstanceWithTarge "spring.cloud.appbroker.services[0].plan-name=standard", "spring.cloud.appbroker.services[0].apps[0].path=classpath:demo.jar", "spring.cloud.appbroker.services[0].apps[0].name=" + APP_NAME, - "spring.cloud.appbroker.services[0].apps[0].target.name=SpacePerServiceInstance" + "spring.cloud.appbroker.services[0].target.name=SpacePerServiceInstance" }) class CreateInstanceWithTargetComponentTest extends WiremockComponentTest {