In version_remove recompute nodes latest version
[pithos] / snf-pithos-backend / pithos / backends / lib / sqlalchemy / node.py
index a72f9e5..ad44f6f 100644 (file)
@@ -596,7 +596,14 @@ class Node(DBWorker):
         mtime = max(mtime, r[2])
         return (count, size, mtime)
     
-    def nodes_set_latest_version(self, node, serial):
+    def nodes_set_latest_version(self, node, serial=None):
+        v = self.versions
+        if not serial:
+            s = select(v.c.serial, v.c.node == node).order_by(desc(v.c.mtime)).limit(1)
+            r = self.conn.excecute(s)
+            row = r.fetchone()
+            serial = row[0] if row else None
+            r.close()
         s = self.nodes.update().where(self.nodes.c.node == node)
         s = s.values(latest_version = serial)
         self.conn.execute(s).close()
@@ -748,9 +755,7 @@ class Node(DBWorker):
         s = self.versions.delete().where(self.versions.c.serial == serial)
         self.conn.execute(s).close()
         
-        props = self.version_lookup(node, cluster=cluster, all_props=False)
-        if props:
-            self.nodes_set_latest_version(v.node, serial)
+        self.nodes_set_latest_version(v.node)
         
         return hash, size