mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
API: Fix pagination issue with listing LDAP configuration
This commit is contained in:
parent
7e0414354a
commit
f3329be397
@ -239,7 +239,7 @@ public class LdapConfiguration implements Configurable{
|
|||||||
|
|
||||||
public String getProviderUrl(final Long domainId) {
|
public String getProviderUrl(final Long domainId) {
|
||||||
final String protocol = getSSLStatus(domainId) == true ? "ldaps://" : "ldap://";
|
final String protocol = getSSLStatus(domainId) == true ? "ldaps://" : "ldap://";
|
||||||
final Pair<List<LdapConfigurationVO>, Integer> result = _ldapConfigurationDao.searchConfigurations(null, 0, domainId);
|
final Pair<List<LdapConfigurationVO>, Integer> result = _ldapConfigurationDao.searchConfigurations(null, 0, domainId, null, null);
|
||||||
final StringBuilder providerUrls = new StringBuilder();
|
final StringBuilder providerUrls = new StringBuilder();
|
||||||
String delim = "";
|
String delim = "";
|
||||||
for (final LdapConfigurationVO resource : result.first()) {
|
for (final LdapConfigurationVO resource : result.first()) {
|
||||||
|
|||||||
@ -377,7 +377,7 @@ public class LdapManagerImpl extends ComponentLifecycleBase implements LdapManag
|
|||||||
final int port = cmd.getPort();
|
final int port = cmd.getPort();
|
||||||
final Long domainId = cmd.getDomainId();
|
final Long domainId = cmd.getDomainId();
|
||||||
final boolean listAll = cmd.listAll();
|
final boolean listAll = cmd.listAll();
|
||||||
final Pair<List<LdapConfigurationVO>, Integer> result = _ldapConfigurationDao.searchConfigurations(hostname, port, domainId, listAll);
|
final Pair<List<LdapConfigurationVO>, Integer> result = _ldapConfigurationDao.searchConfigurations(hostname, port, domainId, listAll, cmd.getStartIndex(), cmd.getPageSizeVal());
|
||||||
return new Pair<List<? extends LdapConfigurationVO>, Integer>(result.first(), result.second());
|
return new Pair<List<? extends LdapConfigurationVO>, Integer>(result.first(), result.second());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -39,7 +39,7 @@ public interface LdapConfigurationDao extends GenericDao<LdapConfigurationVO, Lo
|
|||||||
|
|
||||||
LdapConfigurationVO find(String hostname, int port, Long domainId, boolean listAll);
|
LdapConfigurationVO find(String hostname, int port, Long domainId, boolean listAll);
|
||||||
|
|
||||||
Pair<List<LdapConfigurationVO>, Integer> searchConfigurations(String hostname, int port, Long domainId);
|
Pair<List<LdapConfigurationVO>, Integer> searchConfigurations(String hostname, int port, Long domainId, Long offset, Long limit);
|
||||||
|
|
||||||
Pair<List<LdapConfigurationVO>, Integer> searchConfigurations(String hostname, int port, Long domainId, boolean listAll);
|
Pair<List<LdapConfigurationVO>, Integer> searchConfigurations(String hostname, int port, Long domainId, boolean listAll, Long offset, Long limit);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,6 +19,7 @@ package org.apache.cloudstack.ldap.dao;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
import com.cloud.utils.db.Filter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import org.apache.cloudstack.ldap.LdapConfigurationVO;
|
import org.apache.cloudstack.ldap.LdapConfigurationVO;
|
||||||
@ -63,29 +64,29 @@ public class LdapConfigurationDaoImpl extends GenericDaoBase<LdapConfigurationVO
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public LdapConfigurationVO find(String hostname, int port, Long domainId) {
|
public LdapConfigurationVO find(String hostname, int port, Long domainId) {
|
||||||
SearchCriteria<LdapConfigurationVO> sc = getSearchCriteria(hostname, port, domainId, false);
|
SearchCriteria<LdapConfigurationVO> sc = getSearchCriteria(hostname, port, domainId, false, null, null);
|
||||||
return findOneBy(sc);
|
return findOneBy(sc);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public LdapConfigurationVO find(String hostname, int port, Long domainId, boolean listAll) {
|
public LdapConfigurationVO find(String hostname, int port, Long domainId, boolean listAll) {
|
||||||
SearchCriteria<LdapConfigurationVO> sc = getSearchCriteria(hostname, port, domainId, listAll);
|
SearchCriteria<LdapConfigurationVO> sc = getSearchCriteria(hostname, port, domainId, listAll, null, null);
|
||||||
return findOneBy(sc);
|
return findOneBy(sc);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Pair<List<LdapConfigurationVO>, Integer> searchConfigurations(final String hostname, final int port, final Long domainId) {
|
public Pair<List<LdapConfigurationVO>, Integer> searchConfigurations(final String hostname, final int port, final Long domainId, Long offset, Long limit) {
|
||||||
SearchCriteria<LdapConfigurationVO> sc = getSearchCriteria(hostname, port, domainId, false);
|
SearchCriteria<LdapConfigurationVO> sc = getSearchCriteria(hostname, port, domainId, false, offset, limit);
|
||||||
return searchAndCount(sc, null);
|
return searchAndCount(sc, new Filter(LdapConfigurationVO.class, "id", true, offset, limit));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Pair<List<LdapConfigurationVO>, Integer> searchConfigurations(final String hostname, final int port, final Long domainId, final boolean listAll) {
|
public Pair<List<LdapConfigurationVO>, Integer> searchConfigurations(final String hostname, final int port, final Long domainId, final boolean listAll, Long offset, Long limit) {
|
||||||
SearchCriteria<LdapConfigurationVO> sc = getSearchCriteria(hostname, port, domainId, listAll);
|
SearchCriteria<LdapConfigurationVO> sc = getSearchCriteria(hostname, port, domainId, listAll, offset, limit);
|
||||||
return searchAndCount(sc, null);
|
return searchAndCount(sc, new Filter(LdapConfigurationVO.class, "id", true, offset, limit));
|
||||||
}
|
}
|
||||||
|
|
||||||
private SearchCriteria<LdapConfigurationVO> getSearchCriteria(String hostname, int port, Long domainId,boolean listAll) {
|
private SearchCriteria<LdapConfigurationVO> getSearchCriteria(String hostname, int port, Long domainId,boolean listAll, Long offset, Long limit) {
|
||||||
SearchCriteria<LdapConfigurationVO> sc;
|
SearchCriteria<LdapConfigurationVO> sc;
|
||||||
if (domainId != null) {
|
if (domainId != null) {
|
||||||
// If domainid is present, ignore listall
|
// If domainid is present, ignore listall
|
||||||
|
|||||||
@ -90,7 +90,7 @@ public class LdapDirectoryServerConnectionTest {
|
|||||||
lenient().when(userManagerFactory.getInstance(LdapUserManager.Provider.OPENLDAP)).thenReturn(new OpenLdapUserManagerImpl(configuration));
|
lenient().when(userManagerFactory.getInstance(LdapUserManager.Provider.OPENLDAP)).thenReturn(new OpenLdapUserManagerImpl(configuration));
|
||||||
// construct an elaborate structure around a single object
|
// construct an elaborate structure around a single object
|
||||||
Pair<List<LdapConfigurationVO>, Integer> vos = new Pair<List<LdapConfigurationVO>, Integer>( Collections.singletonList(configurationVO),1);
|
Pair<List<LdapConfigurationVO>, Integer> vos = new Pair<List<LdapConfigurationVO>, Integer>( Collections.singletonList(configurationVO),1);
|
||||||
lenient().when(configurationDao.searchConfigurations(null, 0, 1L)).thenReturn(vos);
|
lenient().when(configurationDao.searchConfigurations(null, 0, 1L, 1L, 20L)).thenReturn(vos);
|
||||||
|
|
||||||
contextFactory = new LdapContextFactory(configuration);
|
contextFactory = new LdapContextFactory(configuration);
|
||||||
ldapManager = new LdapManagerImpl(configurationDao, contextFactory, userManagerFactory, configuration);
|
ldapManager = new LdapManagerImpl(configurationDao, contextFactory, userManagerFactory, configuration);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user