When starting with a default configuration we get the following message:
2019-11-23 14:43:15,131 pykolab.conf WARNING [29689] Option ldap/timeout does not exist in config file /etc/kolab/kolab.conf, pulling from defaults
After looking the the example configuration at https://git.kolab.org/diffusion/P/browse/master/conf/kolab.conf the example shows:
[ldap] ; The URI to LDAP ldap_uri = ldap://localhost:389 ; A timeout, in seconds, for regular searches such as authentication requests. timeout = 10
Setting exact this results in the following error:
2019-11-23 14:46:24,078 pykolab.auth ERROR [29941] An error occured using _persistent_search: TypeError('a float is required',)
2019-11-23 14:46:24,080 pykolab.auth ERROR [29941] Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pykolab/auth/ldap/__init__.py", line 3168, in _search
secondary_domains
File "<string>", line 10, in <module>
File "/usr/lib/python2.7/dist-packages/pykolab/auth/ldap/__init__.py", line 2820, in _persistent_search
serverctrls=psearch_server_controls
File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 841, in search_ext
timeout,sizelimit,
File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 313, in _ldap_call
result = func(*args,**kwargs)
TypeError: a float is required
2019-11-23 14:46:24,080 pykolab.auth ERROR [29941] An error occured using _paged_search: TypeError('encode_page_control() argument 2 must be string or read-only buffer, not None',)
2019-11-23 14:46:24,080 pykolab.auth ERROR [29941] Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pykolab/auth/ldap/__init__.py", line 3168, in _search
secondary_domains
File "<string>", line 10, in <module>
File "/usr/lib/python2.7/dist-packages/pykolab/auth/ldap/__init__.py", line 2907, in _paged_search
serverctrls=[server_page_control]
File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 839, in search_ext
RequestControlTuples(serverctrls),
File "/usr/lib/python2.7/dist-packages/ldap/controls/__init__.py", line 119, in RequestControlTuples
for c in ldapControls
File "/usr/lib/python2.7/dist-packages/ldap/controls/libldap.py", line 77, in encodeControlValue
return _ldap.encode_page_control(self.size,self.cookie)
TypeError: encode_page_control() argument 2 must be string or read-only buffer, not NoneIt looks like `self.config_get('ldap', 'timeout', default=10)? returns a string and not a float.
Solution: we need to make sure the type is converted