before looking in /usr and /usr/boot for the node configuration file,
[bootmanager.git] / source / steps / ReadNodeConfiguration.py
index b4a8e90..99e1a8c 100644 (file)
@@ -67,8 +67,8 @@ def Run( vars, log ):
     these files can exist in several different locations with
     several different names. Below is the search order:
 
-    filename      floppy   flash    cd
-    plnode.txt      1        2      4 (/usr/boot), 5 (/usr)
+    filename      floppy   flash    ramdisk    cd
+    plnode.txt      1        2      4 (/)      5 (/usr/boot), 6 (/usr)
     planet.cnf      3
 
     The locations will be searched in the above order, plnode.txt
@@ -168,7 +168,7 @@ def Run( vars, log ):
 
     conf_file_path= "%s/%s" % (mount_point,NEW_CONF_FILE_NAME)
     
-    log.write( "Checking for existance of %s\n" % conf_file_path )
+    log.write( "Checking for existence of %s\n" % conf_file_path )
     if os.access( conf_file_path, os.R_OK ):
         try:
             conf_file= file(conf_file_path,"r")
@@ -192,7 +192,7 @@ def Run( vars, log ):
     # try to parse it later...
     conf_file_path= "%s/%s" % (mount_point,OLD_CONF_FILE_NAME)
 
-    log.write( "Checking for existance of %s (used later)\n" % conf_file_path )
+    log.write( "Checking for existence of %s (used later)\n" % conf_file_path )
     if os.access( conf_file_path, os.R_OK ):
         try:
             old_conf_file= file(conf_file_path,"r")
@@ -237,7 +237,10 @@ def Run( vars, log ):
 
             partitions= file("/proc/partitions", "r")
             for line in partitions:
-                if not re.search("%s[0-9]+$" % device, line):
+                found_file= 0
+                parsed_file= 0
+                
+                if not re.search("%s[0-9]*$" % device, line):
                     continue
 
                 try:
@@ -260,24 +263,30 @@ def Run( vars, log ):
 
                 conf_file_path= "%s/%s" % (mount_point,NEW_CONF_FILE_NAME)
 
-                log.write( "Checking for existance of %s\n" % conf_file_path )
+                log.write( "Checking for existence of %s\n" % conf_file_path )
                 if os.access( conf_file_path, os.R_OK ):
                     try:
                         conf_file= file(conf_file_path,"r")
                         conf_file_contents= conf_file.read()
                         conf_file.close()
+                        found_file= 1
                         log.write( "Read in contents of file %s\n" % \
                                    conf_file_path )
+
+                        if __parse_configuration_file( vars, log, \
+                                                       conf_file_contents):
+                            parsed_file= 1
                     except IOError, e:
                         log.write( "Unable to read file %s\n" % conf_file_path )
-                        pass
 
                 utils.sysexec_noerr( "umount %s" % mount_point, log )
-                if __parse_configuration_file( vars, log, conf_file_contents):
-                    return 1
-                else:
-                    raise BootManagerException("Found configuration file plnode.txt " \
-                                               "on floppy, but was unable to parse it.")
+                if found_file:
+                    if parsed_file:
+                        return 1
+                    else:
+                        raise BootManagerException( \
+                            "Found configuration file plnode.txt " \
+                            "on floppy, but was unable to parse it.")
 
 
             
@@ -293,12 +302,35 @@ def Run( vars, log ):
                                         "on floppy, but was unable to parse it." )
 
 
-    # 4. check for plnode.txt in /usr/boot (mounted already)
+    # 4. check for plnode.txt in / (ramdisk)
+    log.write( "Checking / (ramdisk) for plnode.txt file.\n" )
+    
+    conf_file_path= "/%s" % NEW_CONF_FILE_NAME
+
+    log.write( "Checking for existence of %s\n" % conf_file_path )
+    if os.access(conf_file_path,os.R_OK):
+        try:
+            conf_file= file(conf_file_path,"r")
+            conf_file_contents= conf_file.read()
+            conf_file.close()
+            log.write( "Read in contents of file %s\n" % conf_file_path )
+        except IOError, e:
+            log.write( "Unable to read file %s\n" % conf_file_path )
+            pass
+    
+        if __parse_configuration_file( vars, log, conf_file_contents):            
+            return 1
+        else:
+            raise BootManagerException( "Found configuration file plnode.txt " \
+                                        "in /, but was unable to parse it.")
+
+    
+    # 5. check for plnode.txt in /usr/boot (mounted already)
     log.write( "Checking /usr/boot (cd) for plnode.txt file.\n" )
     
     conf_file_path= "/usr/boot/%s" % NEW_CONF_FILE_NAME
 
-    log.write( "Checking for existance of %s\n" % conf_file_path )
+    log.write( "Checking for existence of %s\n" % conf_file_path )
     if os.access(conf_file_path,os.R_OK):
         try:
             conf_file= file(conf_file_path,"r")
@@ -317,12 +349,12 @@ def Run( vars, log ):
 
 
 
-    # 5. check for plnode.txt in /usr (mounted already)
+    # 6. check for plnode.txt in /usr (mounted already)
     log.write( "Checking /usr (cd) for plnode.txt file.\n" )
     
     conf_file_path= "/usr/%s" % NEW_CONF_FILE_NAME
 
-    log.write( "Checking for existance of %s\n" % conf_file_path )
+    log.write( "Checking for existence of %s\n" % conf_file_path )
     if os.access(conf_file_path,os.R_OK):
         try:
             conf_file= file(conf_file_path,"r")