package io.fathom.cloud.compute.api.os.resources;
import io.fathom.cloud.CloudException;
import io.fathom.cloud.compute.api.os.model.AbsoluteLimits;
import io.fathom.cloud.compute.api.os.model.Limits;
import io.fathom.cloud.compute.api.os.model.LimitsResponse;
import io.fathom.cloud.server.resources.FathomCloudResourceBase;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import com.google.common.collect.Lists;
import com.google.inject.persist.Transactional;
@Path("/openstack/compute/{project}/limits")
@Transactional
public class LimitsResource extends FathomCloudResourceBase {
@GET
@Produces({ JSON })
public LimitsResponse doLimitsGet() throws CloudException {
LimitsResponse response = new LimitsResponse();
response.limits = new Limits();
response.limits.absoluteLimits = new AbsoluteLimits();
int instanceLimit = 1000;
response.limits.absoluteLimits.maxTotalInstances = instanceLimit;
response.limits.absoluteLimits.totalInstancesUsed = 0;
response.limits.absoluteLimits.maxTotalCores = instanceLimit * 16;
response.limits.absoluteLimits.totalCoresUsed = 0;
response.limits.absoluteLimits.maxTotalRAMSize = instanceLimit * 32 * 1024;
response.limits.absoluteLimits.totalRAMUsed = 0;
response.limits.rates = Lists.newArrayList();
return response;
}
}