Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
649 commits
Select commit Hold shift + click to select a range
dc8dfb4
Front-End for System
PatrikBuetler Jul 26, 2024
e8e20f8
Front-End for System
PatrikBuetler Jul 26, 2024
0753d22
Front-End for System
PatrikBuetler Jul 26, 2024
ea4f0fd
Front-End for System
PatrikBuetler Jul 26, 2024
785245d
Front-End for System
PatrikBuetler Jul 26, 2024
3dac3aa
Front-End for System
PatrikBuetler Jul 26, 2024
8442358
Front-End for System
PatrikBuetler Jul 26, 2024
dc959e4
Front-End for System
PatrikBuetler Jul 26, 2024
1f00068
Front-End for System
PatrikBuetler Jul 26, 2024
d7abbef
Front-End for System
PatrikBuetler Jul 26, 2024
e435ae1
Front-End for System
PatrikBuetler Jul 26, 2024
1f0eba0
Front-End for System
PatrikBuetler Jul 26, 2024
d11964a
Front-End for System
PatrikBuetler Jul 26, 2024
11fc3f0
Front-End for System
PatrikBuetler Jul 26, 2024
b38c6f2
Front-End for System
PatrikBuetler Jul 26, 2024
2bacbef
Front-End for System
PatrikBuetler Jul 26, 2024
454c407
Front-End for System
PatrikBuetler Jul 26, 2024
716d3e3
Front-End for System
PatrikBuetler Jul 26, 2024
3f78e5b
Front-End for System
PatrikBuetler Jul 26, 2024
077547e
Front-End for System
PatrikBuetler Jul 26, 2024
633bdb0
Front-End for System
PatrikBuetler Jul 26, 2024
ba0c3c8
Front-End for System
PatrikBuetler Jul 26, 2024
5d48818
Front-End for System
PatrikBuetler Jul 26, 2024
661cf2f
Front-End for System
PatrikBuetler Jul 26, 2024
887af6e
Front-End for System
PatrikBuetler Jul 26, 2024
0ffa2c2
Front-End for System
PatrikBuetler Jul 26, 2024
28675e8
Front-End for System
PatrikBuetler Jul 26, 2024
d042f5f
Front-End for System
PatrikBuetler Jul 26, 2024
9362132
Front-End for System
PatrikBuetler Jul 26, 2024
2178f99
Front-End for System
PatrikBuetler Jul 26, 2024
d556d35
Front-End for System
PatrikBuetler Jul 26, 2024
511ea7a
Front-End for System
PatrikBuetler Jul 26, 2024
51b0604
Front-End for System
PatrikBuetler Jul 26, 2024
8ea8474
Front-End for System
PatrikBuetler Jul 26, 2024
712b716
Front-End for System
PatrikBuetler Jul 26, 2024
b5a8e67
LogLine debugging
PatrikBuetler Jul 26, 2024
6076b91
LogLine debugging
PatrikBuetler Jul 28, 2024
d0ec811
LogLine debugging
PatrikBuetler Jul 28, 2024
64a3615
LogLine debugging
PatrikBuetler Jul 28, 2024
a58c823
LogLine debugging
PatrikBuetler Jul 28, 2024
bb53e28
LogLine debugging
PatrikBuetler Jul 28, 2024
cb7aa50
LogLine debugging
PatrikBuetler Jul 28, 2024
8873d6e
LogLine debugging
PatrikBuetler Jul 29, 2024
535a8cf
LogLine debugging
PatrikBuetler Jul 29, 2024
200ca8f
LogLine debugging
PatrikBuetler Jul 29, 2024
48c2106
LogLine debugging
PatrikBuetler Jul 29, 2024
68f5b13
LogLine debugging
PatrikBuetler Jul 29, 2024
d752f8d
LogLine debugging
PatrikBuetler Jul 29, 2024
16b4cff
LogLine debugging
PatrikBuetler Jul 29, 2024
582636f
LogLine debugging
PatrikBuetler Jul 29, 2024
66afd00
LogLine debugging
PatrikBuetler Jul 29, 2024
92a6b0a
LogLine debugging
PatrikBuetler Jul 29, 2024
076d6b4
LogLine debugging
PatrikBuetler Jul 29, 2024
a217de6
LogLine debugging
PatrikBuetler Jul 29, 2024
530ffd4
LogLine debugging
PatrikBuetler Jul 29, 2024
27066e7
LogLine debugging
PatrikBuetler Jul 29, 2024
c04599f
LogLine debugging
PatrikBuetler Jul 29, 2024
57a1bd2
LogLine debugging
PatrikBuetler Jul 29, 2024
3fddef9
LogLine debugging
PatrikBuetler Jul 29, 2024
fe6fc0d
LogLine debugging
PatrikBuetler Jul 29, 2024
866bcdd
LogLine debugging
PatrikBuetler Jul 29, 2024
80ca6ae
LogLine debugging
PatrikBuetler Jul 29, 2024
e3add03
LogLine debugging
PatrikBuetler Jul 29, 2024
9f71ab0
LogLine debugging
PatrikBuetler Jul 29, 2024
333bb96
LogLine debugging
PatrikBuetler Jul 29, 2024
64f5184
LogLine debugging
PatrikBuetler Jul 29, 2024
c81944d
LogLine debugging
PatrikBuetler Jul 29, 2024
850b038
LogLine debugging
PatrikBuetler Jul 29, 2024
2dace2c
LogLine debugging
PatrikBuetler Jul 29, 2024
12574d0
LogLine debugging
PatrikBuetler Jul 29, 2024
99f6b8e
LogLine debugging
PatrikBuetler Jul 29, 2024
22e123c
LogLine debugging
PatrikBuetler Jul 29, 2024
6ab0ee8
LogLine debugging
PatrikBuetler Jul 29, 2024
2f601f1
LogLine debugging
PatrikBuetler Jul 29, 2024
f2dbdfc
LogLine debugging
PatrikBuetler Jul 29, 2024
1288563
LogLine debugging
PatrikBuetler Jul 29, 2024
8b45769
LogLine debugging
PatrikBuetler Jul 29, 2024
1e25a72
LogLine debugging
PatrikBuetler Jul 29, 2024
89179ac
LogLine debugging
PatrikBuetler Jul 29, 2024
68b7959
LogLine debugging
PatrikBuetler Jul 29, 2024
18d1b82
LogLine debugging
PatrikBuetler Jul 29, 2024
488aa26
LogLine debugging
PatrikBuetler Jul 29, 2024
f0a7803
LogLine debugging
PatrikBuetler Jul 29, 2024
9cd478a
LogLine debugging
PatrikBuetler Jul 29, 2024
0cd2c3d
LogLine debugging
PatrikBuetler Jul 29, 2024
c1a6522
LogLine debugging
PatrikBuetler Jul 29, 2024
8d4df9a
LogLine debugging
PatrikBuetler Jul 29, 2024
cde675b
LogLine debugging
PatrikBuetler Jul 29, 2024
1ee77b8
LogLine debugging
PatrikBuetler Jul 29, 2024
5e5e41f
LogLine debugging
PatrikBuetler Jul 29, 2024
85522a1
LogLine debugging
PatrikBuetler Jul 29, 2024
27c04b6
LogLine debugging
PatrikBuetler Jul 29, 2024
418fe2e
LogLine debugging
PatrikBuetler Jul 29, 2024
1292eb1
LogLine debugging
PatrikBuetler Jul 29, 2024
50cba7f
LogLine debugging
PatrikBuetler Jul 29, 2024
ce25b17
LogLine debugging
PatrikBuetler Jul 29, 2024
efb3e12
LogLine debugging
PatrikBuetler Jul 29, 2024
dd01caa
LogLine debugging
PatrikBuetler Jul 29, 2024
e300fcf
LogLine debugging
PatrikBuetler Jul 29, 2024
6e7c1ed
LogLine debugging
PatrikBuetler Jul 29, 2024
d621125
LogLine debugging
PatrikBuetler Jul 29, 2024
f27491c
LogLine debugging
PatrikBuetler Jul 29, 2024
181d94f
LogLine debugging
PatrikBuetler Jul 29, 2024
964756c
LogLine debugging
PatrikBuetler Jul 29, 2024
42c5ed0
LogLine debugging
PatrikBuetler Jul 29, 2024
ed41d7d
LogLine debugging
PatrikBuetler Jul 29, 2024
47eb252
LogLine debugging
PatrikBuetler Jul 29, 2024
ccc556a
LogLine debugging
PatrikBuetler Jul 29, 2024
c238e2f
LogLine debugging
PatrikBuetler Jul 29, 2024
e576f59
LogLine debugging
PatrikBuetler Jul 29, 2024
af659fe
LogLine debugging
PatrikBuetler Jul 29, 2024
6a59e3f
LogLine debugging
PatrikBuetler Jul 29, 2024
c3ed196
LogLine debugging
PatrikBuetler Jul 29, 2024
ba01b04
LogLine debugging
PatrikBuetler Jul 29, 2024
dc8b73f
LogLine debugging
PatrikBuetler Jul 29, 2024
6a473cf
LogLine debugging
PatrikBuetler Jul 29, 2024
eafada0
LogLine debugging
PatrikBuetler Jul 29, 2024
046dfe5
LogLine debugging
PatrikBuetler Jul 29, 2024
0a0c575
Methods to record time for Evaluation added
PatrikBuetler Jul 30, 2024
34deddf
Methods to record time for Evaluation added
PatrikBuetler Jul 30, 2024
4a3c876
Methods to record time for Evaluation added
PatrikBuetler Jul 30, 2024
b5a7ed0
Methods to record time for Evaluation added
PatrikBuetler Jul 30, 2024
0253580
Methods to record time for Evaluation added
PatrikBuetler Jul 30, 2024
2965c69
Methods to record time for Evaluation added
PatrikBuetler Jul 30, 2024
708d7f2
Methods to record time for Evaluation added
PatrikBuetler Jul 30, 2024
f019186
Methods to record time for Evaluation added
PatrikBuetler Jul 30, 2024
eabd4ab
Methods to record time for Evaluation added
PatrikBuetler Jul 30, 2024
26362c1
removed time measurement methods from being active
PatrikBuetler Jul 30, 2024
a56c1db
fixed hash check when new job/evaluation is created
PatrikBuetler Jul 30, 2024
a750b6e
fixed hash check when new job/evaluation is created
PatrikBuetler Jul 30, 2024
bbd2646
fixed hash check when new job/evaluation is created
PatrikBuetler Jul 30, 2024
fd686a2
fixed hash check when new job/evaluation is created
PatrikBuetler Jul 30, 2024
122703f
fixed hash check when new job/evaluation is created
PatrikBuetler Jul 30, 2024
87c1b39
Append all results at the end to create only 1 database transaction
PatrikBuetler Aug 1, 2024
e40a32d
Support for sanityCheck in frontend
PatrikBuetler Aug 1, 2024
3d689ca
Support for sanityCheck in frontend
PatrikBuetler Aug 1, 2024
2a0faa2
Support for sanityCheck in frontend
PatrikBuetler Aug 1, 2024
36752f8
baseline test for evaluation
PatrikBuetler Aug 1, 2024
146e3d1
baseline test for evaluation
PatrikBuetler Aug 1, 2024
8fffaf9
fixed typo
PatrikBuetler Aug 2, 2024
730c260
cleaning up files
PatrikBuetler Aug 2, 2024
6a9cf4d
cleaning up files
PatrikBuetler Aug 2, 2024
a545cbf
cleaning up files
PatrikBuetler Aug 2, 2024
e092dd0
cleaning up files
PatrikBuetler Aug 2, 2024
aab2267
cleaning up files
PatrikBuetler Aug 2, 2024
7ab8105
cleaning up files
PatrikBuetler Aug 3, 2024
8af85a6
cleaning up files
PatrikBuetler Aug 3, 2024
8bd2dc9
cleaning up files
PatrikBuetler Aug 3, 2024
a4fe46c
fixed minor bug
PatrikBuetler Aug 5, 2024
f43a45b
improved performance with empty pattern set
PatrikBuetler Aug 5, 2024
307dea4
Small fix to check for missing positive patterns if a job has status …
PatrikBuetler Aug 9, 2024
8c4c6cf
removed unnecessary code
PatrikBuetler Aug 10, 2024
62fd074
changed button appearance
PatrikBuetler Aug 10, 2024
f1e9e59
fixed typo
PatrikBuetler Aug 13, 2024
e082ed9
fixed typo
PatrikBuetler Aug 13, 2024
2cb5d7a
fixed typo
PatrikBuetler Aug 13, 2024
1090c80
fixed typo
PatrikBuetler Aug 13, 2024
d00d6e4
fixed typo
PatrikBuetler Aug 13, 2024
bfaa807
fixed typo
PatrikBuetler Aug 13, 2024
1ed1d4e
fixed typo
PatrikBuetler Aug 13, 2024
51489da
fixed typo
PatrikBuetler Aug 13, 2024
c708b26
fixed typo
PatrikBuetler Aug 13, 2024
b56267d
fixed typo
PatrikBuetler Aug 13, 2024
a451f2f
fixed typo
PatrikBuetler Aug 13, 2024
83c5239
fixed typo
PatrikBuetler Aug 13, 2024
81d9c26
fixed typo
PatrikBuetler Aug 13, 2024
969e2fc
fixed typo
PatrikBuetler Aug 13, 2024
295e78b
fixed typo
PatrikBuetler Aug 13, 2024
4b7b628
fixed typo
PatrikBuetler Aug 13, 2024
6d34d02
fixed typo
PatrikBuetler Aug 13, 2024
65698ef
fixed typo
PatrikBuetler Aug 13, 2024
bc6bcc8
fixed typo
PatrikBuetler Aug 13, 2024
e022b94
fixed typo
PatrikBuetler Aug 13, 2024
f88c929
fixed typo
PatrikBuetler Aug 13, 2024
c12fdf7
fixed typo
PatrikBuetler Aug 13, 2024
4ed52e0
fixed typo
PatrikBuetler Aug 13, 2024
efef8af
fixed typo
PatrikBuetler Aug 13, 2024
340596e
fixed typo
PatrikBuetler Aug 13, 2024
ac899eb
fixed typo
PatrikBuetler Aug 13, 2024
c588772
fixed typo
PatrikBuetler Aug 13, 2024
6b11b15
fixed typo
PatrikBuetler Aug 13, 2024
a908a9b
fixed typo
PatrikBuetler Aug 13, 2024
5b40056
fixed typo
PatrikBuetler Aug 13, 2024
f95b077
fixed typo
PatrikBuetler Aug 13, 2024
875e66a
fixed typo
PatrikBuetler Aug 13, 2024
ae68f5a
fixed typo
PatrikBuetler Aug 13, 2024
f9a2362
fixed typo
PatrikBuetler Aug 13, 2024
c0bfb0b
changed json to be 'result':[{}]
PatrikBuetler Aug 13, 2024
ea4ff57
changed json to be 'result':[{}]
PatrikBuetler Aug 13, 2024
eefc5ba
changed json to be 'result':[{}]
PatrikBuetler Aug 13, 2024
6d76c0e
changed json to be 'result':[{}]
PatrikBuetler Aug 13, 2024
071db29
changed json to be 'result':[{}]
PatrikBuetler Aug 13, 2024
a25873a
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
7b7460d
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
8e22f50
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
b9d1396
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
1097ad4
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
bbb0225
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
2b8b682
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
722b29c
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
1609cf2
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
9548e77
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
0943a42
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
15b2b31
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
cda9b1f
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
55e5498
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
cb2f6c9
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
09a5eab
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
cf99dcd
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
a224741
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
1f11396
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
3744b94
changed json to be 'result':[{}]
PatrikBuetler Aug 14, 2024
bf17493
Merge branch 'job-log-overview' into job-log-overview-fix
PatrikBuetler Aug 14, 2024
f73492d
Merge pull request #178 from Chronos-EaaS/job-log-overview-fix
PatrikBuetler Aug 14, 2024
6452392
small fixes
PatrikBuetler Aug 14, 2024
cef9b6c
small fixes
PatrikBuetler Aug 14, 2024
c9d5541
small fixes
PatrikBuetler Aug 14, 2024
f953e92
small fixes
PatrikBuetler Aug 14, 2024
962f8d0
small fixes
PatrikBuetler Aug 14, 2024
32110f9
Documented Logalyzer
PatrikBuetler Aug 26, 2024
899797e
Documented Logalyzer
PatrikBuetler Aug 27, 2024
b8efc03
Documented Logalyzer
PatrikBuetler Aug 27, 2024
1b1c942
Documented Logalyzer
PatrikBuetler Aug 27, 2024
54d9b80
Documented Logalyzer
PatrikBuetler Aug 27, 2024
30ca46d
Attempt to fetch results dynamically via Job API
PatrikBuetler Aug 27, 2024
7952ffe
Reverted attempts, creating new branch
PatrikBuetler Aug 27, 2024
9f94773
Dynamically fetch data using api
PatrikBuetler Aug 27, 2024
29d380c
Dynamically fetch data using api
PatrikBuetler Aug 27, 2024
f262823
debug
PatrikBuetler Aug 27, 2024
b4b4369
Dynamic fetching
PatrikBuetler Aug 27, 2024
2cd8a34
Dynamic fetching
PatrikBuetler Aug 27, 2024
ea728f8
Dynamic fetching
PatrikBuetler Aug 27, 2024
654758f
Dynamic fetching
PatrikBuetler Aug 27, 2024
f671050
Dynamic fetching
PatrikBuetler Aug 27, 2024
3f652c2
Dynamic fetching
PatrikBuetler Aug 27, 2024
f60cf46
Dynamic fetching
PatrikBuetler Aug 27, 2024
acaeabd
Dynamic fetching
PatrikBuetler Aug 27, 2024
22e6cfb
Dynamic fetching
PatrikBuetler Aug 27, 2024
7c41827
Dynamic fetching
PatrikBuetler Aug 27, 2024
c044f50
Dynamic fetching
PatrikBuetler Aug 27, 2024
234a7ec
Dynamic fetching
PatrikBuetler Aug 31, 2024
a7a54b2
Some fixes
PatrikBuetler Sep 7, 2024
dfd3eac
Some fixes
PatrikBuetler Sep 7, 2024
b382dab
Some fixes
PatrikBuetler Sep 7, 2024
988e06c
Some fixes
PatrikBuetler Sep 7, 2024
9fc70b7
Some fixes
PatrikBuetler Sep 7, 2024
683afdf
Some fixes
PatrikBuetler Sep 7, 2024
f3e4919
Some fixes
PatrikBuetler Sep 7, 2024
bff81b8
Some fixes
PatrikBuetler Sep 7, 2024
af0e438
Some fixes
PatrikBuetler Sep 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions api/ui/evaluation.php
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,14 @@ public function get() {

if (!empty($this->get['action'])) {
switch ($this->get['action']) {
case 'getLogalyzerResponses':
$qF = new QueryFilter(Job::EVALUATION_ID, $evaluation->getId(), "=");
$jobs = Factory::getJobFactory()->filter([$qF]);
//foreach ($jobs as $job) {
//
//}
$array = [];
$this->addData('response', $array);
case 'countFinishedJobs':
// retrieve how many jobs are finished
$qF1 = new QueryFilter(Job::STATUS, Define::JOB_STATUS_FINISHED, "=");
Expand Down
7 changes: 7 additions & 0 deletions api/ui/job.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,13 @@ public function patch() {
if (isset($this->request['progress'])) {
$job->setProgress($this->request['progress']);
}
if(isset($this->request['getLogalyzerResponse'])) {
$warning = -1;
$error = -1;
$mandatory = -1;
$string = json_encode('{"warning": ' . $warning .',"error": '. $error . ',"mandatory": '. $mandatory .'}');
$this->addData('response', $string);
}
Factory::getJobFactory()->update($job);
}
}
19 changes: 18 additions & 1 deletion api/v1/job.php
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,22 @@ public function get() {
} else {
$data->log = $log;
}
// Dynamically fetch Logalyzer results
$data->logErrorCount = Factory::getJobFactory()->getJobCountForLogLevel($job, 'error', 'negative');
$data->logWarningCount = Factory::getJobFactory()->getJobCountForLogLevel($job, 'warn', 'negative');
if($job->getStatus()==Define::JOB_STATUS_FINISHED && !Factory::getJobFactory()->checkAllPositiveJobPatterns($job)) {
$data->logContainsMandatory=0;
}
$logalyzer = new Logalyzer_Library();
$logalyzer->setSystemAndLoadPattern($system);
$hash = $logalyzer->calculateSystemHash();
$json = $job->getLogalyzerResults();
if($json != null) {
$results = json_decode($json, true);
if (!isset($results['hash']) || $results['hash'] != $hash) {
$data->usedOutdatedPattern = true;
}
}
}
$this->add($data);
}
Expand Down Expand Up @@ -163,7 +179,6 @@ public function patch() {
if (empty($this->get['id'])) {
throw new Exception('No id provided');
}

$auth = Auth_Library::getInstance();
$job = Factory::getJobFactory()->get($this->get['id']);
$evaluation = Factory::getEvaluationFactory()->get($job->getEvaluationId());
Expand Down Expand Up @@ -298,5 +313,7 @@ private function appendLog($id) {
mkdir(UPLOADED_DATA_PATH . 'log');
}
file_put_contents(UPLOADED_DATA_PATH . 'log/' . $id . '.log', $this->request['log'], FILE_APPEND);
$logalyzer = new Logalyzer_Library($job);
$logalyzer->examineLogLine($this->request['log']);
}
}
7 changes: 5 additions & 2 deletions chronos.sql
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,8 @@ CREATE TABLE `Job` (
`finished` datetime DEFAULT NULL,
`evaluationId` int(11) NOT NULL,
`internalId` int(11) NOT NULL,
`configurationIdentifier` varchar(256) COLLATE utf8_unicode_ci NOT NULL
`configurationIdentifier` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
`logalyzerResults` json
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


Expand Down Expand Up @@ -130,7 +131,8 @@ CREATE TABLE `System` (
`vcsPassword` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
`created` datetime NOT NULL,
`lastEdit` datetime NOT NULL,
`isArchived` int(11) NOT NULL
`isArchived` int(11) NOT NULL,
`logalyzerPatterns` json
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


Expand Down Expand Up @@ -215,6 +217,7 @@ CREATE INDEX job_idx_2 ON `Job`(systemId);
CREATE INDEX job_idx_3 ON `Job`(status);
CREATE INDEX job_idx_4 ON `Job`(evaluationId);
CREATE INDEX job_idx_5 ON `Job`(internalId);
CREATE INDEX job_idx_6 ON `Job`(logalyzerHash);

CREATE INDEX project_idx_1 ON `Project`(userId);
CREATE INDEX project_idx_2 ON `Project`(systemId);
Expand Down
1 change: 1 addition & 0 deletions constants.php
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
<?php
define('APP_VERSION', '1.2-dev');
define('LOG_ERRORS_MAX', 10);
75 changes: 72 additions & 3 deletions controllers/admin.php
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,6 @@ public function systems() {
*/
public function system() {
$this->view->includeAsset("gitgraph");

if (!empty($this->get['id'])) {
$system = new System($this->get['id']);
$system = $system->getModel();
Expand All @@ -339,7 +338,6 @@ public function system() {
if ($system->getUserId() != $auth->getUserID() && !$auth->isAdmin()) {
throw new Exception("Not enough privileges to view this system!");
}

if (!empty($this->post['id'])) {
if ($this->post['group'] == 'general') {
$data = $this->post;
Expand Down Expand Up @@ -391,8 +389,70 @@ public function system() {
throw new Exception("Key already used!");
}
}
} else if (!empty($this->post['group'] =='newError')) {
$key = $this->post['newErrorPattern'];
if ($key != "") {
$system = Factory::getSystemFactory()->get($this->post['id']);
$logalyzer = new Logalyzer_Library();
$logalyzer->setSystemAndLoadPattern($system);
if(!empty($this->post['regexError'])&&$this->post['regexError']=='on') {
$logalyzer->addKey('error', $key, 'regex', 'negative');
} else {
$logalyzer->addKey('error', $key, 'string', 'negative');
}
}
} else if (!empty($this->post['group'] == 'newWarning')) {
$key = $this->post['newWarningPattern'];
if ($key != "") {
$system = Factory::getSystemFactory()->get($this->post['id']);
$logalyzer = new Logalyzer_Library();
$logalyzer->setSystemAndLoadPattern($system);
if(!empty($this->post['regexWarning'])&&$this->post['regexWarning']=='on') {
$logalyzer->addKey('warn', $key, 'regex', 'negative');
} else {
$logalyzer->addKey('warn', $key, 'string', 'negative');
}
}
} else if (!empty($this->post['group'] == 'newMandatory')) {
$key = $this->post['newMandatoryPattern'];
if ($key != "") {
$system = Factory::getSystemFactory()->get($this->post['id']);
$logalyzer = new Logalyzer_Library();
$logalyzer->setSystemAndLoadPattern($system);
if(!empty($this->post['regexMandatory'])&&$this->post['regexMandatory']=='on') {
$logalyzer->addKey('error', $key, 'regex', 'positive');
} else {
$logalyzer->addKey('error', $key, 'string', 'positive');
}
}
}
}
else if (!empty($this->get['deleteWarningPattern'])) {
$key = $this->get['deleteWarningPattern'];
if ($key != "") {
$system = Factory::getSystemFactory()->get($this->get['id']);
$logalyzer = new Logalyzer_Library();
$logalyzer->setSystemAndLoadPattern($system);
$logalyzer->removeKey('warn', $key, 'negative');
}
} else if (!empty($this->get['delete'])) {
} else if (!empty($this->get['deleteErrorPattern'])) {
$key = $this->get['deleteErrorPattern'];
if ($key != "") {
$system = Factory::getSystemFactory()->get($this->get['id']);
$logalyzer = new Logalyzer_Library();
$logalyzer->setSystemAndLoadPattern($system);
$logalyzer->removeKey('error', $key, 'negative');
}
} else if (!empty($this->get['deleteMandatoryPattern'])) {
$key = $this->get['deleteMandatoryPattern'];
if ($key != "") {
$system = Factory::getSystemFactory()->get($this->get['id']);
$logalyzer = new Logalyzer_Library();
$logalyzer->setSystemAndLoadPattern($system);
$logalyzer->removeKey('error', $key, 'positive');
}
}
else if (!empty($this->get['delete'])) {
$settings = Settings_Library::getInstance($system->getId());
if (!empty($this->get['delete'])) {
$key = urldecode($this->get['delete']);
Expand Down Expand Up @@ -497,6 +557,15 @@ public function system() {
$this->view->assign('branches', Systems_Library::getBranches($system->getId()));
$this->view->assign('history', Systems_Library::getHistory($system->getId()));
$this->view->assign('auth', Auth_Library::getInstance());

$logalyzer = new Logalyzer_Library();
$logalyzer->setSystemAndLoadPattern($system);
$errors = $logalyzer->getPatterns('error', 'negative');
$warnings = $logalyzer->getPatterns('warn', 'negative');
$mandatory = $logalyzer->getPatterns('error', "positive");
$this->view->assign('errorPatterns', $errors);
$this->view->assign('warningPatterns', $warnings);
$this->view->assign('mandatoryPatterns', $mandatory);
} else {
throw new Exception("No id provided!");
}
Expand Down
31 changes: 30 additions & 1 deletion controllers/evaluation.php
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,22 @@ public function detail() {
$evaluation->setIsStarred(0);
Factory::getEvaluationFactory()->update($evaluation);
}

// Button press to reexamine entire log
// Button shows up if the job was inspected using an outdated pattern
if (!empty($this->post['recheck'])) {
$job = Factory::getJobFactory()->get($this->post['jobId']);
$logalyzer = new Logalyzer_Library($job);
$logalyzer->examineEntireLog();
}
// Recheck all Jobs contained in an Evaluation
if (!empty($this->post['recheckAll'])) {
$qF = new QueryFilter(Job::EVALUATION_ID, $evaluation->getId(), "=");
$jobs = Factory::getJobFactory()->filter([Factory::FILTER => $qF]);
foreach ($jobs as $subJob) {
$logalyzer = new Logalyzer_Library($subJob);
$logalyzer->examineEntireLog();
}
}
$experiment = Factory::getExperimentFactory()->get($evaluation->getExperimentId());

// Check if the user has enough privileges to access this evaluation
Expand All @@ -151,6 +166,14 @@ public function detail() {
$this->view->assign('subjobs', $jobs);
$sys = new System($evaluation->getSystemId());
$this->view->assign('supportsShowResults', $sys->supportsFullResults());
$system = Factory::getSystemFactory()->get($experiment->getSystemId());

$logalyzer = new Logalyzer_Library();
$logalyzer->setSystemAndLoadPattern($system);
$systemHash = $logalyzer->calculateSystemHash();
$this->view->assign('systemHash', $systemHash);
$usedOutdatedPattern = false;

// check if all jobs have finished
$isFinished = true;
$resultsAvailable = false;
Expand All @@ -160,10 +183,16 @@ public function detail() {
} else {
$resultsAvailable = true;
}
if(Factory::getJobFactory()->getJobHash($subJob) != $systemHash && Factory::getJobFactory()->getJobHash($subJob) != "") {
$usedOutdatedPattern = true;
}
}
if (sizeof($jobs) == 0) {
$isFinished = false;
}
if ($usedOutdatedPattern) {
$this->view->assign('usedOutdatedPattern', true);
}
$this->view->assign('isFinished', $isFinished);
$this->view->assign('resultsAvailable', $resultsAvailable);
} else {
Expand Down
29 changes: 28 additions & 1 deletion controllers/job.php
Original file line number Diff line number Diff line change
Expand Up @@ -143,12 +143,39 @@ public function detail() {
$this->view->assign('evaluation', $evaluation);
$this->view->assign('experiment', Factory::getExperimentFactory()->get($evaluation->getExperimentId()));

if (!empty($this->post['recheck'])) {
$logalyzer = new Logalyzer_Library($job);
$logalyzer->examineEntireLog();
}

$this->view->assign('logWarningCount', Factory::getJobFactory()->getJobCountForLogLevel($job, 'warn', 'negative'));
$this->view->assign('logErrorCount', Factory::getJobFactory()->getJobCountForLogLevel($job, 'error', 'negative'));
if($job->getStatus()==Define::JOB_STATUS_FINISHED && !Factory::getJobFactory()->checkAllPositiveJobPatterns($job)) {
$this->view->assign('logContainsMandatory', 0);
}
$system = Factory::getSystemFactory()->get($job->getSystemId());

// Fetch a Job's Logalyzer results to check if it is up-to-date.
$logalyzer = new Logalyzer_Library();
$logalyzer->setSystemAndLoadPattern($system);
$hash = $logalyzer->calculateSystemHash();
$json = $job->getLogalyzerResults();
if($json != null) {
$results = json_decode($json, true);
if(!isset($results['hash'])||$results['hash'] != $hash) {
$this->view->assign('usedOutdatedPattern', true);
}
}


$events = Util::eventFilter(['job' => $job]);
$this->view->assign('events', $events);
} else {
throw new Exception("No job with id: " . $this->get['id']);
}
} else {

}
else {
throw new Exception("No job id provided!");
}
}
Expand Down
Loading