[Kimchi-devel] [PATCH] issue #66: Auto generate template name in backend when none is provided

Aline Manera alinefm at linux.vnet.ibm.com
Fri Feb 28 15:25:25 UTC 2014


From: Aline Manera <alinefm at br.ibm.com>

The only required parameter to create a template is the cdrom ISO image.
The name must be create automatically on backend when no one is passed.
Fix it.

Signed-off-by: Aline Manera <alinefm at br.ibm.com>
---
 src/kimchi/mockmodel.py               |    8 +++++++-
 src/kimchi/model/templates.py         |    9 ++++++++-
 ui/js/src/kimchi.template_add_main.js |   16 ----------------
 3 files changed, 15 insertions(+), 18 deletions(-)

diff --git a/src/kimchi/mockmodel.py b/src/kimchi/mockmodel.py
index 50b5f0e..f99b4cd 100644
--- a/src/kimchi/mockmodel.py
+++ b/src/kimchi/mockmodel.py
@@ -216,7 +216,13 @@ class MockModel(object):
             raise NotFoundError("KCHTMPL0002E", {'name': name})
 
     def templates_create(self, params):
-        name = params['name']
+        name = params.get('name', '').strip()
+        if not name:
+            iso = params['cdrom']
+            iso_name = os.path.splitext(iso[iso.rfind('/') + 1:])[0]
+            name = iso_name + str(int(time.time()*1000))
+            params['name'] = name
+
         if name in self._mock_templates:
             raise InvalidOperation("KCHTMPL0001E", {'name': name})
 
diff --git a/src/kimchi/model/templates.py b/src/kimchi/model/templates.py
index 7afb0e0..3062bd7 100644
--- a/src/kimchi/model/templates.py
+++ b/src/kimchi/model/templates.py
@@ -19,6 +19,7 @@
 
 import copy
 import os
+import time
 
 import libvirt
 
@@ -34,7 +35,13 @@ class TemplatesModel(object):
         self.conn = kargs['conn']
 
     def create(self, params):
-        name = params['name']
+        name = params.get('name', '').strip()
+        if not name:
+            iso = params['cdrom']
+            iso_name = os.path.splitext(iso[iso.rfind('/') + 1:])[0]
+            name = iso_name + str(int(time.time()*1000))
+            params['name'] = name
+
         conn = self.conn.get()
 
         pool_uri = params.get(u'storagepool', '')
diff --git a/ui/js/src/kimchi.template_add_main.js b/ui/js/src/kimchi.template_add_main.js
index 31326df..098a706 100644
--- a/ui/js/src/kimchi.template_add_main.js
+++ b/ui/js/src/kimchi.template_add_main.js
@@ -219,7 +219,6 @@ kimchi.template_add_main = function() {
             return;
         }
         var data = {
-            "name" : kimchi.get_iso_name(isoFile),
             "cdrom" : isoFile
         };
         addTemplate(data);
@@ -331,7 +330,6 @@ kimchi.template_add_main = function() {
             return;
         }
         var data = {
-            "name" : kimchi.get_iso_name(isoUrl),
             "cdrom" : isoUrl
         };
         addTemplate(data);
@@ -355,7 +353,6 @@ kimchi.template_add_main = function() {
             var successNum = 0;
             var addTemplate = function(isoInfo) {
                 var data = {
-                    "name" : kimchi.get_iso_name(isoInfo.name),
                     "os_distro" : isoInfo.os_distro,
                     "os_version" : isoInfo.os_version,
                     "cdrom" : isoInfo.path
@@ -419,16 +416,3 @@ kimchi.is_iso_file = function(isoFile) {
     }
     return false;
 };
-
-kimchi.get_iso_name = function(isoPath) {
-    if ((isoPath.charAt(isoPath.length - 1) == "/") == true) {
-        isoPath = isoPath.substring(0, isoPath.length - 1)
-    }
-    if (/.iso$/.test(isoPath)) {
-        return isoPath.substring(isoPath.lastIndexOf("/") + 1,
-                isoPath.lastIndexOf(".")) + new Date().getTime();
-    } else {
-        return isoPath.substring(isoPath.lastIndexOf("/") + 1) +
-        new Date().getTime();
-    }
-};
-- 
1.7.10.4




More information about the Kimchi-devel mailing list