package org.ovirt.engine.api.restapi.resource;
import javax.ws.rs.core.Response;
import org.ovirt.engine.api.model.BaseResource;
import org.ovirt.engine.api.model.CpuProfile;
import org.ovirt.engine.api.model.DataCenter;
import org.ovirt.engine.core.common.action.CpuProfileParameters;
import org.ovirt.engine.core.common.action.VdcActionType;
import org.ovirt.engine.core.common.businessentities.qos.QosBase;
import org.ovirt.engine.core.common.queries.IdQueryParameters;
import org.ovirt.engine.core.common.queries.VdcQueryType;
public abstract class AbstractBackendCpuProfileResource
extends AbstractBackendSubResource<CpuProfile, org.ovirt.engine.core.common.businessentities.profiles.CpuProfile> {
protected AbstractBackendCpuProfileResource(String id) {
super(id, CpuProfile.class,
org.ovirt.engine.core.common.businessentities.profiles.CpuProfile.class);
}
protected CpuProfile get() {
return performGet(VdcQueryType.GetCpuProfileById, new IdQueryParameters(guid));
}
@Override
protected CpuProfile addLinks(CpuProfile model,
Class<? extends BaseResource> suggestedParent,
String... subCollectionMembersToExclude) {
if (model.isSetQos() && model.getQos().isSetId()) {
QosBase qos = getEntity(QosBase.class,
VdcQueryType.GetQosById,
new IdQueryParameters(asGuid(model.getQos().getId())),
"qos");
model.getQos().setDataCenter(new DataCenter());
model.getQos().getDataCenter().setId(qos.getStoragePoolId().toString());
}
return super.addLinks(model, suggestedParent, subCollectionMembersToExclude);
}
private org.ovirt.engine.core.common.businessentities.profiles.CpuProfile getCpuProfile(String id) {
return getEntity(
org.ovirt.engine.core.common.businessentities.profiles.CpuProfile.class,
VdcQueryType.GetCpuProfileById,
new IdQueryParameters(asGuidOr404(id)),
"CpuProfiles"
);
}
public Response remove() {
get();
org.ovirt.engine.core.common.businessentities.profiles.CpuProfile cpuProfile = getCpuProfile(id);
return performAction(
VdcActionType.RemoveCpuProfile,
new CpuProfileParameters(cpuProfile)
);
}
}