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-unstable] xend: bootable flag of VBD not always of

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] xend: bootable flag of VBD not always of type int
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 21 Oct 2009 01:25:13 -0700
Delivery-date: Wed, 21 Oct 2009 01:28:11 -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 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

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