[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] xend: bootable flag of VBD not always of type int


  • To: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Dube, Lutz" <lutz.dube@xxxxxxxxxxxxxx>
  • Date: Wed, 21 Oct 2009 09:29:25 +0200
  • Accept-language: de-DE, en-US
  • Acceptlanguage: de-DE, en-US
  • Delivery-date: Wed, 21 Oct 2009 00:31:38 -0700
  • Domainkey-signature: s=s1536a; d=ts.fujitsu.com; c=nofws; q=dns; h=X-SBRSScore:X-IronPort-AV:Received:Received:From:To:Date: Subject:Thread-Topic:Thread-Index:Message-ID: Accept-Language:Content-Language:X-MS-Has-Attach: X-MS-TNEF-Correlator:acceptlanguage:Content-Type: MIME-Version; b=gS4Tnyg1bfiK2Gv3+SVFpsx8+VM8BRA/LfntsDyPMppVOw/Vj2Bd88l/ Yta908Et0Vvj2SwLTNs3jHX2+NAmeyk/2CsXoFRZoro55vzHz/kfZUNhR oek9no0sc9v2Wls+fwS8uF8SLcH84x8O83KmyTBORmQBzRq2R8AkgVv7P z6PLscGe+p3Fx7FwM+9jT60jCQI1c3LanxvdcEsor4XNZc5hal+U+2UEV b0lLraYTo3QyHB6cZ8VcCtWE9zMzB;
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AcpSIDeCXFeEGiYVQJuVGdMuxPdztA==
  • Thread-topic: xend: bootable flag of VBD not always of type int

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@xxxxxxxxxxxxxx
 
diff -r d7d7f978d704 -r ca56a7da0248 tools/python/xen/xend/XendAPI.py
--- a/tools/python/xen/xend/XendAPI.py  Tue Oct 20 14:36:01 2009 +0100
+++ b/tools/python/xen/xend/XendAPI.py  Wed Oct 21 09:11:03 2009 +0200
@@ -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 d7d7f978d704 -r ca56a7da0248 tools/python/xen/xend/XendConfig.py
--- a/tools/python/xen/xend/XendConfig.py       Tue Oct 20 14:36:01 2009 +0100
+++ b/tools/python/xen/xend/XendConfig.py       Wed Oct 21 09:11:03 2009 +0200
@@ -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':
 
 
 
---
Kind regards
Lutz Dube
 
 

Attachment: patch_bootable
Description: patch_bootable

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.