Blame virtinst-0.500.3-virtualdisk-refresh.patch

9da8999
# HG changeset patch
9da8999
# User Cole Robinson <crobinso@redhat.com>
9da8999
# Date 1272988095 14400
9da8999
# Node ID 1d3ad914004f6620f78098236fcaaadb83b2a942
9da8999
# Parent  74bc3757b2471ded2eea38d64f73d8cd3cd51eeb
9da8999
VirtualDisk: Refresh parent pool if we don't find requested volume
9da8999
9da8999
diff -r 74bc3757b247 -r 1d3ad914004f virtinst/VirtualDisk.py
9da8999
--- a/virtinst/VirtualDisk.py	Mon Apr 26 12:02:36 2010 -0400
9da8999
+++ b/virtinst/VirtualDisk.py	Tue May 04 11:48:15 2010 -0400
9da8999
@@ -797,13 +797,15 @@
9da8999
 
9da8999
         def lookup_vol_by_path():
9da8999
             try:
9da8999
-                return self.conn.storageVolLookupByPath(self.path)
9da8999
-            except:
9da8999
-                return None
9da8999
+                vol = self.conn.storageVolLookupByPath(self.path)
9da8999
+                vol.info()
9da8999
+                return vol, None
9da8999
+            except Exception, e:
9da8999
+                return None, e
9da8999
 
9da8999
         pool = _util.lookup_pool_by_path(self.conn,
9da8999
                                          os.path.dirname(self.path))
9da8999
-        vol = lookup_vol_by_path()
9da8999
+        vol = lookup_vol_by_path()[0]
9da8999
 
9da8999
 
9da8999
         # Is pool running?
9da8999
@@ -811,24 +813,17 @@
9da8999
             pool = None
9da8999
 
9da8999
         # Attempt to lookup path as a storage volume
9da8999
-        try:
9da8999
-            if vol:
9da8999
-                vol.info()
9da8999
-        except:
9da8999
+        if pool and not vol:
9da8999
             try:
9da8999
-                try:
9da8999
-                    # Pool may need to be refreshed, but if it errors,
9da8999
-                    # invalidate it
9da8999
-                    if pool:
9da8999
-                        pool.refresh(0)
9da8999
-                except:
9da8999
-                    pool = None
9da8999
-                    raise
9da8999
+                # Pool may need to be refreshed, but if it errors,
9da8999
+                # invalidate it
9da8999
+                if pool:
9da8999
+                    pool.refresh(0)
9da8999
 
9da8999
-                vol = self.conn.storageVolLookupByPath(self.path)
9da8999
-                vol.info()
9da8999
+                vol, verr = lookup_vol_by_path()
9da8999
             except Exception, e:
9da8999
                 vol = None
9da8999
+                pool = None
9da8999
                 verr = str(e)
9da8999
 
9da8999
         if vol: