Juan Hernandez has uploaded a new change for review.

Change subject: core: Move UUID encoding to templates
......................................................................

core: Move UUID encoding to templates

The encoding is now performed by the templates that generate the LDAP
queries. This is just one step to make the LDAP layer independent of the
LDAP provider, so that all things specific to particular providers will
go in configuration.

Change-Id: Iba26d52d93a068a30109172ca23c3c23b3e20761
Signed-off-by: Juan Hernandez <[email protected]>
---
D 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/ADLdapGuidEncoder.java
D 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/IPALdapGuidEncoder.java
D 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/ITDSLdapGuidEncoder.java
D 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapGuidEncoder.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryExecutionFormatterBase.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryMetadata.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryMetadataFactoryImpl.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryMetadataImpl.java
D 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/RHDSLdapGuidEncoder.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/RHDSSimpleLdapQueryExecutionFormatter.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/RHDSUPNLdapQueryExecutionFormatter.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/SimpleLdapQueryExecutionFormatter.java
A backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/functions
M 
backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/getGroupByGuid.filter
M 
backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/getUserByGuid.filter
M 
backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/getUsersByUserGuids.filter
M backend/manager/modules/bll/src/main/resources/ldap/ipa/getGroupByGuid.filter
A backend/manager/modules/bll/src/main/resources/ldap/rhds/functions
M backend/manager/modules/bll/src/main/resources/ldap/rhds/getGroupByGuid.filter
M backend/manager/modules/bll/src/main/resources/ldap/rhds/getUserByGuid.filter
M 
backend/manager/modules/bll/src/main/resources/ldap/rhds/getUsersByUserGuids.filter
21 files changed, 128 insertions(+), 223 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/35/14835/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/ADLdapGuidEncoder.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/ADLdapGuidEncoder.java
deleted file mode 100644
index e0df20a..0000000
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/ADLdapGuidEncoder.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.ovirt.engine.core.bll.adbroker;
-
-import org.ovirt.engine.core.compat.Guid;
-import org.ovirt.engine.core.utils.GuidUtils;
-
-public class ADLdapGuidEncoder implements LdapGuidEncoder {
-
-    @Override
-    public String encodeGuid(Guid guid) {
-        byte[] ba = GuidUtils.ToByteArray(guid.getUuid());
-
-        // AD guid is stored in reversed order than MS-SQL guid -
-        // Since it is important for us to work with GUIDs which are MS-SQL
-        // aligned,
-        // for each GUID -before using with AD we will change its byte order to
-        // support AD
-        Guid adGuid = new Guid(ba, false);
-        ba = GuidUtils.ToByteArray(adGuid.getUuid());
-        StringBuilder sb = new StringBuilder();
-        for (int idx = 0; idx < ba.length; idx++) {
-            sb.append("\\" + String.format("%02X", ba[idx]));
-        }
-
-        return sb.toString();
-    }
-
-}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/IPALdapGuidEncoder.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/IPALdapGuidEncoder.java
deleted file mode 100644
index 4e4af04..0000000
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/IPALdapGuidEncoder.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.ovirt.engine.core.bll.adbroker;
-
-import org.ovirt.engine.core.compat.Guid;
-
-public class IPALdapGuidEncoder implements LdapGuidEncoder {
-
-    @Override
-    public String encodeGuid(Guid guid) {
-        return guid.toString();
-    }
-
-}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/ITDSLdapGuidEncoder.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/ITDSLdapGuidEncoder.java
deleted file mode 100644
index e0a4bce..0000000
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/ITDSLdapGuidEncoder.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.ovirt.engine.core.bll.adbroker;
-
-import org.ovirt.engine.core.compat.Guid;
-
-public class ITDSLdapGuidEncoder implements LdapGuidEncoder {
-
-    @Override
-    public String encodeGuid(Guid guid) {
-        return guid.toString();
-    }
-
-}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapGuidEncoder.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapGuidEncoder.java
deleted file mode 100644
index fe60e92..0000000
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapGuidEncoder.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.ovirt.engine.core.bll.adbroker;
-
-import org.ovirt.engine.core.compat.Guid;
-
-public interface LdapGuidEncoder {
-    public String encodeGuid( Guid guid );
-}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryExecutionFormatterBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryExecutionFormatterBase.java
index 2c33c80..54703d8 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryExecutionFormatterBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryExecutionFormatterBase.java
@@ -1,33 +1,9 @@
 package org.ovirt.engine.core.bll.adbroker;
 
-import java.util.HashMap;
-import java.util.Map;
-
-import org.ovirt.engine.core.compat.Guid;
-
 public abstract class LdapQueryExecutionFormatterBase implements 
LdapQueryFormatter<LdapQueryExecution> {
 
     @Override
     public abstract LdapQueryExecution format(LdapQueryMetadata queryMetadata);
 
     protected abstract String getDisplayFilter(LdapQueryMetadata 
queryMetadata);
-
-    protected Map<String, Object> getEncodedParameters(Map<String, Object> 
parameters, LdapGuidEncoder LdapGuidEncoder) {
-        if (parameters == null) {
-            return null;
-        }
-
-        Map<String, Object> retVal = new HashMap<String, 
Object>(parameters.size());
-
-        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
-            String name = entry.getKey();
-            Object value = entry.getValue();
-            if (value instanceof Guid) {
-                value = LdapGuidEncoder.encodeGuid((Guid) value);
-            }
-            retVal.put(name, value);
-        }
-
-        return retVal;
-    }
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryMetadata.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryMetadata.java
index 7e14ed4..e910c0f 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryMetadata.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryMetadata.java
@@ -14,8 +14,6 @@
 
     public String[] getReturningAttributes();
 
-    public LdapGuidEncoder getLdapGuidEncoder();
-
     public LdapQueryFormatter<LdapQueryExecution> getFormatter();
 
     public LdapQueryData getQueryData();
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryMetadataFactoryImpl.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryMetadataFactoryImpl.java
index b8613d5..0882c6d 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryMetadataFactoryImpl.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryMetadataFactoryImpl.java
@@ -67,8 +67,7 @@
                         null,
                         SearchControls.OBJECT_SCOPE,
                         null,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        null));
+                        new SimpleLdapQueryExecutionFormatter()));
         return generalHashMap;
     }
 
@@ -81,72 +80,63 @@
                         new ADGroupContextMapper(),
                         SearchControls.OBJECT_SCOPE,
                         ADGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new ADLdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         adHashMap.put(LdapQueryType.getUserByGuid, new LdapQueryMetadataImpl(
                         LdapProviderType.activeDirectory,
                         LdapQueryType.getUserByGuid,
                         new ADUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         ADUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new ADLdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         adHashMap.put(LdapQueryType.getGroupByGuid, new LdapQueryMetadataImpl(
                         LdapProviderType.activeDirectory,
                         LdapQueryType.getGroupByGuid,
                         new ADGroupContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         ADGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new ADLdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         adHashMap.put(LdapQueryType.getGroupByName, new LdapQueryMetadataImpl(
                         LdapProviderType.activeDirectory,
                         LdapQueryType.getGroupByName,
                         new ADGroupContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         ADGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new ADLdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         adHashMap.put(LdapQueryType.getUserByPrincipalName, new 
LdapQueryMetadataImpl(
                         LdapProviderType.activeDirectory,
                         LdapQueryType.getUserByPrincipalName,
                         new ADUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         ADUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new ADLdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         adHashMap.put(LdapQueryType.getUserByName, new LdapQueryMetadataImpl(
                         LdapProviderType.activeDirectory,
                         LdapQueryType.getUserByName,
                         new ADUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         ADUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new ADLdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         adHashMap.put(LdapQueryType.rootDSE, new LdapQueryMetadataImpl(
                         LdapProviderType.activeDirectory,
                         LdapQueryType.rootDSE,
                         new ADRootDSEContextMapper(),
                         SearchControls.OBJECT_SCOPE,
                         ADRootDSEContextMapper.ROOTDSE_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new ADLdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         adHashMap.put(LdapQueryType.getGroupsByGroupNames, new 
LdapQueryMetadataImpl(
                         LdapProviderType.activeDirectory,
                         LdapQueryType.getGroupsByGroupNames,
                         new ADGroupContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         ADGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new ADLdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         adHashMap.put(LdapQueryType.getUsersByUserGuids, new 
LdapQueryMetadataImpl(
                         LdapProviderType.activeDirectory,
                         LdapQueryType.getUsersByUserGuids,
                         new ADUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         ADUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new ADLdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
 
         LdapQueryMetadataImpl searchUsersMetadata =
                 new LdapQueryMetadataImpl(
@@ -155,8 +145,7 @@
                         new ADUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         ADUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new 
SearchQueryFotmatter(activeDirectorySearchSyntaxMap),
-                        new ADLdapGuidEncoder());
+                        new 
SearchQueryFotmatter(activeDirectorySearchSyntaxMap));
         adHashMap.put(LdapQueryType.searchUsers, searchUsersMetadata);
 
         LdapQueryMetadataImpl searchGroupsMetadata =
@@ -166,8 +155,7 @@
                         new ADGroupContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         ADGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new 
SearchQueryFotmatter(activeDirectorySearchSyntaxMap),
-                        new ADLdapGuidEncoder());
+                        new 
SearchQueryFotmatter(activeDirectorySearchSyntaxMap));
         adHashMap.put(LdapQueryType.searchGroups, searchGroupsMetadata);
         return adHashMap;
     }
@@ -180,80 +168,70 @@
                         new IPAGroupContextMapper(),
                         SearchControls.OBJECT_SCOPE,
                         IPAGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new IPALdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         ipaHashMap.put(LdapQueryType.getGroupByGuid, new LdapQueryMetadataImpl(
                         LdapProviderType.ipa,
                         LdapQueryType.getGroupByGuid,
                         new IPAGroupContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         IPAGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new IPALdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         ipaHashMap.put(LdapQueryType.getUserByGuid, new LdapQueryMetadataImpl(
                         LdapProviderType.ipa,
                         LdapQueryType.getUserByGuid,
                         new IPAUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         IPAUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new IPALdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         ipaHashMap.put(LdapQueryType.getGroupByName, new LdapQueryMetadataImpl(
                         LdapProviderType.ipa,
                         LdapQueryType.getGroupByName,
                         new IPAGroupContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         IPAGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new IPALdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         ipaHashMap.put(LdapQueryType.getUserByPrincipalName, new 
LdapQueryMetadataImpl(
                         LdapProviderType.ipa,
                         LdapQueryType.getUserByPrincipalName,
                         new IPAUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         IPAUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new IPALdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         ipaHashMap.put(LdapQueryType.getUserByName, new LdapQueryMetadataImpl(
                         LdapProviderType.ipa,
                         LdapQueryType.getUserByName,
                         new IPAUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         IPAUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new IPALdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         ipaHashMap.put(LdapQueryType.rootDSE, new LdapQueryMetadataImpl(
                         LdapProviderType.ipa,
                         LdapQueryType.rootDSE,
                         new IPARootDSEContextMapper(),
                         SearchControls.OBJECT_SCOPE,
                         IPARootDSEContextMapper.ROOTDSE_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new IPALdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         ipaHashMap.put(LdapQueryType.getGroupsByGroupNames, new 
LdapQueryMetadataImpl(
                         LdapProviderType.ipa,
                         LdapQueryType.getGroupsByGroupNames,
                         new IPAGroupContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         IPAGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new IPALdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         ipaHashMap.put(LdapQueryType.getUsersByUserGuids, new 
LdapQueryMetadataImpl(
                         LdapProviderType.ipa,
                         LdapQueryType.getUsersByUserGuids,
                         new IPAUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         IPAUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new IPALdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         LdapQueryMetadataImpl ipaSearchUsersMetadata = new 
LdapQueryMetadataImpl(
                         LdapProviderType.ipa,
                         LdapQueryType.searchUsers,
                         new IPAUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         IPAUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new SearchQueryFotmatter(ipaSearchSyntaxMap),
-                        new IPALdapGuidEncoder());
+                        new SearchQueryFotmatter(ipaSearchSyntaxMap));
         ipaHashMap.put(LdapQueryType.searchUsers, ipaSearchUsersMetadata);
 
         LdapQueryMetadataImpl ipaSearchGroupsMetadata = new 
LdapQueryMetadataImpl(
@@ -262,8 +240,7 @@
                         new IPAGroupContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         IPAGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new SearchQueryFotmatter(ipaSearchSyntaxMap),
-                        new IPALdapGuidEncoder());
+                        new SearchQueryFotmatter(ipaSearchSyntaxMap));
         ipaHashMap.put(LdapQueryType.searchGroups, ipaSearchGroupsMetadata);
 
         return ipaHashMap;
@@ -278,40 +255,35 @@
                         new RHDSGroupContextMapper(),
                         SearchControls.OBJECT_SCOPE,
                         RHDSGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new RHDSSimpleLdapQueryExecutionFormatter(),
-                        new RHDSLdapGuidEncoder()));
+                        new RHDSSimpleLdapQueryExecutionFormatter()));
         dsHashMap.put(LdapQueryType.getGroupByGuid, new LdapQueryMetadataImpl(
                         LdapProviderType.rhds,
                         LdapQueryType.getGroupByGuid,
                         new RHDSGroupContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         RHDSGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new RHDSSimpleLdapQueryExecutionFormatter(),
-                        new RHDSLdapGuidEncoder()));
+                        new RHDSSimpleLdapQueryExecutionFormatter()));
         dsHashMap.put(LdapQueryType.getUserByGuid, new LdapQueryMetadataImpl(
                         LdapProviderType.rhds,
                         LdapQueryType.getUserByGuid,
                         new RHDSUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         RHDSUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new RHDSSimpleLdapQueryExecutionFormatter(),
-                        new RHDSLdapGuidEncoder()));
+                        new RHDSSimpleLdapQueryExecutionFormatter()));
         dsHashMap.put(LdapQueryType.getGroupByName, new LdapQueryMetadataImpl(
                         LdapProviderType.rhds,
                         LdapQueryType.getGroupByName,
                         new RHDSGroupContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         RHDSGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new RHDSSimpleLdapQueryExecutionFormatter(),
-                        new RHDSLdapGuidEncoder()));
+                        new RHDSSimpleLdapQueryExecutionFormatter()));
         dsHashMap.put(LdapQueryType.getUserByName, new LdapQueryMetadataImpl(
                         LdapProviderType.rhds,
                         LdapQueryType.getUserByName,
                         new RHDSUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         RHDSUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new RHDSSimpleLdapQueryExecutionFormatter(),
-                        new RHDSLdapGuidEncoder()));
+                        new RHDSSimpleLdapQueryExecutionFormatter()));
         // In RHDS there is no UPN, so we do the same query as getUserByName, 
using a formatter that will adjust the filter
         // to contain the user name instead of the UPN
         dsHashMap.put(LdapQueryType.getUserByPrincipalName, new 
LdapQueryMetadataImpl(
@@ -320,40 +292,35 @@
                         new RHDSUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         RHDSUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new RHDSUPNLdapQueryExecutionFormatter(),
-                        new RHDSLdapGuidEncoder()));
+                        new RHDSUPNLdapQueryExecutionFormatter()));
         dsHashMap.put(LdapQueryType.rootDSE, new LdapQueryMetadataImpl(
                         LdapProviderType.rhds,
                         LdapQueryType.rootDSE,
                         new RHDSRootDSEContextMapper(),
                         SearchControls.OBJECT_SCOPE,
                         RHDSRootDSEContextMapper.ROOTDSE_ATTRIBUTE_FILTER,
-                        new RHDSSimpleLdapQueryExecutionFormatter(),
-                        new RHDSLdapGuidEncoder()));
+                        new RHDSSimpleLdapQueryExecutionFormatter()));
         dsHashMap.put(LdapQueryType.getGroupsByGroupNames, new 
LdapQueryMetadataImpl(
                         LdapProviderType.rhds,
                         LdapQueryType.getGroupsByGroupNames,
                         new RHDSGroupContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         RHDSGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new RHDSSimpleLdapQueryExecutionFormatter(),
-                        new RHDSLdapGuidEncoder()));
+                        new RHDSSimpleLdapQueryExecutionFormatter()));
         dsHashMap.put(LdapQueryType.getUsersByUserGuids, new 
LdapQueryMetadataImpl(
                         LdapProviderType.rhds,
                         LdapQueryType.getUsersByUserGuids,
                         new RHDSUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         RHDSUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new RHDSSimpleLdapQueryExecutionFormatter(),
-                        new RHDSLdapGuidEncoder()));
+                        new RHDSSimpleLdapQueryExecutionFormatter()));
         LdapQueryMetadataImpl rhdsSearchUsersMetadata = new 
LdapQueryMetadataImpl(
                         LdapProviderType.rhds,
                         LdapQueryType.searchUsers,
                         new RHDSUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         RHDSUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new SearchQueryFotmatter(dsSearchSyntaxMap),
-                        new RHDSLdapGuidEncoder());
+                        new SearchQueryFotmatter(dsSearchSyntaxMap));
         dsHashMap.put(LdapQueryType.searchUsers, rhdsSearchUsersMetadata);
 
         LdapQueryMetadataImpl rhdsSearchGroupsMetadata = new 
LdapQueryMetadataImpl(
@@ -362,8 +329,7 @@
                         new RHDSGroupContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         RHDSGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new SearchQueryFotmatter(dsSearchSyntaxMap),
-                        new RHDSLdapGuidEncoder());
+                        new SearchQueryFotmatter(dsSearchSyntaxMap));
         dsHashMap.put(LdapQueryType.searchGroups, rhdsSearchGroupsMetadata);
 
         return dsHashMap;
@@ -378,80 +344,70 @@
                         new ITDSGroupContextMapper(),
                         SearchControls.OBJECT_SCOPE,
                         ITDSGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new ITDSLdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         itdsHashMap.put(LdapQueryType.getGroupByGuid, new 
LdapQueryMetadataImpl(
                         LdapProviderType.itds,
                         LdapQueryType.getGroupByGuid,
                         new ITDSGroupContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         ITDSGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new ITDSLdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         itdsHashMap.put(LdapQueryType.getUserByGuid, new LdapQueryMetadataImpl(
                         LdapProviderType.itds,
                         LdapQueryType.getUserByGuid,
                         new ITDSUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         ITDSUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new ITDSLdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         itdsHashMap.put(LdapQueryType.getGroupByName, new 
LdapQueryMetadataImpl(
                         LdapProviderType.itds,
                         LdapQueryType.getGroupByName,
                         new ITDSGroupContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         ITDSGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new ITDSLdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         itdsHashMap.put(LdapQueryType.getUserByPrincipalName, new 
LdapQueryMetadataImpl(
                         LdapProviderType.itds,
                         LdapQueryType.getUserByPrincipalName,
                         new ITDSUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         ITDSUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new ITDSLdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         itdsHashMap.put(LdapQueryType.getUserByName, new LdapQueryMetadataImpl(
                         LdapProviderType.itds,
                         LdapQueryType.getUserByName,
                         new ITDSUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         ITDSUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new ITDSLdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         itdsHashMap.put(LdapQueryType.rootDSE, new LdapQueryMetadataImpl(
                         LdapProviderType.itds,
                         LdapQueryType.rootDSE,
                         new ITDSRootDSEContextMapper(),
                         SearchControls.OBJECT_SCOPE,
                         ITDSRootDSEContextMapper.ROOTDSE_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new ITDSLdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         itdsHashMap.put(LdapQueryType.getGroupsByGroupNames, new 
LdapQueryMetadataImpl(
                         LdapProviderType.itds,
                         LdapQueryType.getGroupsByGroupNames,
                         new ITDSGroupContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         ITDSGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new ITDSLdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         itdsHashMap.put(LdapQueryType.getUsersByUserGuids, new 
LdapQueryMetadataImpl(
                         LdapProviderType.itds,
                         LdapQueryType.getUsersByUserGuids,
                         new ITDSUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         ITDSUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new SimpleLdapQueryExecutionFormatter(),
-                        new ITDSLdapGuidEncoder()));
+                        new SimpleLdapQueryExecutionFormatter()));
         LdapQueryMetadataImpl itdsSearchUsersMetadata = new 
LdapQueryMetadataImpl(
                         LdapProviderType.itds,
                         LdapQueryType.searchUsers,
                         new ITDSUserContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         ITDSUserContextMapper.USERS_ATTRIBUTE_FILTER,
-                        new SearchQueryFotmatter(itdsSearchSyntaxMap),
-                        new ITDSLdapGuidEncoder());
+                        new SearchQueryFotmatter(itdsSearchSyntaxMap));
         itdsHashMap.put(LdapQueryType.searchUsers, itdsSearchUsersMetadata);
 
         LdapQueryMetadataImpl itdsSearchGroupsMetadata = new 
LdapQueryMetadataImpl(
@@ -460,8 +416,7 @@
                         new ITDSGroupContextMapper(),
                         SearchControls.SUBTREE_SCOPE,
                         ITDSGroupContextMapper.GROUP_ATTRIBUTE_FILTER,
-                        new SearchQueryFotmatter(itdsSearchSyntaxMap),
-                        new ITDSLdapGuidEncoder());
+                        new SearchQueryFotmatter(itdsSearchSyntaxMap));
         itdsHashMap.put(LdapQueryType.searchGroups, itdsSearchGroupsMetadata);
 
         return itdsHashMap;
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryMetadataImpl.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryMetadataImpl.java
index b41c1d6..3f0b8f7 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryMetadataImpl.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/LdapQueryMetadataImpl.java
@@ -16,7 +16,6 @@
     private ContextMapper contextMapper;
     private int searchScope;
     private String[] returningAttributes;
-    private LdapGuidEncoder ldapGuidEncoder;
     private LdapQueryFormatter<LdapQueryExecution> formatter;
     private LdapQueryData queryData;
 
@@ -26,14 +25,12 @@
             ContextMapper contextMapper,
             int searchScope,
             String[] returningAttributes,
-            LdapQueryFormatter<LdapQueryExecution> formatter,
-            LdapGuidEncoder ldapGuidEncoder ) {
+            LdapQueryFormatter<LdapQueryExecution> formatter) {
 
         this.contextMapper = contextMapper;
         this.searchScope = searchScope;
         this.returningAttributes = returningAttributes;
         this.formatter = formatter;
-        this.ldapGuidEncoder = ldapGuidEncoder;
 
         // Load the filter template:
         try {
@@ -78,11 +75,6 @@
     @Override
     public String[] getReturningAttributes() {
         return returningAttributes;
-    }
-
-    @Override
-    public LdapGuidEncoder getLdapGuidEncoder() {
-        return ldapGuidEncoder;
     }
 
     @Override
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/RHDSLdapGuidEncoder.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/RHDSLdapGuidEncoder.java
deleted file mode 100644
index 1b1b157..0000000
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/RHDSLdapGuidEncoder.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.ovirt.engine.core.bll.adbroker;
-
-import org.ovirt.engine.core.compat.Guid;
-
-public class RHDSLdapGuidEncoder implements LdapGuidEncoder {
-
-    private String getNsUniqueIdFromGuidString(String guidString) {
-        // 12345678-1234-5678-1234-567812345678 -->
-        // 12345678-12345678-12345678-12345678
-        StringBuilder sb = new StringBuilder();
-        sb.append(guidString.substring(0, 13))
-                .append(guidString.substring(14, 23))
-                .append(guidString.substring(24, 28))
-                .append("-")
-                .append(guidString.substring(28, 36));
-        return sb.toString();
-    }
-
-    @Override
-    public String encodeGuid(Guid guid) {
-        return getNsUniqueIdFromGuidString(guid.toString());
-    }
-
-}
-
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/RHDSSimpleLdapQueryExecutionFormatter.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/RHDSSimpleLdapQueryExecutionFormatter.java
index 4d4c863..45c3fec 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/RHDSSimpleLdapQueryExecutionFormatter.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/RHDSSimpleLdapQueryExecutionFormatter.java
@@ -18,8 +18,7 @@
                 queryMetadata.getFilter()
             );
             return filterTemplate.eval(
-                
getEncodedParameters(queryMetadata.getQueryData().getParameters(),
-                            queryMetadata.getLdapGuidEncoder()));
+                    queryMetadata.getQueryData().getParameters());
         }
         catch (TemplateException exception) {
             log.error("Error evaluating template.", exception);
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/RHDSUPNLdapQueryExecutionFormatter.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/RHDSUPNLdapQueryExecutionFormatter.java
index 89673c1..b8348c0 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/RHDSUPNLdapQueryExecutionFormatter.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/RHDSUPNLdapQueryExecutionFormatter.java
@@ -26,8 +26,7 @@
 
         String baseDN =
                 String.format(queryMetadata.getBaseDN(),
-                        
getEncodedParameters(queryMetadata.getQueryData().getParameters(),
-                                queryMetadata.getLdapGuidEncoder()));
+                        queryMetadata.getQueryData().getParameters());
 
         return new LdapQueryExecution(filter,
                 getDisplayFilter(queryMetadata),
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/SimpleLdapQueryExecutionFormatter.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/SimpleLdapQueryExecutionFormatter.java
index 849fb9d..75a95c4 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/SimpleLdapQueryExecutionFormatter.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/SimpleLdapQueryExecutionFormatter.java
@@ -31,15 +31,13 @@
             );
             String filter =
                     filterTemplate.eval(
-                            
getEncodedParameters(queryMetadata.getQueryData().getParameters(),
-                                    queryMetadata.getLdapGuidEncoder()));
+                            queryMetadata.getQueryData().getParameters());
             Template baseDNTemplate = TemplateEngine.getInstance().compile(
                 queryMetadata.getBaseDN()
             );
             String baseDN =
                     baseDNTemplate.eval(
-                            
getEncodedParameters(queryMetadata.getQueryData().getParameters(),
-                                    queryMetadata.getLdapGuidEncoder()));
+                            queryMetadata.getQueryData().getParameters());
 
             return new LdapQueryExecution(filter,
                     getDisplayFilter(queryMetadata),
diff --git 
a/backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/functions 
b/backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/functions
new file mode 100644
index 0000000..75b6f7c
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/functions
@@ -0,0 +1,31 @@
+ <%!
+
+  //
+  // Active Directory requires UUIDs in binary format and with some of the 
bytes
+  // reversed, so we need to reorder and escape them according the LDAP 
escaping
+  // rules:
+  //
+  function format(uuid) {
+    var value = uuid.toString();
+    value =
+      "\\" + value.substring(6, 8) +
+      "\\" + value.substring(4, 6) +
+      "\\" + value.substring(2, 4) +
+      "\\" + value.substring(0, 2) +
+      "\\" + value.substring(11, 13) +
+      "\\" + value.substring(9, 11) +
+      "\\" + value.substring(16, 18) +
+      "\\" + value.substring(14, 16) +
+      "\\" + value.substring(19, 21) +
+      "\\" + value.substring(21, 23) +
+      "\\" + value.substring(24, 26) +
+      "\\" + value.substring(26, 28) +
+      "\\" + value.substring(28, 30) +
+      "\\" + value.substring(30, 32) +
+      "\\" + value.substring(32, 34) +
+      "\\" + value.substring(34, 36)
+    ;
+    return value;
+  }
+
+%>
diff --git 
a/backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/getGroupByGuid.filter
 
b/backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/getGroupByGuid.filter
index 9bd929c..c76bb15 100644
--- 
a/backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/getGroupByGuid.filter
+++ 
b/backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/getGroupByGuid.filter
@@ -1,3 +1,5 @@
 <%@ options whitespace="ignore" %>
 
-(objectGUID=${id})
+<%@ include resource="ldap/activeDirectory/functions" %>
+
+(objectGUID=${format(id)})
diff --git 
a/backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/getUserByGuid.filter
 
b/backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/getUserByGuid.filter
index 9bd929c..c76bb15 100644
--- 
a/backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/getUserByGuid.filter
+++ 
b/backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/getUserByGuid.filter
@@ -1,3 +1,5 @@
 <%@ options whitespace="ignore" %>
 
-(objectGUID=${id})
+<%@ include resource="ldap/activeDirectory/functions" %>
+
+(objectGUID=${format(id)})
diff --git 
a/backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/getUsersByUserGuids.filter
 
b/backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/getUsersByUserGuids.filter
index 8c3f21a..053c11a 100644
--- 
a/backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/getUsersByUserGuids.filter
+++ 
b/backend/manager/modules/bll/src/main/resources/ldap/activeDirectory/getUsersByUserGuids.filter
@@ -1,7 +1,9 @@
 <%@ options whitespace="ignore" %>
 
+<%@ include resource="ldap/activeDirectory/functions" %>
+
 (|
   <% for each (var id in ids) { %>
-    (objectGUID=${id})
+    (objectGUID=${format(id)})
   <% } %>
 )
diff --git 
a/backend/manager/modules/bll/src/main/resources/ldap/ipa/getGroupByGuid.filter 
b/backend/manager/modules/bll/src/main/resources/ldap/ipa/getGroupByGuid.filter
index 8c2477a..06ce176 100644
--- 
a/backend/manager/modules/bll/src/main/resources/ldap/ipa/getGroupByGuid.filter
+++ 
b/backend/manager/modules/bll/src/main/resources/ldap/ipa/getGroupByGuid.filter
@@ -1,3 +1,3 @@
 <%@ options whitespace="ignore" %>
 
-(ipaUniqueID=${id})
+(ipaUniqueID=${id})
\ No newline at end of file
diff --git a/backend/manager/modules/bll/src/main/resources/ldap/rhds/functions 
b/backend/manager/modules/bll/src/main/resources/ldap/rhds/functions
new file mode 100644
index 0000000..a4bb190
--- /dev/null
+++ b/backend/manager/modules/bll/src/main/resources/ldap/rhds/functions
@@ -0,0 +1,28 @@
+ <%!
+
+  //
+  // The 389 directory server uses a different string representation of UUIDs,
+  // with dashes in different places. The standard layout is something like
+  // this:
+  //
+  //   12345678-1234-5678-1234-567812345678
+  //
+  // And the layout used by the 389 directory is like this:
+  //
+  //   12345678-12345678-12345678-12345678
+  //
+  // This function performs that translation.
+  //
+  function format(uuid) {
+    var value = uuid.toString();
+    value =
+      value.substring(0, 13) +
+      value.substring(14, 23) +
+      value.substring(24, 28) +
+      "-" +
+      value.substring(28, 36)
+    ;
+    return value;
+  }
+
+%>
diff --git 
a/backend/manager/modules/bll/src/main/resources/ldap/rhds/getGroupByGuid.filter
 
b/backend/manager/modules/bll/src/main/resources/ldap/rhds/getGroupByGuid.filter
index 5290902..cdd6bda 100644
--- 
a/backend/manager/modules/bll/src/main/resources/ldap/rhds/getGroupByGuid.filter
+++ 
b/backend/manager/modules/bll/src/main/resources/ldap/rhds/getGroupByGuid.filter
@@ -1,3 +1,5 @@
 <%@ options whitespace="ignore" %>
 
-(nsUniqueId=${id})
+<%@ include resource="ldap/rhds/functions" %>
+
+(nsUniqueId=${format(id)})
diff --git 
a/backend/manager/modules/bll/src/main/resources/ldap/rhds/getUserByGuid.filter 
b/backend/manager/modules/bll/src/main/resources/ldap/rhds/getUserByGuid.filter
index 08b0ec9..ea2a509 100644
--- 
a/backend/manager/modules/bll/src/main/resources/ldap/rhds/getUserByGuid.filter
+++ 
b/backend/manager/modules/bll/src/main/resources/ldap/rhds/getUserByGuid.filter
@@ -1,3 +1,5 @@
 <%@ options whitespace="ignore" %>
 
-(nsUniqueID=${id})
+<%@ include resource="ldap/rhds/functions" %>
+
+(nsUniqueID=${format(id)})
diff --git 
a/backend/manager/modules/bll/src/main/resources/ldap/rhds/getUsersByUserGuids.filter
 
b/backend/manager/modules/bll/src/main/resources/ldap/rhds/getUsersByUserGuids.filter
index f7c374b..63c269c 100644
--- 
a/backend/manager/modules/bll/src/main/resources/ldap/rhds/getUsersByUserGuids.filter
+++ 
b/backend/manager/modules/bll/src/main/resources/ldap/rhds/getUsersByUserGuids.filter
@@ -1,7 +1,9 @@
 <%@ options whitespace="ignore" %>
 
+<%@ include resource="ldap/rhds/functions" %>
+
 (|
   <% for each (var id in ids) { %>
-    (nsUniqueId=${id})
+    (nsUniqueId=${format(id)})
   <% } %>
 )


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

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

Reply via email to