In an informal interim version pynag-0.4.2. It gives the ability to list / create / update / delete objects directly from the command line
It would be very nice before we release next version if someone could download it, play with it. and give feedback on command-line syntax which currently is quite immature.
Here are some output examples to show capabilities:
### Run it without arguments to get help
$ pynag
Usage: pynag <sub-command> [arguments]
Examples:
pynag list host_name service_description where object_type=service and host_name=
examplehost.com pynag update service set check_period=24x7 where host_name=
examplehost.com and object_type=host
Available subcommands:
list List host/services, etc.
update Update host/service etc.
add Create a new object definition
copy Copy a current object definition to a new one
delete Delete a specific object definition
config-set set a specific value for nagios.cfg
config-append append a specific value to nagios.cfg
### List some objects:
$ pynag list host_name service_description where object_type=service and host_name=localhost
host_name service_description
--------------------------------------------------------------------------------
localhost Disk Space
localhost Current Users
localhost Total Processes
localhost Current Load
--------------------------------------------------------------------------------
### Rename a host and all its services
$ pynag update set host_name=new_host_name where host_name=oldhostname
object_type shortname filename
--------------------------------------------------------------------------------
host oldhostname /etc/nagios3/conf.d/oldhostname-host.cfg
service oldhostname/HP EVA Systems /etc/nagios3/conf.d/oldhostname-eva.cfg
service oldhostname/HP EVA Diskgroups /etc/nagios3/conf.d/oldhostname-eva.cfg
service oldhostname/HP EVA Disks /etc/nagios3/conf.d/oldhostname-eva.cfg
service oldhostname/HP EVA Controllers /etc/nagios3/conf.d/oldhostname-eva.cfg
service oldhostname/HP EVA Diskshelves /etc/nagios3/conf.d/oldhostname-eva.cfg
service oldhostname/None /etc/nagios3/conf.d/oldhostname-host.cfg
service oldhostname/Ping /etc/nagios3/conf.d/oldhostname-host.cfg
--------------------------------------------------------------------------------
Update these 8 objects ? (y/N) y
/etc/nagios3/conf.d/oldhostname-host.cfg (new_host_name): changed host_name to new_host_name
/etc/nagios3/conf.d/oldhostname-eva.cfg (new_host_name/HP EVA Systems): changed host_name to new_host_name
/etc/nagios3/conf.d/oldhostname-eva.cfg (new_host_name/HP EVA Diskgroups): changed host_name to new_host_name
/etc/nagios3/conf.d/oldhostname-eva.cfg (new_host_name/HP EVA Disks): changed host_name to new_host_name
/etc/nagios3/conf.d/oldhostname-eva.cfg (new_host_name/HP EVA Controllers): changed host_name to new_host_name
/etc/nagios3/conf.d/oldhostname-eva.cfg (new_host_name/HP EVA Diskshelves): changed host_name to new_host_name
/etc/nagios3/conf.d/oldhostname-host.cfg (new_host_name/None): changed host_name to new_host_name
/etc/nagios3/conf.d/oldhostname-host.cfg (new_host_name/Ping): changed host_name to new_host_name
Updated 8 objects