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

Reply via email to