Juan Hernandez has uploaded a new change for review. Change subject: core: Use ExternalId in DbUser ......................................................................
core: Use ExternalId in DbUser This patch changes the DbUser entity and the corresponding DAO to use the ExternalId class for management of the directory identifier of the user. Change-Id: I60ee292f95993c28666bd63bcd153e2416744027 Signed-off-by: Juan Hernandez <[email protected]> --- M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DbUser.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAO.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java M backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbUserDAOTest.java 4 files changed, 22 insertions(+), 25 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/76/19476/1 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DbUser.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DbUser.java index 9398d08..03b4eae 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DbUser.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DbUser.java @@ -1,9 +1,8 @@ package org.ovirt.engine.core.common.businessentities; -import java.util.Arrays; - import javax.validation.constraints.Size; +import org.ovirt.engine.core.common.utils.ExternalId; import org.ovirt.engine.core.common.utils.ObjectUtils; import org.ovirt.engine.core.compat.Guid; @@ -19,7 +18,7 @@ /** * This is the identifier assigned by the external directory to this user. */ - private byte[] externalId; + private ExternalId externalId; @Size(min = 1, max = BusinessEntitiesDefinitions.USER_DOMAIN_SIZE) private String domain; @@ -83,7 +82,7 @@ public DbUser(LdapUser ldapUser) { id = ldapUser.getUserId(); - externalId = ldapUser.getUserId().toByteArray(); + externalId = new ExternalId(ldapUser.getUserId().toByteArray()); domain = ldapUser.getDomainControler(); loginName = getFullLoginName(ldapUser); firstName = ldapUser.getName(); @@ -105,11 +104,11 @@ this.id = id; } - public byte[] getExternalId() { + public ExternalId getExternalId() { return externalId; } - public void setExternalId(byte[] externalId) { + public void setExternalId(ExternalId externalId) { this.externalId = externalId; } @@ -244,7 +243,7 @@ final int prime = 31; int result = 1; result = prime * result + ((id == null) ? 0 : id.hashCode()); - result = prime * result + Arrays.hashCode(externalId); + result = prime * result + ((externalId == null) ? 0 : externalId.hashCode()); result = prime * result + ((department == null) ? 0 : department.hashCode()); result = prime * result + ((domain == null) ? 0 : domain.hashCode()); result = prime * result + ((email == null) ? 0 : email.hashCode()); @@ -272,7 +271,7 @@ } DbUser other = (DbUser) obj; return (ObjectUtils.objectsEqual(id, other.id) - && Arrays.equals(externalId, other.externalId) + && ObjectUtils.objectsEqual(externalId, other.externalId) && ObjectUtils.objectsEqual(department, other.department) && ObjectUtils.objectsEqual(domain, other.domain) && ObjectUtils.objectsEqual(email, other.email) diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAO.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAO.java index d5b0098..a50c4cd 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAO.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAO.java @@ -3,6 +3,7 @@ import java.util.List; import org.ovirt.engine.core.common.businessentities.DbUser; +import org.ovirt.engine.core.common.utils.ExternalId; import org.ovirt.engine.core.compat.Guid; /** @@ -38,7 +39,7 @@ * @return a reference to the user or <code>null</code> if no such user * can be found in the database */ - DbUser getByExternalId(String domain, byte[] externalId); + DbUser getByExternalId(String domain, ExternalId externalId); /** * Retrieves all users associated with the specified virtual machine. diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java index 66dbbae..a5dedd9 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java @@ -5,6 +5,7 @@ import java.util.List; import org.ovirt.engine.core.common.businessentities.DbUser; +import org.ovirt.engine.core.common.utils.ExternalId; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.CustomMapSqlParameterSource; import org.springframework.jdbc.core.RowMapper; @@ -37,7 +38,7 @@ entity.setLoginName(rs.getString("username")); entity.setLastAdminCheckStatus(rs.getBoolean("last_admin_check_status")); entity.setGroupIds(rs.getString("group_ids")); - entity.setExternalId(rs.getBytes("external_id")); + entity.setExternalId(new ExternalId(rs.getBytes("external_id"))); return entity; } } @@ -80,10 +81,10 @@ } @Override - public DbUser getByExternalId(String domain, byte[] externalId) { + public DbUser getByExternalId(String domain, ExternalId externalId) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("domain", domain) - .addValue("external_id", externalId); + .addValue("external_id", externalId.getBytes()); return getCallsHandler().executeRead("GetUserByExternalId", DbUserRowMapper.instance, parameterSource); } diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbUserDAOTest.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbUserDAOTest.java index fa82a52..ee5f0d0 100644 --- a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbUserDAOTest.java +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbUserDAOTest.java @@ -6,13 +6,13 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import java.util.Arrays; import java.util.List; import org.apache.commons.lang.StringUtils; import org.junit.Before; import org.junit.Test; import org.ovirt.engine.core.common.businessentities.DbUser; +import org.ovirt.engine.core.common.utils.ExternalId; import org.ovirt.engine.core.compat.Guid; public class DbUserDAOTest extends BaseDAOTestCase { @@ -36,7 +36,7 @@ newUser = new DbUser(); - newUser.setExternalId(new byte[0]); + newUser.setExternalId(new ExternalId(new byte[0])); newUser.setFirstName("Bob"); newUser.setLastName("Milqtoste"); newUser.setLoginName("newuser"); @@ -71,9 +71,7 @@ */ @Test public void testGetWithInvalidExternalId() { - byte[] externalId = { - (byte) 0x00 - }; + ExternalId externalId = new ExternalId(0); DbUser result = dao.getByExternalId("testportal.redhat.com", externalId); assertNull(result); } @@ -83,12 +81,10 @@ */ @Test public void testGetByExternalId() { - byte[] externalId = { - (byte) 0x9b, (byte) 0xf7, (byte) 0xc6, (byte) 0x40, - (byte) 0xb6, (byte) 0x20, (byte) 0x45, (byte) 0x6f, - (byte) 0xa5, (byte) 0x50, (byte) 0x03, (byte) 0x48, - (byte) 0xf3, (byte) 0x66, (byte) 0x54, (byte) 0x4a - }; + ExternalId externalId = new ExternalId( + 0x9b, 0xf7, 0xc6, 0x40, 0xb6, 0x20, 0x45, 0x6f, + 0xa5, 0x50, 0x03, 0x48, 0xf3, 0x66, 0x54, 0x4a + ); DbUser result = dao.getByExternalId("testportal.redhat.com", externalId); assertNotNull(result); } @@ -101,7 +97,7 @@ DbUser userBefore = dao.get(existingUser.getId()); dao.update(userBefore); DbUser userAfter = dao.get(existingUser.getId()); - assertTrue(Arrays.equals(userBefore.getExternalId(), userAfter.getExternalId())); + assertEquals(userBefore.getExternalId(), userAfter.getExternalId()); } /** @@ -198,7 +194,7 @@ @Test public void testSaveUserWithTooManyGroups() { DbUser tooManyGroupsUser = new DbUser(); - tooManyGroupsUser.setExternalId(new byte[0]); + tooManyGroupsUser.setExternalId(new ExternalId(0)); tooManyGroupsUser.setFirstName("I"); tooManyGroupsUser.setLastName("Have"); tooManyGroupsUser.setLoginName("too"); -- To view, visit http://gerrit.ovirt.org/19476 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I60ee292f95993c28666bd63bcd153e2416744027 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
