[Kimchi-devel] [PATCH 1/2] Fix debug report naming problem (backend)

Rodrigo Trujillo rodrigo.trujillo at linux.vnet.ibm.com
Fri Feb 21 15:29:57 UTC 2014


The tool sosreport only accepts letters, digits and hyphen in the name
of the report, non alphanumeric characteres are removed from the file
name and then Kimchi is not able to find the file.

This patch fixes the problem in the backend, adding json schema
verification.

Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo at linux.vnet.ibm.com>
---
 src/kimchi/API.json        | 13 +++++++++++++
 src/kimchi/control/base.py |  1 +
 src/kimchi/i18n.py         |  3 +++
 3 files changed, 17 insertions(+)

diff --git a/src/kimchi/API.json b/src/kimchi/API.json
index d3a8e64..562864c 100644
--- a/src/kimchi/API.json
+++ b/src/kimchi/API.json
@@ -29,6 +29,19 @@
         }
     },
     "properties": {
+        "debugreports_create": {
+            "type": "object",
+            "error": "KCHDEBREP0001E",
+            "properties": {
+                "name": {
+                    "description": "The name for the debug report file.",
+                    "type": "string",
+                    "pattern": "^[A-Za-z0-9-]+$",
+                    "required": true,
+                    "error": "KCHDEBREP0002E"
+                }
+            }
+        },
         "storagepools_create": {
             "type": "object",
             "error": "KCHPOOL0026E",
diff --git a/src/kimchi/control/base.py b/src/kimchi/control/base.py
index e8f03ae..100f143 100644
--- a/src/kimchi/control/base.py
+++ b/src/kimchi/control/base.py
@@ -306,6 +306,7 @@ class AsyncCollection(Collection):
                                                  get_class_name(self)})
             raise cherrypy.HTTPError(405, e.message)
 
+        validate_params(params, self, 'create')
         args = self.model_args + [params]
         task = create(*args)
         cherrypy.response.status = 202
diff --git a/src/kimchi/i18n.py b/src/kimchi/i18n.py
index a8d2f29..8b3db9c 100644
--- a/src/kimchi/i18n.py
+++ b/src/kimchi/i18n.py
@@ -49,6 +49,9 @@ messages = {
     "KCHISCSI0001E": _("Unable to login to iSCSI host target %(portal)s. Details: %(err)s"),
     "KCHISCSI0002E": _("Unable to login to iSCSI host %(host)s target %(target)s"),
 
+    "KCHDEBREP0001E": _("You must give a name for the debug file report."),
+    "KCHDEBREP0002E": _("Name must be a non empty string. Only letters, digits and hyphen ('-') are allowed."),
+
     "KCHISO0001E": _("Unable to find ISO file ISO %(filename)s"),
     "KCHISO0002E": _("The ISO file %(filename)s is not bootable"),
     "KCHISO0003E": _("The ISO file %(filename)s does not have a valid El Torito boot record"),
-- 
1.8.5.3




More information about the Kimchi-devel mailing list