Yair Zaslavsky has uploaded a new change for review.

Change subject: aaa: Encoding/decoding is done via helper class
......................................................................

aaa: Encoding/decoding is done via helper class

We can squash this when we reach a decision on this class

Topic: AAA
Change-Id: I8fe3e44c4ee6b5c8483afbef4dfe35b400bc109d
Signed-off-by: Yair Zaslavsky <[email protected]>
---
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainGroupResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResource.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendBaseTest.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResourceTest.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/GroupMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java
A 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/DirectoryEntryIdUtils.java
7 files changed, 38 insertions(+), 26 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/20/26420/1

diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainGroupResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainGroupResource.java
index 5020f03..5b6bdc7 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainGroupResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainGroupResource.java
@@ -1,10 +1,9 @@
 package org.ovirt.engine.api.restapi.resource;
 
-import javax.xml.bind.DatatypeConverter;
-
 import org.ovirt.engine.api.model.BaseResource;
 import org.ovirt.engine.api.model.Group;
 import org.ovirt.engine.api.resource.DomainGroupResource;
+import org.ovirt.engine.api.restapi.utils.DirectoryEntryIdUtils;
 import org.ovirt.engine.core.aaa.DirectoryGroup;
 import org.ovirt.engine.core.common.queries.DirectoryIdQueryParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
@@ -22,7 +21,7 @@
     private BackendDomainGroupsResource parent;
 
     public BackendDomainGroupResource(String id, BackendDomainGroupsResource 
parent) {
-        super(new String(DatatypeConverter.parseHexBinary(id)), Group.class, 
DirectoryGroup.class);
+        super(DirectoryEntryIdUtils.decode(id), Group.class, 
DirectoryGroup.class);
         this.parent = parent;
     }
 
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResource.java
index d667fa5..0faacf2 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResource.java
@@ -1,10 +1,9 @@
 package org.ovirt.engine.api.restapi.resource;
 
-import javax.xml.bind.DatatypeConverter;
-
 import org.ovirt.engine.api.model.BaseResource;
 import org.ovirt.engine.api.model.User;
 import org.ovirt.engine.api.resource.DomainUserResource;
+import org.ovirt.engine.api.restapi.utils.DirectoryEntryIdUtils;
 import org.ovirt.engine.core.aaa.DirectoryUser;
 import org.ovirt.engine.core.common.queries.DirectoryIdQueryParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
@@ -24,7 +23,7 @@
     private BackendDomainUsersResource parent;
 
     public BackendDomainUserResource(String id, BackendDomainUsersResource 
parent) {
-        super(new String(DatatypeConverter.parseHexBinary(id)), User.class, 
DirectoryUser.class);
+        super(DirectoryEntryIdUtils.decode(id), User.class, 
DirectoryUser.class);
         this.parent = parent;
     }
 
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendBaseTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendBaseTest.java
index 8178926..cdb17fc 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendBaseTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendBaseTest.java
@@ -18,7 +18,6 @@
 import javax.ws.rs.core.PathSegment;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriInfo;
-import javax.xml.bind.DatatypeConverter;
 
 import org.easymock.IAnswer;
 import org.easymock.IMocksControl;
@@ -37,6 +36,7 @@
 import org.ovirt.engine.api.restapi.types.Mapper;
 import org.ovirt.engine.api.restapi.types.MappingLocator;
 import org.ovirt.engine.api.restapi.util.SessionHelper;
+import org.ovirt.engine.api.restapi.utils.DirectoryEntryIdUtils;
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
@@ -65,15 +65,15 @@
      * External identifiers used by directory users and groups.
      */
     protected static final String[] EXTERNAL_IDS = {
-            DatatypeConverter.printHexBinary(GUIDS[0].toByteArray()),
-            DatatypeConverter.printHexBinary(GUIDS[1].toByteArray()),
-            DatatypeConverter.printHexBinary(GUIDS[2].toByteArray()),
+            DirectoryEntryIdUtils.encode(GUIDS[0].toString()),
+            DirectoryEntryIdUtils.encode(GUIDS[1].toString()),
+            DirectoryEntryIdUtils.encode(GUIDS[2].toString()),
     };
 
     /**
      * External identifier of a non existing user or group.
      */
-    protected static final String NON_EXISTANT_EXTERNAL_ID = 
DatatypeConverter.printHexBinary(Guid.newGuid().toByteArray());
+    protected static final String NON_EXISTANT_EXTERNAL_ID = 
DirectoryEntryIdUtils.encode(Guid.newGuid().toString());
 
     protected static final Guid NON_EXISTANT_GUID = new 
Guid("99999999-9999-9999-9999-999999999999");
     protected static final Guid EVERYONE = new 
Guid("EEE00000-0000-0000-0000-123456789EEE");
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResourceTest.java
index 6f06e17..ddcd990 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendDomainUserResourceTest.java
@@ -4,11 +4,11 @@
 
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.UriInfo;
-import javax.xml.bind.DatatypeConverter;
 
 import org.junit.Test;
 import org.ovirt.engine.api.model.Domain;
 import org.ovirt.engine.api.model.User;
+import org.ovirt.engine.api.restapi.utils.DirectoryEntryIdUtils;
 import org.ovirt.engine.core.aaa.DirectoryUser;
 import org.ovirt.engine.core.common.queries.DirectoryIdQueryParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
@@ -68,7 +68,7 @@
             VdcQueryType.GetDirectoryUserById,
             DirectoryIdQueryParameters.class,
             new String[] { "Domain", "Id" },
-                new Object[] { DOMAIN, new 
String(DatatypeConverter.parseHexBinary(EXTERNAL_IDS[index])) },
+                new Object[] { DOMAIN, 
DirectoryEntryIdUtils.decode(EXTERNAL_IDS[index]) },
             notFound? null: getEntity(index)
         );
     }
@@ -76,7 +76,7 @@
     @Override
     protected DirectoryUser getEntity(int index) {
         return new DirectoryUser(DOMAIN,
-                new 
String(DatatypeConverter.parseHexBinary(EXTERNAL_IDS[index])),
+                DirectoryEntryIdUtils.decode(EXTERNAL_IDS[index]),
                 NAMES[index]);
     }
 }
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/GroupMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/GroupMapper.java
index 6907f03..3f7ed97 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/GroupMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/GroupMapper.java
@@ -1,12 +1,10 @@
 package org.ovirt.engine.api.restapi.types;
 
-import javax.xml.bind.DatatypeConverter;
-
 import org.apache.commons.lang.StringUtils;
 import org.ovirt.engine.api.model.Domain;
 import org.ovirt.engine.api.model.Group;
+import org.ovirt.engine.api.restapi.utils.DirectoryEntryIdUtils;
 import org.ovirt.engine.api.restapi.utils.GuidUtils;
-import org.ovirt.engine.api.restapi.utils.MalformedIdException;
 import org.ovirt.engine.core.aaa.DirectoryGroup;
 import org.ovirt.engine.core.common.businessentities.DbGroup;
 import org.ovirt.engine.core.compat.Guid;
@@ -23,7 +21,7 @@
             dom.setId(new Guid(entity.getDomain().getBytes(), 
true).toString());
             model.setDomain(dom);
         }
-        
model.setDomainEntryId(DatatypeConverter.printHexBinary(entity.getExternalId().getBytes()));
+        
model.setDomainEntryId(DirectoryEntryIdUtils.encode(entity.getExternalId()));
         return model;
     }
 
@@ -36,7 +34,7 @@
             dom.setId(new Guid(entity.getDirectoryName().getBytes(), 
true).toString());
             model.setDomain(dom);
         }
-        
model.setId(DatatypeConverter.printHexBinary(entity.getId().getBytes()));
+        model.setId(DirectoryEntryIdUtils.encode(entity.getId()));
         return model;
     }
 
@@ -57,7 +55,7 @@
             }
         }
         if (model.isSetDomainEntryId()) {
-            entity.setExternalId(new 
String(DatatypeConverter.parseHexBinary(model.getDomainEntryId())));
+            
entity.setExternalId(DirectoryEntryIdUtils.decode(model.getDomainEntryId()));
         }
         return entity;
     }
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java
index e853be6..10aadc9 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/UserMapper.java
@@ -1,14 +1,12 @@
 package org.ovirt.engine.api.restapi.types;
 
-import javax.xml.bind.DatatypeConverter;
-
 import org.apache.commons.lang.StringUtils;
 import org.ovirt.engine.api.model.Domain;
 import org.ovirt.engine.api.model.Group;
 import org.ovirt.engine.api.model.Groups;
 import org.ovirt.engine.api.model.User;
+import org.ovirt.engine.api.restapi.utils.DirectoryEntryIdUtils;
 import org.ovirt.engine.api.restapi.utils.GuidUtils;
-import org.ovirt.engine.api.restapi.utils.MalformedIdException;
 import org.ovirt.engine.core.aaa.DirectoryGroup;
 import org.ovirt.engine.core.aaa.DirectoryUser;
 import org.ovirt.engine.core.common.businessentities.DbUser;
@@ -25,7 +23,7 @@
         model.setLastName(entity.getLastName());
         model.setEmail(entity.getEmail());
         model.setDepartment(entity.getDepartment());
-        
model.setDomainEntryId(DatatypeConverter.printHexBinary(entity.getExternalId().getBytes()));
+        
model.setDomainEntryId(DirectoryEntryIdUtils.encode(entity.getExternalId()));
         if (entity.getGroupNames() != null && 
entity.getGroupNames().trim().length() > 0) {
             model.setGroups(new Groups());
             for (String name : entity.getGroupNames().split(",")) {
@@ -47,7 +45,7 @@
         User model = template != null ? template : new User();
         model.setName(entity.getFirstName());
         model.setUserName(entity.getName() + "@" + entity.getDirectoryName());
-        
model.setId(DatatypeConverter.printHexBinary(entity.getId().getBytes()));
+        model.setId(DirectoryEntryIdUtils.encode(entity.getId()));
         model.setLastName(entity.getLastName());
         model.setEmail(entity.getEmail());
         model.setDepartment(entity.getDepartment());
@@ -84,7 +82,7 @@
             }
         }
         if (model.isSetDomainEntryId()) {
-            entity.setExternalId(new 
String(DatatypeConverter.parseHexBinary(model.getDomainEntryId())));
+            
entity.setExternalId(DirectoryEntryIdUtils.decode(model.getDomainEntryId()));
         }
         return entity;
     }
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/DirectoryEntryIdUtils.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/DirectoryEntryIdUtils.java
new file mode 100644
index 0000000..6b5e22c
--- /dev/null
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/utils/DirectoryEntryIdUtils.java
@@ -0,0 +1,18 @@
+package org.ovirt.engine.api.restapi.utils;
+
+import java.io.UnsupportedEncodingException;
+
+import javax.xml.bind.DatatypeConverter;
+
+public class DirectoryEntryIdUtils {
+
+    public static String encode(String source) {
+        try {
+            return DatatypeConverter.printHexBinary(source.getBytes("UTF-8"));
+        } catch (UnsupportedEncodingException e) {
+            throw new RuntimeException("Cannot encode " + source);
+        }
+
+    }
+
+}


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

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

Reply via email to