Upgrade Senaite Lims from 1.3.4 to 2.2.0 - old LDAP add-on problem

Hello everyone,

I’m trying to upgrade my senaite lims to newest version but I got some error.

I’m using LDAP add-on (plone.app.ldap = 1.4.3) and I realised in this article is written that this add-on is not working on Plone version 5.x and is replaced by pas.plugins.ldap.

When I try to update I got error:

[...]
Step various-atextensions has an invalid import handler
Rebuilding member data information. This step can take a while if your site has many users.
Upgrade aborted. Error:
Traceback (most recent call last):
  File "/home/senaite/senaitelims/eggs/cp27mu/Products.CMFPlone-5.2.7-py2.7.egg/Products/CMFPlone/MigrationTool.py", line 292, in upgrade
    step['step'].doStep(setup)
  File "/home/senaite/senaitelims/eggs/cp27mu/Products.GenericSetup-2.1.5-py2.7.egg/Products/GenericSetup/upgrade.py", line 169, in doStep
    self.handler(tool)
  File "/home/senaite/senaitelims/eggs/cp27mu/plone.app.upgrade-2.1.0-py2.7.egg/plone/app/upgrade/v52/alphas.py", line 96, in to52alpha1
    rebuild_memberdata(context)
  File "/home/senaite/senaitelims/eggs/cp27mu/plone.app.upgrade-2.1.0-py2.7.egg/plone/app/upgrade/v52/alphas.py", line 49, in rebuild_memberdata
    for member in ms_tool.searchForMembers():
  File "/home/senaite/senaitelims/eggs/cp27mu/Products.PlonePAS-6.0.8-py2.7.egg/Products/PlonePAS/tools/membership.py", line 232, in searchForMembers
    for user in acl_users.searchUsers(**user_search):
  File "/home/senaite/senaitelims/eggs/cp27mu/Products.PluggableAuthService-2.7.0-py2.7.egg/Products/PluggableAuthService/PluggableAuthService.py", line 302, in searchUsers
    enumerators = plugins.listPlugins(IUserEnumerationPlugin)
  File "/home/senaite/senaitelims/eggs/cp27mu/Products.PluginRegistry-1.9-py2.7.egg/Products/PluginRegistry/PluginRegistry.py", line 112, in listPlugins
    if not _satisfies(plugin, plugin_type):
  File "/home/senaite/senaitelims/eggs/cp27mu/Products.PluginRegistry-1.9-py2.7.egg/Products/PluginRegistry/PluginRegistry.py", line 402, in _satisfies
    return checker(plugin)
  File "/home/senaite/senaitelims/eggs/cp27mu/ZODB-5.6.0-py2.7.egg/ZODB/Connection.py", line 795, in setstate
    self._reader.setGhostState(obj, p)
  File "/home/senaite/senaitelims/eggs/cp27mu/ZODB-5.6.0-py2.7.egg/ZODB/serialize.py", line 633, in setGhostState
    state = self.getState(pickle)
  File "/home/senaite/senaitelims/eggs/cp27mu/ZODB-5.6.0-py2.7.egg/ZODB/serialize.py", line 626, in getState
    return unpickler.load()
  File "/home/senaite/senaitelims/eggs/cp27mu/zope.interface-5.4.0-py2.7-linux-x86_64.egg/zope/interface/declarations.py", line 891, in Provides
    spec = ProvidesClass(*interfaces)
  File "/home/senaite/senaitelims/eggs/cp27mu/zope.interface-5.4.0-py2.7-linux-x86_64.egg/zope/interface/declarations.py", line 822, in __init__
    Declaration.__init__(self, *self._add_interfaces_to_cls(interfaces, cls))
  File "/home/senaite/senaitelims/eggs/cp27mu/zope.interface-5.4.0-py2.7-linux-x86_64.egg/zope/interface/declarations.py", line 87, in __init__
    Specification.__init__(self, _normalizeargs(bases))
  File "/home/senaite/senaitelims/eggs/cp27mu/zope.interface-5.4.0-py2.7-linux-x86_64.egg/zope/interface/declarations.py", line 1307, in _normalizeargs
    _normalizeargs(v, output)
  File "/home/senaite/senaitelims/eggs/cp27mu/zope.interface-5.4.0-py2.7-linux-x86_64.egg/zope/interface/declarations.py", line 1306, in _normalizeargs
    for v in sequence:
TypeError: ("'type' object is not iterable", <function Provides at 0x7f1d4c7d77d0>, (<class 'Products.PloneLDAP.plugins.ldap.PloneLDAPMultiPlugin'>, <class 'plone.app.ldap.ploneldap.interfaces.IManagedLDAPPlugin'>))
End of upgrade path, main migration has finished.
The upgrade path did NOT reach current version.
Migration has failed

I tried also firstly to disable (don’t know how to remove) LDAP add-on and then try to upgrade, same errors.

As I understand there is some information inside ZODB still keeped about that LDAP plugin.

I tried remove this information using python debugging but still no luck.

Can anyone help me with that problem?

Cheers
Dominik