...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package v1alpha1
17
18 import (
19 "k8s.io/apimachinery/pkg/util/validation/field"
20
21 gw "github.com/chaos-mesh/chaos-mesh/api/genericwebhook"
22 )
23
24 type ScheduleItem struct {
25 EmbedChaos `json:",inline"`
26
27 Workflow *WorkflowSpec `json:"workflow,omitempty"`
28 }
29
30 func (in EmbedChaos) Validate(path *field.Path, chaosType string) field.ErrorList {
31 var allErrors field.ErrorList
32 root, err := in.SpawnNewObject(TemplateType(chaosType))
33 if err != nil {
34 allErrors = append(allErrors, field.Invalid(path, in, err.Error()))
35 return allErrors
36 }
37
38 gw.Default(root)
39 err = in.RestoreChaosSpec(root)
40 if err != nil {
41 allErrors = append(allErrors, field.Invalid(path, in, err.Error()))
42 return allErrors
43 }
44 return gw.Validate(root)
45 }
46