+#!/usr/bin/python
+
+# $Id$
+
+# Copyright (c) 2003 Intel Corporation
+# All rights reserved.
+#
+# Copyright (c) 2004-2006 The Trustees of Princeton University
+# All rights reserved.
+
import os
import xmlrpclib
import socket
BOOT_VERSION_3X_FILE='/pl_version'
# minimium version of the boot os we need to run, as a (major,minor) tuple
-MINIMUM_BOOT_VERSION= (2,0)
+MINIMUM_BOOT_VERSION= (3,0)
# minimum version of python required to run the boot manager
MINIMUM_PYTHON_VERSION= (2,2,0)
hardware setup (to fix old cd problems)
Sets the following variables:
- BOOT_CD_VERSION A two number tuple of the boot cd version
+ PARTITIONS A dictionary of generic partition types and their
+ associated devices.
+ BOOT_CD_VERSION A two number tuple of the boot cd version
"""
log.write( "\n\nStep: Initializing the BootManager.\n" )
-
+ # Default model option. Required in case we go into debug mode
+ # before we successfully called GetAndUpdateNodeDetails().
+ vars["NODE_MODEL_OPTIONS"] = vars.get("NODE_MODEL_OPTIONS",0)
+
+ # define the basic partition paths
+ PARTITIONS= {}
+ PARTITIONS["root"]= "/dev/planetlab/root"
+ PARTITIONS["swap"]= "/dev/planetlab/swap"
+ PARTITIONS["vservers"]= "/dev/planetlab/vservers"
+ # Linux 2.6 mounts LVM with device mapper
+ PARTITIONS["mapper-root"]= "/dev/mapper/planetlab-root"
+ PARTITIONS["mapper-swap"]= "/dev/mapper/planetlab-swap"
+ PARTITIONS["mapper-vservers"]= "/dev/mapper/planetlab-vservers"
+ vars["PARTITIONS"]= PARTITIONS
+
log.write( "Opening connection to API server\n" )
try:
api_inst= xmlrpclib.Server( vars['BOOT_API_SERVER'], verbose=0 )
BOOT_CD_VERSION= vars['BOOT_CD_VERSION']
- # old cds need extra modules loaded for compaq smart array
- if BOOT_CD_VERSION[0] == 2:
-
- has_smartarray= utils.sysexec_noerr(
- 'lspci | egrep "0e11:b178|0e11:4070|0e11:4080|0e11:4082|0e11:4083"')
-
- if has_smartarray:
- log.write( "Loading support for Compaq smart array\n" )
- utils.sysexec_noerr( "modprobe cciss", log )
- _create_cciss_dev_entries()
-
-
- has_fusion= utils.sysexec_noerr('lspci | egrep "1000:0030"')
-
- if has_fusion:
- log.write( "Loading support for Fusion MPT SCSI controllers\n" )
- utils.sysexec_noerr( "modprobe mptscsih", log )
+ # In case we are booted with a kernel that does not have the
+ # device mapper code compiled into the kernel.
+ if not os.path.exists("/dev/mapper"):
+ log.write( "Loading support for LVM\n" )
+ utils.sysexec_noerr( "modprobe dm_mod", log )
# for anything that needs to know we are running under the boot cd and
# not the runtime os