X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sliver_lxc.py;h=97374977ca687f15d83dc74184df5b1b38c0365e;hb=763594e4e2cfa905262cdd71ffaa263eebf5d851;hp=bf5f6dfce277a4ac2bad6e45c05cbe00b7379d84;hpb=9e596e6eb3c871ab25837903b0ed30f165d9d688;p=nodemanager.git diff --git a/sliver_lxc.py b/sliver_lxc.py index bf5f6df..9737497 100644 --- a/sliver_lxc.py +++ b/sliver_lxc.py @@ -117,8 +117,6 @@ class Sliver_LXC(Sliver_Libvirt, Initscript): arch = 'i686' - - refImgDir = os.path.join(Sliver_LXC.REF_IMG_BASE_DIR, vref) containerDir = os.path.join(Sliver_LXC.CON_BASE_DIR, name) @@ -126,7 +124,7 @@ class Sliver_LXC(Sliver_Libvirt, Initscript): if not os.path.isdir(refImgDir): logger.log('sliver_lxc: {}: ERROR Could not create sliver - reference image {} not found' .format(name, vref)) - logger.log('sliver_lxc: %s: ERROR Expected reference image in {}'.format(name, refImgDir)) + logger.log('sliver_lxc: {}: ERROR Expected reference image in {}'.format(name, refImgDir)) return # this hopefully should be fixed now @@ -182,7 +180,7 @@ class Sliver_LXC(Sliver_Libvirt, Initscript): 'ssh-keygen -t rsa -N "" -f /home/{}/.ssh/id_rsa'.format(name)] logger.log_call(command) - command = ['chown', '-R', '{}.slices'.format(name), '/home/{}/.ssh'.format(name)] + command = ['chown', '-R', '{}:slices'.format(name), '/home/{}/.ssh'.format(name)] logger.log_call(command) command = ['mkdir', '{}/root/.ssh'.format(containerDir)] @@ -194,12 +192,14 @@ class Sliver_LXC(Sliver_Libvirt, Initscript): logger.log("creating /etc/slicename file in {}".format(os.path.join(containerDir, 'etc/slicename'))) try: - file(os.path.join(containerDir, 'etc/slicename'), 'w').write(name) + with open(os.path.join(containerDir, 'etc/slicename'), 'w') as f: + f.write(name) except: logger.log_exc("exception while creating /etc/slicename") try: - file(os.path.join(containerDir, 'etc/slicefamily'), 'w').write(vref) + with open(os.path.join(containerDir, 'etc/slicefamily'), 'w') as f: + f.write(vref) except: logger.log_exc("exception while creating /etc/slicefamily") @@ -240,7 +240,8 @@ class Sliver_LXC(Sliver_Libvirt, Initscript): sudoers = os.path.join(containerDir, 'etc/sudoers') if os.path.exists(sudoers): try: - file(sudoers, 'a').write("{} ALL=(ALL) NOPASSWD: ALL\n".format(name)) + with open(sudoers, 'a') as f: + f.write("{} ALL=(ALL) NOPASSWD: ALL\n".format(name)) except: logger.log_exc("exception while updating /etc/sudoers") @@ -282,10 +283,11 @@ unset pathmunge if not os.path.isdir(os.path.dirname(from_root)): continue found = False try: - contents = file(from_root).readlines() - for content in contents: - if content == enforced_line: - found = True + with open(from_root) as f: + contents = f.readlines() + for content in contents: + if content == enforced_line: + found = True except IOError: pass if not found: @@ -302,7 +304,7 @@ unset pathmunge # Template for libvirt sliver configuration template_filename_sliceimage = os.path.join(Sliver_LXC.REF_IMG_BASE_DIR, 'lxc_template.xml') - if os.path.isfile (template_filename_sliceimage): + if os.path.isfile(template_filename_sliceimage): logger.verbose("Using XML template {}".format(template_filename_sliceimage)) template_filename = template_filename_sliceimage else: @@ -335,13 +337,13 @@ unset pathmunge logger.verbose ('sliver_lxc: {} destroy'.format(name)) conn = Sliver_Libvirt.getConnection(Sliver_LXC.TYPE) - containerDir = Sliver_LXC.CON_BASE_DIR + '/%s'%(name) + containerDir = os.path.join(Sliver_LXC.CON_BASE_DIR, name) try: # Destroy libvirt domain dom = conn.lookupByName(name) except: - logger.verbose('sliver_lxc.destroy: Domain %s does not exist!' % name) + logger.verbose('sliver_lxc.destroy: Domain {} does not exist!'.format(name)) return # Slivers with vsys running will fail the subvolume delete @@ -349,16 +351,16 @@ unset pathmunge vsys_stopped = removeSliverFromVsys (name) try: - logger.log("sliver_lxc.destroy: destroying domain %s"%name) + logger.log("sliver_lxc.destroy: destroying domain {}".format(name)) dom.destroy() except: - logger.verbose('sliver_lxc.destroy: Domain %s not running... continuing.' % name) + logger.verbose("sliver_lxc.destroy: Domain {} not running... continuing.".format(name)) try: - logger.log("sliver_lxc.destroy: undefining domain %s"%name) + logger.log("sliver_lxc.destroy: undefining domain {}".format(name)) dom.undefine() except: - logger.verbose('sliver_lxc.destroy: Domain %s is not defined... continuing.' % name) + logger.verbose('sliver_lxc.destroy: Domain {} is not defined... continuing.'.format(name)) # Remove user after destroy domain to force logout command = ['/usr/sbin/userdel', '-f', '-r', name] @@ -369,7 +371,7 @@ unset pathmunge logger.log_call(command, timeout=BTRFS_TIMEOUT) # ??? - logger.log("-TMP-ls-l %s"%name) + logger.log("-TMP-ls-l {}".format(name)) command = ['ls', '-lR', containerDir] logger.log_call(command) logger.log("-TMP-vsys-status") @@ -394,22 +396,22 @@ unset pathmunge # also lsof never shows anything relevant; this is painful.. if not os.path.exists(containerDir): - logger.log('sliver_lxc.destroy: %s cleanly destroyed.'%name) + logger.log('sliver_lxc.destroy: {} cleanly destroyed.'.format(name)) else: # we're in / - #logger.log("-TMP-cwd %s : %s"%(name, os.getcwd())) + #logger.log("-TMP-cwd {} : {}".format(name, os.getcwd())) # also lsof never shows anything relevant; this is painful.. - #logger.log("-TMP-lsof %s"%name) + #logger.log("-TMP-lsof {}".format(name)) #command = ['lsof'] #logger.log_call(command) - logger.log("-TMP-ls-l %s"%name) + logger.log("-TMP-ls-l {}".format(name)) command = ['ls', '-lR', containerDir] logger.log_call(command) logger.log("-TMP-lsof") command = ['lsof'] logger.log_call(command) if os.path.exists(containerDir): - logger.log('sliver_lxc.destroy: ERROR could not cleanly destroy %s - giving up'%name) + logger.log('sliver_lxc.destroy: ERROR could not cleanly destroy {} - giving up'.format(name)) if vsys_stopped: vsysStartService()