Ori Liel has uploaded a new change for review. Change subject: restapi: Move Policy-Unit remove to entity ......................................................................
restapi: Move Policy-Unit remove to entity This patch moves the method that implements the DELETE operation from the collection interface to the entity interface. This is needed to avoid issues with newer versions of Resteasy. This patch does so for Weights, Filters and Balances Change-Id: Ia86f2765eac43ed672147e376ab1840614c8422a Signed-off-by: Ori Liel <[email protected]> --- M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PolicyUnitResource.java M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PolicyUnitsResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendBalanceResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendBalancesResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendFilterResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendFiltersResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPolicyUnitResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPolicyUnitsResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendWeightResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendWeightsResource.java 10 files changed, 80 insertions(+), 76 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/25/41925/1 diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PolicyUnitResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PolicyUnitResource.java index 1d8e581..89f618a9 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PolicyUnitResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PolicyUnitResource.java @@ -1,7 +1,9 @@ package org.ovirt.engine.api.resource; +import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.Produces; +import javax.ws.rs.core.Response; import org.ovirt.engine.api.model.BaseResource; @@ -9,4 +11,7 @@ public interface PolicyUnitResource<T extends BaseResource> { @GET public T get(); + + @DELETE + public Response remove(); } diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PolicyUnitsResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PolicyUnitsResource.java index 1f1dd87..9ee4404 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PolicyUnitsResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/PolicyUnitsResource.java @@ -1,13 +1,11 @@ package org.ovirt.engine.api.resource; import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; -import javax.ws.rs.core.Response; import org.ovirt.engine.api.model.BaseResource; import org.ovirt.engine.api.model.BaseResources; @@ -20,10 +18,6 @@ @POST @Consumes({ ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML }) public Q add(Q policyUnit); - - @DELETE - @Path("{id}") - public Response remove(@PathParam("id") String id); @Path("{id}") public PolicyUnitResource<Q> getSubResource(@PathParam("id") String id); diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendBalanceResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendBalanceResource.java index c3edc65..a48cbe2 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendBalanceResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendBalanceResource.java @@ -2,13 +2,14 @@ import org.ovirt.engine.api.model.Balance; import org.ovirt.engine.api.resource.BalanceResource; +import org.ovirt.engine.core.common.scheduling.ClusterPolicy; import org.ovirt.engine.core.compat.Guid; public class BackendBalanceResource extends BackendPolicyUnitResource<Balance> implements BalanceResource { - protected BackendBalanceResource(String id, Guid parentId) { - super(id, parentId, Balance.class); + protected BackendBalanceResource(String id, BackendBalancesResource parent) { + super(id, parent, Balance.class); } @Override @@ -17,4 +18,12 @@ balance.setId(id); return balance; } + + @Override + protected void updateEntityForRemove(ClusterPolicy entity, Guid id) { + if (entity.getBalance() == null || !entity.getBalance().equals(id)) { + return; + } + entity.setBalance(null); + } } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendBalancesResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendBalancesResource.java index 0d7db20..57278c0 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendBalancesResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendBalancesResource.java @@ -30,7 +30,7 @@ @Override public BalanceResource getSubResource(String id) { - return inject(new BackendBalanceResource(id, schedulingPolicyId)); + return inject(new BackendBalanceResource(id, this)); } @SingleEntityResource @@ -51,14 +51,6 @@ return new ClusterPolicyCRUDParameters(entity.getId(), map(model, entity)); } }; - } - - @Override - protected void updateEntityForRemove(ClusterPolicy entity, Guid id) { - if (entity.getBalance() == null || !entity.getBalance().equals(id)) { - return; - } - entity.setBalance(null); } @Override diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendFilterResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendFilterResource.java index 027c8ff..ba7001f 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendFilterResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendFilterResource.java @@ -2,13 +2,14 @@ import org.ovirt.engine.api.model.Filter; import org.ovirt.engine.api.resource.FilterResource; +import org.ovirt.engine.core.common.scheduling.ClusterPolicy; import org.ovirt.engine.core.compat.Guid; public class BackendFilterResource extends BackendPolicyUnitResource<Filter> implements FilterResource { - protected BackendFilterResource(String id, Guid parentId) { - super(id, parentId, Filter.class); + protected BackendFilterResource(String id, BackendFiltersResource parent) { + super(id, parent, Filter.class); } @Override @@ -17,4 +18,22 @@ filter.setId(id); return filter; } + + @Override + protected void updateEntityForRemove(ClusterPolicy entity, Guid id) { + int i = 0; + boolean found = false; + if (entity.getFilters() == null) { + return; + } + for (; i < entity.getFilters().size(); i++) { + if (entity.getFilters().get(i).equals(id)) { + found = true; + break; + } + } + if (found) { + entity.getFilters().remove(i); + } + } } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendFiltersResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendFiltersResource.java index e4d6a56..46a0339 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendFiltersResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendFiltersResource.java @@ -32,7 +32,7 @@ @Override public FilterResource getSubResource(String id) { - return inject(new BackendFilterResource(id, schedulingPolicyId)); + return inject(new BackendFilterResource(id, this)); } @SingleEntityResource @@ -53,25 +53,6 @@ return new ClusterPolicyCRUDParameters(entity.getId(), map(model, entity)); } }; - } - - @Override - protected void updateEntityForRemove(ClusterPolicy entity, Guid id) { - int i = 0; - boolean found = false; - if (entity.getFilters() == null) { - return; - } - for (; i < entity.getFilters().size(); i++) { - if (entity.getFilters().get(i).equals(id)) { - found = true; - break; - } - } - if (found) { - entity.getFilters().remove(i); - } - } @Override diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPolicyUnitResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPolicyUnitResource.java index abb17a6..4389a33 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPolicyUnitResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPolicyUnitResource.java @@ -1,22 +1,28 @@ 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.resource.PolicyUnitResource; +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 abstract class BackendPolicyUnitResource<T extends BaseResource> extends AbstractBackendSubResource<T, ClusterPolicy> implements PolicyUnitResource<T> { private static final String[] SUB_COLLECTIONS = {}; private final Guid parentId; + private final BackendPolicyUnitsResource<?, ?> parent; protected BackendPolicyUnitResource(String id, - Guid parentId, + BackendPolicyUnitsResource<?, ?> parent, Class<T> modelType) { super(id, modelType, ClusterPolicy.class, SUB_COLLECTIONS); - this.parentId = parentId; + this.parent = parent; + this.parentId = parent.schedulingPolicyId; } @Override @@ -34,5 +40,16 @@ return model; } + + @Override + public Response remove() { + ClusterPolicy entity = parent.getClusterPolicy(); + updateEntityForRemove(entity, asGuid(id)); + return performAction(VdcActionType.EditClusterPolicy, + new ClusterPolicyCRUDParameters(entity.getId(), entity)); + } + + protected abstract void updateEntityForRemove(ClusterPolicy entity, Guid id); + protected abstract T createPolicyUnitByType(); } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPolicyUnitsResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPolicyUnitsResource.java index 5a9d03d..35d95c0 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPolicyUnitsResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendPolicyUnitsResource.java @@ -1,7 +1,5 @@ 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.BaseResources; import org.ovirt.engine.api.resource.PolicyUnitsResource; @@ -10,7 +8,6 @@ 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 abstract class BackendPolicyUnitsResource<M extends BaseResources, N extends BaseResource> extends AbstractBackendCollectionResource<N, ClusterPolicy> implements PolicyUnitsResource<M, N> { @@ -26,17 +23,7 @@ protected abstract ParametersProvider<N, ClusterPolicy> getAddParametersProvider(); - protected abstract void updateEntityForRemove(ClusterPolicy entity, Guid id); - protected abstract void updateIncomingId(N incoming); - - @Override - protected Response performRemove(String id) { - ClusterPolicy entity = getClusterPolicy(); - updateEntityForRemove(entity, asGuid(id)); - return performAction(VdcActionType.EditClusterPolicy, - new ClusterPolicyCRUDParameters(entity.getId(), entity)); - } // need to revisit: update should be in a separate hierarchy protected N performAdd(N incoming) { diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendWeightResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendWeightResource.java index 6fd4ef9..2b22de2 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendWeightResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendWeightResource.java @@ -2,13 +2,14 @@ import org.ovirt.engine.api.model.Weight; import org.ovirt.engine.api.resource.WeightResource; +import org.ovirt.engine.core.common.scheduling.ClusterPolicy; import org.ovirt.engine.core.compat.Guid; public class BackendWeightResource extends BackendPolicyUnitResource<Weight> implements WeightResource { - protected BackendWeightResource(String id, Guid parentId) { - super(id, parentId, Weight.class); + protected BackendWeightResource(String id, BackendWeightsResource parent) { + super(id, parent, Weight.class); } @Override @@ -17,4 +18,22 @@ weight.setId(id); return weight; } + + @Override + protected 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); + } + } } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendWeightsResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendWeightsResource.java index 302ca97..201074b 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendWeightsResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendWeightsResource.java @@ -34,7 +34,7 @@ @Override public WeightResource getSubResource(String id) { - return inject(new BackendWeightResource(id, schedulingPolicyId)); + return inject(new BackendWeightResource(id, this)); } @SingleEntityResource @@ -55,25 +55,6 @@ return new ClusterPolicyCRUDParameters(entity.getId(), map(model, entity)); } }; - } - - @Override - protected 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); - } - } @Override -- To view, visit https://gerrit.ovirt.org/41925 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia86f2765eac43ed672147e376ab1840614c8422a Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Ori Liel <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
