HF1 - pyldap search size limit

0 votes
asked Mar 27, 2015 in IRF tantárgy by gnb92 (24 points)  
edited Mar 28, 2015 by gnb92

A search-el szeretném lekérdezni a címtárban lévő embereket, de ezt az errort kapom:
pyldap.errors.LDAPError: Size limit exceeded

Próbáltam paraméterbe megadni egy megfelelően nagy számot sizelimitnek, de ugyanezt kapom.
Meg lehet ezt a limitet valahogy változtatni? (500-nak tűnik ez a limit)

Edit: Köszönöm a válaszokat. Rájöttem, hogy tényleg lehetett volna jobban szűrni.

3 Answers

+1 vote
answered Mar 27, 2015 by hajdua (688 points)  

Nem írtad, hogy pontosan melyik feladatnál jött ez elő, de én elgondolkoznék azon, hogy tényleg szükséges-e ilyen sok embert egyszerre lekérdezni, nem-e lehetne valahogy a szerveren szűrni.

+1 vote
answered Mar 27, 2015 by nadudvarit (1,121 points)  

Ez a probléma, ahogy említetted tavaly is előjött, ráadásul tavaly sem mindenkinél, csak pár ember esetében.

Akkor azt hittem, hogy a PyLDAP-ban van a hiba (egy inicializálatlan változó), ami később fixálva is lett. Úgyhogy igencsak meglepődtem, hogy megint előjött.

Kis debugolás után arra jutottam, hogy nem kliensoldalon van a baj, hanem a szerverben van egy 500-as limit, amit természetesen nem lehet Pythonból a sizelimit beállításával módosítani. Ez a limit viszont valami miatt nem mindenkinél jelentkezik (nálam szintén előjött, viszont tudok olyanról, akinek nem okozott gondot lekérni több, mint 500 entryt a kiadott Fedora VM-en).

Ha az alábbi sorokat elmented egy fájlba (pl. conf.ldif néven):

dn: cn=config
changetype: modify
add: olcSizeLimit
olcSizeLimit: 5000

Majd a következő paranccsal elküldött a szervernek:

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f conf.ldif

Akkor ezután nekem már sikerült lekérni a címtár összes személyét.

Persze, felmerül a kérdés, hogy a házid elkészítése szempontjából megéri-e ezt beállítani, mert mint ahogy már egy előző válaszban is említették a teljes címtár lekérése kliensoldalra valószínűleg nem egy jó megoldás. (lásd SZ8)

0 votes
answered Mar 27, 2015 by benedekh (677 points)  

Az API dokumentáció kapcsolódó részében választ találsz kérdésedre.

commented Mar 27, 2015 by gnb92 (24 points)  
Ez csodálatos, de idézem: "Próbáltam paraméterbe megadni egy megfelelően nagy számot sizelimitnek".
Szóval néztem már az api-t és néztem az egy évvel ezelőtti size limites kérdést is, de ott is csak kb az van ami a dokumentációban.
...