Ori Liel has uploaded a new change for review.

Change subject: restapi: Move Subnets remove from collection to entity
......................................................................

restapi: Move Subnets remove from collection 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.

Change-Id: Ibdbc162943b41ef4f11d3e38807057916d897407
Signed-off-by: Ori Liel <[email protected]>
---
M 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/openstack/OpenStackSubnetResource.java
M 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/openstack/OpenStackSubnetsResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/openstack/BackendOpenStackSubnetResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/openstack/BackendOpenStackSubnetsResource.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/openstack/BackendOpenStackSubnetResourceTest.java
5 files changed, 40 insertions(+), 31 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/43/41843/1

diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/openstack/OpenStackSubnetResource.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/openstack/OpenStackSubnetResource.java
index a0abd2b..dd6e8eb 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/openstack/OpenStackSubnetResource.java
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/openstack/OpenStackSubnetResource.java
@@ -16,8 +16,10 @@
 
 package org.ovirt.engine.api.resource.openstack;
 
+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.OpenStackSubnet;
 import org.ovirt.engine.api.resource.ApiMediaType;
@@ -26,4 +28,8 @@
 public interface OpenStackSubnetResource {
     @GET
     public OpenStackSubnet get();
+
+    @DELETE
+    public Response remove();
+
 }
diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/openstack/OpenStackSubnetsResource.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/openstack/OpenStackSubnetsResource.java
index a209fff..534495e 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/openstack/OpenStackSubnetsResource.java
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/openstack/OpenStackSubnetsResource.java
@@ -17,7 +17,6 @@
 package org.ovirt.engine.api.resource.openstack;
 
 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;
@@ -38,10 +37,6 @@
     @POST
     @Consumes({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, 
ApiMediaType.APPLICATION_X_YAML})
     public Response add(OpenStackSubnet subnet);
-
-    @DELETE
-    @Path("{id}")
-    public Response remove(@PathParam("id") String id);
 
     @Path("{id}")
     OpenStackSubnetResource getOpenStackSubnet(@PathParam("id") String id);
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/openstack/BackendOpenStackSubnetResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/openstack/BackendOpenStackSubnetResource.java
index 20e4518..c6d2e16 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/openstack/BackendOpenStackSubnetResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/openstack/BackendOpenStackSubnetResource.java
@@ -18,12 +18,17 @@
 
 import java.util.List;
 
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Response;
+
 import org.apache.commons.lang.ObjectUtils;
 import org.ovirt.engine.api.model.OpenStackNetwork;
 import org.ovirt.engine.api.model.OpenStackNetworkProvider;
 import org.ovirt.engine.api.model.OpenStackSubnet;
 import org.ovirt.engine.api.resource.openstack.OpenStackSubnetResource;
 import org.ovirt.engine.api.restapi.resource.AbstractBackendActionableResource;
+import org.ovirt.engine.core.common.action.ExternalSubnetParameters;
+import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.network.ExternalSubnet;
 import 
org.ovirt.engine.core.common.queries.GetExternalSubnetsOnProviderByExternalNetworkQueryParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
@@ -34,11 +39,16 @@
         implements OpenStackSubnetResource {
     private String providerId;
     private String networkId;
+    private BackendOpenStackSubnetsResource parent;
 
-    protected BackendOpenStackSubnetResource(String providerId, String 
networkId, String id) {
+    protected BackendOpenStackSubnetResource(String providerId,
+            String networkId,
+            String id,
+            BackendOpenStackSubnetsResource parent) {
         super(id, OpenStackSubnet.class, ExternalSubnet.class);
         this.providerId = providerId;
         this.networkId = networkId;
+        this.parent = parent;
     }
 
     @Override
@@ -80,4 +90,24 @@
         // The identifier of an OpenStack subnet isn't a UUID.
         return null;
     }
+
+    @Override
+    public Response remove() {
+        ExternalSubnet subnet = lookupSubnetById(id);
+        if (subnet != null) {
+            ExternalSubnetParameters parameters = new 
ExternalSubnetParameters();
+            parameters.setSubnet(subnet);
+            return performAction(VdcActionType.RemoveSubnetFromProvider, 
parameters);
+        }
+        throw new WebApplicationException(Response.Status.NOT_FOUND);
+    }
+
+    private ExternalSubnet lookupSubnetById(String id) {
+        for (ExternalSubnet subnet : parent.getSubnets()) {
+            if (ObjectUtils.equals(subnet.getId(), id)) {
+                return subnet;
+            }
+        }
+        return null;
+    }
 }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/openstack/BackendOpenStackSubnetsResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/openstack/BackendOpenStackSubnetsResource.java
index cff7735..cec0f3b 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/openstack/BackendOpenStackSubnetsResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/openstack/BackendOpenStackSubnetsResource.java
@@ -16,7 +16,6 @@
 
 package org.ovirt.engine.api.restapi.resource.openstack;
 
-import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Response;
 import java.util.List;
 
@@ -30,7 +29,6 @@
 import org.ovirt.engine.api.restapi.resource.AbstractBackendCollectionResource;
 import org.ovirt.engine.api.restapi.resource.SingleEntityResource;
 import org.ovirt.engine.core.common.action.AddExternalSubnetParameters;
-import org.ovirt.engine.core.common.action.ExternalSubnetParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.network.ExternalSubnet;
 import 
org.ovirt.engine.core.common.queries.GetExternalSubnetsOnProviderByExternalNetworkQueryParameters;
@@ -96,7 +94,7 @@
         return performCreate(VdcActionType.AddSubnetToProvider, parameters, 
new SubnetNameResolver(subnet.getName()));
     }
 
-    private List<ExternalSubnet> getSubnets() {
+    protected List<ExternalSubnet> getSubnets() {
         GetExternalSubnetsOnProviderByExternalNetworkQueryParameters 
parameters =
                 new 
GetExternalSubnetsOnProviderByExternalNetworkQueryParameters();
         parameters.setProviderId(asGuid(providerId));
@@ -108,15 +106,6 @@
     private ExternalSubnet lookupSubnetByName(String name) {
         for (ExternalSubnet subnet : getSubnets()) {
             if (ObjectUtils.equals(subnet.getName(), name)) {
-                return subnet;
-            }
-        }
-        return null;
-    }
-
-    private ExternalSubnet lookupSubnetById(String id) {
-        for (ExternalSubnet subnet : getSubnets()) {
-            if (ObjectUtils.equals(subnet.getId(), id)) {
                 return subnet;
             }
         }
@@ -137,19 +126,8 @@
     }
 
     @Override
-    protected Response performRemove(String id) {
-        ExternalSubnet subnet = lookupSubnetById(id);
-        if (subnet != null) {
-            ExternalSubnetParameters parameters = new 
ExternalSubnetParameters();
-            parameters.setSubnet(subnet);
-            return performAction(VdcActionType.RemoveSubnetFromProvider, 
parameters);
-        }
-        throw new WebApplicationException(Response.Status.NOT_FOUND);
-    }
-
-    @Override
     @SingleEntityResource
     public OpenStackSubnetResource getOpenStackSubnet(String id) {
-        return inject(new BackendOpenStackSubnetResource(providerId, 
networkId, id));
+        return inject(new BackendOpenStackSubnetResource(providerId, 
networkId, id, this));
     }
 }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/openstack/BackendOpenStackSubnetResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/openstack/BackendOpenStackSubnetResourceTest.java
index 0e7d176..5381300 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/openstack/BackendOpenStackSubnetResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/openstack/BackendOpenStackSubnetResourceTest.java
@@ -33,7 +33,7 @@
 public class BackendOpenStackSubnetResourceTest
         extends AbstractBackendSubResourceTest<OpenStackSubnet, 
ExternalSubnet, BackendOpenStackSubnetResource> {
     public BackendOpenStackSubnetResourceTest() {
-        super(new BackendOpenStackSubnetResource(GUIDS[0].toString(), 
string2hex(NAMES[1]), string2hex(NAMES[2])));
+        super(new BackendOpenStackSubnetResource(GUIDS[0].toString(), 
string2hex(NAMES[1]), string2hex(NAMES[2]), null));
     }
 
     @Test


-- 
To view, visit https://gerrit.ovirt.org/41843
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibdbc162943b41ef4f11d3e38807057916d897407
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