未验证 提交 9168675b 编写于 作者: J Jack Fan 提交者: GitHub

Add condition to job status return in backend (#5215)

* Add condition to job status return in backend

* Add job condition display in frontend, fix backend test

* Address reviewer comment
上级 368162a4
......@@ -59,6 +59,8 @@ type JobStatus struct {
Status JobStatusType `json:"status"`
// A human-readable description of the status of related job.
Message string `json:"message"`
// Conditions describe the state of a job after it finishes.
Conditions []common.Condition `json:"conditions"`
}
// Job is a presentation layer view of Kubernetes Job resource. This means it is Job plus additional
......@@ -173,7 +175,7 @@ func toJob(job *batch.Job, podInfo *common.PodInfo) Job {
}
func getJobStatus(job *batch.Job) JobStatus {
jobStatus := JobStatus{Status: JobStatusRunning}
jobStatus := JobStatus{Status: JobStatusRunning, Conditions: getJobConditions(job)}
for _, condition := range job.Status.Conditions {
if condition.Type == batch.JobComplete && condition.Status == v1.ConditionTrue {
jobStatus.Status = JobStatusComplete
......@@ -186,3 +188,18 @@ func getJobStatus(job *batch.Job) JobStatus {
}
return jobStatus
}
func getJobConditions(job *batch.Job) []common.Condition {
var conditions []common.Condition
for _, condition := range job.Status.Conditions {
conditions = append(conditions, common.Condition{
Type: string(condition.Type),
Status: condition.Status,
LastProbeTime: condition.LastProbeTime,
LastTransitionTime: condition.LastTransitionTime,
Reason: condition.Reason,
Message: condition.Message,
})
}
return conditions
}
......@@ -208,6 +208,10 @@ func TestGetJobListFromChannels(t *testing.T) {
},
JobStatus: JobStatus{
Status: JobStatusFailed,
Conditions: []common.Condition{{
Type: string(batch.JobFailed),
Status: v1.ConditionTrue,
}},
},
}},
Errors: []error{},
......
......@@ -71,6 +71,9 @@ limitations under the License.
</div>
</kd-card>
<kd-condition-list [conditions]="job?.jobStatus?.conditions"
[initialized]="isInitialized"></kd-condition-list>
<kd-pod-status-card [podInfo]="job?.podInfo"
[initialized]="isInitialized"></kd-pod-status-card>
......
......@@ -33,6 +33,12 @@ export interface ObjectMeta {
uid?: string;
}
export interface JobStatus {
status: string;
message: string;
conditions: Condition[];
}
export interface ResourceDetail {
objectMeta: ObjectMeta;
typeMeta: TypeMeta;
......@@ -480,6 +486,7 @@ export interface JobDetail extends ResourceDetail {
eventList: EventList;
parallelism: number;
completions: number;
jobStatus: JobStatus;
}
export interface CronJobDetail extends ResourceDetail {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册