From: Aline Manera <alinefm(a)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(a)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