Hello Yair Zaslavsky, I'd like you to do a code review. Please visit
http://gerrit.ovirt.org/32008 to review the following change. Change subject: aaa: Associate users only with managed groups by oVirt ...................................................................... aaa: Associate users only with managed groups by oVirt This patch will store at groupNames only groups that are managed by Ovirt (i.e - groups that exist in the groups DB table). Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1120720 Change-Id: I8a5daf3c68cc04ebd4ad0ec6cfdfd6cf16ececb9 Signed-off-by: Yair Zaslavsky <yzasl...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsSpmIdCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/OvfDataUpdater.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/DirectoryUtils.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/LoginBaseCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/SyncUsers.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ISCSIStorageHelper.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/aaa/DbUser.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 M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUserResourceTest.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUsersResourceTest.java M backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/linq/LinqUtils.java M backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/linq/LinqUtilsTest.java 17 files changed, 67 insertions(+), 77 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/08/32008/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsSpmIdCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsSpmIdCommand.java index 0cf18b2..18afeab 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsSpmIdCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsSpmIdCommand.java @@ -64,7 +64,7 @@ private void insertSpmIdToDb(List<vds_spm_id_map> vds_spm_id_mapList) { // according to shaharf the first id is 1 int selectedId = 1; - List<Integer> list = LinqUtils.foreach(vds_spm_id_mapList, new Function<vds_spm_id_map, Integer>() { + List<Integer> list = LinqUtils.transformToList(vds_spm_id_mapList, new Function<vds_spm_id_map, Integer>() { @Override public Integer eval(vds_spm_id_map vds_spm_id_map) { return vds_spm_id_map.getvds_spm_id(); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java index 360254f..1496915 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java @@ -6,7 +6,6 @@ import java.util.Arrays; import java.util.Collection; import java.util.HashMap; -import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -44,10 +43,10 @@ import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.VdcObjectType; -import org.ovirt.engine.core.common.action.LockProperties.Scope; import org.ovirt.engine.core.common.action.LockProperties; -import org.ovirt.engine.core.common.action.VdcActionParametersBase.CommandExecutionReason; +import org.ovirt.engine.core.common.action.LockProperties.Scope; import org.ovirt.engine.core.common.action.VdcActionParametersBase; +import org.ovirt.engine.core.common.action.VdcActionParametersBase.CommandExecutionReason; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VdcReturnValueBase; import org.ovirt.engine.core.common.asynctasks.AsyncTaskCreationInfo; @@ -56,9 +55,9 @@ import org.ovirt.engine.core.common.businessentities.ActionVersionMap; import org.ovirt.engine.core.common.businessentities.AsyncTasks; import org.ovirt.engine.core.common.businessentities.BusinessEntity; +import org.ovirt.engine.core.common.businessentities.BusinessEntitySnapshot; import org.ovirt.engine.core.common.businessentities.BusinessEntitySnapshot.EntityStatusSnapshot; import org.ovirt.engine.core.common.businessentities.BusinessEntitySnapshot.SnapshotType; -import org.ovirt.engine.core.common.businessentities.BusinessEntitySnapshot; import org.ovirt.engine.core.common.businessentities.CommandEntity; import org.ovirt.engine.core.common.businessentities.IVdsAsyncCommand; import org.ovirt.engine.core.common.businessentities.QuotaEnforcementTypeEnum; @@ -924,7 +923,7 @@ * @return <code>true</code> if the current user is authorized to run the action, <code>false</code> otherwise */ protected boolean checkUserAndGroupsAuthorization(Guid userId, - HashSet<Guid> groupIds, + List<Guid> groupIds, final ActionGroup actionGroup, final Guid object, final VdcObjectType type, diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java index 30f352a..a93a46f 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java @@ -607,7 +607,7 @@ && !getParameters().getCopyCollapse()) { List<StorageDomain> domains = runInternalQuery(VdcQueryType.GetStorageDomainsByVmTemplateId, new IdQueryParameters(getVm().getVmtGuid())).getReturnValue(); - List<Guid> domainsId = LinqUtils.foreach(domains, new Function<StorageDomain, Guid>() { + List<Guid> domainsId = LinqUtils.transformToList(domains, new Function<StorageDomain, Guid>() { @Override public Guid eval(StorageDomain storageDomainStatic) { return storageDomainStatic.getId(); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java index b5f5c81..0d7695f 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmFromConfigurationCommand.java @@ -108,7 +108,7 @@ } private ArrayList<DiskImage> getDiskImageListFromDiskMap(Map<Guid, Disk> diskMap) { - return new ArrayList<>(LinqUtils.foreach(diskMap.values(), new Function<Disk, DiskImage>() { + return new ArrayList<>(LinqUtils.transformToList(diskMap.values(), new Function<Disk, DiskImage>() { @Override public DiskImage eval(Disk disk) { return (DiskImage) disk; diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/OvfDataUpdater.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/OvfDataUpdater.java index 105cfcb..184a9ef 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/OvfDataUpdater.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/OvfDataUpdater.java @@ -454,7 +454,7 @@ List<DiskImage> allTemplateImages = template.getDiskList(); String templateMeta = generateVmTemplateMetadata(template, allTemplateImages); metaDictionary.put(template.getId(), new KeyValuePairCompat<String, List<Guid>>( - templateMeta, LinqUtils.foreach(allTemplateImages, new Function<DiskImage, Guid>() { + templateMeta, LinqUtils.transformToList(allTemplateImages, new Function<DiskImage, Guid>() { @Override public Guid eval(DiskImage diskImage) { return diskImage.getId(); @@ -507,7 +507,7 @@ String vmMeta = generateVmMetadata(vm, allVmImages); metaDictionary.put( vm.getId(), - new KeyValuePairCompat<String, List<Guid>>(vmMeta, LinqUtils.foreach(vm.getDiskMap().values(), + new KeyValuePairCompat<String, List<Guid>>(vmMeta, LinqUtils.transformToList(vm.getDiskMap().values(), new Function<Disk, Guid>() { @Override public Guid eval(Disk a) { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java index 43286b8..c70077d 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java @@ -311,7 +311,7 @@ private List<VdcActionParametersBase> createMigrateVmToServerParametersList(List<VmStatic> vmsToMigrate, final VDS vds) { - return LinqUtils.foreach(vmsToMigrate, + return LinqUtils.transformToList(vmsToMigrate, new Function<VmStatic, VdcActionParametersBase>() { @Override public VdcActionParametersBase eval(VmStatic vm) { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/DirectoryUtils.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/DirectoryUtils.java index 56285e0..08cf1a2 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/DirectoryUtils.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/DirectoryUtils.java @@ -4,14 +4,14 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; -import java.util.HashSet; +import java.util.LinkedList; import java.util.List; import org.ovirt.engine.api.extensions.ExtKey; import org.ovirt.engine.api.extensions.ExtMap; +import org.ovirt.engine.api.extensions.aaa.Authz; import org.ovirt.engine.api.extensions.aaa.Authz.GroupRecord; import org.ovirt.engine.api.extensions.aaa.Authz.PrincipalRecord; -import org.ovirt.engine.api.extensions.aaa.Authz; import org.ovirt.engine.core.aaa.AuthzUtils; import org.ovirt.engine.core.aaa.DirectoryGroup; import org.ovirt.engine.core.aaa.DirectoryUser; @@ -25,16 +25,26 @@ public class DirectoryUtils { - public static HashSet<Guid> getGroupIdsFromPrincipal(String authz, ExtMap principal) { - HashSet<Guid> results = new HashSet<Guid>(); + public static DbUser mapPrincipalRecordToDbUser(String authz, ExtMap principal) { + principal = principal.clone(); + flatGroups(principal); + DbUser dbUser = DbFacade.getInstance().getDbUserDao().getByExternalId(authz, principal.<String>get(PrincipalRecord.ID)); + Guid userId = dbUser != null ? dbUser.getId() : Guid.newGuid(); + dbUser = new DbUser(mapPrincipalRecordToDirectoryUser(authz, principal)); + dbUser.setId(userId); DbGroupDAO dao = DbFacade.getInstance().getDbGroupDao(); + LinkedList<Guid> groupIds = new LinkedList<Guid>(); + LinkedList<String> groupsNames = new LinkedList<String>(); for (ExtMap group : principal.get(PrincipalRecord.GROUPS, Collections.<ExtMap> emptyList())) { DbGroup dbGroup = dao.getByExternalId(authz, group.<String> get(GroupRecord.ID)); if (dbGroup != null) { - results.add(dbGroup.getId()); + groupIds.add(dbGroup.getId()); + groupsNames.add(dbGroup.getName()); } } - return results; + dbUser.setGroupIds(groupIds); + dbUser.setGroupNames(groupsNames); + return dbUser; } public static Collection<DirectoryUser> findDirectoryUsersByQuery( @@ -131,10 +141,6 @@ resolveGroups, resolveGroupsRecursive) ); - } - - public static DbUser mapPrincipalRecordToDbUser(final String authzName, final ExtMap principalRecord) { - return new DbUser(mapPrincipalRecordToDirectoryUser(authzName, principalRecord)); } public static DirectoryUser mapPrincipalRecordToDirectoryUser(final String authzName, final ExtMap principalRecord) { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/LoginBaseCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/LoginBaseCommand.java index 126c840..843b94c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/LoginBaseCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/LoginBaseCommand.java @@ -14,9 +14,8 @@ import org.ovirt.engine.api.extensions.Base; import org.ovirt.engine.api.extensions.ExtMap; import org.ovirt.engine.api.extensions.aaa.Acct; -import org.ovirt.engine.api.extensions.aaa.Authn.AuthRecord; import org.ovirt.engine.api.extensions.aaa.Authn; -import org.ovirt.engine.api.extensions.aaa.Authz.PrincipalRecord; +import org.ovirt.engine.api.extensions.aaa.Authn.AuthRecord; import org.ovirt.engine.api.extensions.aaa.Authz; import org.ovirt.engine.api.extensions.aaa.Mapping; import org.ovirt.engine.core.aaa.AcctUtils; @@ -36,7 +35,6 @@ import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.errors.VdcBllMessages; -import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; import org.ovirt.engine.core.extensions.mgr.ExtensionProxy; @@ -256,16 +254,7 @@ } // Check that the user exists in the database, if it doesn't exist then we need to add it now: - DirectoryUtils.flatGroups(principalRecord); - DbUser dbUser = - getDbUserDAO().getByExternalId( - AuthzUtils.getName(profile.getAuthz()), - principalRecord.<String> get(PrincipalRecord.ID)); - if (dbUser == null) { - dbUser = DirectoryUtils.mapPrincipalRecordToDbUser(AuthzUtils.getName(profile.getAuthz()), principalRecord); - dbUser.setId(Guid.newGuid()); - } - dbUser.setGroupIds(DirectoryUtils.getGroupIdsFromPrincipal(AuthzUtils.getName(profile.getAuthz()), principalRecord)); + DbUser dbUser = DirectoryUtils.mapPrincipalRecordToDbUser(AuthzUtils.getName(profile.getAuthz()), principalRecord); if (!dbUser.isActive()) { dbUser.setActive(true); log.info( diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/SyncUsers.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/SyncUsers.java index 3abb306..5102145 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/SyncUsers.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/SyncUsers.java @@ -52,9 +52,7 @@ authzExtension, userIdsPerNamespace.getKey(), userIdsPerNamespace.getValue()) ) { - DirectoryUtils.flatGroups(principal); DbUser dbUser = DirectoryUtils.mapPrincipalRecordToDbUser(authz, principal); - dbUser.setGroupIds(DirectoryUtils.getGroupIdsFromPrincipal(authz, principal)); activeUsers.put(dbUser.getExternalId(), dbUser); } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ISCSIStorageHelper.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ISCSIStorageHelper.java index 9280464..d13b6fd 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ISCSIStorageHelper.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ISCSIStorageHelper.java @@ -103,7 +103,7 @@ // if we have lun id then filter by this lun // else get vg's luns from db List<String> lunsByVg = - lunId.isEmpty() ? LinqUtils.foreach(DbFacade.getInstance().getLunDao().getAllForVolumeGroup(vgId), + lunId.isEmpty() ? LinqUtils.transformToList(DbFacade.getInstance().getLunDao().getAllForVolumeGroup(vgId), new Function<LUNs, String>() { @Override public String eval(LUNs a) { @@ -128,7 +128,7 @@ for (StorageServerConnections connection : connections) { fillConnectionDetailsIfNeeded(connection); if (connection.getid() != null) { - List<String> list = LinqUtils.foreach( + List<String> list = LinqUtils.transformToList( DbFacade.getInstance().getLunDao().getAllForStorageServerConnection(connection.getid()), new Function<LUNs, String>() { @Override @@ -175,7 +175,7 @@ * TODO: Vitaly check if luns in the same pool. */ List<String> strings = - LinqUtils.foreach( + LinqUtils.transformToList( DbFacade.getInstance() .getStorageServerConnectionLunMapDao() .getAll(lun.getLUN_id()), diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/aaa/DbUser.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/aaa/DbUser.java index 3a04566..7e8beec 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/aaa/DbUser.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/aaa/DbUser.java @@ -1,7 +1,6 @@ package org.ovirt.engine.core.common.businessentities.aaa; -import java.util.Arrays; -import java.util.HashSet; +import java.util.LinkedList; import javax.validation.constraints.Size; @@ -66,35 +65,20 @@ */ private boolean isAdmin; - private HashSet<String> groupNames; + private LinkedList<String> groupNames; /** * Comma delimited list of group identifiers. */ - private HashSet<Guid> groupIds; + private LinkedList<Guid> groupIds; public DbUser() { loginName = ""; firstName = ""; lastName = ""; department = ""; - groupNames = new HashSet<String>(); - groupIds = new HashSet<Guid>(); - role = ""; - note = ""; - } - - public DbUser(LdapUser ldapUser) { - externalId = ldapUser.getUserId(); - domain = ldapUser.getDomainControler(); - namespace = ldapUser.getNamespace(); - loginName = ldapUser.getUserName(); - firstName = ldapUser.getName(); - lastName = ldapUser.getSurName(); - department = ldapUser.getDepartment(); - email = ldapUser.getEmail(); - active = true; - groupNames = new HashSet<String>(Arrays.asList(ldapUser.getGroup().trim().split(" *, *"))); + groupNames = new LinkedList<String>(); + groupIds = new LinkedList<Guid>(); role = ""; note = ""; } @@ -111,7 +95,7 @@ active = true; role = ""; note = ""; - groupNames = new HashSet<String>(); + groupNames = new LinkedList<String>(); for (DirectoryGroup directoryGroup : directoryUser.getGroups()) { groupNames.add(directoryGroup.getName()); } @@ -189,11 +173,11 @@ email = value; } - public HashSet<String> getGroupNames() { + public LinkedList<String> getGroupNames() { return groupNames; } - public void setGroupNames(HashSet<String> value) { + public void setGroupNames(LinkedList<String> value) { groupNames = value; } @@ -238,13 +222,13 @@ return isAdmin; } - public void setGroupIds(HashSet<Guid> groupIds) { + public void setGroupIds(LinkedList<Guid> groupIds) { this.groupIds = groupIds; } - public HashSet<Guid> getGroupIds() { + public LinkedList<Guid> getGroupIds() { if (groupIds == null) { - groupIds = new HashSet<Guid>(); + groupIds = new LinkedList<Guid>(); } return groupIds; } 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 ac53cba..5680990 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 @@ -3,7 +3,7 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.Arrays; -import java.util.HashSet; +import java.util.LinkedList; import java.util.List; import org.apache.commons.lang.StringUtils; @@ -29,7 +29,7 @@ entity.setDepartment(rs.getString("department")); entity.setDomain(rs.getString("domain")); entity.setEmail(rs.getString("email")); - entity.setGroupNames(new HashSet<String>(Arrays.asList(StringUtils.split(rs.getString("groups"), ',')))); + entity.setGroupNames(new LinkedList<String>(Arrays.asList(StringUtils.split(rs.getString("groups"), ',')))); entity.setFirstName(rs.getString("name")); entity.setNote(rs.getString("note")); entity.setNote(rs.getString("note")); @@ -39,14 +39,14 @@ entity.setId(getGuidDefaultEmpty(rs, "user_id")); entity.setLoginName(rs.getString("username")); entity.setAdmin(rs.getBoolean("last_admin_check_status")); - entity.setGroupIds(convertToGuidSet(rs.getString("group_ids"), ',')); + entity.setGroupIds(convertToGuidList(rs.getString("group_ids"), ',')); entity.setExternalId(rs.getString("external_id")); entity.setNamespace(rs.getString("namespace")); return entity; } - private HashSet<Guid> convertToGuidSet(String str, char delimiter) { - HashSet<Guid> results = new HashSet<>(); + private LinkedList<Guid> convertToGuidList(String str, char delimiter) { + LinkedList<Guid> results = new LinkedList<>(); if (str != null) { for (String id : str.split(String.format(" *%s *", delimiter))) { results.add(Guid.createGuidFromString(id)); 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 c2c0035..a106568 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 @@ -7,7 +7,7 @@ import static org.junit.Assert.assertTrue; import java.util.Arrays; -import java.util.HashSet; +import java.util.LinkedList; import java.util.List; import org.junit.Before; @@ -43,7 +43,7 @@ newUser.setLoginName("newuser"); newUser.setEmail("newu...@redhat.com"); newUser.setDomain("domain"); - newUser.setGroupNames(new HashSet<String>(Arrays.asList("groups"))); + newUser.setGroupNames(new LinkedList<String>(Arrays.asList("groups"))); newUser.setNamespace("*"); } diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUserResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUserResourceTest.java index 4d0ee3e..91a98d7 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUserResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUserResourceTest.java @@ -5,6 +5,7 @@ import java.util.Arrays; import java.util.HashSet; +import java.util.LinkedList; import javax.ws.rs.WebApplicationException; @@ -92,7 +93,7 @@ entity.setId(GUIDS[index]); entity.setExternalId(EXTERNAL_IDS[index]); entity.setFirstName(NAMES[index]); - entity.setGroupNames(new HashSet<String>(Arrays.asList(GROUPS.split(",")))); + entity.setGroupNames(new LinkedList<String>(Arrays.asList(GROUPS.split(",")))); entity.setDomain(DOMAIN); return entity; } diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUsersResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUsersResourceTest.java index b5059be..4c0886d 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUsersResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/aaa/BackendUsersResourceTest.java @@ -213,7 +213,7 @@ entity.setId(GUIDS[index]); entity.setExternalId(EXTERNAL_IDS[index]); entity.setLoginName(NAMES[index]); - entity.setGroupNames(new HashSet<String>(Arrays.asList(GROUPS.split(",")))); + entity.setGroupNames(new LinkedList<String>(Arrays.asList(GROUPS.split(",")))); entity.setNamespace(NAMESPACE); entity.setDomain(DOMAIN); return entity; diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/linq/LinqUtils.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/linq/LinqUtils.java index e686cfe..3fdf9bd 100644 --- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/linq/LinqUtils.java +++ b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/linq/LinqUtils.java @@ -1,11 +1,13 @@ package org.ovirt.engine.core.utils.linq; import java.util.Collection; +import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Set; /** * Created by IntelliJ IDEA. User: gmostizk Date: Aug 9, 2009 Time: 3:44:57 PM To change this template use File | @@ -45,7 +47,7 @@ * * Returns a new list which contains all the objects from original collection with function applied to them. */ - public static <IN, OUT> List<OUT> foreach(Collection<IN> collection, Function<IN, OUT> f) { + public static <IN, OUT> List<OUT> transformToList(final Collection<IN> collection, final Function<IN, OUT> f) { LinkedList<OUT> list = new LinkedList<OUT>(); for (IN in : collection) { list.add(f.eval(in)); @@ -54,6 +56,17 @@ } /** + * Returns a new set which contains transformed objects from the original collection + */ + public static <IN, OUT> Set<OUT> transformToSet(final Collection<IN> collection, final Function<IN, OUT> f) { + return new HashSet<OUT>() { + { + addAll(transformToList(collection, f)); + } + }; + } + + /** * Replaces LINQ WHERE * * Returns list containing all objects from original collection that matches the predicate diff --git a/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/linq/LinqUtilsTest.java b/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/linq/LinqUtilsTest.java index 93e1310..7d9afc1 100644 --- a/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/linq/LinqUtilsTest.java +++ b/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/linq/LinqUtilsTest.java @@ -44,7 +44,7 @@ @Test public void exampleForeach() { - List<String> results = LinqUtils.foreach(list, new Function<String, String>() { + List<String> results = LinqUtils.transformToList(list, new Function<String, String>() { @Override public String eval(String s) { return s.substring(0, 1); -- To view, visit http://gerrit.ovirt.org/32008 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I8a5daf3c68cc04ebd4ad0ec6cfdfd6cf16ececb9 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.5 Gerrit-Owner: Alon Bar-Lev <alo...@redhat.com> Gerrit-Reviewer: Yair Zaslavsky <yzasl...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches