Mike Kolesnik has uploaded a new change for review.

Change subject: restapi: WIP Added provider networks
......................................................................

restapi: WIP Added provider networks

Added networks to provider that can be discovered and seen.
The actual discovery is done in Backend.

Change-Id: I48b053ab226f700f9609b10dffa054e9d7d3d964
Signed-off-by: Mike Kolesnik <[email protected]>
---
A 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ProviderNetworkResource.java
A 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ProviderNetworksResource.java
M 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ProviderResource.java
A 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendProviderNetworkResource.java
A 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendProviderNetworksResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendProviderResource.java
6 files changed, 187 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/30/11030/1

diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ProviderNetworkResource.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ProviderNetworkResource.java
new file mode 100644
index 0000000..6f80a55
--- /dev/null
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ProviderNetworkResource.java
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2010 Red Hat, Inc.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*           http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+package org.ovirt.engine.api.resource;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Produces;
+
+import org.jboss.resteasy.annotations.providers.jaxb.Formatted;
+import org.ovirt.engine.api.model.Network;
+
+@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, 
MediaType.APPLICATION_X_YAML})
+public interface ProviderNetworkResource {
+
+    @GET
+    @Formatted
+    public Network get();
+}
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
new file mode 100644
index 0000000..ff7a6e6
--- /dev/null
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ProviderNetworksResource.java
@@ -0,0 +1,36 @@
+/*
+* Copyright (c) 2010 Red Hat, Inc.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*           http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+package org.ovirt.engine.api.resource;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+
+import org.jboss.resteasy.annotations.providers.jaxb.Formatted;
+import org.ovirt.engine.api.model.Networks;
+
+@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, 
MediaType.APPLICATION_X_YAML})
+public interface ProviderNetworksResource {
+
+    @GET
+    @Formatted
+    public Networks list();
+
+    @Path("{id}")
+    public ProviderNetworkResource 
getProviderNetworkSubResource(@PathParam("id") String id);
+}
diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ProviderResource.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ProviderResource.java
index 63aebd7..a75bb98 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ProviderResource.java
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/ProviderResource.java
@@ -1,9 +1,13 @@
 package org.ovirt.engine.api.resource;
 
+import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 
 import org.ovirt.engine.api.model.Provider;
 
 @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, 
MediaType.APPLICATION_X_YAML})
 public interface ProviderResource extends UpdatableResource<Provider> {
+
+    @Path("networks")
+    public ProviderNetworksResource getProviderNetworksResource();
 }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendProviderNetworkResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendProviderNetworkResource.java
new file mode 100644
index 0000000..809b7fa
--- /dev/null
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendProviderNetworkResource.java
@@ -0,0 +1,35 @@
+package org.ovirt.engine.api.restapi.resource;
+
+import org.ovirt.engine.api.model.Network;
+import org.ovirt.engine.api.resource.ProviderNetworkResource;
+
+public class BackendProviderNetworkResource
+    extends AbstractBackendSubResource<Network, 
org.ovirt.engine.core.common.businessentities.network.Network>
+    implements ProviderNetworkResource {
+
+    protected BackendProviderNetworksResource parent;
+
+    public BackendProviderNetworkResource(String id, 
BackendProviderNetworksResource parent) {
+        super(id, Network.class, 
org.ovirt.engine.core.common.businessentities.network.Network.class);
+        this.parent = parent;
+    }
+
+    @Override
+    public Network addParents(Network network) {
+        return parent.addParents(network);
+    }
+
+    @Override
+    public Network get() {
+        org.ovirt.engine.core.common.businessentities.network.Network entity = 
parent.lookupNetwork(guid);
+        if (entity == null) {
+            return notFound();
+        }
+        return addLinks(map(entity));
+    }
+
+    @Override
+    protected Network doPopulate(Network model, 
org.ovirt.engine.core.common.businessentities.network.Network entity) {
+        return model;
+    }
+}
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
new file mode 100644
index 0000000..f4dacec
--- /dev/null
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendProviderNetworksResource.java
@@ -0,0 +1,75 @@
+package org.ovirt.engine.api.restapi.resource;
+
+import java.util.List;
+
+import javax.ws.rs.core.Response;
+
+import org.ovirt.engine.api.model.Network;
+import org.ovirt.engine.api.model.Networks;
+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.queries.IdQueryParameters;
+import org.ovirt.engine.core.common.queries.VdcQueryType;
+import org.ovirt.engine.core.compat.Guid;
+
+public class BackendProviderNetworksResource
+    extends AbstractBackendCollectionResource<Network, 
org.ovirt.engine.core.common.businessentities.network.Network>
+    implements ProviderNetworksResource {
+
+    private String providerId;
+
+    public BackendProviderNetworksResource(String providerId) {
+        super(Network.class, 
org.ovirt.engine.core.common.businessentities.network.Network.class);
+        this.providerId = providerId;
+    }
+
+    @Override
+    public Networks list() {
+        return mapCollection(discoverNetworksOnProvider());
+    }
+
+    @Override
+    public Network addParents(Network network) {
+        network.setProvider(new Provider());
+        network.getProvider().setId(providerId);
+        return network;
+    }
+
+    private 
List<org.ovirt.engine.core.common.businessentities.network.Network> 
discoverNetworksOnProvider() {
+        return getBackendCollection(VdcQueryType.GetAllNetworksOnProvider, new 
IdQueryParameters(new Guid(providerId)));
+    }
+
+    protected Networks 
mapCollection(List<org.ovirt.engine.core.common.businessentities.network.Network>
 entities) {
+        Networks collection = new Networks();
+        for (org.ovirt.engine.core.common.businessentities.network.Network 
entity : entities) {
+            collection.getNetworks().add(addLinks(map(entity)));
+        }
+        return collection;
+    }
+
+    @Override
+    protected Network doPopulate(Network model, 
org.ovirt.engine.core.common.businessentities.network.Network entity) {
+        return model;
+    }
+
+    @Override
+    @SingleEntityResource
+    public ProviderNetworkResource getProviderNetworkSubResource(String id) {
+        return inject(new BackendProviderNetworkResource(id, this));
+    }
+
+    @Override
+    protected Response performRemove(String id) {
+        throw new UnsupportedOperationException();
+    }
+
+    public org.ovirt.engine.core.common.businessentities.network.Network 
lookupNetwork(Guid id) {
+        for (org.ovirt.engine.core.common.businessentities.network.Network 
entity : discoverNetworksOnProvider()) {
+            if (id != null && id.equals(entity.getId())) {
+                return entity;
+            }
+        }
+        return null;
+    }
+}
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendProviderResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendProviderResource.java
index a2bd6de..5eb30c1 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendProviderResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendProviderResource.java
@@ -2,6 +2,7 @@
 
 
 import org.ovirt.engine.api.model.Provider;
+import org.ovirt.engine.api.resource.ProviderNetworksResource;
 import org.ovirt.engine.api.resource.ProviderResource;
 import org.ovirt.engine.core.common.action.ProviderParameters;
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
@@ -64,4 +65,9 @@
     protected Provider doPopulate(Provider model, 
org.ovirt.engine.core.common.businessentities.Provider entity) {
         return model;
     }
+
+    @Override
+    public ProviderNetworksResource getProviderNetworksResource() {
+        return inject(new BackendProviderNetworksResource(id));
+    }
 }


--
To view, visit http://gerrit.ovirt.org/11030
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I48b053ab226f700f9609b10dffa054e9d7d3d964
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Mike Kolesnik <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to