diff --git a/backend/kernelCI_app/serializers.py b/backend/kernelCI_app/serializers.py index 0f75c257..9842b900 100644 --- a/backend/kernelCI_app/serializers.py +++ b/backend/kernelCI_app/serializers.py @@ -39,7 +39,6 @@ def get_build_status(self, obj) -> Dict: "valid": obj.valid_builds, "invalid": obj.invalid_builds, "null": obj.null_builds, - "total": obj.total_builds } def get_test_status(self, obj) -> Dict: @@ -51,7 +50,6 @@ def get_test_status(self, obj) -> Dict: "done": obj.done_tests, "skip": obj.skip_tests, "null": obj.null_tests, - "total": obj.total_tests } def get_boot_status(self, obj) -> Dict: @@ -62,6 +60,7 @@ def get_boot_status(self, obj) -> Dict: "pass": obj.pass_boots, "done": obj.done_boots, "skip": obj.skip_boots, + "null": obj.null_boots, } diff --git a/backend/kernelCI_app/views/treeView.py b/backend/kernelCI_app/views/treeView.py index 1de25560..d6f80779 100644 --- a/backend/kernelCI_app/views/treeView.py +++ b/backend/kernelCI_app/views/treeView.py @@ -61,7 +61,6 @@ def get(self, request): COUNT(DISTINCT CASE WHEN builds.valid = false THEN builds.id END) AS invalid_builds, COUNT(DISTINCT CASE WHEN builds.valid IS NULL AND builds.id IS NOT NULL THEN builds.id END) AS null_builds, - COUNT(DISTINCT builds.id) AS total_builds, COUNT(CASE WHEN (tests.path <> 'boot' AND tests.path NOT LIKE 'boot.%%') AND tests.status = 'FAIL' THEN 1 END) AS fail_tests, COUNT(CASE WHEN (tests.path <> 'boot' AND tests.path NOT LIKE 'boot.%%') @@ -76,7 +75,6 @@ def get(self, request): AND tests.status = 'SKIP' THEN 1 END) AS skip_tests, SUM(CASE WHEN tests.status IS NULL AND tests.id IS NOT NULL THEN 1 ELSE 0 END) AS null_tests, - COUNT(tests.id) AS total_tests, COUNT(CASE WHEN (tests.path = 'boot' OR tests.path LIKE 'boot.%%') AND tests.status = 'FAIL' THEN 1 END) AS fail_boots, @@ -90,6 +88,8 @@ def get(self, request): AND tests.status = 'DONE' THEN 1 END) AS done_boots, COUNT(CASE WHEN (tests.path = 'boot' OR tests.path LIKE 'boot.%%') AND tests.status = 'SKIP' THEN 1 END) AS skip_boots, + COUNT(CASE WHEN (tests.path = 'boot' OR tests.path LIKE 'boot.%%') + AND tests.status IS NULL AND tests.id IS NOT NULL THEN 1 ELSE 0 END) AS null_boots, COALESCE( ARRAY_AGG(DISTINCT tree_name) FILTER ( WHERE tree_name IS NOT NULL diff --git a/dashboard/src/types/tree/Tree.tsx b/dashboard/src/types/tree/Tree.tsx index ef159ba9..71b10f0e 100644 --- a/dashboard/src/types/tree/Tree.tsx +++ b/dashboard/src/types/tree/Tree.tsx @@ -12,6 +12,16 @@ export type TreeFastPathResponse = Array<{ start_time: string; }>; +export type TableTestStatus = { + done: number; + pass: number; + error: number; + fail: number; + skip: number; + miss: number; + null: number; +}; + export type TreeTableBody = { commitHash: string; commitName: string; @@ -19,22 +29,8 @@ export type TreeTableBody = { patchsetHash: string; buildStatus?: BuildStatus; tree_name?: string | null; - testStatus?: { - done: number; - pass: number; - error: number; - fail: number; - skip: number; - miss: number; - }; - bootStatus?: { - done: number; - pass: number; - error: number; - fail: number; - skip: number; - miss: number; - }; + testStatus?: TableTestStatus; + bootStatus?: TableTestStatus; id: string; branch: string; date: string; @@ -54,26 +50,9 @@ export type Tree = { valid: number; invalid: number; null: number; - total: number; - }; - test_status: { - fail: number; - error: number; - miss: number; - pass: number; - done: number; - skip: number; - null: number; - total: number; - }; - boot_status: { - done: number; - pass: number; - error: number; - fail: number; - skip: number; - miss: number; }; + test_status: TableTestStatus; + boot_status: TableTestStatus; }; export type TreeLatestResponse = {