Set kernel params in grub config using web UI

* remove hardcoded grub settings
  and set params sended by Nailgun.
* remove code which set parameters
  in /etc/grub.cfg file, this file
  doesn't exist in ubuntu or centos.

Tested on the iso, patches were applied manually.

Depends on: https://review.openstack.org/#/c/90075

Change-Id: I0ad883c087dc39cd4032d739c70466d7aa0098d1
Related-Bug: #1295131
This commit is contained in:
Vladimir Sharshov 2014-04-25 09:57:22 +04:00 committed by Evgeniy L
parent fa57b98344
commit 15356dc42a
4 changed files with 24 additions and 21 deletions

View File

@ -5,11 +5,14 @@ import math
import re
class PManager(object):
def __init__(self, data):
if isinstance(data, (str, unicode)):
self.data = json.loads(data)
def __init__(self, pm_data):
if isinstance(pm_data, (str, unicode)):
self.pm_data = json.loads(pm_data)
else:
self.data = data
self.pm_data = pm_data
self.data = self.pm_data['ks_spaces']
self.kernel_params = self.pm_data['kernel_params']
self.factor = 1
self.unit = "MiB"
@ -442,10 +445,10 @@ class PManager(object):
"".format(self._disk_dev(disk)))
if devs:
self.kick("bootloader --location=mbr --driveorder={0} "
"--append=' console=ttyS0,9600 console=tty0 "
"biosdevname=0 "
"crashkernel=none rootdelay=90 "
"nomodeset '".format(",".join(devs)))
"--append=' {1} '".format(
",".join(devs),
self.kernel_params))
for dev in devs:
self.post("echo -n > /tmp/grub.script")
self.post("echo \\\"device (hd0) /dev/{0}\\\" >> "
@ -464,9 +467,6 @@ class PManager(object):
self.post("echo quit >> /tmp/grub.script")
self.post("cat /tmp/grub.script | chroot /mnt/sysimage "
"/sbin/grub --no-floppy --batch")
self.post("sed -i 's/hiddenmenu/hiddenmenu\\nserial\\ "
"--unit=1\\ --speed=19200\\nterminal\\ "
"--timeout=8\\ console\\ serial/g' /etc/grub.cfg")
def expose(self,
kickfile="/tmp/partition.ks",
@ -507,11 +507,14 @@ class PManager(object):
class PreseedPManager(object):
def __init__(self, data):
if isinstance(data, (str, unicode)):
self.data = json.loads(data)
def __init__(self, pm_data):
if isinstance(pm_data, (str, unicode)):
self.pm_data = json.loads(pm_data)
else:
self.data = data
self.pm_data = pm_data
self.data = self.pm_data['ks_spaces']
self.kernel_params = self.pm_data['kernel_params']
self.validate()
self.factor = 1
@ -949,9 +952,9 @@ class PreseedPManager(object):
"-e 's/.*GRUB_TERMINAL.*/GRUB_TERMINAL=console/g' "
"-e 's/.*GRUB_GFXMODE.*/#GRUB_GFXMODE=640x480/g' "
"-e 's/.*GRUB_CMDLINE_LINUX.*/"
"GRUB_CMDLINE_LINUX=\"console=tty0 "
"rootdelay=90 nomodeset "
"console=ttyS0,9600\"/g' /etc/default/grub", True)
"GRUB_CMDLINE_LINUX=\" {0} \"/g' /etc/default/grub".format(
self.kernel_params),
True)
self._umount_target()
self._mount_target()
self.late("grub-mkconfig", True)

View File

@ -1,4 +1,4 @@
#import pmanager
#set $pm = $pmanager.PManager($getVar("ks_spaces","[]"))
#set $pm = $pmanager.PManager($getVar("pm_data",{}))
#silent $pm.eval()
$pm.expose()

View File

@ -1,5 +1,5 @@
#import pmanager
#set $pm = $pmanager.PreseedPManager($getVar("ks_spaces","[]"))
#set $pm = $pmanager.PreseedPManager($getVar("pm_data",{}))
#silent $pm.eval()
d-i partman/early_command string \

View File

@ -1,4 +1,4 @@
#import pmanager
#set $pm = $pmanager.PreseedPManager($getVar("ks_spaces","[]"))
#set $pm = $pmanager.PreseedPManager($getVar("pm_data",{}))
#silent $pm.eval()
$pm.expose_late()