[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] xend: bootable flag of VBD not always of type int
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1256113390 -3600 # Node ID 3bbe9ab2202bb6589e6512c86e06e94d24772281 # Parent 87bc0d49137bb1d66758766b39dbaf558aabd043 xend: bootable flag of VBD not always of type int 1. Calling VDB.set_bootable(True) results in string 'True' in managed config file. After xend restart, conversion int(bootable) in server/blkif.py fails. 2. selection of bootable disks in XendDomainInfo.py requires type(bootable) == int not str, otherwise all disks are taken as bootable. This patch converts the bootable flag always to int. Signed-off-by: Lutz Dube <Lutz.Dube@xxxxxxxxxxxxxx> --- tools/python/xen/xend/XendAPI.py | 2 +- tools/python/xen/xend/XendConfig.py | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff -r 87bc0d49137b -r 3bbe9ab2202b tools/python/xen/xend/XendAPI.py --- a/tools/python/xen/xend/XendAPI.py Wed Oct 21 09:21:01 2009 +0100 +++ b/tools/python/xen/xend/XendAPI.py Wed Oct 21 09:23:10 2009 +0100 @@ -2091,7 +2091,7 @@ class XendAPI(object): bootable = bool(bootable) xd = XendDomain.instance() vm = xd.get_vm_with_dev_uuid('vbd', vbd_ref) - vm.set_dev_property('vbd', vbd_ref, 'bootable', bootable) + vm.set_dev_property('vbd', vbd_ref, 'bootable', int(bootable)) xd.managed_config_save(vm) return xen_api_success_void() diff -r 87bc0d49137b -r 3bbe9ab2202b tools/python/xen/xend/XendConfig.py --- a/tools/python/xen/xend/XendConfig.py Wed Oct 21 09:21:01 2009 +0100 +++ b/tools/python/xen/xend/XendConfig.py Wed Oct 21 09:23:10 2009 +0100 @@ -1429,9 +1429,14 @@ class XendConfig(dict): if param not in target: target[param] = [] if dev_uuid not in target[param]: - if dev_type == 'vbd' and 'bootable' not in dev_info: - # Compat hack -- mark first disk bootable - dev_info['bootable'] = int(not target[param]) + if dev_type == 'vbd': + if 'bootable' not in dev_info: + # Compat hack -- mark first disk bootable + dev_info['bootable'] = int(not target[param]) + else: + # ensure type of bootable is int (on xend restart + # it's of type str) + dev_info['bootable'] = int(dev_info['bootable']) target[param].append(dev_uuid) elif dev_type == 'tap' or dev_type == 'tap2': if 'vbd_refs' not in target: @@ -1440,6 +1445,10 @@ class XendConfig(dict): if 'bootable' not in dev_info: # Compat hack -- mark first disk bootable dev_info['bootable'] = int(not target['vbd_refs']) + else: + # ensure type of bootable is int (on xend restart it's + # of type str) + dev_info['bootable'] = int(dev_info['bootable']) target['vbd_refs'].append(dev_uuid) elif dev_type == 'vfb': _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |