diff options
author | Michael DeHaan <mdehaan@redhat.com> | 2007-11-29 14:58:46 -0500 |
---|---|---|
committer | Michael DeHaan <mdehaan@redhat.com> | 2007-11-29 14:58:46 -0500 |
commit | 231ef515b22aa0204c625340f492eba651ef4bae (patch) | |
tree | f835e671d7c233e6c71ec7b1c1af58a6f76de7d7 /cobbler | |
parent | bddd3d6affa106b800f9ad1ec25f0dcfed750604 (diff) | |
download | third_party-cobbler-231ef515b22aa0204c625340f492eba651ef4bae.tar.gz third_party-cobbler-231ef515b22aa0204c625340f492eba651ef4bae.tar.xz third_party-cobbler-231ef515b22aa0204c625340f492eba651ef4bae.zip |
Initial application of Tim V's patch to enable post install triggers.
Diffstat (limited to 'cobbler')
-rw-r--r-- | cobbler/action_sync.py | 6 | ||||
-rw-r--r-- | cobbler/remote.py | 21 | ||||
-rw-r--r-- | cobbler/settings.py | 1 | ||||
-rw-r--r-- | cobbler/webui/master.py | 10 |
4 files changed, 32 insertions, 6 deletions
diff --git a/cobbler/action_sync.py b/cobbler/action_sync.py index f81c2cd..c8ab81e 100644 --- a/cobbler/action_sync.py +++ b/cobbler/action_sync.py @@ -2,8 +2,9 @@ Builds out a TFTP/cobbler boot tree based on the object tree. This is the code behind 'cobbler sync'. -Copyright 2006, Red Hat, Inc +Copyright 2006,2007, Red Hat, Inc Michael DeHaan <mdehaan@redhat.com> +Tim Verhoeven <tim.verhoeven.be@gmail.com> This software may be freely redistributed under the terms of the GNU general public license. @@ -389,6 +390,7 @@ class BootSync: pattern1 = "wget \"http://%s/cblr/watcher.py?%s_%s=%s\" -b" pattern2 = "wget \"http://%s/cgi-bin/cobbler/nopxe.cgi?system=%s\" -b" pattern3 = "wget \"http://%s/cobbler/%s/%s/ks.cfg\" -O /root/cobbler.ks" + pattern4 = "wget \"http://%s/cgi-bin/cobbler/postinstalltrigger.cgi?system=%s\" -b" blend_this = profile if system: @@ -404,6 +406,8 @@ class BootSync: buf = buf + "\n" + pattern2 % (blended["server"], system.name) if kickstart and os.path.exists(kickstart): buf = buf + "\n" + pattern3 % (blended["server"], "kickstarts_sys", system.name) + if self.settings.run_postinstall_trigger: + buf = buf + "\n" + pattern4 % (blended["server"], system.name) else: buf = buf + pattern1 % (blended["server"], "profile", "done", profile.name) diff --git a/cobbler/remote.py b/cobbler/remote.py index ff8d2db..5d3f91e 100644 --- a/cobbler/remote.py +++ b/cobbler/remote.py @@ -145,6 +145,27 @@ class CobblerXMLRPCInterface: systems.add(obj,with_copy=True) return True + def run_postinstalltrigger(self,name,token=None): + """ + This is a feature used to run the post install trigger. + It passes the system named "name" to the trigger. Disabled by default as + this requires public API access and is technically a read-write operation. + """ + # used by postinstalltrigger.cgi + self.logger.debug("Starting run_postinstalltrigger") + self.api.clear() + self.api.deserialize() + if not self.api.settings().run_postinstall_trigger: + # feature disabled! + return False + systems = self.api.systems() + obj = systems.find(name=name) + if obj == None: + # system not found! + return False + utils.run_triggers(obj, "/var/lib/cobbler/triggers/install/post/*") + return True + def _refresh(self): """ Internal function to reload cobbler's configuration from disk. This is used to prevent any out diff --git a/cobbler/settings.py b/cobbler/settings.py index 8a3c7f7..43b3e06 100644 --- a/cobbler/settings.py +++ b/cobbler/settings.py @@ -43,6 +43,7 @@ DEFAULTS = { "manage_dhcp_mode" : "isc", "next_server" : "127.0.0.1", "pxe_just_once" : 0, + "run_postinstall_trigger" : 0, "server" : "127.0.0.1", "snippetsdir" : "/var/lib/cobbler/snippets", "syslog_port" : 25150, diff --git a/cobbler/webui/master.py b/cobbler/webui/master.py index 3eeb95e..89cf4a8 100644 --- a/cobbler/webui/master.py +++ b/cobbler/webui/master.py @@ -31,12 +31,12 @@ VFFSL=valueFromFrameOrSearchList VFSL=valueFromSearchList VFN=valueForName currentTime=time.time -__CHEETAH_version__ = '2.0' -__CHEETAH_versionTuple__ = (2, 0, 0, 'final', 0) -__CHEETAH_genTime__ = 1195069391.0795169 -__CHEETAH_genTimestamp__ = 'Wed Nov 14 14:43:11 2007' +__CHEETAH_version__ = '2.0rc8' +__CHEETAH_versionTuple__ = (2, 0, 0, 'candidate', 8) +__CHEETAH_genTime__ = 1196349031.5462351 +__CHEETAH_genTimestamp__ = 'Thu Nov 29 16:10:31 2007' __CHEETAH_src__ = 'webui_templates/master.tmpl' -__CHEETAH_srcLastModified__ = 'Wed Nov 7 12:24:52 2007' +__CHEETAH_srcLastModified__ = 'Thu Nov 29 14:40:41 2007' __CHEETAH_docstring__ = 'Autogenerated by CHEETAH: The Python-Powered Template Engine' if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple: |