Skip to content

Commit c88a382

Browse files
committed
detecting the initial state fixed; fixed parallel machine state creation when it is the first state in the machine
Signed-off-by: Pedro Escaleira <pedroescaleira@hotmail.com>
1 parent 8aae4a4 commit c88a382

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

serverlessworkflow/sdk/state_machine_generator.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,11 @@ def definitions(self):
178178

179179
def parallel_state_details(self):
180180
if isinstance(self.state, ParallelState):
181+
if self.state.name not in self.state_machine.states.keys():
182+
self.state_machine.add_states(self.state.name)
183+
if self.is_first_state:
184+
self.state_machine._initial = self.state.name
185+
181186
state_name = self.state.name
182187
branches = self.state.branches
183188
if branches:
@@ -208,8 +213,8 @@ def data_based_switch_state_details(self): ...
208213
def operation_state_details(self):
209214
if self.state.name not in self.state_machine.states.keys():
210215
self.state_machine.add_states(self.state.name)
211-
if self.is_first_state:
212-
self.state_machine._initial = self.state.name
216+
if self.is_first_state:
217+
self.state_machine._initial = self.state.name
213218

214219
if isinstance(self.state, OperationState):
215220
self.generate_actions_info(
@@ -264,11 +269,11 @@ def get_subflow_state(
264269
)
265270

266271
# Generate the state machine for the subflow
267-
for index, state in enumerate(sf.states):
272+
for state in sf.states:
268273
StateMachineGenerator(
269274
state=state,
270275
state_machine=new_machine,
271-
is_first_state=index == 0,
276+
is_first_state=sf.start == state.name,
272277
get_actions=self.get_actions,
273278
subflows=self.subflows,
274279
).generate()

serverlessworkflow/sdk/state_machine_helper.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ def __init__(
3030
auto_transitions=False,
3131
title=title,
3232
)
33-
for index, state in enumerate(workflow.states):
33+
for state in workflow.states:
3434
StateMachineGenerator(
3535
state=state,
3636
state_machine=self.machine,
37-
is_first_state=index == 0,
37+
is_first_state=workflow.start == state.name,
3838
get_actions=self.get_actions,
3939
subflows=subflows,
4040
).generate()

0 commit comments

Comments
 (0)