[zenoss-users] 2.2 Upgrade zenmigrate issue -- 2nd Zenoss instance
Chet Luther
cluther at zenoss.com
Thu Jun 26 08:07:33 EDT 2008
On Jun 25, 2008, at 8:02 PM, Bob Jensen wrote:
> I upgraded my 2nd zenoss instance from 2.1 to 2.2...
>
> I was getting some log entries saying that I should run zenmigrate
> (as I got on the prior upgrade)
>
> This is what I get when I run zenmigrate:
>
> It runs fine until it tries to do TwoTwoIndexing
>
> INFO:zen.migrate:Installing TwoTwoIndexing (2.2.0)
> Recovering
> Traceback (most recent call last):
> File "/opt/zenoss/Products/ZenModel/migrate/zenmigrate.py", line
> 21, in ?
> main()
> File "/opt/zenoss/Products/ZenModel/migrate/zenmigrate.py", line
> 18, in main
> m.main()
> File "/opt/zenoss/Products/ZenModel/migrate/Migrate.py", line 426,
> in main
> self.cutover()
> File "/opt/zenoss/Products/ZenModel/migrate/Migrate.py", line 306,
> in cutover
> self.migrate()
> File "/opt/zenoss/Products/ZenModel/migrate/Migrate.py", line 282,
> in migrate
> m.cutover(self.dmd)
> File "/opt/zenoss/Products/ZenModel/migrate/twotwoindexing.py",
> line 44, in cutover
> for comp in dev.getDeviceComponents():
> File "/opt/zenoss/Products/ZenModel/Device.py", line 586, in
> getDeviceComponents
> return [c.getObject() for c in brains]
> File "/opt/zenoss/lib/python/Products/ZCatalog/CatalogBrains.py",
> line 77, in getObject
> parent = parent.unrestrictedTraverse(path[:-1])
> File "/opt/zenoss/lib/python/OFS/Traversable.py", line 221, in
> unrestrictedTraverse
> next=obj[name]
> File "/opt/zenoss/lib/python/OFS/ObjectManager.py", line 713, in
> __getitem__
> raise KeyError, key
> KeyError: 'ServerTech'
Doh! Your componentSearch catalog has at least one broken item in it.
Try the following in zendmd. Run this script until you stop getting
messages about things being removed.
# Fix componentSearch
brains = dmd.Devices.componentSearch()
for d in brains:
try:
bah = d.getObject()
except Exception:
print "Removing non-existent component from componentSearch:
" + d.getPath()
dmd.Devices.componentSearch.uncatalog_object(d.getPath())
# Make sure our fixes are saved
commit()
More information about the zenoss-users
mailing list