Blame SOURCES/buildiso-no-local-hdd.patch

1070a0
diff -rupN cobbler-2.0.7-orig/cobbler/action_buildiso.py cobbler-2.0.7/cobbler/action_buildiso.py
1070a0
--- cobbler-2.0.7-orig/cobbler/action_buildiso.py	2015-09-07 08:32:49.197852179 -0400
1070a0
+++ cobbler-2.0.7/cobbler/action_buildiso.py	2015-09-07 08:33:42.301458113 -0400
1070a0
@@ -45,6 +45,9 @@ TIMEOUT 200
1070a0
 TOTALTIMEOUT 6000
1070a0
 ONTIMEOUT local
1070a0
 
1070a0
+"""
1070a0
+
1070a0
+LOCAL_HDD_HEADER = HEADER + """
1070a0
 LABEL local
1070a0
         MENU LABEL (local)
1070a0
         MENU DEFAULT
1070a0
@@ -86,7 +89,7 @@ class BuildIso:
1070a0
             return str(self.distctr)
1070a0
 
1070a0
   
1070a0
-    def generate_netboot_iso(self,imagesdir,isolinuxdir,profiles=None,systems=None,exclude_dns=None,force_server=None):
1070a0
+    def generate_netboot_iso(self,imagesdir,isolinuxdir,profiles=None,systems=None,exclude_dns=None,force_server=None,no_local_hdd=None):
1070a0
         self.logger.info("copying kernels and initrds for profiles")
1070a0
         # copy all images in included profiles to images dir
1070a0
         for profile in self.api.profiles():
1070a0
@@ -131,7 +134,11 @@ class BuildIso:
1070a0
         self.logger.info("generating a isolinux.cfg")
1070a0
         isolinuxcfg = os.path.join(isolinuxdir, "isolinux.cfg")
1070a0
         cfg = open(isolinuxcfg, "w+")
1070a0
-        cfg.write(HEADER) # fixme, use template
1070a0
+        header_written = True
1070a0
+        if not no_local_hdd:
1070a0
+            cfg.write(LOCAL_HDD_HEADER) # fixme, use template
1070a0
+        else:
1070a0
+            header_written = False
1070a0
 
1070a0
         self.logger.info("generating profile list")
1070a0
        #sort the profiles
1070a0
@@ -156,6 +163,10 @@ class BuildIso:
1070a0
                     data["server"] = force_server
1070a0
                 distname = self.make_shorter(dist.name)
1070a0
 
1070a0
+                if not header_written:
1070a0
+                    cfg.write(HEADER.replace('local', profile.name))
1070a0
+                    header_written = True
1070a0
+
1070a0
                 cfg.write("\n")
1070a0
                 cfg.write("LABEL %s\n" % profile.name)
1070a0
                 cfg.write("  MENU LABEL %s\n" % profile.name)
1070a0
@@ -197,7 +197,8 @@ class BuildIso:
1070a0
         if systems is not None:
1070a0
            self.logger.info("generating system list")
1070a0
 
1070a0
-           cfg.write("\nMENU SEPARATOR\n")
1070a0
+           if header_written:
1070a0
+               cfg.write("\nMENU SEPARATOR\n")
1070a0
 
1070a0
           #sort the systems
1070a0
            system_list = [system for system in self.systems]
1070a0
@@ -222,6 +223,10 @@ class BuildIso:
1070a0
                        data["server"] = force_server
1070a0
                    distname = self.make_shorter(dist.name)
1070a0
 
1070a0
+                   if not header_written:
1070a0
+                       cfg.write(HEADER.replace('local', system.name))
1070a0
+                       header_written = True
1070a0
+
1070a0
                    cfg.write("\n")
1070a0
                    cfg.write("LABEL %s\n" % system.name)
1070a0
                    cfg.write("  MENU LABEL %s\n" % system.name)
1070a0
@@ -295,6 +300,9 @@ class BuildIso:
1070a0
 
1070a0
                    cfg.write(append_line)
1070a0
 
1070a0
+        if not header_written:
1070a0
+            cfg.write(HEADER)
1070a0
+
1070a0
         self.logger.info("done writing config")
1070a0
         cfg.write("\n")
1070a0
         cfg.write("MENU END\n")
1070a0
@@ -375,7 +386,7 @@ class BuildIso:
1070a0
         return
1070a0
 
1070a0
 
1070a0
-    def run(self,iso=None,tempdir=None,profiles=None,systems=None,distro=None,standalone=None,source=None,exclude_dns=None,force_server=None):
1070a0
+    def run(self,iso=None,tempdir=None,profiles=None,systems=None,distro=None,standalone=None,source=None,exclude_dns=None,force_server=None,no_local_hdd=None):
1070a0
 
1070a0
         # the distro option is for stand-alone builds only
1070a0
         if not standalone and distro is not None:
1070a0
@@ -446,7 +457,7 @@ class BuildIso:
1070a0
         if standalone:
1070a0
             self.generate_standalone_iso(imagesdir,isolinuxdir,distro,source)
1070a0
         else:
1070a0
-            self.generate_netboot_iso(imagesdir,isolinuxdir,profiles,systems,exclude_dns,force_server)
1070a0
+            self.generate_netboot_iso(imagesdir,isolinuxdir,profiles,systems,exclude_dns,force_server,no_local_hdd)
1070a0
 
1070a0
         # removed --quiet
1070a0
         cmd = "mkisofs -o %s -r -b isolinux/isolinux.bin -c isolinux/boot.cat" % iso
1070a0
diff -rupN cobbler-2.0.7-orig/cobbler/api.py cobbler-2.0.7/cobbler/api.py
1070a0
--- cobbler-2.0.7-orig/cobbler/api.py	2015-09-07 08:32:49.197852179 -0400
1070a0
+++ cobbler-2.0.7/cobbler/api.py	2015-09-07 08:34:50.453735488 -0400
1070a0
@@ -748,10 +748,10 @@ class BootAPI:
1070a0
 
1070a0
     # ==========================================================================
1070a0
 
1070a0
-    def build_iso(self,iso=None,profiles=None,systems=None,tempdir=None,distro=None,standalone=None,source=None, exclude_dns=None, logger=None, force_server=None):
1070a0
+    def build_iso(self,iso=None,profiles=None,systems=None,tempdir=None,distro=None,standalone=None,source=None, exclude_dns=None, logger=None, force_server=None, no_local_hdd=None):
1070a0
         builder = action_buildiso.BuildIso(self._config, logger=logger)
1070a0
         return builder.run(
1070a0
-           iso=iso, profiles=profiles, systems=systems, tempdir=tempdir, distro=distro, standalone=standalone, source=source, exclude_dns=exclude_dns, force_server=force_server
1070a0
+           iso=iso, profiles=profiles, systems=systems, tempdir=tempdir, distro=distro, standalone=standalone, source=source, exclude_dns=exclude_dns, force_server=force_server,no_local_hdd=no_local_hdd
1070a0
         )
1070a0
 
1070a0
     # ==========================================================================
1070a0
diff -rupN cobbler-2.0.7-orig/cobbler/cli.py cobbler-2.0.7/cobbler/cli.py
1070a0
--- cobbler-2.0.7-orig/cobbler/cli.py	2015-09-07 08:32:49.198852228 -0400
1070a0
+++ cobbler-2.0.7/cobbler/cli.py	2015-09-07 08:35:19.491150220 -0400
1070a0
@@ -323,6 +323,7 @@ class BootCLI:
1070a0
             self.parser.add_option("--source",   dest="source",   help="(OPTIONAL) used with --standalone to specify a source for the distribution files")
1070a0
             self.parser.add_option("--exclude-dns", dest="exclude_dns", action="store_true", help="(OPTIONAL) prevents addition of name server addresses to the kernel boot options")
1070a0
             self.parser.add_option("--force-server", dest="force_server", help="(OPTIONAL) when kickstarting get required files from the given server instead of the default (may be given as IP Address or FQDN of the server). Useful when kickstarting through a proxy.")
1070a0
+            self.parser.add_option("--no-local-hdd",   dest="no_local_hdd", action="store_true",  help="(OPTIONAL) removes option to boot from local hdd, keeps only kickstart profiles in boot menu")
1070a0
 
1070a0
             (options, args) = self.parser.parse_args()
1070a0
             task_id = self.start_task("buildiso",options)
1070a0
diff -rupN cobbler-2.0.7-orig/cobbler/remote.py cobbler-2.0.7/cobbler/remote.py
1070a0
--- cobbler-2.0.7-orig/cobbler/remote.py	2015-09-07 08:32:49.198852228 -0400
1070a0
+++ cobbler-2.0.7/cobbler/remote.py	2015-09-07 08:35:49.765636882 -0400
1070a0
@@ -153,7 +153,8 @@ class CobblerXMLRPCInterface:
1070a0
                 self.options.get("source",None),
1070a0
                 self.options.get("exclude_dns",False),
1070a0
                 self.logger,
1070a0
-                self.options.get("force_server",None)
1070a0
+                self.options.get("force_server",None),
1070a0
+                self.options.get("no_local_hdd",False)
1070a0
             )
1070a0
         def on_done(self):
1070a0
             if self.options.get("iso","") == "/var/www/cobbler/pub/generated.iso":