[Kimchi-devel] [PATCH 1/3] Prohibits slashes '/' in VM name

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


This patch adds a pattern to checks if vm name has slashes. It also
replace slashes from template name by dashes, case user does not give
any name to the new VM.

Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo at linux.vnet.ibm.com>
---
 src/kimchi/API.json       | 2 ++
 src/kimchi/i18n.py        | 2 +-
 src/kimchi/model/utils.py | 3 ++-
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/kimchi/API.json b/src/kimchi/API.json
index f507251..2455745 100644
--- a/src/kimchi/API.json
+++ b/src/kimchi/API.json
@@ -228,6 +228,7 @@
                 "name": {
                     "description": "The name of the new VM",
                     "type": "string",
+                    "pattern": "^[^/]*$",
                     "error": "KCHVM0011E"
                 },
                 "template": {
@@ -252,6 +253,7 @@
                 "name": {
                     "description": "New name of VM",
                     "type": "string",
+                    "pattern": "^[^/]*$",
                     "minLength": 1,
                     "error": "KCHVM0011E"
                 },
diff --git a/src/kimchi/i18n.py b/src/kimchi/i18n.py
index e4e1a89..7c11016 100644
--- a/src/kimchi/i18n.py
+++ b/src/kimchi/i18n.py
@@ -83,7 +83,7 @@ messages = {
     "KCHVM0008E": _("Unable to update virtual machine %(name)s. Details: %(err)s"),
     "KCHVM0009E": _("Unable to retrieve virtual machine %(name)s. Details: %(err)s"),
     "KCHVM0010E": _("Unable to connect to powered off virtual machine %(name)s."),
-    "KCHVM0011E": _("Virtual machine name must be a string"),
+    "KCHVM0011E": _("Virtual machine name must be a string without slashes (/)"),
     "KCHVM0012E": _("Invalid template URI %(value)s specified for virtual machine"),
     "KCHVM0013E": _("Invalid storage pool URI %(value)s specified for virtual machine"),
     "KCHVM0014E": _("Supported virtual machine graphics are Spice or VNC"),
diff --git a/src/kimchi/model/utils.py b/src/kimchi/model/utils.py
index 9896289..80e7da0 100644
--- a/src/kimchi/model/utils.py
+++ b/src/kimchi/model/utils.py
@@ -34,7 +34,8 @@ def get_vm_name(vm_name, t_name, name_list):
     if vm_name:
         return vm_name
     for i in xrange(1, 1000):
-        vm_name = "%s-vm-%i" % (t_name, i)
+        # VM will have templace name, but without slashes
+        vm_name = "%s-vm-%i" % (t_name.replace('/', '-'), i)
         if vm_name not in name_list:
             return vm_name
     raise OperationFailed("KCHUTILS0003E")
-- 
2.1.0




More information about the Kimchi-devel mailing list