Difference between revisions of "ZenDMD Tips"

From Zenoss Wiki
Jump to: navigation, search
(ZenDMD Tips - Don't work hard, work smart!)
m (Using as an Interpreter)
Line 21: Line 21:
 
zendmd can be used as a script interpreter as of Zenoss 4.2. For example, create a file called ''example.zendmd''. The extension doesn't matter, but is a good convention. Add the following contents.
 
zendmd can be used as a script interpreter as of Zenoss 4.2. For example, create a file called ''example.zendmd''. The extension doesn't matter, but is a good convention. Add the following contents.
  
<pre>
+
<syntaxhighlight lang=bash>
 
#!/usr/bin/env zendmd
 
#!/usr/bin/env zendmd
  
 
for device in dmd.Devices.getSubDevicesGen():
 
for device in dmd.Devices.getSubDevicesGen():
 
     print "%s (%s)" % (device.titleOrId(), device.manageIp)
 
     print "%s (%s)" % (device.titleOrId(), device.manageIp)
</pre>
+
</syntaxhighlight>
  
 
You can then make ''example.zendmd'' executable, and execute it by running the following commands. As the zenoss user.
 
You can then make ''example.zendmd'' executable, and execute it by running the following commands. As the zenoss user.

Revision as of 16:08, 21 November 2013

zendmd is a command line tool that can either be used as a REPL for Zenoss, or as an interpreter to run scripts. It is installed by Zenoss to $ZENHOME/bin/zendmd.

You can do a lot of powerful things from zendmd. This page documents some of them.

Using as a REPL

To use in REPL mode, execute zendmd as the zenoss user.

$ zendmd
Welcome to the Zenoss dmd command shell!
'dmd' is bound to the DataRoot. 'zhelp()' to get a list of commands.
Use TAB-TAB to see a list of zendmd related commands.
Tab completion also works for objects -- hit tab after an object name and '.'
 (eg dmd. + tab-key).
>>> 

Using as an Interpreter

zendmd can be used as a script interpreter as of Zenoss 4.2. For example, create a file called example.zendmd. The extension doesn't matter, but is a good convention. Add the following contents.

#!/usr/bin/env zendmd
 
for device in dmd.Devices.getSubDevicesGen():
    print "%s (%s)" % (device.titleOrId(), device.manageIp)

You can then make example.zendmd executable, and execute it by running the following commands. As the zenoss user.

$ chmod 0755 example.zendmd
$  ./example.zendmd

You should see the name and management IP address of each device in your system printed.

ZenDMD Tips - Don't work hard, work smart!

See the examples in in the ZenDMD category that have been contributed to demonstrate the kinds of things that can be done using zendmd. They are applicable either to the REPL or interpreter modes.