# HG changeset patch
# User emellor@xxxxxxxxxxxxxxxxxxxxxx
# Node ID bffbe58801d01853b04967337f247b7f64af5fb4
# Parent 4f247dc79d0ae3ab31f84c6016650815fff0174c
The various changes to move to using info instead of passing the config
sxpr everywhere broke the use of a boot loader for booting with. The
attached fixes things up so that
a) use of a bootloader ==> kernel not specified in the config file
b) don't cleanup bootloader files until after the domain has booted
c) rerun bootloader on reboot
Signed-off-by: Jeremy Katz <katzj@xxxxxxxxxx>
diff -r 4f247dc79d0a -r bffbe58801d0 tools/python/xen/xend/XendDomainInfo.py
--- a/tools/python/xen/xend/XendDomainInfo.py Sat Nov 12 17:52:16 2005
+++ b/tools/python/xen/xend/XendDomainInfo.py Sat Nov 12 17:59:56 2005
@@ -1049,9 +1049,6 @@
self.info['image'],
self.info['device'])
- if self.info['bootloader']:
- self.image.handleBootloading()
-
xc.domain_setcpuweight(self.domid, self.info['cpu_weight'])
m = self.image.getDomainMemory(self.info['memory'] * 1024)
@@ -1073,6 +1070,9 @@
self.introduceDomain()
self.createDevices()
+
+ if self.info['bootloader']:
+ self.image.cleanupBootloading()
self.info['start_time'] = time.time()
@@ -1238,6 +1238,7 @@
False if it is to be destroyed.
"""
+ self.configure_bootloader()
config = self.sxpr()
if self.readVm(RESTART_IN_PROGRESS):
@@ -1340,8 +1341,9 @@
# FIXME: this assumes the disk is the first device and
# that we're booting from the first disk
blcfg = None
+ config = self.sxpr()
# FIXME: this assumes that we want to use the first disk
- dev = sxp.child_value(self.config, "device")
+ dev = sxp.child_value(config, "device")
if dev:
disk = sxp.child_value(dev, "uname")
fn = blkdev_uname_to_file(disk)
@@ -1351,7 +1353,7 @@
msg = "Had a bootloader specified, but can't find disk"
log.error(msg)
raise VmError(msg)
- self.config = sxp.merge(['vm', ['image', blcfg]], self.config)
+ self.info['image'] = sxp.to_string(blcfg)
def send_sysrq(self, key):
diff -r 4f247dc79d0a -r bffbe58801d0 tools/python/xen/xend/image.py
--- a/tools/python/xen/xend/image.py Sat Nov 12 17:52:16 2005
+++ b/tools/python/xen/xend/image.py Sat Nov 12 17:59:56 2005
@@ -95,7 +95,7 @@
("image/ramdisk", self.ramdisk))
- def handleBootloading(self):
+ def cleanupBootloading(self):
self.unlink(self.kernel)
self.unlink(self.ramdisk)
diff -r 4f247dc79d0a -r bffbe58801d0 tools/python/xen/xm/create.py
--- a/tools/python/xen/xm/create.py Sat Nov 12 17:52:16 2005
+++ b/tools/python/xen/xm/create.py Sat Nov 12 17:59:56 2005
@@ -565,7 +565,7 @@
file = blkif.blkdev_uname_to_file(uname)
return bootloader(vals.bootloader, file, not vals.console_autoconnect,
- vals.vcpus, vals.blentry)
+ vals.vcpus, vals.bootentry)
def make_config(vals):
"""Create the domain configuration.
@@ -781,7 +781,7 @@
vals.extra = vnc + ' ' + vals.extra
def preprocess(vals):
- if not vals.kernel:
+ if not vals.kernel and not vals.bootloader:
err("No kernel specified")
preprocess_disk(vals)
preprocess_pci(vals)
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|