I can't speak for Zenoss, but I've been working on creating my own, off and on. Most recently, I purchased a copy of the commercial package (Sparx Enterprise Architect) used to create these UML class diagrams for the Zenpack base classes and am experimenting with the reverse-engineering features. But it is far from a trivial task.
Firstly, there are over 220 python classes in the ZenModel zope product alone. With the model/diagram in the UML tool, it's easy enough to navigate around to examine, but producing a static exported document (e.g. PDF) would require a significant amount of time/effort to manually adjust/complete the layout and probably break it into smaller groupings to fit on reasonably-sized pages.
(The other issues I'm running into with this reverse-engineering are related to troubles with python depedencies. So much of the environment is built up at runtime by reading .pth files and other mechanisms I don't yet understand, but also EA is a Windows app so I can't just point it at an installed Zenoss instance's python environment.)
Also... it's a moving target
At any rate, if you have some ideas about what you want to look at, I might be able to clean up those sections of the diagram so they could be exported to a useful PDF doc. And for anybody willing to invest in the above commercial software to work on this OSS code ... we could collaborate.
I am trying to use Zope database to store information about devices that
exist in our datacenter, and investigating if that suits our needs.
I need to understand the domain model of the database and how to insert
data, but I don´t want to use the web interface.
As you said, ZenModel is quite complex, but your diagrams will help me.
These diagrams correspond to which version of zenoss? I am using zenoss3.0,
and I noticed some differences. For instance: in zenoss 3.0 there is no
Are these diagrams complete? You didn´t modelled the software classes... I
know that you said that this is a working in progress.
Do you know some documentation that could help me understand better the flow
in Zenoss, like making a request via the web interface, and see the data
flow until it reaches the several databases?
I was working with Zenoss 3.0.1, but I'll probably re-run it against the 3.0.x branch to catch what's coming in the maintenance release.
I had not run the tool on the entire package, and not on the ZenRelations package. Also had only done static Class diagrams, not object/instance diagrams yet.
One thing I would suggest, if you haven't yet, is to install ipython as the zenoss user to make zendmd easier to use, and use zendmd and a tabbed code editor (I use Eclipse these days) to look around at the way the device model instances are put together and where they're stored in the dmd/Devices tree.
I am waiting for some feedback from the UML tool support folks before I work on this again; I am having to manually patch the zenoss code so that their tool can import the modules and that's been too much work. I'll report what I find out.
Follow Us On Twitter »
||Latest from the Zenoss Blog »||Community||Products||Services||Customers||About Us|
Copyright © 2005-2011 Zenoss, Inc.