Creating and deleting custom domains on AT

This commit is contained in:
Alberto Rios
2019-09-17 11:53:18 +02:00
parent f13b55f99a
commit fc97735b38
3 changed files with 43 additions and 1 deletions

View File

@@ -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();
}
}
}

View File

@@ -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<String, Object> parameters = new HashMap<>();
parameters.put("host", "myhost");
@@ -97,5 +100,7 @@ class UpdateInstanceWithHostAndDomainAcceptanceTest extends CloudFoundryAcceptan
// then the backing application is deleted
Optional<ApplicationSummary> backingApplicationAfterDeletion = getApplicationSummary(APP_NAME);
assertThat(backingApplicationAfterDeletion).isEmpty();
deleteDomain("mydomain.com");
}
}

View File

@@ -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<Void> createDomain(String domain) {
return cloudFoundryOperations
.domains()
.create(CreateDomainRequest
.builder()
.domain(domain)
.organization(cloudFoundryProperties.getDefaultOrg())
.build())
.onErrorResume(e -> Mono.empty());
}
public Mono<Void> 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<AssociateOrganizationUserResponse> associateOrgUser(String orgId, String userId) {
return cloudFoundryClient.organizations().associateUser(AssociateOrganizationUserRequest.builder()
.organizationId(orgId)