Jakub Filak a33b3ec
From 757976faf59bc2caad63102c1b17463933c1b7fa Mon Sep 17 00:00:00 2001
Jakub Filak a33b3ec
From: Jakub Filak <jfilak@redhat.com>
Jakub Filak a33b3ec
Date: Fri, 19 Feb 2016 06:51:32 +0100
Jakub Filak a33b3ec
Subject: [PATCH] Allow disabling particular tasks in the manager
Jakub Filak a33b3ec
Jakub Filak a33b3ec
Userspace core support is still a bit problematic, so it is not a good
Jakub Filak a33b3ec
idea to offer this type of tasks to users in the manager.
Jakub Filak a33b3ec
Jakub Filak a33b3ec
I decided to move the task forms to separate files because I wanted to
Jakub Filak a33b3ec
avoid the need to escape strings in Python code.
Jakub Filak a33b3ec
Jakub Filak a33b3ec
Signed-off-by: Jakub Filak <jfilak@redhat.com>
Jakub Filak a33b3ec
---
Jakub Filak a33b3ec
 src/Makefile.am                     |  2 ++
Jakub Filak a33b3ec
 src/config/retrace-server.conf      |  7 +++++++
Jakub Filak a33b3ec
 src/manager.wsgi                    | 13 +++++++++++++
Jakub Filak a33b3ec
 src/manager.xhtml                   | 31 ++-----------------------------
Jakub Filak a33b3ec
 src/manager_usrcore_task_form.xhtml | 17 +++++++++++++++++
Jakub Filak a33b3ec
 src/manager_vmcore_task_form.xhtml  | 13 +++++++++++++
Jakub Filak a33b3ec
 6 files changed, 54 insertions(+), 29 deletions(-)
Jakub Filak a33b3ec
 create mode 100644 src/manager_usrcore_task_form.xhtml
Jakub Filak a33b3ec
 create mode 100644 src/manager_vmcore_task_form.xhtml
Jakub Filak a33b3ec
Jakub Filak a33b3ec
diff --git a/src/Makefile.am b/src/Makefile.am
Jakub Filak a33b3ec
index dfd3f53..043c416 100644
Jakub Filak a33b3ec
--- a/src/Makefile.am
Jakub Filak a33b3ec
+++ b/src/Makefile.am
Jakub Filak a33b3ec
@@ -39,6 +39,8 @@ interface_PYTHON = backtrace.wsgi \
Jakub Filak a33b3ec
 
Jakub Filak a33b3ec
 interface_DATA = index.xhtml \
Jakub Filak a33b3ec
                  manager.xhtml \
Jakub Filak a33b3ec
+                 manager_vmcore_task_form.xhtml \
Jakub Filak a33b3ec
+                 manager_usrcore_task_form.xhtml \
Jakub Filak a33b3ec
                  managertask.xhtml \
Jakub Filak a33b3ec
                  stats.xhtml
Jakub Filak a33b3ec
 # interfacedir should probably be $$(pkgdatadir)/retrace
Jakub Filak a33b3ec
diff --git a/src/config/retrace-server.conf b/src/config/retrace-server.conf
Jakub Filak a33b3ec
index 28991a7..8eab59f 100644
Jakub Filak a33b3ec
--- a/src/config/retrace-server.conf
Jakub Filak a33b3ec
+++ b/src/config/retrace-server.conf
Jakub Filak a33b3ec
@@ -22,6 +22,12 @@ AllowExternalDir = 0
Jakub Filak a33b3ec
 # Allow to create tasks owned by task manager (security risk)
Jakub Filak a33b3ec
 AllowTaskManager = 0
Jakub Filak a33b3ec
 
Jakub Filak a33b3ec
+# Allow to create VMCore tasks in the task manager
Jakub Filak a33b3ec
+AllowVMCoreTask = 1
Jakub Filak a33b3ec
+
Jakub Filak a33b3ec
+# Allow to create Userspace core tasks in the task manager
Jakub Filak a33b3ec
+AllowUsrCoreTask = 1
Jakub Filak a33b3ec
+
Jakub Filak a33b3ec
 # If white list is disabled, anyone can delete tasks
Jakub Filak a33b3ec
 TaskManagerAuthDelete = 0
Jakub Filak a33b3ec
 
Jakub Filak a33b3ec
@@ -143,6 +149,7 @@ EmailNotify = 0
Jakub Filak a33b3ec
 # Who sends the e-mail notifications
Jakub Filak a33b3ec
 EmailNotifyFrom = retrace@localhost
Jakub Filak a33b3ec
 
Jakub Filak a33b3ec
+
Jakub Filak a33b3ec
 [archhosts]
Jakub Filak a33b3ec
 i386 =
Jakub Filak a33b3ec
 x86_64 =
Jakub Filak a33b3ec
diff --git a/src/manager.wsgi b/src/manager.wsgi
Jakub Filak a33b3ec
index 93ead9d..59d1372 100644
Jakub Filak a33b3ec
--- a/src/manager.wsgi
Jakub Filak a33b3ec
+++ b/src/manager.wsgi
Jakub Filak a33b3ec
@@ -602,6 +602,18 @@ def application(environ, start_response):
Jakub Filak a33b3ec
 
Jakub Filak a33b3ec
     custom_url = "%s/__custom__" % match.group(1)
Jakub Filak a33b3ec
 
Jakub Filak a33b3ec
+    vmcore_form = ""
Jakub Filak a33b3ec
+    if CONFIG["AllowVMCoreTask"]:
Jakub Filak a33b3ec
+        with open("/usr/share/retrace-server/manager_vmcore_task_form.xhtml") as f:
Jakub Filak a33b3ec
+            vmcore_form = f.read(1 << 20) # 1MB
Jakub Filak a33b3ec
+    output = output.replace("{vmcore_task_form}", vmcore_form)
Jakub Filak a33b3ec
+
Jakub Filak a33b3ec
+    usrcore_form = ""
Jakub Filak a33b3ec
+    if CONFIG["AllowUsrCoreTask"]:
Jakub Filak a33b3ec
+        with open("/usr/share/retrace-server/manager_usrcore_task_form.xhtml") as f:
Jakub Filak a33b3ec
+            usrcore_form = f.read(1 << 20) # 1MB
Jakub Filak a33b3ec
+    output = output.replace("{usrcore_task_form}", usrcore_form)
Jakub Filak a33b3ec
+
Jakub Filak a33b3ec
     output = output.replace("{title}", title)
Jakub Filak a33b3ec
     output = output.replace("{sitename}", sitename)
Jakub Filak a33b3ec
     output = output.replace("{available_str}", available_str)
Jakub Filak a33b3ec
@@ -619,4 +631,5 @@ def application(environ, start_response):
Jakub Filak a33b3ec
     output = output.replace("{running}", "\n            ".join(running))
Jakub Filak a33b3ec
     output = output.replace("{finished}", "\n            ".join(finished))
Jakub Filak a33b3ec
 
Jakub Filak a33b3ec
+
Jakub Filak a33b3ec
     return response(start_response, "200 OK", output, [("Content-Type", "text/html")])
Jakub Filak a33b3ec
diff --git a/src/manager.xhtml b/src/manager.xhtml
Jakub Filak a33b3ec
index 041f994..5c3f231 100644
Jakub Filak a33b3ec
--- a/src/manager.xhtml
Jakub Filak a33b3ec
+++ b/src/manager.xhtml
Jakub Filak a33b3ec
@@ -182,35 +182,8 @@
Jakub Filak a33b3ec
       <input type="text" name="filter" />
Jakub Filak a33b3ec
       <input type="submit" value="Filter" class="submit" />
Jakub Filak a33b3ec
     </form>
Jakub Filak a33b3ec
-    

vmcore

Jakub Filak a33b3ec
-    <form method="post" action="{create_custom_url}" id="custom">
Jakub Filak a33b3ec
-      
Jakub Filak a33b3ec
-        Kernel version (e.g. 2.6.32-287.el6.x86_64, empty to autodetect): <input type="text" name="vra" />
Jakub Filak a33b3ec
-        <input type="checkbox" checked="checked" name="debug" class="checkbox" /> Be more verbose in case of error
Jakub Filak a33b3ec
-      
Jakub Filak a33b3ec
-      
Jakub Filak a33b3ec
-        Custom core location: <input type="text" name="custom_url" class="url" />
Jakub Filak a33b3ec
-        <input type="hidden" name="task_type" value="vmcore">
Jakub Filak a33b3ec
-        <input type="submit" value="Create vmcore task" class="submit" />
Jakub Filak a33b3ec
-        
Any URL that wget can download or a local path (file:///foo/bar or just /foo/bar)
Jakub Filak a33b3ec
-      
Jakub Filak a33b3ec
-    </form>
Jakub Filak a33b3ec
-    

coredump

Jakub Filak a33b3ec
-    <form method="post" action="{create_custom_url}" id="custom">
Jakub Filak a33b3ec
-      
Jakub Filak a33b3ec
-        

All of these three fields override contents of package, executable and os_release files contained in the coredump archive. If you're uploading you have just the bare (compressed) coredump, you must specify these.

Jakub Filak a33b3ec
-        <input type="checkbox" checked="checked" name="debug" class="checkbox" /> Be more verbose in case of error
Jakub Filak a33b3ec
-        Package (e.g. coreutils-8.22-11.el7): <input type="text" name="package" />
Jakub Filak a33b3ec
-        Executable (e.g. /usr/bin/sleep): <input type="text" name="executable" />
Jakub Filak a33b3ec
-        OS Release (e.g. Red Hat Enterprise Linux Workstation release 7.0 (Maipo)): <input type="text" name="os_release" />
Jakub Filak a33b3ec
-      
Jakub Filak a33b3ec
-      
Jakub Filak a33b3ec
-        Custom core location: <input type="text" name="custom_url" class="url" />
Jakub Filak a33b3ec
-        <input type="hidden" name="task_type" value="coredump">
Jakub Filak a33b3ec
-        <input type="submit" value="Create coredump task" class="submit" />
Jakub Filak a33b3ec
-        
Any URL that wget can download or a local path (file:///foo/bar or just /foo/bar)
Jakub Filak a33b3ec
-      
Jakub Filak a33b3ec
-    </form>
Jakub Filak a33b3ec
+{vmcore_task_form}
Jakub Filak a33b3ec
+{usrcore_task_form}
Jakub Filak a33b3ec
     
Jakub Filak a33b3ec
       
Jakub Filak a33b3ec
         
Jakub Filak a33b3ec
diff --git a/src/manager_usrcore_task_form.xhtml b/src/manager_usrcore_task_form.xhtml
Jakub Filak a33b3ec
new file mode 100644
Jakub Filak a33b3ec
index 0000000..c210600
Jakub Filak a33b3ec
--- /dev/null
Jakub Filak a33b3ec
+++ b/src/manager_usrcore_task_form.xhtml
Jakub Filak a33b3ec
@@ -0,0 +1,17 @@
Jakub Filak a33b3ec
+    

userspace core

Jakub Filak a33b3ec
+    <form method="post" action="{create_custom_url}" id="custom">
Jakub Filak a33b3ec
+      
Jakub Filak a33b3ec
+        

All of these three fields override contents of package, executable and os_release files contained in the coredump archive. If you're uploading you have just the bare (compressed) coredump, you must specify these.

Jakub Filak a33b3ec
+        <input type="checkbox" checked="checked" name="debug" class="checkbox" /> Be more verbose in case of error
Jakub Filak a33b3ec
+        Package (e.g. coreutils-8.22-11.el7): <input type="text" name="package" />
Jakub Filak a33b3ec
+        Executable (e.g. /usr/bin/sleep): <input type="text" name="executable" />
Jakub Filak a33b3ec
+        OS Release (e.g. Red Hat Enterprise Linux Workstation release 7.0 (Maipo)): <input type="text" name="os_release" />
Jakub Filak a33b3ec
+      
Jakub Filak a33b3ec
+      
Jakub Filak a33b3ec
+        Custom core location: <input type="text" name="custom_url" class="url" />
Jakub Filak a33b3ec
+        <input type="hidden" name="task_type" value="coredump">
Jakub Filak a33b3ec
+        <input type="submit" value="Create coredump task" class="submit" />
Jakub Filak a33b3ec
+        
Any URL that wget can download or a local path (file:///foo/bar or just /foo/bar)
Jakub Filak a33b3ec
+      
Jakub Filak a33b3ec
+    </form>
Jakub Filak a33b3ec
+
Jakub Filak a33b3ec
diff --git a/src/manager_vmcore_task_form.xhtml b/src/manager_vmcore_task_form.xhtml
Jakub Filak a33b3ec
new file mode 100644
Jakub Filak a33b3ec
index 0000000..2307b3b
Jakub Filak a33b3ec
--- /dev/null
Jakub Filak a33b3ec
+++ b/src/manager_vmcore_task_form.xhtml
Jakub Filak a33b3ec
@@ -0,0 +1,13 @@
Jakub Filak a33b3ec
+    

vmcore

Jakub Filak a33b3ec
+    <form method="post" action="{create_custom_url}" id="custom">
Jakub Filak a33b3ec
+      
Jakub Filak a33b3ec
+        Kernel version (e.g. 2.6.32-287.el6.x86_64, empty to autodetect): <input type="text" name="vra" />
Jakub Filak a33b3ec
+        <input type="checkbox" checked="checked" name="debug" class="checkbox" /> Be more verbose in case of error
Jakub Filak a33b3ec
+      
Jakub Filak a33b3ec
+      
Jakub Filak a33b3ec
+        Custom core location: <input type="text" name="custom_url" class="url" />
Jakub Filak a33b3ec
+        <input type="hidden" name="task_type" value="vmcore">
Jakub Filak a33b3ec
+        <input type="submit" value="Create vmcore task" class="submit" />
Jakub Filak a33b3ec
+        
Any URL that wget can download or a local path (file:///foo/bar or just /foo/bar)
Jakub Filak a33b3ec
+      
Jakub Filak a33b3ec
+    </form>
Jakub Filak a33b3ec
-- 
Jakub Filak a33b3ec
2.7.1
Jakub Filak a33b3ec