]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Use tempfile.NamedTemporaryFile instead of mkstemp.
authorTommi Virtanen <tv@inktank.com>
Wed, 8 Aug 2012 21:44:47 +0000 (14:44 -0700)
committerTommi Virtanen <tv@inktank.com>
Wed, 8 Aug 2012 21:44:47 +0000 (14:44 -0700)
Simpler code, no manual cleanup needed. We see a littering of
zero-length temp files from teuthology-worker, and this seems
like a likely source.

teuthology/queue.py

index aec52453b84b2fabcec71548c237ba33b35d0d1c..b029075ea7d35aa2d1a1e069de737ba4a90a9452 100644 (file)
@@ -117,18 +117,18 @@ def run_job(job_config, archive_path):
         arg.extend(['--description', job_config['description']])
     arg.append('--')
 
-    tmp_fp, tmp_path = tempfile.mkstemp()
-    try:
-        os.write(tmp_fp, yaml.safe_dump(job_config['config']))
-        arg.append(tmp_path)
-        subprocess.check_call(
-            args=arg,
-            close_fds=True,
-            )
-    except subprocess.CalledProcessError as e:
-        log.exception(e)
-    else:
-        log.info('Success!')
-    finally:
-        os.close(tmp_fp)
-        os.unlink(tmp_path)
+    with tempfile.NamedTemporaryFile(
+        prefix='teuthology-worker.',
+        suffix='.tmp',
+        ) as tmp:
+        try:
+            os.write(tmp, yaml.safe_dump(job_config['config']))
+            arg.append(tmp.name)
+            subprocess.check_call(
+                args=arg,
+                close_fds=True,
+                )
+        except subprocess.CalledProcessError as e:
+            log.exception(e)
+        else:
+            log.info('Success!')