![JAR search and dependency download from the Maven repository](/logo.png)
com.elastisys.scale.cloudpool.aws.commons.poolclient.impl.AwsSpotClient Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cloudpool.aws.commons Show documentation
Show all versions of cloudpool.aws.commons Show documentation
Common utility classes for building Amazon AWS-based cloud pools.
package com.elastisys.scale.cloudpool.aws.commons.poolclient.impl;
import java.util.Collection;
import java.util.List;
import com.amazonaws.AmazonClientException;
import com.amazonaws.services.ec2.model.Filter;
import com.amazonaws.services.ec2.model.SpotInstanceRequest;
import com.amazonaws.services.ec2.model.Tag;
import com.elastisys.scale.cloudpool.aws.commons.poolclient.SpotClient;
import com.elastisys.scale.cloudpool.aws.commons.requests.ec2.CancelSpotInstanceRequests;
import com.elastisys.scale.cloudpool.aws.commons.requests.ec2.GetSpotInstanceRequest;
import com.elastisys.scale.cloudpool.aws.commons.requests.ec2.GetSpotInstanceRequests;
import com.elastisys.scale.cloudpool.aws.commons.requests.ec2.PlaceSpotInstanceRequests;
import com.elastisys.scale.cloudpool.commons.basepool.config.ScaleOutConfig;
public class AwsSpotClient extends AwsEc2Client implements SpotClient {
public AwsSpotClient() {
super();
}
@Override
public SpotInstanceRequest getSpotInstanceRequest(
String spotInstanceRequestId) throws AmazonClientException {
return new GetSpotInstanceRequest(awsCredentials(), region(),
clientConfig(), spotInstanceRequestId).call();
}
@Override
public List getSpotInstanceRequests(
Collection filters) throws AmazonClientException {
return new GetSpotInstanceRequests(awsCredentials(), region(),
clientConfig(), filters).call();
}
@Override
public List placeSpotRequests(double bidPrice,
ScaleOutConfig scaleOutConfig, int count, List tags) {
// no particular availability zone
String availabilityZone = null;
PlaceSpotInstanceRequests request = new PlaceSpotInstanceRequests(
awsCredentials(), region(), clientConfig(), bidPrice,
availabilityZone, scaleOutConfig.getSecurityGroups(),
scaleOutConfig.getKeyPair(), scaleOutConfig.getSize(),
scaleOutConfig.getImage(), scaleOutConfig.getEncodedUserData(),
count, tags);
return request.call();
}
@Override
public void cancelSpotRequests(List spotInstanceRequestIds) {
new CancelSpotInstanceRequests(awsCredentials(), region(),
clientConfig(), spotInstanceRequestIds).call();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy