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

Reply via email to