WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-3.4-testing] xend: bootable flag of VBD not always

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-3.4-testing] xend: bootable flag of VBD not always of type int
From: "Xen patchbot-3.4-testing" <patchbot-3.4-testing@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 23 Oct 2009 02:40:39 -0700
Delivery-date: Fri, 23 Oct 2009 02:42:27 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1256289889 -3600
# Node ID f7e9ac1ef92bdc30ebf20753ef1e83e2e517aad8
# Parent  2beca5f48ffed21c4b56cabd34707e09b4c31068
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>
xen-unstable changeset:   20350:3bbe9ab2202b
xen-unstable date:        Wed Oct 21 09:23:10 2009 +0100
---
 tools/python/xen/xend/XendAPI.py    |    2 +-
 tools/python/xen/xend/XendConfig.py |   15 ++++++++++++---
 2 files changed, 13 insertions(+), 4 deletions(-)

diff -r 2beca5f48ffe -r f7e9ac1ef92b tools/python/xen/xend/XendAPI.py
--- a/tools/python/xen/xend/XendAPI.py  Fri Oct 23 10:24:19 2009 +0100
+++ b/tools/python/xen/xend/XendAPI.py  Fri Oct 23 10:24:49 2009 +0100
@@ -1968,7 +1968,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 2beca5f48ffe -r f7e9ac1ef92b tools/python/xen/xend/XendConfig.py
--- a/tools/python/xen/xend/XendConfig.py       Fri Oct 23 10:24:19 2009 +0100
+++ b/tools/python/xen/xend/XendConfig.py       Fri Oct 23 10:24:49 2009 +0100
@@ -1380,9 +1380,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':
                 if 'vbd_refs' not in target:
@@ -1391,6 +1396,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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-3.4-testing] xend: bootable flag of VBD not always of type int, Xen patchbot-3.4-testing <=