From: Thierry Parmentelat <thierry.parmentelat@inria.fr>
Date: Wed, 2 Jul 2014 08:05:12 +0000 (+0200)
Subject: fix the way 'arch' is computed, as exposed to the guest XML template
X-Git-Tag: nodemanager-5.2-14~2
X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=443de86adb90405759278b6318c4f29c1c4886f3;p=nodemanager.git

fix the way 'arch' is computed, as exposed to the guest XML template
---

diff --git a/sliver_lxc.py b/sliver_lxc.py
index 9ca2aa8..bc546ac 100644
--- a/sliver_lxc.py
+++ b/sliver_lxc.py
@@ -78,6 +78,19 @@ class Sliver_LXC(Sliver_Libvirt, Initscript):
         logger.verbose ('sliver_lxc: %s create'%(name))
         conn = Sliver_Libvirt.getConnection(Sliver_LXC.TYPE)
 
+        vref = rec['vref']
+        if vref is None:
+            vref = "lxc-f18-x86_64"
+            logger.log("sliver_libvirt: %s: WARNING - no vref attached, using hard-wired default %s" % (name,vref))
+
+        # compute guest arch from vref
+        # essentially we want x86_64 (default) or i686 here for libvirt
+        try:
+            (x,y,arch)=vref.split('-')
+            arch = "x86_64" if arch.find("64")>=0 else "i686"
+        except:
+            arch='x86_64'
+
         # Get the type of image from vref myplc tags specified as:
         # pldistro = lxc
         # fcdistro = squeeze
@@ -90,10 +103,8 @@ class Sliver_LXC(Sliver_Libvirt, Initscript):
             if arch == 'i386':
                 arch = 'i686'
 
-        vref = rec['vref']
-        if vref is None:
-            vref = "lxc-f18-x86_64"
-            logger.log("sliver_libvirt: %s: WARNING - no vref attached, using hard-wired default %s" % (name,vref))
+
+
 
         refImgDir    = os.path.join(Sliver_LXC.REF_IMG_BASE_DIR, vref)
         containerDir = os.path.join(Sliver_LXC.CON_BASE_DIR, name)