ValidateEvents validates all the devfile events
(events v1alpha2.Events, commands []v1alpha2.Command)
| 33 | |
| 34 | // ValidateEvents validates all the devfile events |
| 35 | func ValidateEvents(events v1alpha2.Events, commands []v1alpha2.Command) (err error) { |
| 36 | |
| 37 | commandMap := getCommandsMap(commands) |
| 38 | |
| 39 | switch { |
| 40 | case len(events.PreStart) > 0: |
| 41 | if preStartErr := isEventValid(events.PreStart, preStart, commandMap); preStartErr != nil { |
| 42 | err = multierror.Append(err, preStartErr) |
| 43 | } |
| 44 | fallthrough |
| 45 | case len(events.PostStart) > 0: |
| 46 | if postStartErr := isEventValid(events.PostStart, postStart, commandMap); postStartErr != nil { |
| 47 | err = multierror.Append(err, postStartErr) |
| 48 | } |
| 49 | fallthrough |
| 50 | case len(events.PreStop) > 0: |
| 51 | if preStopErr := isEventValid(events.PreStop, preStop, commandMap); preStopErr != nil { |
| 52 | err = multierror.Append(err, preStopErr) |
| 53 | } |
| 54 | fallthrough |
| 55 | case len(events.PostStop) > 0: |
| 56 | if postStopErr := isEventValid(events.PostStop, postStop, commandMap); postStopErr != nil { |
| 57 | err = multierror.Append(err, postStopErr) |
| 58 | } |
| 59 | } |
| 60 | |
| 61 | return err |
| 62 | } |
| 63 | |
| 64 | // isEventValid checks if events belonging to a specific event type are valid ie; |
| 65 | // 1. event should map to a valid devfile command |