From b71845f83a791c59950cdb9d73ffa028d27cf19b Mon Sep 17 00:00:00 2001 From: dave Date: Sun, 28 May 2017 16:57:48 -0700 Subject: [PATCH] Remember selected iso when loading samples --- main.html | 4 ++-- main.py | 25 +++++++++++++------------ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/main.html b/main.html index 92aca62..e3d5fcd 100644 --- a/main.html +++ b/main.html @@ -30,7 +30,7 @@ Base ISO: @@ -40,7 +40,7 @@ Sample configs: diff --git a/main.py b/main.py index fad02b7..f48f19b 100755 --- a/main.py +++ b/main.py @@ -35,29 +35,31 @@ class ISOserver(object): self.samples[item]["SAMPLE_INFO"] = f.read() @cherrypy.expose - def index(self, refresh=False, sample="default"): + def index(self, refresh=False, sample="default", base_image=""): if refresh or "REFRESH" in os.environ: self._load_templates() yield(self.template.render(ISOS=self.iso_selection, SAMPLES=self.samples.keys(), - current_sample=sample, + CURRENT_SAMPLE=sample, + BASE_IMAGE=base_image, **self.samples[sample])) @cherrypy.expose def process(self, menu_entries, seed_content, kickstart, base_image, action, sample): - if action == "Load": - assert sample in self.samples.keys() - raise cherrypy.HTTPRedirect("/?sample={}".format(sample)) - assert base_image in self.iso_selection - cherrypy.response.headers['Content-Type'] = 'application/octet-stream' - cherrypy.response.headers['Content-Description'] = 'File Transfer' - cherrypy.response.headers['Content-Disposition'] = 'attachment; filename="{}-custom.iso"'.format(base_image) + if action == "Load": + assert sample in self.samples.keys() + raise cherrypy.HTTPRedirect("/?base_image={}&sample={}".format(base_image, sample)) - builder = self.isoBuilder(menu_entries, seed_content, kickstart, base_image) - return builder() + elif action == "Build": + cherrypy.response.headers['Content-Type'] = 'application/octet-stream' + cherrypy.response.headers['Content-Description'] = 'File Transfer' + cherrypy.response.headers['Content-Disposition'] = 'attachment; filename="{}-custom.iso"'.format(base_image) + + builder = self.isoBuilder(menu_entries, seed_content, kickstart, base_image) + return builder() process._cp_config = {'response.stream': True} def isoBuilder(self, menu_entries, seed_content, kickstart, base_image): @@ -89,7 +91,6 @@ class ISOserver(object): else: self.builder_semaphores[base_image].release() - print("Done!") return output