summaryrefslogtreecommitdiffstats
path: root/nova/virt
diff options
context:
space:
mode:
authorSoren Hansen <soren@linux2go.dk>2011-03-22 14:36:32 +0100
committerSoren Hansen <soren@linux2go.dk>2011-03-22 14:36:32 +0100
commit62f9cc7cee30332143bf4e6e54fd21335db3c8da (patch)
treec1b4c0e047288e3acfafe7867eb244c149685a28 /nova/virt
parent60a3aa86db1d0e1ea2f680c9587881e45fa99336 (diff)
Convert _cache_image to use utils.synchronized decorator. Disable its test case, since I think it is no longer needed with the tests for synchronized.
Diffstat (limited to 'nova/virt')
-rw-r--r--nova/virt/libvirt_conn.py10
1 files changed, 4 insertions, 6 deletions
diff --git a/nova/virt/libvirt_conn.py b/nova/virt/libvirt_conn.py
index e80b9fbdf..ca8d81f5f 100644
--- a/nova/virt/libvirt_conn.py
+++ b/nova/virt/libvirt_conn.py
@@ -48,7 +48,6 @@ from xml.dom import minidom
from eventlet import tpool
-from eventlet import semaphore
import IPy
@@ -552,13 +551,12 @@ class LibvirtConnection(object):
os.mkdir(base_dir)
base = os.path.join(base_dir, fname)
- if fname not in LibvirtConnection._image_sems:
- LibvirtConnection._image_sems[fname] = semaphore.Semaphore()
- with LibvirtConnection._image_sems[fname]:
+ @utils.synchronized(fname)
+ def call_if_not_exists(base, fn, *args, **kwargs):
if not os.path.exists(base):
fn(target=base, *args, **kwargs)
- if not LibvirtConnection._image_sems[fname].locked():
- del LibvirtConnection._image_sems[fname]
+
+ call_if_not_exists(base, fn, *args, **kwargs)
if cow:
utils.execute('qemu-img', 'create', '-f', 'qcow2', '-o',