FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Ubuntu > Ubuntu User

 
 
LinkBack Thread Tools
 
Old 01-20-2011, 05:20 PM
Chris Lumens
 
Default Don't call preprocessKickstart from within anaconda as well.

Since the loader is doing this now, we can just call it once there, then pass
the preprocessed file location into anaconda via the --kickstart parameter.
---
loader/kickstart.c | 10 +++++-----
loader/kickstart.h | 2 +-
loader/loader.c | 10 +++++++---
pyanaconda/kickstart.py | 9 +--------
4 files changed, 14 insertions(+), 17 deletions(-)

diff --git a/loader/kickstart.c b/loader/kickstart.c
index 3374432..298b3bb 100644
--- a/loader/kickstart.c
+++ b/loader/kickstart.c
@@ -967,11 +967,11 @@ cleanup:
Py_XDECREF(proxyObj);
}

-int runKickstart(struct loaderData_s * loaderData, const char *file) {
+char *runKickstart(struct loaderData_s * loaderData, const char *file) {
PyObject *versionMod, *parserMod = NULL;
PyObject *handler, *parser;
PyObject *processedFile;
- int rc = 0;
+ char *retval = NULL;

PyObject *callable = NULL;

@@ -1014,9 +1014,9 @@ int runKickstart(struct loaderData_s * loaderData, const char *file) {
*/
for (cmd = ksTable; *cmd != NULL; cmd++)
(*cmd)(loaderData, handler);
- }

- rc = 1;
+ retval = strdup(PyString_AsString(processedFile));
+ }

quit:
Py_XDECREF(constantsMod);
@@ -1024,7 +1024,7 @@ quit:
Py_XDECREF(callable);
Py_XDECREF(parserMod);
Py_Finalize();
- return rc;
+ return retval;
}

/* vim:set sw=4 sts=4 et: */
diff --git a/loader/kickstart.h b/loader/kickstart.h
index 8f1c734..8163cb7 100644
--- a/loader/kickstart.h
+++ b/loader/kickstart.h
@@ -23,7 +23,7 @@

int isKickstartFileRemote(char *ksFile);
void getKickstartFile(struct loaderData_s * loaderData);
-int runKickstart(struct loaderData_s * loaderData, const char *file);
+char *runKickstart(struct loaderData_s * loaderData, const char *file);
int getKickstartFromBlockDevice(char *device, char *path);

#endif
diff --git a/loader/loader.c b/loader/loader.c
index e980913..08b8c3c 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -1824,6 +1824,7 @@ int main(int argc, char ** argv) {

char ** argptr, ** tmparg;
char * anacondaArgs[50];
+ char * outputKSFile = NULL;

struct loaderData_s loaderData;

@@ -2139,7 +2140,7 @@ int main(int argc, char ** argv) {
if (!ksFile)
getKickstartFile(&loaderData);
if (FL_KICKSTART(flags))
- runKickstart(&loaderData, (ksFile)?ksFile:loaderData.ksFile);
+ outputKSFile = runKickstart(&loaderData, (ksFile)?ksFile:loaderData.ksFile);
}

if (FL_EARLY_NETWORKING(flags)) {
@@ -2255,9 +2256,12 @@ int main(int argc, char ** argv) {
*argptr++ = "--headless";
#endif

- if (FL_KICKSTART(flags)) {
+ /* Pass the local, preprocessed kickstart file to anaconda. There's no
+ * need for another fetch and another call to preprocessKickstart.
+ */
+ if (FL_KICKSTART(flags) && outputKSFile) {
*argptr++ = "--kickstart";
- *argptr++ = loaderData.ksFile;
+ *argptr++ = outputKSFile;
}

if (FL_SERIAL(flags))
diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py
index 6513d80..25c0cf6 100644
--- a/pyanaconda/kickstart.py
+++ b/pyanaconda/kickstart.py
@@ -1306,14 +1306,7 @@ def preScriptPass(anaconda, file):
runPreScripts(anaconda, ksparser.handler.scripts)

def parseKickstart(anaconda, file):
- try:
- file = preprocessKickstart(file)
- except KickstartError, msg:
- stderrLog.critical(_("Error processing %%ksappend lines: %s") % msg)
- sys.exit(1)
- except Exception, e:
- stderrLog.critical(_("Unknown error processing %%ksappend lines: %s") % e)
- sys.exit(1)
+ # preprocessing the kickstart file has already been handled by loader.

handler = AnacondaKSHandler(anaconda)
ksparser = AnacondaKSParser(handler)
--
1.7.1.1

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
 

Thread Tools




All times are GMT. The time now is 02:45 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org