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