diff options
author | Michael DeHaan <mdehaan@mdehaan.rdu.redhat.com> | 2007-08-17 12:49:21 -0400 |
---|---|---|
committer | Michael DeHaan <mdehaan@mdehaan.rdu.redhat.com> | 2007-08-17 12:49:21 -0400 |
commit | a57724fa1808b69e1fc137d5396ad8b67234991d (patch) | |
tree | db0482546b20ed5869fa67480164a257c1c9621b /cobbler/cobblerd.py | |
parent | ce27d1422dafbefcde15d5df4e7853a62304262d (diff) | |
download | third_party-cobbler-a57724fa1808b69e1fc137d5396ad8b67234991d.tar.gz third_party-cobbler-a57724fa1808b69e1fc137d5396ad8b67234991d.tar.xz third_party-cobbler-a57724fa1808b69e1fc137d5396ad8b67234991d.zip |
Publish cobblerd under avahi if avahi-tools is installed
Diffstat (limited to 'cobbler/cobblerd.py')
-rw-r--r-- | cobbler/cobblerd.py | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/cobbler/cobblerd.py b/cobbler/cobblerd.py index 1e2f32f..289445b 100644 --- a/cobbler/cobblerd.py +++ b/cobbler/cobblerd.py @@ -15,13 +15,15 @@ import socket import time import os import SimpleXMLRPCServer -import yaml # Howell Clark version import glob -import api as cobbler_api -import utils from rhpl.translate import _, N_, textdomain, utf8 import xmlrpclib +import api as cobbler_api +import yaml # Howell Clark version +import utils +import sub_process + def main(): core(logger=None) @@ -37,7 +39,15 @@ def core(logger=None): if pid == 0: do_xmlrpc(bootapi, settings, xmlrpc_port, logger) else: - do_syslog(bootapi, settings, syslog_port, logger) + if os.path.exists("/usr/bin/avahi-publish-service"): + pid2 = os.fork() + if pid2 == 0: + do_syslog(bootapi, settings, syslog_port, logger) + else: + do_avahi(bootapi, settings, logger) + else: + do_syslog(bootapi, settings, syslog_port, logger) + def log(logger,msg): if logger is not None: @@ -45,6 +55,17 @@ def log(logger,msg): else: print >>sys.stderr, msg +def do_avahi(bootapi, settings, logger): + # publish via zeroconf. This command will not terminate + log(logger, "publishing avahi service") + cmd = [ "/usr/bin/avahi-publish-service", + "cobblerd", + "_http._tcp", + "%s" % settings.xmlrpc_port ] + result = sub_process.call(cmd, shell=False) + log(logger, "avahi service terminated: %d" % result) + + def do_xmlrpc(bootapi, settings, port, logger): xinterface = CobblerXMLRPCInterface(bootapi,logger) |