Mike Kolesnik has uploaded a new change for review.

Change subject: engine: Added Quantum network provider client
......................................................................

engine: Added Quantum network provider client

This is a simple client implementing the basic API that the
NetworkProviderClient dictates.

Change-Id: I3f9ab9d0e4e8d6bc801c4825605aa435552152c0
Signed-off-by: Mike Kolesnik <[email protected]>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/external/quantum/QuantumNetwork.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/external/quantum/QuantumNetworkProviderClient.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/external/quantum/QuantumNetworksList.java
3 files changed, 118 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/87/10787/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/external/quantum/QuantumNetwork.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/external/quantum/QuantumNetwork.java
new file mode 100644
index 0000000..06eaefb
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/external/quantum/QuantumNetwork.java
@@ -0,0 +1,46 @@
+package org.ovirt.engine.core.bll.network.external.quantum;
+
+import java.util.UUID;
+
+public class QuantumNetwork {
+
+    private String status;
+
+    private String name;
+
+    private UUID id;
+
+    private UUID tenantId;
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public UUID getId() {
+        return id;
+    }
+
+    public void setId(UUID id) {
+        this.id = id;
+    }
+
+    public UUID getTenantId() {
+        return tenantId;
+    }
+
+    public void setTenantId(UUID tenantId) {
+        this.tenantId = tenantId;
+    }
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/external/quantum/QuantumNetworkProviderClient.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/external/quantum/QuantumNetworkProviderClient.java
new file mode 100644
index 0000000..64af5ec
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/external/quantum/QuantumNetworkProviderClient.java
@@ -0,0 +1,58 @@
+package org.ovirt.engine.core.bll.network.external.quantum;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpMethod;
+import org.apache.commons.httpclient.methods.GetMethod;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.ovirt.engine.core.bll.network.external.NetworkProviderClient;
+import org.ovirt.engine.core.common.businessentities.network.Network;
+import org.ovirt.engine.core.common.businessentities.network.NetworkProvider;
+import org.ovirt.engine.core.common.errors.VdcBLLException;
+import org.ovirt.engine.core.common.errors.VdcBllErrors;
+import org.ovirt.engine.core.compat.Guid;
+
+public class QuantumNetworkProviderClient implements NetworkProviderClient {
+
+    private NetworkProvider providerDetails;
+
+    private HttpClient httpClient = new HttpClient();
+
+    private ObjectMapper objectMapper = new ObjectMapper();
+
+    public QuantumNetworkProviderClient(NetworkProvider providerDetails) {
+        this.providerDetails = providerDetails;
+    }
+
+    @Override
+    public List<Network> getAll() {
+        HttpMethod method = new GetMethod(providerDetails.getApiAddress() + 
"/networks/");
+        try {
+            httpClient.executeMethod(method);
+            QuantumNetwork[] networks =
+                    objectMapper.readValue(method.getResponseBody(), 
QuantumNetworksList.class).getNetworks();
+            return map(Arrays.asList(networks));
+        } catch (IOException e) {
+            throw new VdcBLLException(VdcBllErrors.ENGINE, new 
RuntimeException(e));
+        }
+    }
+
+    private List<Network> map(List<QuantumNetwork> quantumNetworks) {
+        ArrayList<Network> networks = new 
ArrayList<Network>(quantumNetworks.size());
+
+        for (QuantumNetwork quantumNetwork : quantumNetworks) {
+            Network network = new Network();
+            network.setVmNetwork(true);
+            network.setProvidedBy(providerDetails.getId());
+            
network.setId(Guid.createGuidFromString(quantumNetwork.getId().toString()));
+            network.setName(quantumNetwork.getName());
+            networks.add(network);
+        }
+
+        return networks;
+    }
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/external/quantum/QuantumNetworksList.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/external/quantum/QuantumNetworksList.java
new file mode 100644
index 0000000..6c8c910
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/external/quantum/QuantumNetworksList.java
@@ -0,0 +1,14 @@
+package org.ovirt.engine.core.bll.network.external.quantum;
+
+public class QuantumNetworksList {
+
+    private QuantumNetwork[] networks;
+
+    public QuantumNetwork[] getNetworks() {
+        return networks;
+    }
+
+    public void setNetworks(QuantumNetwork[] networks) {
+        this.networks = networks;
+    }
+}


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

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