package io.pivotal.services.plugin.tasks.helper; import io.pivotal.services.plugin.CfProperties; import org.cloudfoundry.operations.CloudFoundryOperations; import org.cloudfoundry.operations.applications.ScaleApplicationRequest; import org.gradle.api.logging.Logger; import org.gradle.api.logging.Logging; import reactor.core.publisher.Mono; /** * Helper class for scaling instance Count of an app * * @author Biju Kunjummen */ public class CfScaleInstanceCountDelegate { private static final Logger LOGGER = Logging.getLogger(CfScaleInstanceCountDelegate.class); public Mono<Void> scaleInstances(CloudFoundryOperations cfOperations, CfProperties cfProperties, int instanceCount) { Mono<Void> resp = cfOperations.applications().scale( ScaleApplicationRequest.builder() .instances(instanceCount) .build() ).doOnSubscribe((s) -> { LOGGER.lifecycle("Scaling app {} to instance count {}", cfProperties.name(), instanceCount); }); return resp; } }