package org.ovirt.engine.api.restapi.resource; import javax.ws.rs.core.Response; import org.ovirt.engine.api.model.Weight; import org.ovirt.engine.api.resource.WeightResource; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.common.scheduling.ClusterPolicy; import org.ovirt.engine.core.common.scheduling.parameters.ClusterPolicyCRUDParameters; import org.ovirt.engine.core.compat.Guid; public class BackendWeightResource extends AbstractBackendSubResource<Weight, ClusterPolicy> implements WeightResource { private Guid parentId; private final BackendWeightsResource parent; protected BackendWeightResource(String id, BackendWeightsResource parent) { super(id, Weight.class, ClusterPolicy.class); this.parent = parent; this.parentId = parent.schedulingPolicyId; } @Override public Weight get() { return performGet(VdcQueryType.GetClusterPolicyById, new IdQueryParameters(parentId)); } @Override public Response remove() { ClusterPolicy entity = parent.getClusterPolicy(); updateEntityForRemove(entity, guid); return performAction(VdcActionType.EditClusterPolicy, new ClusterPolicyCRUDParameters(entity.getId(), entity)); } private void updateEntityForRemove(ClusterPolicy entity, Guid id) { int i = 0; boolean found = false; if (entity.getFunctions() == null) { return; } for (; i < entity.getFunctions().size(); i++) { if (entity.getFunctions().get(i).getFirst().equals(id)) { found = true; break; } } if (found) { entity.getFunctions().remove(i); } } }