From: Marco Yuen Date: Mon, 7 May 2012 14:27:46 +0000 (-0400) Subject: Merge branch 'lxc_devel' of ssh://git.planet-lab.org/git/nodemanager into lxc_devel X-Git-Tag: nodemanager-2.1-2~19 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=27cb8f7b65340c134d7d36f5eeef555592f73d31;hp=ec5f2d86752be85178da9c2b70421a9afae8ba01;p=nodemanager.git Merge branch 'lxc_devel' of ssh://git.planet-lab.org/git/nodemanager into lxc_devel Conflicts: config_template.xml --- diff --git a/NodeManager.spec b/NodeManager.spec index cb02cc1..fd038c6 100644 --- a/NodeManager.spec +++ b/NodeManager.spec @@ -1,8 +1,8 @@ %define slicefamily %{pldistro}-%{distroname}-%{_arch} %define name NodeManager -%define version 2.0 -%define taglevel 34 +%define version 2.1 +%define taglevel 1 %define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}} %global python_sitearch %( python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)" ) @@ -33,8 +33,9 @@ Requires: python >= 2.4 Requires: python-pycurl # Signed tickets Requires: gnupg -# vuseradd, vuserdel -#Requires: vserver-%{slicefamily} +# vserver-sliceimage or lxc-sliceimage to be added explicitly in nodeimage.pkgs +# we do need the slice images in any case +Requires: sliceimage-%{slicefamily} # our interface to the vserver patch #Requires: util-vserver >= 0.30.208-17 # vserver.py @@ -137,6 +138,10 @@ rm -rf $RPM_BUILD_ROOT %{python_sitearch}/bwlimit.py* %changelog +* Fri Apr 13 2012 Thierry Parmentelat - nodemanager-2.1-1 +- first working draft for dealing with libvirt/lxc on f16 nodes +- not expected to work with mainline nodes (use 2.0 for that for now) + * Fri Jan 13 2012 Marco Yuen - nodemanager-2.0-34 - Install bwlimit.py to the python site directory. @@ -397,5 +402,3 @@ rm -rf $RPM_BUILD_ROOT * Mon Nov 13 2006 Mark Huang - - Initial build. - -%define module_current_branch 1.8 diff --git a/config_template.xml b/config_template.xml deleted file mode 100644 index 00e9651..0000000 --- a/config_template.xml +++ /dev/null @@ -1,28 +0,0 @@ - - $name - 524288 - - exe - /sbin/init - - - - - 1 - - destroy - restart - destroy - - /usr/libexec/libvirt_lxc - - - - - - - - - - - diff --git a/sliver_libvirt.py b/sliver_libvirt.py index 1f308bf..209cb71 100644 --- a/sliver_libvirt.py +++ b/sliver_libvirt.py @@ -61,8 +61,8 @@ class Sliver_Libvirt(accounts.Account): try: self.dom = self.conn.lookupByName(self.name) except: - logger.verbose('sliver_libvirt: Domain %s does not exist ' \ - 'UNEXPECTED: %s'%(self.name, sys.exc_info()[1])) + logger.log('sliver_libvirt: Domain %s does not exist ' \ + 'UNEXPECTED: %s'%(self.name, sys.exc_info()[1])) def start(self, delay=0): ''' Just start the sliver ''' diff --git a/sliver_lxc.py b/sliver_lxc.py index 6e78ede..1b038d5 100644 --- a/sliver_lxc.py +++ b/sliver_lxc.py @@ -5,7 +5,7 @@ import accounts import logger import subprocess -import os +import os, os.path import libvirt import sys from string import Template @@ -44,6 +44,7 @@ class Sliver_LXC(lv.Sliver_Libvirt): # check the template exists -- there's probably a better way.. if not os.path.isdir(refImgDir): logger.log('sliver_lxc: %s: ERROR Could not create sliver - reference image %s not found' % (name,vref)) + logger.log('sliver_lxc: %s: ERROR ctd expected reference image in %s'%(name,refImgDir)) return # Snapshot the reference image fs (assume the reference image is in its own @@ -89,12 +90,27 @@ class Sliver_LXC(lv.Sliver_Libvirt): xid = bwlimit.get_xid(name) # Template for libvirt sliver configuration +# template_filename = Sliver_LXC.REF_IMG_BASE_DIR + '/lxc_template.xml' + # for compat with lxc-reference package, hopefully temporary + template_filename_lxcreference = os.path.join(Sliver_LXC.REF_IMG_BASE_DIR,'config_template.xml') + template_filename_sliceimage = os.path.join(Sliver_LXC.REF_IMG_BASE_DIR,'lxc_template.xml') + if os.path.isfile (template_filename_lxcreference): + logger.log("WARNING: using compat template %s"%template_filename_lxcreference) + template_filename=template_filename_lxcreference + elif os.path.isfile (template_filename_sliceimage): + logger.log("WARNING: using compat template %s"%template_filename_sliceimage) + template_filename=template_filename_sliceimage + else: + logger.log("Cannot find XML template") + logger.log("neither %s"%template_filename_lxcreference) + logger.log("nor %s"%template_filename_sliceimage) + return try: - with open(Sliver_LXC.REF_IMG_BASE_DIR + '/config_template.xml') as f: + with open(template_filename) as f: template = Template(f.read()) xml = template.substitute(name=name, xid=xid) except IOError: - logger.log('Cannot find XML template file') + logger.log('Failed to parse or use XML template file %s'%template_filename) return # Lookup for the sliver before actually