Mike Kolesnik has uploaded a new change for review. Change subject: restapi: Support adding a network on provider ......................................................................
restapi: Support adding a network on provider Added support for POST-ing a network to the provider's networks list. Change-Id: I52618a8f5d171275dd0802b9ac5348fa2d430962 Signed-off-by: Mike Kolesnik <mkole...@redhat.com> --- M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ProviderNetworksResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendProviderNetworksResource.java 2 files changed, 34 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/31/11431/1 diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ProviderNetworksResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ProviderNetworksResource.java index ff7a6e6..3c0f37d 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ProviderNetworksResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ProviderNetworksResource.java @@ -16,17 +16,26 @@ package org.ovirt.engine.api.resource; +import javax.ws.rs.Consumes; 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.jboss.resteasy.annotations.providers.jaxb.Formatted; +import org.ovirt.engine.api.model.Network; import org.ovirt.engine.api.model.Networks; @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_X_YAML}) public interface ProviderNetworksResource { + @POST + @Formatted + @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, MediaType.APPLICATION_X_YAML}) + public Response add(Network network); + @GET @Formatted public Networks list(); diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendProviderNetworksResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendProviderNetworksResource.java index 5e17864..caca371 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendProviderNetworksResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendProviderNetworksResource.java @@ -9,6 +9,8 @@ import org.ovirt.engine.api.model.Provider; import org.ovirt.engine.api.resource.ProviderNetworkResource; import org.ovirt.engine.api.resource.ProviderNetworksResource; +import org.ovirt.engine.core.common.action.AddNetworkStoragePoolParameters; +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.compat.Guid; @@ -22,6 +24,20 @@ public BackendProviderNetworksResource(String providerId) { super(Network.class, org.ovirt.engine.core.common.businessentities.network.Network.class); this.providerId = providerId; + } + + @Override + public Response add(Network network) { + validateParameters(network, getRequiredAddFields()); + validateEnums(Network.class, network); + org.ovirt.engine.core.common.businessentities.network.Network entity = map(network); + AddNetworkStoragePoolParameters params = + new AddNetworkStoragePoolParameters(entity.getDataCenterId().getValue(), entity); + return performCreate(VdcActionType.AddNetworkOnProvider, params, new ProviderNetworkIdResolver()); + } + + protected String[] getRequiredAddFields() { + return new String[] { "name", "dataCenter.name|id" }; } @Override @@ -73,4 +89,13 @@ } return null; } + + protected class ProviderNetworkIdResolver extends EntityIdResolver<Guid> { + + @Override + public org.ovirt.engine.core.common.businessentities.network.Network lookupEntity(Guid id) + throws BackendFailureException { + return lookupNetwork(id); + } + } } -- To view, visit http://gerrit.ovirt.org/11431 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I52618a8f5d171275dd0802b9ac5348fa2d430962 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Mike Kolesnik <mkole...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches