+#!/usr/bin/python
+
+# 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_2X_FILE='/usr/bootme/ID'
BOOT_VERSION_3X_FILE='/pl_version'
-# locations of boot server name/certificate files
-V2X_BOOTCD_SERVER_FILE = "/usr/bootme/BOOTSERVER"
-V2X_BOOTCD_SERVER_CACERT_DIR = "/usr/bootme/cacert"
-V2X_CACERT_NAME = "cacert.pem"
-
-V3X_BOOTCD_SERVER_FILE = "/usr/boot/boot_server"
-V3X_BOOTCD_SERVER_CACERT = "/usr/boot/cacert.pem"
-
# 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
- MA_BOOT_SERVER The boot server we contacted, identified from
- files on the boot cd.
- MA_BOOT_SERVER_CACERT The SSL certificate for the above server
-
+ 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" )
+ # 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 )
+ except KeyError, e:
+ raise BootManagerException, \
+ "configuration file does not specify API server URL"
+
+ vars['API_SERVER_INST']= api_inst
if not __check_boot_version( vars, log ):
raise BootManagerException, \
str(vars['BOOT_CD_VERSION']) )
BOOT_CD_VERSION= vars['BOOT_CD_VERSION']
-
-
- log.write( "Identifying boot server and setting up /etc/planetlab entries" )
-
- # need to pull the server name we contacted. 2.x cds will have the
- # info in /usr/bootme; 3.x cds in /usr/boot
- if BOOT_CD_VERSION[0] == 2:
- try:
- boot_server= file(V2X_BOOTCD_SERVER_FILE).readline().strip()
- except IOError:
- raise BootManagerException, \
- "It appears we are running on a v2.x boot cd, but could " \
- "not load contacted boot server from %s" % V2X_BOOTCD_SERVER_FILE
-
- if boot_server == "":
- raise BootManagerException, \
- "It appears we are running on a v2.x boot cd, but %s " \
- "appears to be blank." % V2X_BOOTCD_SERVER_FILE
-
- cacert_file= "%s/%s/%s" % (V2X_BOOTCD_SERVER_CACERT_DIR,
- boot_server, V2X_CACERT_NAME)
-
- elif BOOT_CD_VERSION[0] == 3:
- try:
- boot_server= file(V3X_BOOTCD_SERVER_FILE).read().strip()
- except IOError:
- raise BootManagerException, \
- "It appears we are running on a v3.x boot cd, but could " \
- "not load contacted boot server from %s" % V3X_BOOTCD_SERVER_FILE
-
- if boot_server == "":
- raise BootManagerException, \
- "It appears we are running on a v3.x boot cd, but %s " \
- "appears to be blank." % V3X_BOOTCD_SERVER_FILE
-
- cacert_file= V3X_BOOTCD_SERVER_CACERT
-
- else:
- raise BootManagerException, "Unknown boot cd version."
-
- if not os.access(cacert_file, os.R_OK):
- raise BootManagerException, \
- "Could not find the certificate for the " \
- "specified boot server (at %s)" % cacert_file
-
- # tell the log instance about the boot server so it knows
- # where to upload the logs
- try:
- log.SetUploadServer( self.VARS['MA_BOOT_SERVER'] )
- except KeyError, e:
- log.LogEntry( "configuration does not contain boot server name." )
- return
-
-
- # now that we have the boot server name and the location of its certificate,
- # write out /etc/planetlab/primary_ma with this info.
- try:
- primary_ma_file= file("/etc/planetlab/primary_ma","w")
- primary_ma_file.write( "MA_NAME=\"Unknown\"\n" )
- primary_ma_file.write( "MA_BOOT_SERVER=\"%s\"\n" % boot_server )
- primary_ma_file.write( "MA_BOOT_SERVER_CACERT=\"%s\"\n" % cacert_file )
- primary_ma_file.close()
- primary_ma_file= None
- except IOError:
- raise BootManagerException, "Unable to write out /etc/planetlab/primary_ma"
- vars['MA_BOOT_SERVER']= boot_server
- vars['MA_BOOT_SERVER_CACRET']= cacert_file
-
- self.Message( "Using boot server %s with certificate" %
- (boot_server,cacert_file) )
-
-
- log.write( "Opening connection to API server\n" )
- api_server_url= "https://%s/PLCAPI/" % vars['MA_BOOT_SERVER']
- api_inst= xmlrpclib.Server( api_server_url, verbose=0 )
- vars['API_SERVER_INST']= api_inst
-
-
- # 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 )
-
# for anything that needs to know we are running under the boot cd and
# not the runtime os
os.environ['PL_BOOTCD']= "1"
def _create_cciss_dev_entries():
- utils.sysexec_noerr( "mknod /dev/cciss/c0d0 b 104 0" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d0p1 b 104 1" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d0p2 b 104 2" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d0p3 b 104 3" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d0p4 b 104 4" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d0p5 b 104 5" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d0p6 b 104 6" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d0p7 b 104 7" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d0p8 b 104 8" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d0p9 b 104 9" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d0p10 b 104 10" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d0p11 b 104 11" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d0p12 b 104 12" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d0p13 b 104 13" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d0p14 b 104 14" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d0p15 b 104 15" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d1 b 104 16" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d1p1 b 104 17" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d1p2 b 104 18" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d1p3 b 104 19" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d1p4 b 104 20" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d1p5 b 104 21" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d1p6 b 104 22" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d1p7 b 104 23" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d1p8 b 104 24" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d1p9 b 104 25" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d1p10 b 104 26" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d1p11 b 104 27" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d1p12 b 104 28" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d1p13 b 104 29" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d1p14 b 104 30" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d1p15 b 104 31" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d2 b 104 32" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d2p1 b 104 33" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d2p2 b 104 34" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d2p3 b 104 35" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d2p4 b 104 36" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d2p5 b 104 37" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d2p6 b 104 38" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d2p7 b 104 39" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d2p8 b 104 40" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d2p9 b 104 41" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d2p10 b 104 42" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d2p11 b 104 43" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d2p12 b 104 44" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d2p13 b 104 45" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d2p14 b 104 46" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d2p15 b 104 47" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d3 b 104 48" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d3p1 b 104 49" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d3p2 b 104 50" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d3p3 b 104 51" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d3p4 b 104 52" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d3p5 b 104 53" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d3p6 b 104 54" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d3p7 b 104 55" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d3p8 b 104 56" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d3p9 b 104 57" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d3p10 b 104 58" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d3p11 b 104 59" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d3p12 b 104 60" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d3p13 b 104 61" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d3p14 b 104 62" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d3p15 b 104 63" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d4 b 104 64" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d4p1 b 104 65" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d4p2 b 104 66" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d4p3 b 104 67" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d4p4 b 104 68" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d4p5 b 104 69" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d4p6 b 104 70" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d4p7 b 104 71" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d4p8 b 104 72" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d4p9 b 104 73" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d4p10 b 104 74" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d4p11 b 104 75" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d4p12 b 104 76" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d4p13 b 104 77" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d4p14 b 104 78" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d4p15 b 104 79" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d5 b 104 80" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d5p1 b 104 81" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d5p2 b 104 82" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d5p3 b 104 83" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d5p4 b 104 84" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d5p5 b 104 85" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d5p6 b 104 86" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d5p7 b 104 87" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d5p8 b 104 88" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d5p9 b 104 89" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d5p10 b 104 90" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d5p11 b 104 91" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d5p12 b 104 92" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d5p13 b 104 93" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d5p14 b 104 94" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d5p15 b 104 95" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d6 b 104 96" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d6p1 b 104 97" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d6p2 b 104 98" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d6p3 b 104 99" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d6p4 b 104 100" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d6p5 b 104 101" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d6p6 b 104 102" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d6p7 b 104 103" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d6p8 b 104 104" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d6p9 b 104 105" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d6p10 b 104 106" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d6p11 b 104 107" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d6p12 b 104 108" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d6p13 b 104 109" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d6p14 b 104 110" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d6p15 b 104 111" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d7 b 104 112" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d7p1 b 104 113" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d7p2 b 104 114" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d7p3 b 104 115" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d7p4 b 104 116" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d7p5 b 104 117" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d7p6 b 104 118" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d7p7 b 104 119" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d7p8 b 104 120" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d7p9 b 104 121" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d7p10 b 104 122" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d7p11 b 104 123" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d7p12 b 104 124" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d7p13 b 104 125" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d7p14 b 104 126" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d7p15 b 104 127" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d8 b 104 128" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d8p1 b 104 129" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d8p2 b 104 130" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d8p3 b 104 131" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d8p4 b 104 132" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d8p5 b 104 133" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d8p6 b 104 134" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d8p7 b 104 135" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d8p8 b 104 136" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d8p9 b 104 137" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d8p10 b 104 138" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d8p11 b 104 139" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d8p12 b 104 140" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d8p13 b 104 141" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d8p14 b 104 142" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d8p15 b 104 143" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d9 b 104 144" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d9p1 b 104 145" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d9p2 b 104 146" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d9p3 b 104 147" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d9p4 b 104 148" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d9p5 b 104 149" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d9p6 b 104 150" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d9p7 b 104 151" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d9p8 b 104 152" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d9p9 b 104 153" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d9p10 b 104 154" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d9p11 b 104 155" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d9p12 b 104 156" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d9p13 b 104 157" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d9p14 b 104 158" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d9p15 b 104 159" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d10 b 104 160" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d10p1 b 104 161" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d10p2 b 104 162" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d10p3 b 104 163" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d10p4 b 104 164" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d10p5 b 104 165" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d10p6 b 104 166" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d10p7 b 104 167" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d10p8 b 104 168" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d10p9 b 104 169" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d10p10 b 104 170" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d10p11 b 104 171" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d10p12 b 104 172" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d10p13 b 104 173" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d10p14 b 104 174" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d10p15 b 104 175" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d11 b 104 176" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d11p1 b 104 177" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d11p2 b 104 178" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d11p3 b 104 179" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d11p4 b 104 180" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d11p5 b 104 181" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d11p6 b 104 182" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d11p7 b 104 183" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d11p8 b 104 184" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d11p9 b 104 185" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d11p10 b 104 186" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d11p11 b 104 187" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d11p12 b 104 188" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d11p13 b 104 189" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d11p14 b 104 190" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d11p15 b 104 191" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d12 b 104 192" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d12p1 b 104 193" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d12p2 b 104 194" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d12p3 b 104 195" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d12p4 b 104 196" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d12p5 b 104 197" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d12p6 b 104 198" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d12p7 b 104 199" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d12p8 b 104 200" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d12p9 b 104 201" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d12p10 b 104 202" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d12p11 b 104 203" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d12p12 b 104 204" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d12p13 b 104 205" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d12p14 b 104 206" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d12p15 b 104 207" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d13 b 104 208" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d13p1 b 104 209" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d13p2 b 104 210" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d13p3 b 104 211" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d13p4 b 104 212" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d13p5 b 104 213" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d13p6 b 104 214" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d13p7 b 104 215" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d13p8 b 104 216" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d13p9 b 104 217" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d13p10 b 104 218" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d13p11 b 104 219" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d13p12 b 104 220" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d13p13 b 104 221" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d13p14 b 104 222" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d13p15 b 104 223" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d14 b 104 224" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d14p1 b 104 225" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d14p2 b 104 226" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d14p3 b 104 227" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d14p4 b 104 228" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d14p5 b 104 229" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d14p6 b 104 230" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d14p7 b 104 231" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d14p8 b 104 232" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d14p9 b 104 233" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d14p10 b 104 234" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d14p11 b 104 235" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d14p12 b 104 236" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d14p13 b 104 237" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d14p14 b 104 238" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d14p15 b 104 239" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d15 b 104 240" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d15p1 b 104 241" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d15p2 b 104 242" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d15p3 b 104 243" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d15p4 b 104 244" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d15p5 b 104 245" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d15p6 b 104 246" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d15p7 b 104 247" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d15p8 b 104 248" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d15p9 b 104 249" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d15p10 b 104 250" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d15p11 b 104 251" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d15p12 b 104 252" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d15p13 b 104 253" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d15p14 b 104 254" )
- utils.sysexec_noerr( "mknod /dev/cciss/c0d15p15 b 104 255" )
-
-
-
+ def mkccissnod(dev,node):
+ dev = dev + " b 104 %d" % (node)
+ cmd = "mknod /dev/cciss/%s" %dev
+ utils.sysexec_noerr(cmd)
+ node = node + 1
+ return node
+
+ node = 0
+ for i in range(0,16):
+ dev = "c0d%d" % i
+ node = mkccissnod(dev,node)
+ for j in range(1,16):
+ subdev = dev + "p%d" % j
+ node = mkccissnod(subdev,node)