summaryrefslogtreecommitdiffstats
path: root/cobbler/action_sync.py
diff options
context:
space:
mode:
authorDavid Lutterkort <dlutter@redhat.com>2006-10-27 17:42:46 -0700
committerJim Meyering <jim@meyering.net>2006-10-27 17:42:46 -0700
commit68c6ec5f26e67d578e4629c817dddd187ff40510 (patch)
tree1f34d8d5a3da9c890ddcf5faacf3a065d6a4b61a /cobbler/action_sync.py
parent0efafa0d4b88b8975e23ad5315f42a11e578507e (diff)
downloadthird_party-cobbler-68c6ec5f26e67d578e4629c817dddd187ff40510.tar.gz
third_party-cobbler-68c6ec5f26e67d578e4629c817dddd187ff40510.tar.xz
third_party-cobbler-68c6ec5f26e67d578e4629c817dddd187ff40510.zip
Add support for default PXE boots via /etc/cobbler/default.pxe; wrap
service reloads/restarts so they don't happen in dryrun mode; allow '-n' as an alias for '--dryrun' when syncing.
Diffstat (limited to 'cobbler/action_sync.py')
-rw-r--r--cobbler/action_sync.py23
1 files changed, 21 insertions, 2 deletions
diff --git a/cobbler/action_sync.py b/cobbler/action_sync.py
index fb7697a..60919e7 100644
--- a/cobbler/action_sync.py
+++ b/cobbler/action_sync.py
@@ -67,7 +67,7 @@ class BootSync:
if self.settings.manage_dhcp:
self.write_dhcp_file()
try:
- retcode = sub_process.call("/sbin/service dhcpd restart", shell=True)
+ retcode = self.service("dhcpd", "restart")
if retcode != 0:
print >>sys.stderr, "Warning: dhcpd restart failed"
except OSError, e:
@@ -172,7 +172,7 @@ class BootSync:
config_data = config_data.replace("/cobbler_webdir",self.settings.webdir)
self.tee(f, config_data)
self.close_file(f)
- sub_process.call("/sbin/service httpd reload", shell=True)
+ self.service("httpd", "reload")
def clean_trees(self):
"""
@@ -369,6 +369,13 @@ class BootSync:
# yaml file: http only
self.write_profile_file(filename,p)
+ # Copy default PXE file if it exists; if there's none, ignore
+ # FIXME: Log something inobtrusive ifthe default file is missing
+ src = "/etc/cobbler/default.pxe"
+ if os.path.exists(src):
+ dst = os.path.join(self.settings.tftpboot, "pxelinux.cfg", "default")
+ self.copyfile(src, dst)
+
for system in self.systems:
profile = self.profiles.find(system.profile)
if profile is None:
@@ -627,6 +634,18 @@ class BootSync:
if not oe.errno == 17: # already exists (no constant for 17?)
raise cexceptions.CobblerException("no_create", path)
+ def service(self, name, action):
+ """
+ Call /sbin/service NAME ACTION, unless its a dryrun
+ """
+
+ cmd = "/sbin/service %s %s" % (name, action)
+ if self.dryrun:
+ print cmd
+ return 0
+ else:
+ return sub_process.call(cmd, shell=True)
+
def blend_options(self, is_for_kernel, list_of_opts):
"""
Given a list of options, take the values used by the