All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.elastisys.scale.cloudpool.splitter.requests.http.HttpRequestFactory Maven / Gradle / Ivy

Go to download

A cloud pool that uses a configured list of child cloud pools to carry out operations.

The newest version!
package com.elastisys.scale.cloudpool.splitter.requests.http;

import java.util.concurrent.Callable;

import com.elastisys.scale.cloudpool.api.types.MachinePool;
import com.elastisys.scale.cloudpool.api.types.MembershipStatus;
import com.elastisys.scale.cloudpool.api.types.PoolSizeSummary;
import com.elastisys.scale.cloudpool.api.types.ServiceState;
import com.elastisys.scale.cloudpool.splitter.Splitter;
import com.elastisys.scale.cloudpool.splitter.config.PrioritizedCloudPool;
import com.elastisys.scale.cloudpool.splitter.requests.RequestFactory;

/**
 * A {@link RequestFactory} that produces request tasks that invoke cloud pool
 * over HTTP.
 *
 * @see Splitter
 */
public class HttpRequestFactory implements RequestFactory {

	@Override
	public Callable newGetMachinePoolRequest(
			PrioritizedCloudPool cloudPool) {
		return new GetMachinePoolRequest(cloudPool);
	}

	@Override
	public Callable newGetPoolSizeRequest(
			PrioritizedCloudPool cloudPool) {
		return new GetPoolSizeRequest(cloudPool);
	}

	@Override
	public Callable newSetDesiredSizeRequest(
			PrioritizedCloudPool cloudPool, int desiredSize) {
		return new SetDesiredSizeRequest(cloudPool, desiredSize);
	}

	@Override
	public Callable newTerminateMachineRequest(
			PrioritizedCloudPool cloudPool, String machineId,
			boolean decrementDesiredSize) {
		return new TerminateMachineRequest(cloudPool, machineId,
				decrementDesiredSize);
	}

	@Override
	public Callable newSetServiceStateRequest(
			PrioritizedCloudPool cloudPool, String machineId,
			ServiceState serviceState) {
		return new SetServiceStateRequest(cloudPool, machineId, serviceState);
	}

	@Override
	public Callable newSetMembershipStatusRequest(
			PrioritizedCloudPool cloudPool, String machineId,
			MembershipStatus membershipStatus) {
		return new SetMembershipStatusRequest(cloudPool, machineId,
				membershipStatus);
	}

	@Override
	public Callable newAttachMachineRequest(
			PrioritizedCloudPool cloudPool, String machineId) {
		return new AttachMachineRequest(cloudPool, machineId);
	}

	@Override
	public Callable newDetachMachineRequest(
			PrioritizedCloudPool cloudPool, String machineId,
			boolean decrementDesiredSize) {
		return new DetachMachineRequest(cloudPool, machineId,
				decrementDesiredSize);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy