[PATCH 0/2] Bug Fixes: Mock Model with Debug Report Generate

Fixed 2 bugs: 1). When in mock model, generate report doesn't work if report name is left as blank. 2). When in mock model, generate report window will never disappear even after the report is generated. Hongliang Wang (2): MockModel: Can't Generate Report if Name is not Given Debug Report UI: Generate Report Doesn't Work with Mock Model src/kimchi/mockmodel.py | 8 +++++++- ui/js/src/kimchi.report_add_main.js | 39 ++++++++++++++++++++----------------- 2 files changed, 28 insertions(+), 19 deletions(-) -- 1.8.1.4

We'll generate a report name if name field is left blank in real case, though not in mock model. Added it in mock model to keep consistent. Signed-off-by: Hongliang Wang <hlwang@linux.vnet.ibm.com> --- src/kimchi/mockmodel.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/kimchi/mockmodel.py b/src/kimchi/mockmodel.py index a0920e0..be78ce8 100644 --- a/src/kimchi/mockmodel.py +++ b/src/kimchi/mockmodel.py @@ -346,7 +346,13 @@ class MockModel(object): os.remove(file_target) def debugreports_create(self, params): - ident = params['name'] + ident = params.get('name').strip() + # Generate a name with time and millisec precision, if necessary + if ident is None or ident == "": + ident = 'report-' + str(int(time.time() * 1000)) + else: + if ident in self.debugreports_get_list(): + raise InvalidParameter("KCHDR0008E", {"name": ident}) taskid = self._gen_debugreport_file(ident) return self.task_lookup(taskid) -- 1.8.1.4

Reviewed-by: Aline Manera <alinefm@linux.vnet.ibm.com> On 07/10/2014 12:31 PM, Hongliang Wang wrote:
We'll generate a report name if name field is left blank in real case, though not in mock model. Added it in mock model to keep consistent.
Signed-off-by: Hongliang Wang <hlwang@linux.vnet.ibm.com> --- src/kimchi/mockmodel.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/kimchi/mockmodel.py b/src/kimchi/mockmodel.py index a0920e0..be78ce8 100644 --- a/src/kimchi/mockmodel.py +++ b/src/kimchi/mockmodel.py @@ -346,7 +346,13 @@ class MockModel(object): os.remove(file_target)
def debugreports_create(self, params): - ident = params['name'] + ident = params.get('name').strip() + # Generate a name with time and millisec precision, if necessary + if ident is None or ident == "": + ident = 'report-' + str(int(time.time() * 1000)) + else: + if ident in self.debugreports_get_list(): + raise InvalidParameter("KCHDR0008E", {"name": ident}) taskid = self._gen_debugreport_file(ident) return self.task_lookup(taskid)

Mock model will return a task with "finished" state immediately when the user generates a report, though the generate window will disappear only when there is a task with "running" returned so it will never disappear. Fixed it in this patch. Signed-off-by: Hongliang Wang <hlwang@linux.vnet.ibm.com> --- ui/js/src/kimchi.report_add_main.js | 39 ++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/ui/js/src/kimchi.report_add_main.js b/ui/js/src/kimchi.report_add_main.js index f64b879..0388041 100644 --- a/ui/js/src/kimchi.report_add_main.js +++ b/ui/js/src/kimchi.report_add_main.js @@ -48,11 +48,31 @@ kimchi.report_add_main = function() { } var formData = addReportForm.serializeObject(); var taskAccepted = false; + var onTaskAccepted = function() { + if(taskAccepted) { + return; + } + taskAccepted = true; + kimchi.window.close(); + var reportName = nameTextbox.val() || i18n['KCHDR6012M']; + $('.grid-body-view table tbody', '#' + reportGridID).prepend( + '<tr>' + + '<td>' + + '<div class="cell-text-wrapper">' + reportName + '</div>' + + '</td>' + + '<td id ="id-debug-img">' + + '<div class="cell-text-wrapper">' + i18n['KCHDR6007M'] + '</div>' + + '</td>' + + '</tr>' + ); + }; + disableToolbarButtons(); submitButton.prop('disabled', true); $('.grid-body table tr', '#' + reportGridID) .on('click', disableToolbarButtons); kimchi.createReport(formData, function(result) { + onTaskAccepted(); $('.grid-body-view table tr:first-child', '#' + reportGridID).remove(); $('.grid-body table tr', '#' + reportGridID) .off('click', disableToolbarButtons); @@ -78,24 +98,7 @@ kimchi.report_add_main = function() { generateButton.prop('disabled', false); submitButton.prop('disabled', false); nameTextbox.select(); - }, function(result) { - if(taskAccepted) { - return; - } - taskAccepted = true; - kimchi.window.close(); - var reportName = nameTextbox.val() || i18n['KCHDR6012M']; - $('.grid-body-view table tbody', '#' + reportGridID).prepend( - '<tr>' + - '<td>' + - '<div class="cell-text-wrapper">' + reportName + '</div>' + - '</td>' + - '<td id ="id-debug-img">' + - '<div class="cell-text-wrapper">' + i18n['KCHDR6007M'] + '</div>' + - '</td>' + - '</tr>' - ); - }); + }, onTaskAccepted); event.preventDefault(); }; -- 1.8.1.4

Reviewed-by: Aline Manera <alinefm@linux.vnet.ibm.com> On 07/10/2014 12:31 PM, Hongliang Wang wrote:
Mock model will return a task with "finished" state immediately when the user generates a report, though the generate window will disappear only when there is a task with "running" returned so it will never disappear. Fixed it in this patch.
Signed-off-by: Hongliang Wang <hlwang@linux.vnet.ibm.com> --- ui/js/src/kimchi.report_add_main.js | 39 ++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 18 deletions(-)
diff --git a/ui/js/src/kimchi.report_add_main.js b/ui/js/src/kimchi.report_add_main.js index f64b879..0388041 100644 --- a/ui/js/src/kimchi.report_add_main.js +++ b/ui/js/src/kimchi.report_add_main.js @@ -48,11 +48,31 @@ kimchi.report_add_main = function() { } var formData = addReportForm.serializeObject(); var taskAccepted = false; + var onTaskAccepted = function() { + if(taskAccepted) { + return; + } + taskAccepted = true; + kimchi.window.close(); + var reportName = nameTextbox.val() || i18n['KCHDR6012M']; + $('.grid-body-view table tbody', '#' + reportGridID).prepend( + '<tr>' + + '<td>' + + '<div class="cell-text-wrapper">' + reportName + '</div>' + + '</td>' + + '<td id ="id-debug-img">' + + '<div class="cell-text-wrapper">' + i18n['KCHDR6007M'] + '</div>' + + '</td>' + + '</tr>' + ); + }; + disableToolbarButtons(); submitButton.prop('disabled', true); $('.grid-body table tr', '#' + reportGridID) .on('click', disableToolbarButtons); kimchi.createReport(formData, function(result) { + onTaskAccepted(); $('.grid-body-view table tr:first-child', '#' + reportGridID).remove(); $('.grid-body table tr', '#' + reportGridID) .off('click', disableToolbarButtons); @@ -78,24 +98,7 @@ kimchi.report_add_main = function() { generateButton.prop('disabled', false); submitButton.prop('disabled', false); nameTextbox.select(); - }, function(result) { - if(taskAccepted) { - return; - } - taskAccepted = true; - kimchi.window.close(); - var reportName = nameTextbox.val() || i18n['KCHDR6012M']; - $('.grid-body-view table tbody', '#' + reportGridID).prepend( - '<tr>' + - '<td>' + - '<div class="cell-text-wrapper">' + reportName + '</div>' + - '</td>' + - '<td id ="id-debug-img">' + - '<div class="cell-text-wrapper">' + i18n['KCHDR6007M'] + '</div>' + - '</td>' + - '</tr>' - ); - }); + }, onTaskAccepted);
event.preventDefault(); };
participants (2)
-
Aline Manera
-
Hongliang Wang