mirror of
https://github.com/open-cluster-management-io/ocm.git
synced 2026-08-23 22:26:49 +00:00
add job and pod wellknownStatusRules (#113)
Signed-off-by: Zhiwei Yin <zyin@redhat.com>
This commit is contained in:
@@ -48,6 +48,43 @@ const (
|
||||
}
|
||||
}
|
||||
`
|
||||
jobJson = `
|
||||
{
|
||||
"apiVersion": "batch/v1",
|
||||
"kind": "Job",
|
||||
"metadata": {
|
||||
"name": "test"
|
||||
},
|
||||
"status": {
|
||||
"conditions": [
|
||||
{
|
||||
"status": "True",
|
||||
"type": "Complete"
|
||||
}
|
||||
],
|
||||
"succeeded": 1
|
||||
}
|
||||
}
|
||||
`
|
||||
podJson = `
|
||||
{
|
||||
"apiVersion": "v1",
|
||||
"kind": "Pod",
|
||||
"metadata": {
|
||||
"name": "test"
|
||||
},
|
||||
"status": {
|
||||
"conditions": [
|
||||
{
|
||||
"status": "False",
|
||||
"type": "Ready"
|
||||
}
|
||||
],
|
||||
|
||||
"phase": "Succeeded"
|
||||
}
|
||||
}
|
||||
`
|
||||
)
|
||||
|
||||
func unstrctureObject(data string) *unstructured.Unstructured {
|
||||
@@ -171,6 +208,50 @@ func TestStatusReader(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Job values",
|
||||
object: unstrctureObject(jobJson),
|
||||
rule: workapiv1.FeedbackRule{Type: workapiv1.WellKnownStatusType},
|
||||
expectError: false,
|
||||
expectedValue: []workapiv1.FeedbackValue{
|
||||
{
|
||||
Name: "JobComplete",
|
||||
Value: workapiv1.FieldValue{
|
||||
Type: workapiv1.String,
|
||||
String: util.StringPtr("True"),
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "JobSucceeded",
|
||||
Value: workapiv1.FieldValue{
|
||||
Type: workapiv1.Integer,
|
||||
Integer: util.Int64Ptr(1),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Pod values",
|
||||
object: unstrctureObject(podJson),
|
||||
rule: workapiv1.FeedbackRule{Type: workapiv1.WellKnownStatusType},
|
||||
expectError: false,
|
||||
expectedValue: []workapiv1.FeedbackValue{
|
||||
{
|
||||
Name: "PodReady",
|
||||
Value: workapiv1.FieldValue{
|
||||
Type: workapiv1.String,
|
||||
String: util.StringPtr("False"),
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "PodPhase",
|
||||
Value: workapiv1.FieldValue{
|
||||
Type: workapiv1.String,
|
||||
String: util.StringPtr("Succeeded"),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
reader := NewStatusReader()
|
||||
|
||||
@@ -28,10 +28,34 @@ var deploymentRule = []workapiv1.JsonPath{
|
||||
},
|
||||
}
|
||||
|
||||
var jobRule = []workapiv1.JsonPath{
|
||||
{
|
||||
Name: "JobComplete",
|
||||
Path: `.status.conditions[?(@.type=="Complete")].status`,
|
||||
},
|
||||
{
|
||||
Name: "JobSucceeded",
|
||||
Path: `.status.succeeded`,
|
||||
},
|
||||
}
|
||||
|
||||
var podRule = []workapiv1.JsonPath{
|
||||
{
|
||||
Name: "PodReady",
|
||||
Path: `.status.conditions[?(@.type=="Ready")].status`,
|
||||
},
|
||||
{
|
||||
Name: "PodPhase",
|
||||
Path: `.status.phase`,
|
||||
},
|
||||
}
|
||||
|
||||
func DefaultWellKnownStatusRule() WellKnownStatusRuleResolver {
|
||||
return &DefaultWellKnownStatusResolver{
|
||||
rules: map[schema.GroupVersionKind][]workapiv1.JsonPath{
|
||||
{Group: "apps", Version: "v1", Kind: "Deployment"}: deploymentRule,
|
||||
{Group: "batch", Version: "v1", Kind: "Job"}: jobRule,
|
||||
{Group: "", Version: "v1", Kind: "Pod"}: podRule,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user