[Kimchi-devel] [PATCH 2/3] Move slash checking in storagepool name from UI to backend

Rodrigo Trujillo rodrigo.trujillo at linux.vnet.ibm.com
Tue Mar 24 16:46:44 UTC 2015


Backend was not validating storagepool names. It was possible to send a
request to Kimchi API to create a pool with slashes in the name using
CURL calls, for instance.
The UI was doing the checking, but for better compatibility, this was
moved to JSON validation phase.

Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo at linux.vnet.ibm.com>
---
 src/kimchi/API.json                      | 1 +
 src/kimchi/i18n.py                       | 2 +-
 ui/js/src/kimchi.storagepool_add_main.js | 5 -----
 ui/pages/i18n.json.tmpl                  | 1 -
 4 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/src/kimchi/API.json b/src/kimchi/API.json
index 2455745..9d54665 100644
--- a/src/kimchi/API.json
+++ b/src/kimchi/API.json
@@ -91,6 +91,7 @@
                     "description": "The name of the Storage Pool",
                     "type": "string",
                     "minLength": 1,
+                    "pattern": "^[^/]*$",
                     "required": true,
                     "error": "KCHPOOL0016E"
                 },
diff --git a/src/kimchi/i18n.py b/src/kimchi/i18n.py
index 7c11016..0a2a59d 100644
--- a/src/kimchi/i18n.py
+++ b/src/kimchi/i18n.py
@@ -166,7 +166,7 @@ messages = {
     "KCHPOOL0013E": _("Unable to create NFS Pool as export path %(path)s mount failed"),
     "KCHPOOL0014E": _("Unsupported storage pool type: %(type)s"),
     "KCHPOOL0015E": _("Error while retrieving storage pool XML to %(pool)s"),
-    "KCHPOOL0016E": _("Storage pool name must be a string"),
+    "KCHPOOL0016E": _("Storage pool name must be a string without slashes (/)"),
     "KCHPOOL0017E": _("Supported storage pool types are dir, netfs, logical, iscsi, isci and kimchi-iso"),
     "KCHPOOL0018E": _("Storage pool path must be a string"),
     "KCHPOOL0019E": _("Storage pool host must be a IP or hostname"),
diff --git a/ui/js/src/kimchi.storagepool_add_main.js b/ui/js/src/kimchi.storagepool_add_main.js
index 5ef84af..aaf2496 100644
--- a/ui/js/src/kimchi.storagepool_add_main.js
+++ b/ui/js/src/kimchi.storagepool_add_main.js
@@ -282,12 +282,7 @@ kimchi.inputsNotBlank = function() {
 };
 
 kimchi.validateForm = function() {
-    var name = $('#poolId').val();
     var poolType = $("#poolTypeInputId").val();
-    if (name.indexOf("/")!=-1) {
-        kimchi.message.error.code('KCHPOOL6004E');
-        return false;
-    }
     if (poolType === "dir") {
         return kimchi.validateDirForm();
     } else if (poolType === "netfs") {
diff --git a/ui/pages/i18n.json.tmpl b/ui/pages/i18n.json.tmpl
index 8e45b51..6ad9872 100644
--- a/ui/pages/i18n.json.tmpl
+++ b/ui/pages/i18n.json.tmpl
@@ -166,7 +166,6 @@
     "KCHPOOL6001E": "$_("The storage pool name can not be blank.")",
     "KCHPOOL6002E": "$_("The storage pool path can not be blank.")",
     "KCHPOOL6003E": "$_("NFS server mount path can not be blank.")",
-    "KCHPOOL6004E": "$_("Invalid storage pool name. It should not contain '/'.")",
     "KCHPOOL6005E": "$_("Invalid NFS mount path.")",
     "KCHPOOL6006E": "$_("No logical device selected.")",
     "KCHPOOL6007E": "$_("The iSCSI target can not be blank.")",
-- 
2.1.0




More information about the Kimchi-devel mailing list