forked from os-autoinst/openQA
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Constants.pm
88 lines (81 loc) · 3.06 KB
/
Constants.pm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package OpenQA::Jobs::Constants;
use Mojo::Base -base;
use Exporter 'import';
# States
use constant {
SCHEDULED => 'scheduled',
SETUP => 'setup',
RUNNING => 'running',
CANCELLED => 'cancelled',
DONE => 'done',
UPLOADING => 'uploading',
ASSIGNED => 'assigned'
};
use constant STATES => (SCHEDULED, ASSIGNED, SETUP, RUNNING, UPLOADING, DONE, CANCELLED);
use constant PENDING_STATES => (SCHEDULED, ASSIGNED, SETUP, RUNNING, UPLOADING);
use constant EXECUTION_STATES => (ASSIGNED, SETUP, RUNNING, UPLOADING);
use constant PRE_EXECUTION_STATES => (SCHEDULED); # Assigned belongs to pre execution, but makes no sense for now
use constant FINAL_STATES => (DONE, CANCELLED);
# Results
use constant {
NONE => 'none',
PASSED => 'passed',
SOFTFAILED => 'softfailed',
FAILED => 'failed',
INCOMPLETE => 'incomplete', # worker died or reported some problem
SKIPPED => 'skipped', # dependencies failed before starting this job
OBSOLETED => 'obsoleted', # new iso was posted
PARALLEL_FAILED => 'parallel_failed', # parallel job failed, this job can't continue
PARALLEL_RESTARTED => 'parallel_restarted', # parallel job was restarted, this job has to be restarted too
USER_CANCELLED => 'user_cancelled', # cancelled by user via job_cancel
USER_RESTARTED => 'user_restarted', # restarted by user via job_restart
TIMEOUT_EXCEEDED => 'timeout_exceeded', # killed by the worker after MAX_JOB_TIME has been exceeded
};
use constant RESULTS => (NONE, PASSED, SOFTFAILED, FAILED, INCOMPLETE, SKIPPED,
OBSOLETED, PARALLEL_FAILED, PARALLEL_RESTARTED, USER_CANCELLED, USER_RESTARTED, TIMEOUT_EXCEEDED
);
use constant COMPLETE_RESULTS => (PASSED, SOFTFAILED, FAILED);
use constant OK_RESULTS => (PASSED, SOFTFAILED);
use constant INCOMPLETE_RESULTS => (INCOMPLETE, SKIPPED, OBSOLETED, PARALLEL_FAILED,
PARALLEL_RESTARTED, USER_CANCELLED, USER_RESTARTED, TIMEOUT_EXCEEDED
);
use constant NOT_OK_RESULTS => (INCOMPLETE_RESULTS, FAILED);
use constant MODULE_RESULTS => (CANCELLED, FAILED, NONE, PASSED, RUNNING, SKIPPED, SOFTFAILED);
our @EXPORT = qw(
ASSIGNED
CANCELLED
COMPLETE_RESULTS
DONE
EXECUTION_STATES
FAILED
FINAL_STATES
INCOMPLETE
INCOMPLETE_RESULTS
NONE
NOT_OK_RESULTS
OBSOLETED
OK_RESULTS
PARALLEL_FAILED
PARALLEL_RESTARTED
PASSED
PENDING_STATES
PRE_EXECUTION_STATES
RESULTS
RUNNING
SCHEDULED
SETUP
SKIPPED
SOFTFAILED
STATES
UPLOADING
USER_CANCELLED
USER_RESTARTED
MODULE_RESULTS
TIMEOUT_EXCEEDED
);
# define mapping from any specific job result to a "generalized" form where the different incomplete results are not distinguished
my %GENERALIZED_RESULTS = ((map { $_ => $_ } COMPLETE_RESULTS), (map { $_ => 'incomplete' } INCOMPLETE_RESULTS));
sub generalize_result {
my ($concrete_result) = @_;
return $GENERALIZED_RESULTS{$concrete_result} // NONE;
}