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.DataCenter;
import org.ovirt.engine.api.model.VnicProfile;
import org.ovirt.engine.api.resource.AssignedPermissionsResource;
import org.ovirt.engine.core.common.VdcObjectType;
import org.ovirt.engine.core.common.action.VdcActionType;
import org.ovirt.engine.core.common.action.VnicProfileParameters;
import org.ovirt.engine.core.common.businessentities.qos.QosBase;
import org.ovirt.engine.core.common.queries.GetPermissionsForObjectParameters;
import org.ovirt.engine.core.common.queries.IdQueryParameters;
import org.ovirt.engine.core.common.queries.VdcQueryType;
public abstract class AbstractBackendVnicProfileResource
extends AbstractBackendSubResource<VnicProfile, org.ovirt.engine.core.common.businessentities.network.VnicProfile> {
protected AbstractBackendVnicProfileResource(String id) {
super(id, VnicProfile.class,
org.ovirt.engine.core.common.businessentities.network.VnicProfile.class);
}
protected VnicProfile get() {
return performGet(VdcQueryType.GetVnicProfileById, new IdQueryParameters(guid));
}
protected AssignedPermissionsResource getPermissionsResource() {
return inject(new BackendAssignedPermissionsResource(guid,
VdcQueryType.GetPermissionsForObject,
new GetPermissionsForObjectParameters(guid),
VnicProfile.class,
VdcObjectType.VnicProfile));
}
@Override
protected VnicProfile addLinks(VnicProfile 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);
}
public Response remove() {
get();
return performAction(VdcActionType.RemoveVnicProfile, new VnicProfileParameters(getVnicProfile(id)));
}
protected org.ovirt.engine.core.common.businessentities.network.VnicProfile getVnicProfile(String id) {
return getEntity(org.ovirt.engine.core.common.businessentities.network.VnicProfile.class,
VdcQueryType.GetVnicProfileById,
new IdQueryParameters(guid),
"VnicProfiles");
}
}