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
