You can subscribe to this list here.
2000 |
Jan
|
Feb
(34) |
Mar
(9) |
Apr
|
May
(2) |
Jun
(14) |
Jul
(67) |
Aug
(34) |
Sep
(5) |
Oct
(20) |
Nov
(22) |
Dec
(31) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(15) |
Feb
(16) |
Mar
(20) |
Apr
(13) |
May
(72) |
Jun
(42) |
Jul
(41) |
Aug
(11) |
Sep
(19) |
Oct
(67) |
Nov
(59) |
Dec
(57) |
2002 |
Jan
(74) |
Feb
(69) |
Mar
(34) |
Apr
(55) |
May
(47) |
Jun
(74) |
Jul
(116) |
Aug
(68) |
Sep
(25) |
Oct
(42) |
Nov
(28) |
Dec
(52) |
2003 |
Jan
(19) |
Feb
(18) |
Mar
(35) |
Apr
(49) |
May
(73) |
Jun
(39) |
Jul
(26) |
Aug
(59) |
Sep
(33) |
Oct
(56) |
Nov
(69) |
Dec
(137) |
2004 |
Jan
(276) |
Feb
(15) |
Mar
(18) |
Apr
(27) |
May
(25) |
Jun
(7) |
Jul
(13) |
Aug
(2) |
Sep
(2) |
Oct
(10) |
Nov
(27) |
Dec
(28) |
2005 |
Jan
(22) |
Feb
(25) |
Mar
(41) |
Apr
(17) |
May
(36) |
Jun
(13) |
Jul
(22) |
Aug
(12) |
Sep
(23) |
Oct
(6) |
Nov
(4) |
Dec
|
2006 |
Jan
(11) |
Feb
(3) |
Mar
(5) |
Apr
(22) |
May
(1) |
Jun
(10) |
Jul
(19) |
Aug
(7) |
Sep
(25) |
Oct
(23) |
Nov
(5) |
Dec
(27) |
2007 |
Jan
(25) |
Feb
(17) |
Mar
(44) |
Apr
(8) |
May
(33) |
Jun
(31) |
Jul
(42) |
Aug
(16) |
Sep
(12) |
Oct
(16) |
Nov
(23) |
Dec
(73) |
2008 |
Jan
(26) |
Feb
(6) |
Mar
(46) |
Apr
(17) |
May
(1) |
Jun
(44) |
Jul
(9) |
Aug
(34) |
Sep
(20) |
Oct
(2) |
Nov
(4) |
Dec
(16) |
2009 |
Jan
(14) |
Feb
(3) |
Mar
(45) |
Apr
(52) |
May
(34) |
Jun
(32) |
Jul
(24) |
Aug
(52) |
Sep
(22) |
Oct
(23) |
Nov
(19) |
Dec
(10) |
2010 |
Jan
(10) |
Feb
(13) |
Mar
(22) |
Apr
(9) |
May
(1) |
Jun
(1) |
Jul
(8) |
Aug
(9) |
Sep
(10) |
Oct
(1) |
Nov
(2) |
Dec
(3) |
2011 |
Jan
|
Feb
(18) |
Mar
(39) |
Apr
(5) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Torsten K. <pyt...@tk...> - 2008-02-18 13:56:05
|
Hi folks, since the theme popped up here once in a while, I dare to write something not strictly related to Python-LDAP. ;o) Searching for a useable Python interface to KAdmin, I finally decided to wrap some functions on my own. The result is a branch of Apple's PyKerberos, enriched by a kadm5 module, which provides basic methods to connect to a remote kerberos admin server and maintain principals. (Simplified creation, check for existance, list all princs, delete, chpass) It's written purely in C. If someone wants to use and/or extend this code, you can check it out at: http://svn.kmrc.de/projects/devel/PyKerberos/trunk Regards Torsten -- Vital papers will demonstrate their vitality by spontaneously moving from where you left them to where you can't find them. |
From: Michael S. <mi...@st...> - 2008-02-12 10:14:01
|
James Andrewartha wrote: >> Hmm, I don't know whether I want to endorse the use of module >> ldap.cidict. Since Python 2.3 has support for sets now this is somewhat >> outdated. > > The main feature of cidict is that it's case-insensitive - I didn't > think Python's sets were? cidict is still being used in this example > written at the end of last year: > http://www.packtpub.com/article/python-ldap-applications-ldap-opearations Hmm, it's used therein to store an entry. Yes, one could use it like this. But for higher-level stuff I'd rather like to endorse something like class ldap.schema.models.Entry which is a full schema-aware dictionary for LDAP entries. It solves all name alias and name->OID mapping problems but requires LDAPv3 subschema subentry information to be retrieved and initialized. But I consider this also to be somewhat immature since I'm probably the only one who's using it. And one to do left: Attribute sub-types are not handled. Ciao, Michael. |
From: James A. <ja...@da...> - 2008-02-12 01:38:53
|
On Wed, 2007-12-26 at 14:24 +0100, Michael Ströder wrote: > Well, actually it took more time to have a running latex environment again. > > I've committed many modifications to ldap*.tex but not all. Please > review. Some new module descriptions are still not in there. Looks pretty good. > > One general note: I didn't document some stuff since I didn't want to > > endorse it because I don't consider certain APIs to be really stable > > (say: designed well). Examples are class SmartLDAPObject, the API of > > ldap.schema etc. > > Hmm, I don't know whether I want to endorse the use of module > ldap.cidict. Since Python 2.3 has support for sets now this is somewhat > outdated. The main feature of cidict is that it's case-insensitive - I didn't think Python's sets were? cidict is still being used in this example written at the end of last year: http://www.packtpub.com/article/python-ldap-applications-ldap-opearations James Andrewartha |
From: Yeargan Y. <ya...@un...> - 2008-01-30 17:17:13
|
That did the trick. It must be a bug in the older python-ldap code =20 that Novell distributes with SLES 10. OpenLDAP 2.3.32 is already =20 there, as well as SASL 2.1.21, so building python-ldap was easy. =20 Since my organization has a support contract with Novell, I will open =20= a support request and let them know of this issue. In case anyone else runs into this, RPM complained about a missing =20 dependency of "libldap.so.2". I'm not sure why, since I can see it =20 in /usr/lib, but I just used the --nodeps parameter to force the =20 install. I also relocated the files listed in the RPM from /usr/local/=20= lib to /usr/lib to replace the files supplied with SLES 10. rpm -Uvh --nodeps --relocate /usr/local/lib/python2.4/=3D/usr/lib/=20 python2.4/ python-ldap-2.3.1-0.i586.rpm Thanks Michael! Sorry to waste your time. Yancey On Jan 30, 2008, at 2:13 AM, Michael Str=F6der wrote: > Yeargan Yancey wrote: >> python-ldap-2.0.11-14.2 > > Sorry, I'm not keen on supporting this ancient version anymore. =20 > This has > been released almost two years ago and I'm sure there were bugs in > there. Any chance you can build 2.3.1 from source? You can generate a > RPM with > > python setup.py bdist_rpm > > and install that. > > But you need to upgrade to OpenLDAP 2.3 for python-ldap too. Maybe it > works to install this packages: > > http://download.opensuse.org/repositories/OpenLDAP/SLE_10/i586/ > > For building python-ldap you'd also need package openldap2-devel (and > cyrus-sasl-devel if SASL support is wanted). > > Ciao, Michael. |
From: <mi...@st...> - 2008-01-30 08:14:02
|
Yeargan Yancey wrote: > python-ldap-2.0.11-14.2 Sorry, I'm not keen on supporting this ancient version anymore. This has been released almost two years ago and I'm sure there were bugs in there. Any chance you can build 2.3.1 from source? You can generate a RPM with python setup.py bdist_rpm and install that. But you need to upgrade to OpenLDAP 2.3 for python-ldap too. Maybe it works to install this packages: http://download.opensuse.org/repositories/OpenLDAP/SLE_10/i586/ For building python-ldap you'd also need package openldap2-devel (and cyrus-sasl-devel if SASL support is wanted). Ciao, Michael. |
From: Yeargan Y. <ya...@un...> - 2008-01-30 01:10:08
|
python-ldap-2.0.11-14.2 On Jan 29, 2008, at 4:59 PM, Michael Str=F6der wrote: > Yeargan, Yancey wrote: >> >> Not from source. This version came >> with SuSE Linux Enterprise Server 10. > > What does rpm -q python-ldap say? > > Ciao, Michael. |
From: <mi...@st...> - 2008-01-29 23:01:31
|
Yeargan, Yancey wrote: > > Can you point me to code for "self._l.result3"? Grab the source. Best would be from CVS: http://sourceforge.net/cvs/?group_id=2072 Look at Modules/LDAPObject.c into function l_ldap_result3() (starting at line 940). Ciao, Michael. |
From: <mi...@st...> - 2008-01-29 22:59:26
|
Yeargan, Yancey wrote: > > Not from source. This version came > with SuSE Linux Enterprise Server 10. What does rpm -q python-ldap say? Ciao, Michael. |
From: Yeargan, Y. <ya...@un...> - 2008-01-29 22:51:15
|
> Hmm, which version of python-ldap is this? Did you install from source? > > Looking at function l_ldap_result3() in Modules/LDAPObject.c I > can't figure out why a 3-tuple is returned. I did not write this > code though... > > Ciao, Michael. > Not from source. This version came with SuSE Linux Enterprise Server 10. $Id: ldapobject.py,v 1.92 2005/11/03 09:09:43 stroeder Exp $ To solve my immediate need, I re-coded the function like so: def result3(self,msgid=3D_ldap.RES_ANY,all=3D1,timeout=3DNone): if timeout is None: timeout =3D self.timeout ldap_result =3D self._ldap_call(self._l.result3,msgid,all,timeout) if ldap_result =3D=3D (None,None,None): return (None,None,None,None) else: rtype, rdata, rmsgid, serverctrls =3D ldap_result decoded_serverctrls =3D DecodeControlTuples(serverctrls) return rtype, rdata, rmsgid, decoded_serverctrls Can you point me to code for "self._l.result3"? I may have time later this week to do more debugging. Yancey |
From: <mi...@st...> - 2008-01-29 22:41:52
|
Yeargan Yancey wrote: > Hmm. That only moved the exception. > > File "/usr/lib/python2.4/site-packages/ldap/ldapobject.py", line > 421, in result3 > rtype, rdata, rmsgid, serverctrls = ldap_result > ValueError: need more than 3 values to unpack > > I put the statement above into a try..except block and checked the > value when the exception occurs. This line > > ldap_result = self._ldap_call(self._l.result3,msgid,all,timeout) > > assigns (None,None,None) to ldap_result, a 3-tuple instead of a 4-tuple. Hmm, which version of python-ldap is this? Did you install from source? Looking at function l_ldap_result3() in Modules/LDAPObject.c I can't figure out why a 3-tuple is returned. I did not write this code though... Ciao, Michael. |
From: Yeargan Y. <ya...@un...> - 2008-01-29 15:36:27
|
Hmm. That only moved the exception. File "/usr/lib/python2.4/site-packages/ldap/ldapobject.py", line =20 421, in result3 rtype, rdata, rmsgid, serverctrls =3D ldap_result ValueError: need more than 3 values to unpack I put the statement above into a try..except block and checked the =20 value when the exception occurs. This line ldap_result =3D self._ldap_call(self._l.result3,msgid,all,timeout) assigns (None,None,None) to ldap_result, a 3-tuple instead of a 4-tuple. Once data becomes available from the LDAP server, then it returns a 4-=20= tuple as expected. Yancey On Jan 29, 2008, at 2:48 AM, Michael Str=F6der wrote: > Yeargan Yancey wrote: >> >> I am trying to use the asynchronous LDAP polling feature and have a >> question about what appears to be a timing issue. When I run the code >> below, I find that I must insert a sleep() before entering the while >> loop or I get a ValueError exception. >> [..] >> File "/usr/lib/python2.4/site-packages/ldap/ldapobject.py", line =20= >> 415, >> in result3 >> rtype, rdata, rmsgid, serverctrls =3D >> self._ldap_call(self._l.result3,msgid,all,timeout) >> ValueError: need more than 3 values to unpack > > Hmm, this should never happen. I guess it's caused by _ldap.result3() > returning NULL for the situation where no result was received at =20 > all. I > will look into it. > > In the meantime try if the patch to LDAPObject.py attached solves your > problem. > > Ciao, Michael.<valueerror_in_result3.patch> |
From: <mi...@st...> - 2008-01-29 08:48:57
|
Yeargan Yancey wrote: > > I am trying to use the asynchronous LDAP polling feature and have a > question about what appears to be a timing issue. When I run the code > below, I find that I must insert a sleep() before entering the while > loop or I get a ValueError exception. > [..] > File "/usr/lib/python2.4/site-packages/ldap/ldapobject.py", line 415, > in result3 > rtype, rdata, rmsgid, serverctrls = > self._ldap_call(self._l.result3,msgid,all,timeout) > ValueError: need more than 3 values to unpack Hmm, this should never happen. I guess it's caused by _ldap.result3() returning NULL for the situation where no result was received at all. I will look into it. In the meantime try if the patch to LDAPObject.py attached solves your problem. Ciao, Michael. |
From: Yeargan Y. <ya...@un...> - 2008-01-29 01:04:10
|
I am trying to use the asynchronous LDAP polling feature and have a question about what appears to be a timing issue. When I run the code below, I find that I must insert a sleep() before entering the while loop or I get a ValueError exception. If I sleep for around 0.01 seconds, the exception is intermittent (from my system to this server). With the sleep at 0.10 seconds or higher, I get the results I would expect from the server. I would expect that whether I sleep or not should be irrelevant. If I poll for a result and there is nothing available, then result() should return with None and not generate an exception. Is that the correct behavior? What am I missing? I provided an example of the code output including the exception itself and the sample code below. The code uses a public LDAP server and should work from anywhere. ---=[begin: sample exception]=--- Polling ... Traceback (most recent call last): File "./sample.py", line 26, in ? res = l.result(res_id, all=0, timeout=0) File "/usr/lib/python2.4/site-packages/ldap/ldapobject.py", line 405, in result res_type,res_data,res_msgid = self.result2(msgid,all,timeout) File "/usr/lib/python2.4/site-packages/ldap/ldapobject.py", line 409, in result2 res_type, res_data, res_msgid, srv_ctrls = self.result3 (msgid,all,timeout) File "/usr/lib/python2.4/site-packages/ldap/ldapobject.py", line 415, in result3 rtype, rdata, rmsgid, serverctrls = self._ldap_call (self._l.result3,msgid,all,timeout) ValueError: need more than 3 values to unpack ---=[end: sample exception]=--- ---=[begin: sample code]=--- #!/usr/bin/python import ldap,time l = ldap.initialize('ldap://ldap.utexas.edu') l.simple_bind_s() #anonymous bind base = r'ou=people,dc=directory,dc=utexas,dc=edu' scope = ldap.SCOPE_ONELEVEL filt = r'(&(uid=yw*)(objectclass=inetOrgPerson))' attrs = ['givenname'] res_id = l.search(base, scope, filt, attrs) # exception occurs without this sleep -- WHY?? #time.sleep(0.1) while 1: print print 'Polling ...' # Set all=0 to retrieve a single entry # Set timeout=0 to poll for a response res = l.result(res_id, all=0, timeout=0) if type(res) == tuple: if res[0] == ldap.RES_SEARCH_ENTRY: print 'Got LDAP ENTRY' print 'Data: ', res[1] elif res[0] == ldap.RES_SEARCH_RESULT: print 'Got LDAP RESULT' print 'Data: ', if res[1] == []: print '--empty--' else: print res[1] break #exit while loop else: print '-'*60 print '*** UNEXPECTED LDAP RESULT ***' print 'DEBUG (res): ', res print '-'*60 else: print 'DEBUG: type = ', type(res) print 'DEBUG: value = ', repr(res) continue print l.unbind_s() ---=[end: sample code]=--- Any help appreciated. Yancey |
From: Mauro C. <mci...@li...> - 2008-01-25 12:18:41
|
Michael Stro"der ha scritto: > There has been success reports building python-ldap with MingW for a stock Python MSI installer without having to rebuild Python itself. I can confirm that the binaries cooperate peacefully. In other words, go ahead with MinGW for OpenLDAP and python-ldap, you don't need to recompile Python itself to have the extension working (although you will need the source and the .lib files; but the latter can be produced from the DLLs afterwards). HTH Mauro |
From: <mi...@st...> - 2008-01-22 10:11:42
|
David S. wrote: > Michael Ströder <michael@...> writes: > > >> Hmm, the argument 'sizelimit' should be rather used with the async >> method search_ext(). You can start the search with search_ext() and >> receive the partial results with result3() until this exception is raised. > > Aha, like raising StopIteration in a generator. Thanks. Almost: But StopIteration indicates the regular end of an iteration whereas SIZELIMIT_EXCEEDED exception indicates that only partial results were received. Ciao, Michael. |
From: David S. <ds...@fs...> - 2008-01-21 21:24:28
|
Michael Ströder <michael@...> writes: > Hmm, the argument 'sizelimit' should be rather used with the async > method search_ext(). You can start the search with search_ext() and > receive the partial results with result3() until this exception is raised. > Aha, like raising StopIteration in a generator. Thanks. |
From: <mi...@st...> - 2008-01-21 21:03:27
|
David S. wrote: > When I call search_ext_s with sizelimit=n, I expect simply to get n or fewer > entries in my result, but instead I get a SIZELIMIT_EXCEEDED exception {'info': > '', 'desc': 'Size limit exceeded'}. Hmm, the argument 'sizelimit' should be rather used with the async method search_ext(). You can start the search with search_ext() and receive the partial results with result3() until this exception is raised. Ciao, Michael. |
From: David S. <ds...@fs...> - 2008-01-21 20:30:11
|
When I call search_ext_s with sizelimit=n, I expect simply to get n or fewer entries in my result, but instead I get a SIZELIMIT_EXCEEDED exception {'info': '', 'desc': 'Size limit exceeded'}. Am I misunderstanding or misusing that argument? Thanks for any help. Peace, David S. |
From: <mi...@st...> - 2008-01-19 22:01:21
|
Jonathan Bowman wrote: > I have placed instructions here: > > http://bowmansolutions.com/mingw-openldap/ Thanks for letting us know. If your instructions stay on this site I'll link it from python-ldap's web page. > If you all like it, I would love to know of the best place to post this info. IMHO it would be a good idea to also post this on the openldap-technical mailing list (see http://www.openldap.org/lists/). Maybe some of the folks there could review it. Ciao, Michael. |
From: Jonathan B. <bo...@us...> - 2008-01-18 19:21:40
|
I have placed instructions here: http://bowmansolutions.com/mingw-openldap/ Please let me know if these work for you, and forgive me if I am duplicating documentation that already exists. If you all like it, I would love to know of the best place to post this info. Regards, Jonathan Bowman |
From: <mi...@st...> - 2008-01-17 21:16:49
|
Jonathan Bowman wrote: > Looks like MinGW and Python may be the wrong way to go; I think > everything is done in Microsoft Visual C++ now? IIRC the OpenLDAP developers always recommend to build OpenLDAP with MingW. > So, until I can get Python compiled in MinGW, I suppose my short > sojourn with MinGW and python-ldap is at an end... There has been success reports building python-ldap with MingW for a stock Python MSI installer without having to rebuild Python itself. Ciao, Michael. |
From: Jonathan B. <bo...@us...> - 2008-01-17 21:02:03
|
Looks like MinGW and Python may be the wrong way to go; I think everything is done in Microsoft Visual C++ now? So, until I can get Python compiled in MinGW, I suppose my short sojourn with MinGW and python-ldap is at an end... > Good luck! I'm looking forward to your posting. I am doubtful; but if I discover anything of interest, I will surely pass it on. Again, thanks for the feedback. Regards, Jonathan |
From: <mi...@st...> - 2008-01-17 12:00:06
|
Jonathan Bowman wrote: > Thanks for the clarity and direction. > >> I guess you're on your own here - I simply used the precompiled >> OpenLDAP Windoze installer, which I found on SF.net. It brought along >> OpenSSL libs and everything works for me... > > I don't think that installer is maintained any more. > > I did finally get it to compile (OpenSSL 0.9.8g and OpenLDAP 2.4.7) -- > I am happy to post directions, but only if deemed list-appropriate. You're very welcome to give hints about this build process on this list. > I guess the directions should end with compiling python-ldap, Yes, that would be great. ;-) > and I am not yet that far. Soon, though. Good luck! I'm looking forward to your posting. Ciao, Michael. |
From: Jonathan B. <bo...@us...> - 2008-01-17 11:39:20
|
Thanks for the clarity and direction. > I guess you're on your own here - I simply used the precompiled > OpenLDAP Windoze installer, which I found on SF.net. It brought along > OpenSSL libs and everything works for me... I don't think that installer is maintained any more. I did finally get it to compile (OpenSSL 0.9.8g and OpenLDAP 2.4.7) -- I am happy to post directions, but only if deemed list-appropriate. I guess the directions should end with compiling python-ldap, and I am not yet that far. Soon, though. Regards, Jonathan Bowman |
From: Torsten K. <pyt...@tk...> - 2008-01-16 16:13:15
|
Hi Jonathan, > I would love to know how you setup OpenSSL + OpenLDAP on Windows -- I > am having trouble with OpenSSL 0.9.8g and MinGW, compiling with shared > dlls. (Static builds fine, but OpenLDAP doesn't seem to want this). I guess you're on your own here - I simply used the precompiled OpenLDAP Windoze installer, which I found on SF.net. It brought along OpenSSL libs and everything works for me... Regards, Torsten -- Parting is such sweet sorrow. -William Shakespeare |