summaryrefslogtreecommitdiffstats
path: root/cobbler/action_sync.py
diff options
context:
space:
mode:
authorMichael DeHaan <mdehaan@redhat.com>2008-04-09 11:46:29 -0400
committerMichael DeHaan <mdehaan@redhat.com>2008-04-09 11:46:29 -0400
commita5575530aee5642bfb0d99af5088d0519845b0f4 (patch)
tree50d529237b56aff2cabd14fdcf3c65185b49605e /cobbler/action_sync.py
parent421abb9ba9d45037cc4fce41408d0f5dfd3cf62e (diff)
downloadthird_party-cobbler-a5575530aee5642bfb0d99af5088d0519845b0f4.tar.gz
third_party-cobbler-a5575530aee5642bfb0d99af5088d0519845b0f4.tar.xz
third_party-cobbler-a5575530aee5642bfb0d99af5088d0519845b0f4.zip
Apply iranzo's memtest patch
Diffstat (limited to 'cobbler/action_sync.py')
-rw-r--r--cobbler/action_sync.py53
1 files changed, 51 insertions, 2 deletions
diff --git a/cobbler/action_sync.py b/cobbler/action_sync.py
index 8a0eadf..5cb0977 100644
--- a/cobbler/action_sync.py
+++ b/cobbler/action_sync.py
@@ -109,6 +109,11 @@ class BootSync:
self.copyfile(path, destpath)
self.copyfile("/var/lib/cobbler/menu.c32", os.path.join(self.bootloc, "menu.c32"))
+ # Copy memtest to tftpboot if package is installed on system
+ for memtest in glob.glob('/boot/memtest*'):
+ base = os.path.basename(memtest)
+ self.copyfile(memtest,os.path.join(self.bootloc,"images",base))
+
def write_dhcp_file(self):
"""
DHCP files are written when manage_dhcp is set in
@@ -818,13 +823,57 @@ class BootSync:
contents = self.write_pxe_file(None,None,profile,distro,False,include_header=False)
if contents is not None:
pxe_menu_items = pxe_menu_items + contents + "\n"
-
- # save the template.
+
+ # if we have any memtest files in images, make entries for them
+ # after we list the profiles
+ memtests = glob.glob(self.bootloc + "/images/memtest*")
+ if len(memtests) > 0:
+ pxe_menu_items = pxe_menu_items + "\n\n"
+ for memtest in glob.glob(self.bootloc + '/memtest*'):
+ base = os.path.basename(memtest)
+ contents = self.write_memtest_pxe("/images/%s" % base)
+ pxe_menu_items = pxe_menu_items + contents + "\n"
+
+ # save the template.
metadata = { "pxe_menu_items" : pxe_menu_items }
outfile = os.path.join(self.bootloc, "pxelinux.cfg", "default")
self.apply_template(template_data, metadata, outfile)
template_src.close()
+ def write_memtest_pxe(self,filename):
+ """
+ Write a configuration file for memtest
+ """
+
+ # ---
+ # just some random variables
+ template = None
+ metadata = {}
+ buffer = ""
+
+ # ---
+ template = "/etc/cobbler/pxeprofile.template"
+
+ # ---
+ # store variables for templating
+ metadata["menu_label"] = "MENU LABEL %s" % os.path.basename(filename)
+ metadata["profile_name"] = os.path.basename(filename)
+ metadata["kernel_path"] = "/images/%s" % os.path.basename(filename)
+ metadata["initrd_path"] = ""
+ metadata["append_line"] = ""
+
+ # ---
+ # get the template
+ template_fh = open(template)
+ template_data = template_fh.read()
+ template_fh.close()
+
+ # ---
+ # return results
+ buffer = self.apply_template(template_data, metadata, None)
+ return buffer
+
+
def write_pxe_file(self,filename,system,profile,distro,is_ia64, include_header=True):
"""