From fc97735b38514df809eaa109aceeeb94fe7c2feb Mon Sep 17 00:00:00 2001 From: Alberto Rios Date: Tue, 17 Sep 2019 11:53:18 +0200 Subject: [PATCH] Creating and deleting custom domains on AT --- .../CloudFoundryAcceptanceTest.java | 10 ++++++- ...stanceWithHostAndDomainAcceptanceTest.java | 5 ++++ .../fixtures/cf/CloudFoundryService.java | 29 +++++++++++++++++++ 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/CloudFoundryAcceptanceTest.java b/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/CloudFoundryAcceptanceTest.java index 6f7a10f..369b4b9 100644 --- a/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/CloudFoundryAcceptanceTest.java +++ b/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/CloudFoundryAcceptanceTest.java @@ -300,6 +300,14 @@ abstract class CloudFoundryAcceptanceTest { .blockOptional(); } + void createDomain(String domain) { + cloudFoundryService.createDomain(domain).block(); + } + + void deleteDomain(String domain) { + cloudFoundryService.deleteDomain(domain).block(); + } + private Path getTestBrokerAppPath() { return Paths.get(acceptanceTestProperties.getBrokerAppPath(), ""); } @@ -360,4 +368,4 @@ abstract class CloudFoundryAcceptanceTest { .collectList(); } -} \ No newline at end of file +} diff --git a/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/UpdateInstanceWithHostAndDomainAcceptanceTest.java b/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/UpdateInstanceWithHostAndDomainAcceptanceTest.java index de8f87c..9e7fb97 100644 --- a/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/UpdateInstanceWithHostAndDomainAcceptanceTest.java +++ b/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/UpdateInstanceWithHostAndDomainAcceptanceTest.java @@ -76,6 +76,9 @@ class UpdateInstanceWithHostAndDomainAcceptanceTest extends CloudFoundryAcceptan String path = backingApplication.get().getUrls().get(0); healthListener.start(path); + // and the domain exists + createDomain("mydomain.com"); + // when the service instance is updated Map parameters = new HashMap<>(); parameters.put("host", "myhost"); @@ -97,5 +100,7 @@ class UpdateInstanceWithHostAndDomainAcceptanceTest extends CloudFoundryAcceptan // then the backing application is deleted Optional backingApplicationAfterDeletion = getApplicationSummary(APP_NAME); assertThat(backingApplicationAfterDeletion).isEmpty(); + + deleteDomain("mydomain.com"); } } diff --git a/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/fixtures/cf/CloudFoundryService.java b/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/fixtures/cf/CloudFoundryService.java index b70120d..f974b34 100644 --- a/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/fixtures/cf/CloudFoundryService.java +++ b/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/fixtures/cf/CloudFoundryService.java @@ -29,6 +29,7 @@ import org.cloudfoundry.client.v2.organizations.AssociateOrganizationUserRequest import org.cloudfoundry.client.v2.organizations.AssociateOrganizationUserResponse; import org.cloudfoundry.client.v2.organizations.RemoveOrganizationManagerRequest; import org.cloudfoundry.client.v2.organizations.RemoveOrganizationUserRequest; +import org.cloudfoundry.client.v2.privatedomains.DeletePrivateDomainRequest; import org.cloudfoundry.client.v2.spaces.AssociateSpaceDeveloperRequest; import org.cloudfoundry.client.v2.spaces.AssociateSpaceDeveloperResponse; import org.cloudfoundry.client.v2.spaces.RemoveSpaceDeveloperRequest; @@ -43,6 +44,8 @@ import org.cloudfoundry.operations.applications.GetApplicationEnvironmentsReques import org.cloudfoundry.operations.applications.GetApplicationRequest; import org.cloudfoundry.operations.applications.PushApplicationManifestRequest; import org.cloudfoundry.operations.applications.StopApplicationRequest; +import org.cloudfoundry.operations.domains.CreateDomainRequest; +import org.cloudfoundry.operations.domains.Domain; import org.cloudfoundry.operations.organizations.CreateOrganizationRequest; import org.cloudfoundry.operations.organizations.OrganizationSummary; import org.cloudfoundry.operations.organizations.Organizations; @@ -333,6 +336,32 @@ public class CloudFoundryService { .then(removeOrgUser(orgId, userId))); } + public Mono createDomain(String domain) { + return cloudFoundryOperations + .domains() + .create(CreateDomainRequest + .builder() + .domain(domain) + .organization(cloudFoundryProperties.getDefaultOrg()) + .build()) + .onErrorResume(e -> Mono.empty()); + } + + public Mono deleteDomain(String domain) { + return cloudFoundryOperations + .domains() + .list() + .filter(d -> d.getName().equals(domain)) + .map(Domain::getId) + .flatMap(domainId -> cloudFoundryClient + .privateDomains() + .delete(DeletePrivateDomainRequest + .builder() + .privateDomainId(domainId) + .build())) + .then(); + } + private Mono associateOrgUser(String orgId, String userId) { return cloudFoundryClient.organizations().associateUser(AssociateOrganizationUserRequest.builder() .organizationId(orgId)