-
Notifications
You must be signed in to change notification settings - Fork 1
/
serverless.yml
168 lines (159 loc) · 6.01 KB
/
serverless.yml
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
service: evaworkflow
# org: vstudios
# app: evaworkflow
plugins:
- serverless-step-functions
- serverless-pseudo-parameters
provider:
name: aws
runtime: python3.7
package:
exclude:
- "*~"
- .git/**
- .venv*/**
- Makefile
- README.md
- README.rst
- docs/**
- node_modules/**
- package-lock.json
- package.json
- test-results/**
- tests/**
- venv/**
functions:
MeetsProvidedRequirements:
handler: handler.meets_provided_requirements
# Make all Choice status check for $.result == "Yes" for happy path, then
# Execute with input: {"result": "Yes"} to flow through the happy path
stepFunctions:
stateMachines:
EvaLogistics:
definition:
Comment: Hairy workflow based on Irina's PPT
StartAt: Existing Hardware?
States:
Existing Hardware?:
Type: Choice
Choices:
- Variable: $.result
StringEquals: Yes
Next: Hrdw currently on plan
- Variable: $.result
StringEquals: No
Next: New hrdw requested by hrdw provider
Hrdw currently on plan:
Type: Pass
Next: All requested data provided?
New hrdw requested by hrdw provider:
Type: Pass
Next: Hrdw approved by Logistics Management
Hrdw approved by Logistics Management:
Type: Pass
Next: All requested data provided?
# TODO how to handle "Hrdw currently on plan"?
All requested data provided?:
Type: Choice
Choices:
- Variable: $.result
StringEquals: No
Next: Hrdw added to watch list
- Variable: $.result
StringEquals: Yes
Next: Hrdw added to CRS bucket priority list
Hrdw added to watch list:
Type: Pass
Next: All requested data provided?
Hrdw added to CRS bucket priority list:
Type: Pass
# TODO: two branches out, how to handle?
Next: Logistics Integrator contacts drdw provider for part data O/D confirm
Logistics Integrator contacts drdw provider for part data O/D confirm:
Type: Choice # or is it parallel?
Choices:
- Variable: $.result
StringEquals: Yes
Next: Hrdw MR submitted to CRS bucket
- Variable: $.result
StringEquals: No
Next: Hrdw added to CRS status chart (working ESEL)
Hrdw added to CRS status chart (working ESEL):
Type: Pass
Next: Logistics Integrator presents CRS status to boards, panels & IPTs
Logistics Integrator presents CRS status to boards, panels & IPTs:
Type: Pass
Next: Logistics Integrator post ESEL on ICE post approval
Logistics Integrator post ESEL on ICE post approval:
Type: Pass
End: true
Hrdw MR submitted to CRS bucket:
Type: Pass
Next: MAPI recommends flight for hrdw
MAPI recommends flight for hrdw:
Type: Pass
# Pretend we do something then output stuff including random {"result": "Yes"|"No"}
# Type: Task
# Resource: "arn:aws:lambda:#{AWS::Region}:#{AWS::AccountId}:function:${self:service}-${opt:stage}-MeetsProvidedRequirements"
Next: Meets provided requirements?
Meets provided requirements?:
Type: Choice
Choices:
- Variable: $.result
StringEquals: No
Next: Logistics integrators coordinate move w/ hrdw privder & logistics management
- Variable: $.result
StringEquals: Yes
Next: Logistics Integrators approve to move hrdw to flight ESEL
Logistics integrators coordinate move w/ hrdw privder & logistics management:
Type: Pass
Next: Move approved?
Move approved?:
Type: Choice
Choices:
- Variable: $.result
StringEquals: No
Next: MAPI recommends flight for hrdw
- Variable: $.result
StringEquals: Yes
Next: Logistics Integrators approve to move hrdw to flight ESEL
Logistics Integrators approve to move hrdw to flight ESEL:
Type: Pass
Next: OC coordinator move to flight w/ MAPI
OC coordinator move to flight w/ MAPI:
Type: Pass
Next: Hrdw moves to flight ESEL
Hrdw moves to flight ESEL:
Type: Pass
Next: Logistics Integrator presents flight ESEL status to boards, panels & IPTs
Logistics Integrator presents flight ESEL status to boards, panels & IPTs:
# TODO: Unclear if this is choice or parallel, we'll use Choice
Type: Choice
Choices:
- Variable: $.result
StringEquals: Yes
Next: Hrdw updates requirements
- Variable: $.result
StringEquals: No
Next: Flight ESEL approved pre-CoFR(L-10w)
Hrdw updates requirements:
Type: Pass
Next: Can still make flight?
# TODO: Unclear whether Yes is supposed to go to Flight ESL
# or Logistics Integrator, so choose the termina Flight ESL.
Can still make flight?:
Type: Choice
Choices:
- Variable: $.result
StringEquals: Yes
Next: Flight ESEL approved pre-CoFR(L-10w)
- Variable: $.result
StringEquals: No
Next: Hrdw added to CRS status chart (working ESEL)
Flight ESEL approved pre-CoFR(L-10w):
Type: Pass
End: true
# TaskFailed:
# Type: Fail
# Error: You have an unhandled error in your code
# Cause: check the input to this state for the traceback