]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-deploy.git/commitdiff
lsb.py: fix subprocess handling and raising error
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Thu, 21 Mar 2013 14:51:48 +0000 (15:51 +0100)
committerDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Thu, 21 Mar 2013 14:51:48 +0000 (15:51 +0100)
Some fixes for lsb subprocess handling and error raising:
- use proper variable naming (p vs process)
- use process.communicate() instead of p.stdout.read()
- fix subprocess.CalledProcessError() output=

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
ceph_deploy/lsb.py

index f7e0b210aea1ebaa2cd650b9fd0a9f2d8af53182..1814463a1e4a697cb7f189b7154f8d1743e7b67c 100644 (file)
@@ -1,53 +1,54 @@
+
 def lsb_release():
     import subprocess
 
     args = [ 'which', 'lsb_release', ]
-    p = subprocess.Popen(
+    process = subprocess.Popen(
         args=args,
         stdout=subprocess.PIPE,
         )
-    distro = p.stdout.read()
-    ret = p.wait()
+    distro, _ = process.communicate()
+    ret = process.wait()
     if ret != 0:
         raise RuntimeError('lsb_release not found on host')
 
     args = [ 'lsb_release', '-s', '-i' ]
-    p = subprocess.Popen(
+    process = subprocess.Popen(
         args=args,
         stdout=subprocess.PIPE,
         )
-    distro = p.stdout.read()
-    ret = p.wait()
+    distro, _ = process.communicate()
+    ret = process.wait()
     if ret != 0:
-        raise subprocess.CalledProcessError(ret, args, output=out)
+        raise subprocess.CalledProcessError(ret, args, output=distro)
     if distro == '':
         raise RuntimeError('lsb_release gave invalid output for distro')
 
     args = [ 'lsb_release', '-s', '-r', ]
-    p = subprocess.Popen(
+    process = subprocess.Popen(
         args=args,
         stdout=subprocess.PIPE,
         )
-    release = p.stdout.read()
-    ret = p.wait()
+    release, _ = process.communicate()
+    ret = process.wait()
     if ret != 0:
-        raise subprocess.CalledProcessError(ret, args, output=out)
+        raise subprocess.CalledProcessError(ret, args, output=release)
     if release == '':
         raise RuntimeError('lsb_release gave invalid output for release')
 
     args = [ 'lsb_release', '-s', '-c', ]
-    p = subprocess.Popen(
+    process = subprocess.Popen(
         args=args,
         stdout=subprocess.PIPE,
         )
-    codename = p.stdout.read()
-    ret = p.wait()
+    codename, _ = process.communicate()
+    ret = process.wait()
     if ret != 0:
-        raise subprocess.CalledProcessError(ret, args, output=out)
+        raise subprocess.CalledProcessError(ret, args, output=codename)
     if codename == '':
         raise RuntimeError('lsb_release gave invalid output for codename')
 
-    return (distro.rstrip(), release.rstrip(), codename.rstrip())
+    return (str(distro).rstrip(), str(release).rstrip(), str(codename).rstrip())
 
 
 def choose_init(distro, codename):