Mike Kolesnik has uploaded a new change for review.

Change subject: engine: Add keystone support in Openstack Network
......................................................................

engine: Add keystone support in Openstack Network

Openstack network provider can now authenticate via Keystone.

Change-Id: I4a7c455f8e5063c9e5fb1ac993b3c521961489b8
Signed-off-by: Mike Kolesnik <mkole...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxyFactory.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/network/openstack/OpenstackNetworkProviderProxy.java
2 files changed, 22 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/72/15372/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxyFactory.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxyFactory.java
index 8f17a25..d72d2e1 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxyFactory.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxyFactory.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.core.bll.provider;
 
 import 
org.ovirt.engine.core.bll.provider.network.openstack.OpenstackNetworkProviderProxy;
+import 
org.ovirt.engine.core.common.businessentities.MultiTenantProviderProperties;
 import org.ovirt.engine.core.common.businessentities.Provider;
 
 /**
@@ -23,7 +24,7 @@
      */
     @SuppressWarnings("unchecked")
     public <P extends ProviderProxy> P create(Provider<?> provider) {
-        return (P) new OpenstackNetworkProviderProxy(provider);
+        return (P) new 
OpenstackNetworkProviderProxy((Provider<MultiTenantProviderProperties>) 
provider);
     }
 
     /**
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/network/openstack/OpenstackNetworkProviderProxy.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/network/openstack/OpenstackNetworkProviderProxy.java
index 55dfb2b..447c98f 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/network/openstack/OpenstackNetworkProviderProxy.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/network/openstack/OpenstackNetworkProviderProxy.java
@@ -3,14 +3,18 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.openstack.keystone.utils.KeystoneTokenProvider;
 import org.openstack.quantum.Quantum;
 import org.openstack.quantum.model.Networks;
 import org.openstack.quantum.model.Port;
 import org.ovirt.engine.core.bll.provider.network.NetworkProviderProxy;
+import 
org.ovirt.engine.core.common.businessentities.MultiTenantProviderProperties;
 import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import org.ovirt.engine.core.common.businessentities.network.ProviderNetwork;
 import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
+import org.ovirt.engine.core.common.config.Config;
+import org.ovirt.engine.core.common.config.ConfigValues;
 import org.ovirt.engine.core.common.errors.VdcBLLException;
 import org.ovirt.engine.core.common.errors.VdcBllErrors;
 import org.ovirt.engine.core.compat.Guid;
@@ -19,20 +23,32 @@
 
     private static final String DEVICE_OWNER = "oVirt";
 
-    private Provider<?> providerDetails;
+    private Provider<MultiTenantProviderProperties> providerDetails;
 
     private Quantum quantumClient;
 
-    public OpenstackNetworkProviderProxy(Provider<?> providerDetails) {
+    public 
OpenstackNetworkProviderProxy(Provider<MultiTenantProviderProperties> 
providerDetails) {
         this.providerDetails = providerDetails;
-        this.quantumClient = new Quantum(providerDetails.getUrl());
     }
 
-    private Provider<?> getProviderDetails() {
+    private Provider<MultiTenantProviderProperties> getProviderDetails() {
         return providerDetails;
     }
 
     private Quantum getQuantumClient() {
+        if (quantumClient == null) {
+            quantumClient = new Quantum(getProviderDetails().getUrl());
+            if (getProviderDetails().isRequiringAuthentication()) {
+                final String tenantName = 
getProviderDetails().getAdditionalProperties().getTenantName();
+                final KeystoneTokenProvider keystoneTokenProvider =
+                        new KeystoneTokenProvider(Config.<String> 
GetValue(ConfigValues.KeystoneAuthUrl),
+                                getProviderDetails().getUsername(),
+                                getProviderDetails().getPassword());
+
+                
quantumClient.setTokenProvider(keystoneTokenProvider.getProviderByTenant(tenantName));
+            }
+        }
+
         return quantumClient;
     }
 


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

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