[Kimchi-devel] [PATCH V2] Debug report file can not be found when downloading

Shu Ming shuming at linux.vnet.ibm.com
Wed Feb 26 09:03:37 UTC 2014


Patchset 8bc4dded9 re-organized the various path generation for Kimchi.
Unfortunately, the root static dir was changed which caused the static
dir for debugreport file broken. To the user, he can not download the
debugreport file generated.
---
 src/kimchi/mockmodel.py          |  5 ++++-
 src/kimchi/model/debugreports.py |  5 ++++-
 src/kimchi/server.py             | 12 ++++++++++--
 3 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/kimchi/mockmodel.py b/src/kimchi/mockmodel.py
index b23a024..7aaf54d 100644
--- a/src/kimchi/mockmodel.py
+++ b/src/kimchi/mockmodel.py
@@ -305,7 +305,10 @@ class MockModel(object):
         ctime = os.stat(file_target).st_ctime
         ctime = time.strftime("%Y-%m-%d-%H:%M:%S", time.localtime(ctime))
         file_target = os.path.split(file_target)[-1]
-        file_target = os.path.join("/data/debugreports", file_target)
+
+        prefix = '/data/debugreports'
+        file_target = os.path.join(prefix, file_target)
+
         return {'file': file_target,
                 'ctime': ctime}
 
diff --git a/src/kimchi/model/debugreports.py b/src/kimchi/model/debugreports.py
index 7573a5b..64ed8e8 100644
--- a/src/kimchi/model/debugreports.py
+++ b/src/kimchi/model/debugreports.py
@@ -164,7 +164,10 @@ class DebugReportModel(object):
         ctime = os.stat(file_target).st_ctime
         ctime = time.strftime("%Y-%m-%d-%H:%M:%S", time.localtime(ctime))
         file_target = os.path.split(file_target)[-1]
-        file_target = os.path.join("/data/debugreports", file_target)
+
+        prefix = '/data/debugreports'
+        file_target = os.path.join(prefix, file_target)
+
         return {'file': file_target,
                 'ctime': ctime}
 
diff --git a/src/kimchi/server.py b/src/kimchi/server.py
index ef8e701..401136f 100644
--- a/src/kimchi/server.py
+++ b/src/kimchi/server.py
@@ -108,11 +108,10 @@ class Server(object):
         },
         '/data/debugreports': {
             'tools.staticdir.on': True,
-            'tools.staticdir.dir': 'data/debugreports',
             'tools.nocache.on': False,
             'tools.kimchiauth.on': True,
             'tools.staticdir.content_types': {'xz': 'application/x-xz'}
-        },
+        },
         '/config/ui/tabs.xml': {
             'tools.staticfile.on': True,
             'tools.staticfile.filename': 'config/ui/tabs.xml',
@@ -129,7 +128,16 @@ class Server(object):
         }
     }
 
+    def __update_debugreport_config(self):
+        debug_dict =   self.configObj['/data/debugreports']
+        if paths.installed:
+            debug_path = os.path.join(paths.state_dir, 'debugreports')
+            debug_dict.update({'tools.staticdir.dir': debug_path})
+        else:
+            debug_dict.update({'tools.staticdir.dir': 'data/debugreports'})
+
     def __init__(self, options):
+        self.__update_debugreport_config()
         make_dirs = [
             os.path.dirname(os.path.abspath(options.access_log)),
             os.path.dirname(os.path.abspath(options.error_log)),
-- 
1.8.1.4




More information about the Kimchi-devel mailing list