Applies To
- Zenoss 4.x
- Zenoss 5.x
Summary
When writing event transforms or researching how events are mapped to certain event classes, it is often useful to have a complete list of the existing transforms and event class mappings, and the Resource Manager UI does not provide this information in a single place. The Python script included in this article shows the location and content of every transform and (non-empty) event class mapping in your Zenoss instance. Run the script from the command line of the Zenoss master as the zenoss user. It does not require invoking zendmd.
Procedure for Zenoss 4.x
- Connect to the Zenoss master server as the zenoss user.
Note: when switching to the zenoss user using the su command, you must specify the “-” option in order to update your PATH to include the zenoss user's bin directory. For example: “su - zenoss”. Otherwise, the listEventClassKeys script (as installed below) might not be found without specifying its full path. - Change to the zenoss user's home directory:
$ cd
- Create the bin subdirectory to hold the script:
$ mkdir -p bin
- Change to the bin subdirectory:
$ cd bin
- Download the attached listTransforms script.
- Display the contents of the listTransforms file and verify that it matches the script listed below:
$ cat listTransforms
- Make the listTransforms file executable:
$ chmod +x listTransforms
- Run the script and pipe the output through a pager; less, for example:
$ listTransforms | less
Alternatively, you can redirect the output to a file; for example:
$ listTransforms > transforms
$ less transforms
Procedure for Zenoss 5.x
- Connect to the Control Center master host as a user with serviced access (or root).
- Switch to the /tmp/ directory and download the listTransforms script.
- Launch a zope shell. Your current working directory will be mounted inside the zope shell as /mnt/pwd/.
$ serviced service shell -i zope
- Change the ownership of the listTransforms script to the zenoss user and group, and make it executable
$ chown zenoss:zenoss /mnt/pwd/listTransforms
$ chmod +x /mnt/pwd/listTransforms - Switch to the zenoss user:
$ su - zenoss
- Switch to the /mnt/pwd/ directory and execute the script, redirecting the output to a file:
$ cd /mnt/pwd/
$ ./listTransforms > transforms - Exit the zenoss user and the zope shell:
$ exit
$ exit - The file from Step 6. should be available to you in your working directory:
$ ls -lah transforms
Script
#! /usr/bin/env python import Globals from Products.ZenUtils.ZenScriptBase import ZenScriptBase dmd = ZenScriptBase(connect=True).dmd for eventClass in sorted([dmd.Events] + dmd.Events.getSubOrganizers(), key=lambda c: c.getOrganizerName().lower()): name = eventClass.getOrganizerName() if eventClass.transform: label = '[Transform] %s' % name print '%s\n%s' % (label, '-' * len(label)) print eventClass.transform, '\n' for mapping in sorted(eventClass.instances(), key=lambda m: m.id.lower()): if mapping.transform: label = '[Mapping] %s/%s' % (name, mapping.id) print '%s\n%s' % (label, '-' * len(label)) print mapping.transform, '\n'
The listed page returns a 404. :-( --- Hi David thanks. This has been fixed
Thanks, but once exported, how would I import this file into another Zenoss instance?
Is there a guide on how to perform this with Zenoss 5? Or even better, how to export the event transforms to another installation of Zenoss 5?
This guide is only to output this info for reference purposes. If you want to export transforms and event class mappings to another instance you would need to create a ZenPack and import them in to it, then export the pack to an egg file and install it in the other instance.