This commit is contained in:
committed by
Git OBS Bridge
parent
39a4f201bc
commit
759005f5a4
@@ -1,3 +1,51 @@
|
||||
Index: xen-3.0.4-testing/tools/python/xen/xend/XendBootloader.py
|
||||
===================================================================
|
||||
--- xen-3.0.4-testing.orig/tools/python/xen/xend/XendBootloader.py
|
||||
+++ xen-3.0.4-testing/tools/python/xen/xend/XendBootloader.py
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
import os, select, errno, stat
|
||||
import random
|
||||
+import re
|
||||
import shlex
|
||||
from xen.xend import sxp
|
||||
|
||||
@@ -57,6 +58,8 @@ def bootloader(blexec, disk, quiet = Fal
|
||||
args.append("-q")
|
||||
if dryrun:
|
||||
args.append("--dryrun")
|
||||
+ if kernel_args:
|
||||
+ args.append("--args=%s" % kernel_args)
|
||||
args.append("--output=%s" % fifo)
|
||||
if blargs:
|
||||
args.extend(shlex.split(blargs))
|
||||
@@ -97,3 +100,26 @@ def bootloader(blexec, disk, quiet = Fal
|
||||
pin.input_eof()
|
||||
blcfg = pin.val
|
||||
return blcfg
|
||||
+
|
||||
+def bootfilter(bootloader, bootloader_args, vdisk):
|
||||
+ """Is this virtual disk ok to boot from?"""
|
||||
+ if vdisk.endswith(':disk'):
|
||||
+ vdisk = vdisk[:-5] # temporary work-around for bug 237414
|
||||
+ if bootloader.endswith('domUloader.py'):
|
||||
+ for arg in bootloader_args.split():
|
||||
+ if arg.startswith('--entry='):
|
||||
+ m = re.match(r'^([hsx]v?d[a-z])[0-9]*:[^,]*(,[^,]*)?$', arg[8:])
|
||||
+ if m:
|
||||
+ return vdisk == m.group(1) or vdisk == m.group(2)
|
||||
+ return True
|
||||
+
|
||||
+def bootselector(bootloader, bootloader_args, disks):
|
||||
+ """Returns the desired disk to boot from.
|
||||
+ @param disks List of (pdev, vdev, ...) tuples.
|
||||
+ """
|
||||
+ if bootloader.endswith('domUloader.py'):
|
||||
+ for disk in disks:
|
||||
+ if bootfilter(bootloader, bootloader_args, disk[1]):
|
||||
+ return disk
|
||||
+ return disks[0]
|
||||
+
|
||||
Index: xen-3.0.4-testing/tools/python/xen/xend/XendDomainInfo.py
|
||||
===================================================================
|
||||
--- xen-3.0.4-testing.orig/tools/python/xen/xend/XendDomainInfo.py
|
||||
@@ -30,45 +78,6 @@ Index: xen-3.0.4-testing/tools/python/xen/xend/XendDomainInfo.py
|
||||
fn = blkdev_uname_to_file(disk)
|
||||
mounted = devtype == 'tap' and not os.stat(fn).st_rdev
|
||||
if mounted:
|
||||
Index: xen-3.0.4-testing/tools/python/xen/xend/XendBootloader.py
|
||||
===================================================================
|
||||
--- xen-3.0.4-testing.orig/tools/python/xen/xend/XendBootloader.py
|
||||
+++ xen-3.0.4-testing/tools/python/xen/xend/XendBootloader.py
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
import os, select, errno, stat
|
||||
import random
|
||||
+import re
|
||||
import shlex
|
||||
from xen.xend import sxp
|
||||
|
||||
@@ -97,3 +98,26 @@ def bootloader(blexec, disk, quiet = Fal
|
||||
pin.input_eof()
|
||||
blcfg = pin.val
|
||||
return blcfg
|
||||
+
|
||||
+def bootfilter(bootloader, bootloader_args, vdisk):
|
||||
+ """Is this virtual disk ok to boot from?"""
|
||||
+ if vdisk.endswith(':disk'):
|
||||
+ vdisk = vdisk[:-5] # temporary work-around for bug 237414
|
||||
+ if bootloader.endswith('domUloader.py'):
|
||||
+ for arg in bootloader_args.split():
|
||||
+ if arg.startswith('--entry='):
|
||||
+ m = re.match(r'^([hsx]v?d[a-z])[0-9]*:[^,]*(,[^,]*)?$', arg[8:])
|
||||
+ if m:
|
||||
+ return vdisk == m.group(1) or vdisk == m.group(2)
|
||||
+ return True
|
||||
+
|
||||
+def bootselector(bootloader, bootloader_args, disks):
|
||||
+ """Returns the desired disk to boot from.
|
||||
+ @param disks List of (pdev, vdev, ...) tuples.
|
||||
+ """
|
||||
+ if bootloader.endswith('domUloader.py'):
|
||||
+ for disk in disks:
|
||||
+ if bootfilter(bootloader, bootloader_args, disk[1]):
|
||||
+ return disk
|
||||
+ return disks[0]
|
||||
+
|
||||
Index: xen-3.0.4-testing/tools/python/xen/xm/create.py
|
||||
===================================================================
|
||||
--- xen-3.0.4-testing.orig/tools/python/xen/xm/create.py
|
||||
@@ -82,7 +91,7 @@ Index: xen-3.0.4-testing/tools/python/xen/xm/create.py
|
||||
from xen.util import blkif
|
||||
from xen.util import security
|
||||
|
||||
@@ -710,14 +710,15 @@ def run_bootloader(vals, config_image):
|
||||
@@ -710,16 +710,18 @@ def run_bootloader(vals, config_image):
|
||||
err("Bootloader '%s' isn't executable" % vals.bootloader)
|
||||
if len(vals.disk) < 1:
|
||||
err("No disks configured and boot loader requested")
|
||||
@@ -98,5 +107,9 @@ Index: xen-3.0.4-testing/tools/python/xen/xm/create.py
|
||||
+ uname = bootdisk[0]
|
||||
+ file = blkif.blkdev_uname_to_file(uname)
|
||||
return bootloader(vals.bootloader, file, not vals.console_autoconnect,
|
||||
vals.bootargs, config_image)
|
||||
- vals.bootargs, config_image)
|
||||
+ vals.bootargs,
|
||||
+ kernel_args = sxp.child_value(config_image, 'args'))
|
||||
|
||||
def make_config(vals):
|
||||
"""Create the domain configuration.
|
||||
|
Reference in New Issue
Block a user