Zenoss Developer's Guide


Table of Contents

1. Introduction
1. Overview
2. Standard Model
3. Availability
4. Events
5. Performance
2. Coding Guidelines
1. Style Guidelines
2. Docstrings
3. Programming Techniques
1. Calling Methods Using Rest
1.1. How To Call Methods Using Rest
1.2. Sending an Event
1.2.1. Using a REST Call
1.2.2. How to Call Methods Using REST
1.2.3. Using XML-RPC
1.2.4. Example Usage in Other Languages
4. Device Management
1. Adding Devices Programatically
1.1. Using a REST call
1.2. Using an XML-RPC Call from Python
1.3. XML-RPC Attributes
2. Editing Device Information
2.1. Using a REST call
2.2. Using an XML-RPC Call from Python
3. Deleting A Device
3.1. Using a REST call
3.2. Using an XML-RPC Call from Python
4. Checking If A Device Exists
4.1. Using a REST call
4.2. Using an XML-RPC Call from Python
5. Exporting a Device List
5. Zenoss Code and Function Documentation
1. Where it is Available
6. ZenPacks
1. ZenPack Basics
2. How do I create a ZenPack?
3. Location of ZenPack Files
4. What is the structure of a ZenPack?
4.1. HelloWorldZenPack/
4.1.1. HelloWorldZenPack/init.py
4.1.2. HelloWorldZenPack/HelloWorld.py
4.1.3. HelloWorldZenPack/daemons
4.1.4. HelloWorldZenPack/modeler
4.1.5. HelloWorldZenPack/objects
4.1.6. HelloWorldZenPack/reports
4.1.7. HelloWorldZenPack/skins/HelloWorldZenPack
5. Where to Get More Information
7. Writing A Zenoss Performance Collector
8. Writing a New Zenoss Report
1. Writing a New Zenoss Report
2. Plugins
3. Describe the use of the Table Macros
4. Adding Export Buttons to Reports
9. zProperty Management
1. Adding a zProperty
1.1. Adding a zProperty to an Event
1.2. Adding a zProperty to a Device
2. Migrating the zProperty Code
10. Extending the Zenoss Model
1. How to Add a Zen Model Relationship
1.1. One-to-One (1:1) Relationships
2. One-to-Many (1:N) Relationships
3. Many-to-Many (M:N) Relationships
3.1. One-to-Many (1:N) Container Relationships
11. Event Classes
1. Adding an Event Class for Internal Use
1.1. Add to ZenEventClasses
1.2. Add class permanently to the ZODB
1.2.1. Add the class to the import XML
1.2.2. Write a migrate script
12. Extending the User Interface
1. Writing a ZPT in Zenoss
2. Adding Tabs
3. Adding Menu Items
4. Creating a Table Using ZenTableManager
5. Creating an Editable Table
6. How to Save Properties via an Edit Screen
7. Creating a Dashboard Portlet
8. Customizing the Logo in The Zenoss Interface
13. Getting a DB Connection from the Pool
1. The Pool
2. The Code
14. Migrating Zenoss Code
1. Introduction and Steps
2. How It Works
3. What You Write
3.1. Implement cutover()
3.2. Supporting Code
3.3. Testing and Deployment
15. Testing
1. Zenoss Unit Tests
1.1. Introduction
1.2. Zenoss' Test Runner
1.3. Integrating With Buildbot
2. Functional User Interface Testing
2.1. Introduction
2.2. Installing and Running
2.3. Usage
2.4. Boiler Plate
2.5. Massaging Session Data
2.6. Selenium
A. Event Database Dictionary
B. TALES Expressions
1. Examples
1.1. ping
1.2. DNS forward lookup
1.3. DNS reverse lookup
1.4. snmpwalk
2. TALES Device Attributes
3. TALES Event Attributes
Glossary