You are here: Home / What do you need? / Help and documentation / Plone Info / Old or removed or deleted portal tool or configlet causes problems on reinstall

Old or removed or deleted portal tool or configlet causes problems on reinstall

by Darrell Kingsley last modified Mar 13, 2014 12:40 PM
When you have added a configlet (or possibly a tool) to a portal and then decided to remove the product or that you didn't need the configlet and so removed it from the product, this causes errors, particularly when you try to install or reinstall other products that contain configlets, as it looks for the configlet in some deep tool registry.

The error may well be the one below, or it may be something different.

'NoneType' object is not callable

Their may be more than one tool causing the issue (bbmenus, bbwebsite)To remove all references:

ZMI > portal_controlpanel the reference to the tool(s),

also the type maybe reference in 'types_not_searched', 'default_page_types',  'typesUseViewActionInListings' etc

ZMI > portal_properties > site properties >  

 

Remove from Tool Registry

To delete it from the deep level tool registry. This worked for me with portal_bbclickcounterin Networks on dev. To do this you must:

Back up your instance

Shut it down

 ./bin/plonectl stop
 ./bin/instance debug

or zeo..

 sudo bin/shutdowncluster
 sudo bin/zeoserver start
 sudo bin/client1 debug

or just

 sudo bin/client1 stop
 sudo bin/client1 debug

then at the python >>> prompt

setup_tool = app.myportal.portal_setup      #myportal = portal id
toolset = setup_tool.getToolsetRegistry()

If you've forgotten the name of the tool, you need to check using:

for item in toolset._required.keys():
    print item

This prints out a list of everything contained within this record. Once you have the name of the tool required, in this case portal_bbclickcounter, do the following

if 'portal_bbclickcounter' in toolset._required.keys():
    del toolset._required['portal_bbclickcounter']
    setup_tool._toolset_registry = toolset

from transaction import commit
commit()
app._p_jar.sync()

There may well be other references to things that you need to get rid of. See the references below for more information and help.

http://blog.fourdigits.nl/removing-a-persistent-local-utility-part-ii

https://weblion.psu.edu/trac/weblion/wiki/GenericSetup

http://blog.fourdigits.nl/removing-a-persistent-local-utility

By the way, the Google search which unearthed these links was: genericsetup 'NoneType' object is not callable