package io.fathom.cloud.compute.api.os.resources; import io.fathom.cloud.CloudException; import io.fathom.cloud.compute.api.os.model.QuotaSet; import io.fathom.cloud.compute.api.os.model.WrappedQuotaSet; import io.fathom.cloud.server.resources.FathomCloudResourceBase; import javax.ws.rs.GET; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import com.google.inject.persist.Transactional; @Path("/openstack/compute/{project}/os-quota-sets") @Transactional public class QuotaSetsResource extends FathomCloudResourceBase { @GET @Path("{id}") @Produces({ JSON }) public WrappedQuotaSet doLimitsGet(@PathParam("id") String projectId) throws CloudException { warnStub(); WrappedQuotaSet response = new WrappedQuotaSet(); response.quotaSet = new QuotaSet(); fillEmptyQuotas(response.quotaSet); response.quotaSet.id = projectId; return response; } @GET @Path("{id}/defaults") @Produces({ JSON }) public WrappedQuotaSet getDefaultLimits(@PathParam("id") String projectId) throws CloudException { warnStub(); WrappedQuotaSet response = new WrappedQuotaSet(); response.quotaSet = new QuotaSet(); fillEmptyQuotas(response.quotaSet); response.quotaSet.id = "defaults"; return response; } @PUT @Path("{id}") @Produces({ JSON }) public WrappedQuotaSet updateQuotaSet(@PathParam("id") String projectId) throws CloudException { warnStub(); WrappedQuotaSet response = new WrappedQuotaSet(); response.quotaSet = new QuotaSet(); fillEmptyQuotas(response.quotaSet); response.quotaSet.id = projectId; return response; } private void fillEmptyQuotas(QuotaSet quotaSet) { quotaSet.cores = -1; quotaSet.fixed_ips = -1; quotaSet.floating_ips = -1; quotaSet.injected_file_content_bytes = -1; quotaSet.injected_file_path_bytes = -1; quotaSet.injected_files = -1; quotaSet.instances = -1; quotaSet.key_pairs = -1; quotaSet.metadata_items = -1; quotaSet.ram = -1; quotaSet.security_groups = -1; quotaSet.security_group_rules = -1; quotaSet.volumes = -1; quotaSet.snapshots = -1; quotaSet.gigabytes = -1; } }