Home Linux Central_Management Satellite_5
post trigger scripts in /var/lib/cobbler/triggers/install/post  do not work.

Post triggers in python do work and they are in 
/usr/lib/python2.6/site-packages/cobbler/modules/  

When adding a python trigger  the clobberd service needs to be restarted.

Example post trigger that calls a shell scipt:


import distutils.sysconfig
import sys
import os
import utils 
import traceback
import cexceptions
import os
import sys
import time
import subprocess

plib = distutils.sysconfig.get_python_lib()
mod_path="%s/cobbler" % plib
sys.path.insert(0, mod_path)

def register():
    # this pure python trigger acts as if it were a legacy shell-trigger, but is much faster.
    # the return of this method indicates the trigger type
    return "/var/lib/cobbler/triggers/install/post/*"

def run(api, args, logger):
    # FIXME: make everything use the logger, no prints, use util.subprocess_call, etc

    objtype = args[[0]] # "system" or "profile"
    name    = args[[1]] # name of system or profile
    ip      = args[[2]] # ip or "?"

    fd = open("/var/log/cobbler/install.log","a+")
    fd.write("%s\t%s\t%s\t/root/post_install_script\t%s\n" % (objtype,name,ip,time.time()))
    fd.close()

    subprocess.check_call([['/root/post_install.sh', name]])

    return 0