package org.ovirt.engine.api.restapi.resource;
import java.util.List;
import javax.ws.rs.core.Response;
import org.ovirt.engine.api.model.Cluster;
import org.ovirt.engine.api.model.CpuProfile;
import org.ovirt.engine.api.model.CpuProfiles;
import org.ovirt.engine.api.resource.AssignedCpuProfileResource;
import org.ovirt.engine.api.resource.AssignedCpuProfilesResource;
import org.ovirt.engine.core.common.queries.IdQueryParameters;
import org.ovirt.engine.core.common.queries.VdcQueryType;
public class BackendAssignedCpuProfilesResource extends AbstractBackendCpuProfilesResource implements AssignedCpuProfilesResource {
private final String clusterId;
public BackendAssignedCpuProfilesResource(String clusterId) {
this.clusterId = clusterId;
}
@Override
public CpuProfiles list() {
return performList();
}
@Override
public Response add(CpuProfile cpuProfile) {
if (!cpuProfile.isSetCluster() || !cpuProfile.getCluster().isSetId()) {
cpuProfile.setCluster(new Cluster());
cpuProfile.getCluster().setId(clusterId);
}
return super.add(cpuProfile);
}
@Override
protected void validateParameters(CpuProfile cpuProfile) {
validateParameters(cpuProfile, "name");
}
@Override
public AssignedCpuProfileResource getProfileResource(String id) {
return inject(new BackendAssignedCpuProfileResource(id, this));
}
@Override
public CpuProfile addParents(CpuProfile cpuProfile) {
cpuProfile.setCluster(new Cluster());
cpuProfile.getCluster().setId(clusterId);
return cpuProfile;
}
@Override
protected List<org.ovirt.engine.core.common.businessentities.profiles.CpuProfile> getCpuProfilesCollection() {
return getBackendCollection(VdcQueryType.GetCpuProfilesByClusterId,
new IdQueryParameters(asGuidOr404(clusterId)));
}
}