python in %pre
KENNEDY VAN DAM Eric
Eric.KENNEDYvanDAM at rvponp.fgov.be
Fri Jan 19 12:22:49 UTC 2007
Hello
I'm trying to solve my disks detection problem. I've found a way to do
which is using python
The problem is that I encounter a import error. It seems that python is
not able to find the modules.
Below is my %pre section. Note that it does not work with %pre
--interpreter or with a #!/usr/bin/python
Can somebody help me ?
Thanks
-------- % pre Section ------
%pre --interpreter=/usr/bin/python
import commands
import os
import string
import sys
import re
# Configuration: size are in Mb
root_size = 512
boot_size = 100
tmp_size = 750
home_size = 256
var_size = 512
opt_size = 128
usr_size = 1024 * 3
srv_size = 128
local_size = 128
ram_swap_ratio = 1.5
# Don't change anything below this line#
script_name = sys.argv[0]
output = commands.getoutput('fdisk -l')
pattern = "sda"
matchobj = re.search(pattern, output)
if matchobj:
scsi = "yes"
else:
scsi = "no"
pattern = "sdb"
matchobj = re.search(pattern, output)
if matchobj:
scsi2 = "yes"
else:
scsi2 = "no"
pattern = "hda"
matchobj = re.search(pattern, output)
if matchobj:
ide = "yes"
else:
ide = "no"
pattern = "hdb"
matchobj = re.search(pattern, output)
if matchobj:
ide2 = "yes"
else:
ide2 = "no"
if scsi == "yes":
drive1 = "sda"
drive1_size = commands.getoutput('fdisk -l').strip()
pattern = "sda: (\d+)"
matchobj = re.search(pattern, drive1_size)
if matchobj:
drive1_size = matchobj.group(1)
if scsi2 == "yes":
drive2 = "sdb"
elif ide == "yes":
drive2 = "hda"
if scsi == "no":
if ide == "yes":
drive1 = "hda"
drive1_size = commands.getoutput('fdisk -l').strip()
pattern = "hda: (\d+)"
matchobj = re.search(pattern, drive1_size)
if matchobj:
drive1_size = matchobj.group(1)
if ide2 == "yes":
drive2 = "hdb"
drive1_size = float(drive1_size)
drive_size_m = int(drive1_size) * 1024
output = commands.getoutput('cat /proc/meminfo').strip()
pattern = "MemTotal:(\s+)(\d+)"
matchobj = re.search(pattern, output)
if matchobj:
mem_size = matchobj.group(2)
mem_size = float(mem_size)/1024
swap_size = int(mem_size * ram_swap_ratio)
f = open('/tmp/part-include', 'w')
f.write("""# Drive partitioning information determined from %s
clearpart --drives=%s --initlabel
part /boot --fstype ext3 --size=%s --ondisk=%s --asprimary
part pv.01 --size 100 --grow --ondisk=%s
volgroup vgfs pv.01
logvol / --vgname=vgfs --size=%s --name=lvroot --fstype ext3
logvol swap --vgname=vgfs --size=%s --name=lvswap --fstype=swap
logvol /tmp --vgname=vgfs --size=%s --name=lvtmp --fstype=ext3
logvol /home --vgname=vgfs --size=%s --name=lvhome --fstype=ext3
logvol /var --vgname=vgfs --size=%s --name=lvvar --fstype=ext3
logvol /opt --vgname=vgfs --size=%s --name=lvopt --fstype=ext3
logvol /srv --vgname=vgfs --size=%s --name=lvsrv --fstype=ext3
logvol /usr --vgname=vgfs --size=%s --name=lvusr --fstype=ext3
logvol /usr/local --vgname=vgfs --size=%s --name=lvlocal --fstype=ext3
""" %(script_name, drive1, boot_size, drive1, drive1, root_size,
swap_size, tmp_
size, home_size, var_size, opt_size, srv_size, usr_size, local_size) )
f.close()
--
Kennedy van Dam Eric
Unix/Storage Team
Phone: +32 (0)2 529 3375
Mail: eric.kennedyvandam at rvponp.fgov.be
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/kickstart-list/attachments/20070119/f46f736b/attachment.htm>
More information about the Kickstart-list
mailing list