So I did some digging and I've found some interesting stuff going on.
First off I try to view the "Templates" tab from my custom plugins view skin.
I get the error below
Code:
Type: AttributeError
Value: isEditable
Traceback (innermost last):
* Module ZPublisher.Publish, line 114, in publish
* Module ZPublisher.mapply, line 88, in mapply
* Module ZPublisher.Publish, line 40, in call_object
* Module Shared.DC.Scripts.Bindings, line 311, in __call__
* Module Shared.DC.Scripts.Bindings, line 348, in _bindAndExec
* Module Products.CMFCore.FSPageTemplate, line 195, in _exec
* Module Products.CMFCore.FSPageTemplate, line 134, in pt_render
* Module Products.PageTemplates.PageTemplate, line 104, in pt_render
<FSPageTemplate at /zport/objTemplates used for
/zport/dmd/Devices/SAN/Pillar/devices/pilot1/PillarLUN/pillartest_002>
* Module TAL.TALInterpreter, line 206, in __call__
* Module TAL.TALInterpreter, line 250, in interpret
* Module TAL.TALInterpreter, line 711, in do_useMacro
* Module TAL.TALInterpreter, line 250, in interpret
* Module TAL.TALInterpreter, line 426, in do_optTag_tal
* Module TAL.TALInterpreter, line 411, in do_optTag
* Module TAL.TALInterpreter, line 406, in no_tag
* Module TAL.TALInterpreter, line 250, in interpret
* Module TAL.TALInterpreter, line 711, in do_useMacro
* Module TAL.TALInterpreter, line 250, in interpret
* Module TAL.TALInterpreter, line 426, in do_optTag_tal
* Module TAL.TALInterpreter, line 411, in do_optTag
* Module TAL.TALInterpreter, line 406, in no_tag
* Module TAL.TALInterpreter, line 250, in interpret
* Module TAL.TALInterpreter, line 734, in do_defineSlot
* Module TAL.TALInterpreter, line 250, in interpret
* Module TAL.TALInterpreter, line 426, in do_optTag_tal
* Module TAL.TALInterpreter, line 411, in do_optTag
* Module TAL.TALInterpreter, line 406, in no_tag
* Module TAL.TALInterpreter, line 250, in interpret
* Module TAL.TALInterpreter, line 734, in do_defineSlot
* Module TAL.TALInterpreter, line 250, in interpret
* Module TAL.TALInterpreter, line 426, in do_optTag_tal
* Module TAL.TALInterpreter, line 411, in do_optTag
* Module TAL.TALInterpreter, line 406, in no_tag
* Module TAL.TALInterpreter, line 250, in interpret
* Module TAL.TALInterpreter, line 690, in do_defineMacro
* Module TAL.TALInterpreter, line 250, in interpret
* Module TAL.TALInterpreter, line 426, in do_optTag_tal
* Module TAL.TALInterpreter, line 411, in do_optTag
* Module TAL.TALInterpreter, line 406, in no_tag
* Module TAL.TALInterpreter, line 250, in interpret
* Module TAL.TALInterpreter, line 711, in do_useMacro
* Module TAL.TALInterpreter, line 250, in interpret
* Module TAL.TALInterpreter, line 426, in do_optTag_tal
* Module TAL.TALInterpreter, line 411, in do_optTag
* Module TAL.TALInterpreter, line 406, in no_tag
* Module TAL.TALInterpreter, line 250, in interpret
* Module TAL.TALInterpreter, line 734, in do_defineSlot
* Module TAL.TALInterpreter, line 250, in interpret
* Module TAL.TALInterpreter, line 426, in do_optTag_tal
* Module TAL.TALInterpreter, line 411, in do_optTag
* Module TAL.TALInterpreter, line 406, in no_tag
* Module TAL.TALInterpreter, line 250, in interpret
* Module TAL.TALInterpreter, line 653, in do_loop_tal
* Module TAL.TALInterpreter, line 250, in interpret
* Module TAL.TALInterpreter, line 426, in do_optTag_tal
* Module TAL.TALInterpreter, line 411, in do_optTag
* Module TAL.TALInterpreter, line 406, in no_tag
* Module TAL.TALInterpreter, line 250, in interpret
* Module TAL.TALInterpreter, line 477, in do_setLocal_tal
* Module Products.PageTemplates.TALES, line 221, in evaluate
URL: file:ZenModel/skins/zenmodel/objTemplates.pt
Line 35, Column 4
Expression: <PythonExpr temp.isEditable(here)>
Names:
{'container': <ZentinelPortal at /zport>,
'context': <PillarLUN at
/zport/dmd/Devices/SAN/Pillar/devices/pilot1/PillarLUN/pillartest_002>,
'default': <Products.PageTemplates.TALES.Default instance at 0xb74a49ac>,
'here': <PillarLUN at
/zport/dmd/Devices/SAN/Pillar/devices/pilot1/PillarLUN/pillartest_002>,
'loop': <Products.PageTemplates.TALES.SafeMapping object at 0x9c3c96c>,
'modules': <Products.PageTemplates.ZRPythonExpr._SecureModuleImporter
instance at 0xb74aaa0c>,
'nothing': None,
'options': {'args': ()},
'repeat': <Products.PageTemplates.TALES.SafeMapping object at 0x9c3c96c>,
'request': <HTTPRequest,
URL=http://zenoss.neteng.polk.com:8080/zport/dmd/Devices/SAN/Pillar/devices/pilot1/PillarLUN/pillartest_002/objTemplates>,
'root': <Application at >,
'template': <FSPageTemplate at /zport/objTemplates used for
/zport/dmd/Devices/SAN/Pillar/devices/pilot1/PillarLUN/pillartest_002>,
'traverse_subpath': [],
'user': admin}
* Module Products.PageTemplates.ZRPythonExpr, line 47, in __call__
__traceback_info__: temp.isEditable(here)
* Module Python expression "temp.isEditable(here)", line 1, in <expression>
AttributeError: isEditable
Now this "invalid" object which zenoss thinks is a template is whats throwing
these zenhub errors when zencommand tries to fetch the list of commands.
So this error is in Zenhub
Code:
2008-06-05 11:05:39 ERROR zenhub: device pilot1
Traceback (most recent call last):
File "/usr/local/zenoss/Products/ZenHub/services/CommandConfig.py", line 39, in
getDataSourceCommands
cmdinfo = dev.getDataSourceCommands()
File "/usr/local/zenoss/Products/ZenModel/Device.py", line 652, in
getDataSourceCommands
c, t = o.getDataSourceCommands()
File "/usr/local/zenoss/Products/ZenModel/RRDView.py", line 332, in
getDataSourceCommands
dataSources = templ.getRRDDataSources('COMMAND')
AttributeError: getRRDDataSources
Now I started digging around with dmd and came up with this
Here I will drill down to the actual "PillarLUN" relation and show you the
invalid template which is actually a relation being returned from
getRRDTemplates()
yet on my functional relationship "PillarFile" things work as expected. The
difference being that getRRDTemplates() does not return a relation but instead
the template.
Code:
>>> MyDevice = find("pilot1")
>>> SubObjects = MyDevice.getSubObjects()
>>> for subObject in SubObjects:
... if subObject.id == "PillarLUN":
... Relation = subObject
...
>>> Relation
<ToManyContRelationship at
/zport/dmd/Devices/SAN/Pillar/devices/pilot1/PillarLUN>
>>> Relation.objectValuesAll()
[<PillarLUN at
/zport/dmd/Devices/SAN/Pillar/devices/pilot1/PillarLUN/pillartest_001>,
<PillarLUN at
/zport/dmd/Devices/SAN/Pillar/devices/pilot1/PillarLUN/pillartest_002>,
<PillarLUN at
/zport/dmd/Devices/SAN/Pillar/devices/pilot1/PillarLUN/test001_000>]
>>> Relation.objectValuesAll()[0].getRRDTemplates()
[<ToManyContRelationship at
/zport/dmd/Devices/SAN/Pillar/devices/pilot1/PillarLUN used for
/zport/dmd/Devices/SAN/Pillar/devices/pilot1/PillarLUN/pillartest_001>]
And here is the functional relation where clicking "Templates" doesnt throw UI
errors.
Code:
>>> MyDevice = find("pilot1")
>>> SubObjects = MyDevice.getSubObjects()
>>> for subObject in SubObjects:
... if subObject.id == "PillarFile":
... Relation = subObject
...
>>> Relation
<ToManyContRelationship at
/zport/dmd/Devices/SAN/Pillar/devices/pilot1/PillarFile>
>>> Relation.objectValuesAll()
[<PillarFilesystem at
/zport/dmd/Devices/SAN/Pillar/devices/pilot1/PillarFile/CIFS-TEST>,
<PillarFilesystem at
/zport/dmd/Devices/SAN/Pillar/devices/pilot1/PillarFile/ftp-qa>,
<PillarFilesystem at
/zport/dmd/Devices/SAN/Pillar/devices/pilot1/PillarFile/ftp-t-001>]
>>> Relation.objectValuesAll()[0].getRRDTemplates()
[<RRDTemplate at /zport/dmd/Devices/SAN/Pillar/rrdTemplates/PillarFilesystem>]
I think this is a Zenoss bug..... Tell me what you think. Working on a fix
currently.
-------------------- m2f --------------------
Read this topic online here:
http://community.zenoss.com/forums/viewtopic.php?p=20936#20936
-------------------- m2f --------------------
_______________________________________________
zenoss-users mailing list
[email protected]
http://lists.zenoss.org/mailman/listinfo/zenoss-users