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
