From c6a5880a19f60aeb1c7e7ed5d7eb00496546bd1f Mon Sep 17 00:00:00 2001
From: Jorrit Schaap <schaap@astron.nl>
Date: Thu, 15 Oct 2015 12:42:53 +0000
Subject: [PATCH] Task #8291: added method to get info for one direcory by id

---
 LTA/ltastorageoverview/lib/store.py | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/LTA/ltastorageoverview/lib/store.py b/LTA/ltastorageoverview/lib/store.py
index 334fc822cbf..80a796892f4 100644
--- a/LTA/ltastorageoverview/lib/store.py
+++ b/LTA/ltastorageoverview/lib/store.py
@@ -217,6 +217,17 @@ class LTAStorageDb:
         with sqlite3.connect(self.db_filename) as conn:
             return conn.execute('''SELECT id, name, url FROM storage_site where id = ?''', [site_id]).fetchone()
 
+    def directory(self, directory_id):
+        '''returns directory tuple (id, name, site_id, site_name) for the given directory_id'''
+        with sqlite3.connect(self.db_filename) as conn:
+            return conn.execute('''SELECT dir.id, dir.name, site.id, site.name
+                FROM storage_site_root
+                join storage_site site on site.id = storage_site_root.storage_site_id
+                join directory_closure dc on dc.ancestor_id = storage_site_root.directory_id
+                join directory dir on dir.id = dc.descendant_id
+                where dc.descendant_id = ?
+                ''', [directory_id]).fetchall()
+
     def rootDirectories(self):
         '''returns list of all root directories (id, name, site_id, site_name) for all sites'''
         with sqlite3.connect(self.db_filename) as conn:
-- 
GitLab