Skip to content

Commit ad1bb9f

Browse files
Add finish status
1 parent 32d59e1 commit ad1bb9f

File tree

3 files changed

+320
-6
lines changed

3 files changed

+320
-6
lines changed

src/main/java/main/model/db/imports/Importer.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ private List<ImportDto> executeMultiTestRunImport() throws AqualityException {
5757
for (String pathToFile : this.files) {
5858
try{
5959
File file = new File(pathToFile);
60-
readData(file);
6160
createImport("Import was started for file: " + file.getName());
61+
readData(file);
6262
executeResultsCreation();
6363
imports.add(finishImport());
6464
} catch (Exception e){
@@ -146,7 +146,7 @@ private String getBuildName(TestRunDto testRun, String fileName) {
146146

147147
private ImportDto finishImport() throws AqualityException {
148148
importDto.setFinished(new Date());
149-
importDto.setIs_finished(1);
149+
importDto.setFinish_status(1);
150150
importDto.addToLog("Import was finished!");
151151
return importDao.create(importDto);
152152
}
@@ -158,7 +158,7 @@ private void finishImportWithError(String log) throws AqualityException {
158158

159159
importDto.setProject_id(this.projectId);
160160
importDto.setFinished(new Date());
161-
importDto.setIs_finished(1);
161+
importDto.setFinish_status(2);
162162
importDto.addToLog("Import was finished with Error! " + log);
163163
importDao.create(importDto);
164164
}
@@ -167,7 +167,7 @@ private void createImport(String log) throws AqualityException {
167167
importDto = new ImportDto();
168168
importDto.setStarted(new Date());
169169
importDto.setProject_id(projectId);
170-
importDto.setIs_finished(0);
170+
importDto.setFinish_status(0);
171171
importDto.setLog(log);
172172
importDto = importDao.create(importDto);
173173
}

src/main/java/main/model/dto/ImportDto.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ public class ImportDto extends BaseDto {
2323
@DataBaseSearchable
2424
@DataBaseInsert
2525
private Integer project_id;
26-
@DataBaseName(name="request_is_finished")
26+
@DataBaseName(name="request_finish_status")
2727
@DataBaseInsert
28-
private Integer is_finished;
28+
private Integer finish_status;
2929
@DataBaseName(name="request_started")
3030
@DataBaseInsert
3131
@JsonDeserialize(using=CustomerDateAndTimeDeserialize.class)

src/main/resources/db_changelog/db.changelog-0.3.8.xml

Lines changed: 314 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,4 +184,318 @@
184184
</rollback>
185185
</changeSet>
186186

187+
<changeSet id="Update Import table with finish status" author="v.kostyukevich">
188+
<sql endDelimiter="#">
189+
ALTER TABLE `imports`
190+
CHANGE COLUMN `is_finished` `finish_status` INT(1) NOT NULL DEFAULT '0' COMMENT '0 - in progress\n1 - ok\n2 - error' ;
191+
</sql>
192+
<rollback>
193+
</rollback>
194+
</changeSet>
195+
196+
<changeSet id="Update INSERT_IMPORT to use finish_status" author="v.kostyukevich">
197+
<sql endDelimiter="#">
198+
199+
DROP procedure IF EXISTS `INSERT_IMPORT`;
200+
201+
#
202+
CREATE PROCEDURE `INSERT_IMPORT`(
203+
IN request_id VARCHAR(11),
204+
IN request_testrun_id VARCHAR(11),
205+
IN request_project_id VARCHAR(11),
206+
IN request_finish_status VARCHAR(1),
207+
IN request_started VARCHAR(500),
208+
IN request_finished VARCHAR(500),
209+
IN request_log LONGTEXT
210+
)
211+
BEGIN
212+
213+
SET time_zone = '+00:00';
214+
INSERT INTO imports (id, testrun_id, project_id, finish_status, started, finished, log)
215+
VALUES (
216+
IF(request_id = '', null,request_id),
217+
IF(request_testrun_id = '', null,request_testrun_id),
218+
IF(request_project_id = '', null,request_project_id),
219+
IF(request_finish_status = '', null,request_finish_status),
220+
IF(request_started = '', null,FROM_UNIXTIME(request_started)),
221+
IF(request_finished = '', null,FROM_UNIXTIME(request_finished)),
222+
IF(request_log = '', null,request_log)
223+
) ON DUPLICATE KEY UPDATE
224+
testrun_id = IF(request_testrun_id = '', testrun_id, request_testrun_id),
225+
project_id = IF(request_project_id = '', project_id, request_project_id),
226+
finish_status = IF(request_finish_status = '', finish_status, request_finish_status),
227+
started = IF(request_started = '', started, FROM_UNIXTIME(request_started)),
228+
finished= IF(request_finished = '', finished, FROM_UNIXTIME(request_finished)),
229+
log = IF(request_log = '', log, request_log);
230+
231+
SET @result_id = IF(request_id = '', LAST_INSERT_ID(), request_id);
232+
SELECT * from imports where id = @result_id;
233+
END
234+
</sql>
235+
<rollback>
236+
</rollback>
237+
</changeSet>
238+
239+
<changeSet id="Update imports_AFTER_INSERT to use finish_status" author="v.kostyukevich">
240+
<sql endDelimiter="#">
241+
242+
DROP TRIGGER IF EXISTS `imports_AFTER_INSERT`;
243+
244+
#
245+
CREATE TRIGGER imports_AFTER_INSERT AFTER INSERT ON imports FOR EACH ROW
246+
BEGIN
247+
IF (NEW.finish_status = 1 AND new.testrun_id IS NOT NULL)
248+
THEN
249+
250+
DELETE FROM testrun_statistic WHERE testrun_id = NEW.testrun_id;
251+
252+
INSERT INTO testrun_statistic (testrun_id, failed, passed, not_executed, in_progress, pending, total, app_issue, warning, not_assigned, other)
253+
254+
SELECT
255+
trn.id,
256+
sum(frs.color = 1) as failed,
257+
sum(frs.color = 5) as passed,
258+
sum(frs.color = 3) as not_executed,
259+
sum(frs.color = 2) as in_progress,
260+
sum(frs.color = 4) as pending,
261+
sum(frs.color != 0) as total,
262+
sum(rr.color = 1 AND frs.color != 5) as app_issue,
263+
sum(rr.color = 2 AND frs.color != 5) as warning,
264+
sum(rr.color = 3 AND frs.color != 5) as not_assigned,
265+
sum((rr.color = 4 OR rr.color = 5) AND frs.color != 5) as other
266+
267+
from test_runs as trn
268+
right join union_reporting.test_results as trs on trn.id=test_run_id
269+
left join union_reporting.final_results as frs on trs.final_result_id = frs.id
270+
left join union_reporting.result_resolution as rr on trs.test_resolution_id = rr.id
271+
272+
Where trn.id = NEW.testrun_id;
273+
END IF;
274+
END
275+
</sql>
276+
<rollback>
277+
</rollback>
278+
</changeSet>
279+
280+
<changeSet id="Update imports_AFTER_UPDATE to use finish_status" author="v.kostyukevich">
281+
<sql endDelimiter="#">
282+
283+
DROP TRIGGER IF EXISTS `imports_AFTER_UPDATE`;
284+
285+
#
286+
CREATE TRIGGER imports_AFTER_UPDATE AFTER UPDATE ON imports FOR EACH ROW
287+
BEGIN
288+
IF (NEW.finish_status = 1 AND new.testrun_id IS NOT NULL)
289+
THEN
290+
291+
DELETE FROM testrun_statistic WHERE testrun_id = NEW.testrun_id;
292+
293+
INSERT INTO testrun_statistic (testrun_id, failed, passed, not_executed, in_progress, pending, total, app_issue, warning, not_assigned, other)
294+
295+
SELECT
296+
trn.id,
297+
sum(frs.color = 1) as failed,
298+
sum(frs.color = 5) as passed,
299+
sum(frs.color = 3) as not_executed,
300+
sum(frs.color = 2) as in_progress,
301+
sum(frs.color = 4) as pending,
302+
sum(frs.color != 0) as total,
303+
sum(rr.color = 1 AND frs.color != 5) as app_issue,
304+
sum(rr.color = 2 AND frs.color != 5) as warning,
305+
sum(rr.color = 3 AND frs.color != 5) as not_assigned,
306+
sum((rr.color = 4 OR rr.color = 5) AND frs.color != 5) as other
307+
308+
from test_runs as trn
309+
right join union_reporting.test_results as trs on trn.id=test_run_id
310+
left join union_reporting.final_results as frs on trs.final_result_id = frs.id
311+
left join union_reporting.result_resolution as rr on trs.test_resolution_id = rr.id
312+
313+
Where trn.id = NEW.testrun_id;
314+
END IF;
315+
END
316+
</sql>
317+
<rollback>
318+
</rollback>
319+
</changeSet>
320+
321+
<changeSet id="Update test_results_AFTER_INSERT to use finish_status" author="v.kostyukevich">
322+
<sql endDelimiter="#">
323+
324+
DROP TRIGGER IF EXISTS `test_results_AFTER_INSERT`;
325+
326+
#
327+
CREATE TRIGGER test_results_AFTER_INSERT AFTER INSERT ON test_results FOR EACH ROW
328+
BEGIN
329+
330+
IF NOT EXISTS (SELECT * FROM imports WHERE testrun_id= NEW.test_run_id AND finish_status = 0)
331+
THEN
332+
333+
DELETE FROM testrun_statistic WHERE testrun_id = NEW.test_run_id;
334+
335+
INSERT INTO testrun_statistic (testrun_id, failed, passed, not_executed, in_progress, pending, total, app_issue, warning, not_assigned, other)
336+
337+
SELECT
338+
trn.id,
339+
sum(frs.color = 1) as failed,
340+
sum(frs.color = 5) as passed,
341+
sum(frs.color = 3) as not_executed,
342+
sum(frs.color = 2) as in_progress,
343+
sum(frs.color = 4) as pending,
344+
sum(frs.color != 0) as total,
345+
sum(rr.color = 1 AND frs.color != 5) as app_issue,
346+
sum(rr.color = 2 AND frs.color != 5) as warning,
347+
sum(rr.color = 3 AND frs.color != 5) as not_assigned,
348+
sum((rr.color = 4 OR rr.color = 5) AND frs.color != 5) as other
349+
350+
from test_runs as trn
351+
right join union_reporting.test_results as trs on trn.id=test_run_id
352+
left join union_reporting.final_results as frs on trs.final_result_id = frs.id
353+
left join union_reporting.result_resolution as rr on trs.test_resolution_id = rr.id
354+
355+
Where trn.id = NEW.test_run_id;
356+
END IF;
357+
358+
CALL UPDATE_LAST_RESULT_COLORS_FOR_TEST (
359+
NEW.test_id,
360+
(SELECT stability_count from projects where id = NEW.project_id)
361+
);
362+
END
363+
</sql>
364+
<rollback>
365+
</rollback>
366+
</changeSet>
367+
368+
<changeSet id="Update test_results_AFTER_UPDATE to use finish_status" author="v.kostyukevich">
369+
<sql endDelimiter="#">
370+
371+
DROP TRIGGER IF EXISTS `test_results_AFTER_UPDATE`;
372+
373+
#
374+
CREATE TRIGGER test_results_AFTER_UPDATE AFTER UPDATE ON test_results FOR EACH ROW
375+
BEGIN
376+
IF NOT EXISTS (SELECT * FROM imports WHERE testrun_id= NEW.test_run_id AND finish_status = 0)
377+
THEN
378+
379+
DELETE FROM testrun_statistic WHERE testrun_id = NEW.test_run_id;
380+
381+
INSERT INTO testrun_statistic (testrun_id, failed, passed, not_executed, in_progress, pending, total, app_issue, warning, not_assigned, other)
382+
383+
SELECT
384+
trn.id,
385+
sum(frs.color = 1) as failed,
386+
sum(frs.color = 5) as passed,
387+
sum(frs.color = 3) as not_executed,
388+
sum(frs.color = 2) as in_progress,
389+
sum(frs.color = 4) as pending,
390+
sum(frs.color != 0) as total,
391+
sum(rr.color = 1 AND frs.color != 5) as app_issue,
392+
sum(rr.color = 2 AND frs.color != 5) as warning,
393+
sum(rr.color = 3 AND frs.color != 5) as not_assigned,
394+
sum((rr.color = 4 OR rr.color = 5) AND frs.color != 5) as other
395+
396+
from test_runs as trn
397+
right join union_reporting.test_results as trs on trn.id=test_run_id
398+
left join union_reporting.final_results as frs on trs.final_result_id = frs.id
399+
left join union_reporting.result_resolution as rr on trs.test_resolution_id = rr.id
400+
401+
Where trn.id = NEW.test_run_id;
402+
END IF;
403+
404+
CALL UPDATE_LAST_RESULT_COLORS_FOR_TEST (
405+
NEW.test_id,
406+
(SELECT stability_count from projects where id = NEW.project_id)
407+
);
408+
END
409+
</sql>
410+
<rollback>
411+
</rollback>
412+
</changeSet>
413+
414+
<changeSet id="Update test_results_BEFORE_DELETE to use finish_status" author="v.kostyukevich">
415+
<sql endDelimiter="#">
416+
417+
DROP TRIGGER IF EXISTS `test_results_BEFORE_DELETE`;
418+
419+
#
420+
CREATE TRIGGER `test_results_BEFORE_DELETE` BEFORE DELETE ON `test_results` FOR EACH ROW
421+
BEGIN
422+
IF NOT EXISTS (SELECT * FROM imports WHERE testrun_id= OLD.test_run_id AND finish_status = 0)
423+
THEN
424+
425+
DELETE FROM testrun_statistic WHERE testrun_id = OLD.test_run_id;
426+
427+
INSERT INTO testrun_statistic (testrun_id, failed, passed, not_executed, in_progress, pending, total, app_issue, warning, not_assigned, other)
428+
429+
SELECT
430+
trn.id,
431+
sum(frs.color = 1) as failed,
432+
sum(frs.color = 5) as passed,
433+
sum(frs.color = 3) as not_executed,
434+
sum(frs.color = 2) as in_progress,
435+
sum(frs.color = 4) as pending,
436+
sum(frs.color != 0) as total,
437+
sum(rr.color = 1 AND frs.color != 5) as app_issue,
438+
sum(rr.color = 2 AND frs.color != 5) as warning,
439+
sum(rr.color = 3 AND frs.color != 5) as not_assigned,
440+
sum((rr.color = 4 OR rr.color = 5) AND frs.color != 5) as other
441+
442+
from test_runs as trn
443+
right join union_reporting.test_results as trs on trn.id=test_run_id
444+
left join union_reporting.final_results as frs on trs.final_result_id = frs.id
445+
left join union_reporting.result_resolution as rr on trs.test_resolution_id = rr.id
446+
447+
Where trn.id = OLD.test_run_id;
448+
END IF;
449+
450+
CALL UPDATE_LAST_RESULT_COLORS_FOR_TEST (
451+
OLD.test_id,
452+
(SELECT stability_count from projects where id = OLD.project_id)
453+
);
454+
END
455+
</sql>
456+
<rollback>
457+
</rollback>
458+
</changeSet>
459+
460+
<changeSet id="Update test_results_AFTER_DELETE to use finish_status" author="v.kostyukevich">
461+
<sql endDelimiter="#">
462+
463+
DROP TRIGGER IF EXISTS `test_results_AFTER_DELETE`;
464+
465+
#
466+
CREATE TRIGGER test_results_AFTER_DELETE AFTER DELETE ON test_results FOR EACH ROW
467+
BEGIN
468+
IF NOT EXISTS (SELECT * FROM imports WHERE testrun_id= OLD.test_run_id AND finish_status = 0)
469+
THEN
470+
471+
DELETE FROM testrun_statistic WHERE testrun_id = OLD.test_run_id;
472+
473+
INSERT INTO testrun_statistic (testrun_id, failed, passed, not_executed, in_progress, pending, total, app_issue, warning, not_assigned, other)
474+
475+
SELECT
476+
trn.id,
477+
sum(frs.color = 1) as failed,
478+
sum(frs.color = 5) as passed,
479+
sum(frs.color = 3) as not_executed,
480+
sum(frs.color = 2) as in_progress,
481+
sum(frs.color = 4) as pending,
482+
sum(frs.color != 0) as total,
483+
sum(rr.color = 1 AND frs.color != 5) as app_issue,
484+
sum(rr.color = 2 AND frs.color != 5) as warning,
485+
sum(rr.color = 3 AND frs.color != 5) as not_assigned,
486+
sum((rr.color = 4 OR rr.color = 5) AND frs.color != 5) as other
487+
488+
from test_runs as trn
489+
right join union_reporting.test_results as trs on trn.id=test_run_id
490+
left join union_reporting.final_results as frs on trs.final_result_id = frs.id
491+
left join union_reporting.result_resolution as rr on trs.test_resolution_id = rr.id
492+
493+
Where trn.id = OLD.test_run_id;
494+
END IF;
495+
END
496+
</sql>
497+
<rollback>
498+
</rollback>
499+
</changeSet>
500+
187501
</databaseChangeLog>

0 commit comments

Comments
 (0)