Skip to content
Snippets Groups Projects
Commit 1f01fe58 authored by Daniel Nemergut's avatar Daniel Nemergut
Browse files

Simplified capability definition

parent 4e43b9c8
No related branches found
No related tags found
2 merge requests!1605Merge 2.8.2.3 work to main,!1493WS-1893 curator workflow
......@@ -33,132 +33,8 @@ def upgrade():
"""
)
# This capability will have the same states, transitions, and actions as the download capability
op.execute(
f"""
INSERT INTO capability_states
SELECT E'{wf_name}', state
FROM capability_states
WHERE capability_name = 'download'
"""
)
op.execute(
f"""
INSERT INTO capability_state_transitions (capability_name, from_state, pattern, to_state)
SELECT E'{wf_name}', from_state, pattern, to_state
FROM capability_state_transitions
WHERE capability_name = 'download';
"""
)
# Making these explicit to grab the correct transition_ids
op.execute(
f"""
INSERT INTO capability_state_actions (transition_id, action_type, arguments)
VALUES (
(SELECT transition_id FROM capability_state_transitions
WHERE capability_name=E'{wf_name}'
AND from_state='Start'
AND to_state='Queued'),
'QueueWorkflow', E'{wf_name}');
INSERT INTO capability_state_actions (transition_id, action_type, arguments)
VALUES (
(SELECT transition_id FROM capability_state_transitions
WHERE capability_name=E'{wf_name}'
AND from_state='Start'
AND to_state='Queued'),
'SendNotification', '{{"template": "workflow_submitted"}}');
INSERT INTO capability_state_actions (transition_id, action_type, arguments)
VALUES (
(SELECT transition_id FROM capability_state_transitions
WHERE capability_name=E'{wf_name}'
AND from_state='Queued'
AND to_state='Executing'),
'ExecuteWorkflow', E'{wf_name}');
INSERT INTO capability_state_actions (transition_id, action_type, arguments)
VALUES (
(SELECT transition_id FROM capability_state_transitions
WHERE capability_name=E'{wf_name}'
AND from_state='Queued'
AND to_state='Cancelled'),
'SendMessage', 'capability_cancelled');
INSERT INTO capability_state_actions (transition_id, action_type, arguments)
VALUES (
(SELECT transition_id FROM capability_state_transitions
WHERE capability_name=E'{wf_name}'
AND from_state='Executing'
AND to_state='Complete'),
'SendMessage', 'execution_complete');
INSERT INTO capability_state_actions (transition_id, action_type, arguments)
VALUES (
(SELECT transition_id FROM capability_state_transitions
WHERE capability_name=E'{wf_name}'
AND from_state='Executing'
AND to_state='Complete'),
'SendNotification', '{{"template": "workflow_complete", "send_to_qa": false}}');
INSERT INTO capability_state_actions (transition_id, action_type, arguments)
VALUES (
(SELECT transition_id FROM capability_state_transitions
WHERE capability_name=E'{wf_name}'
AND from_state='Executing'
AND to_state='Error'),
'SendMessage', 'execution_error');
INSERT INTO capability_state_actions (transition_id, action_type, arguments)
VALUES (
(SELECT transition_id FROM capability_state_transitions
WHERE capability_name=E'{wf_name}'
AND from_state='Executing'
AND to_state='Error'),
'SendNotification', '{{"template": "workflow_failed", "send_to_qa": false}}');
INSERT INTO capability_state_actions (transition_id, action_type, arguments)
VALUES (
(SELECT transition_id FROM capability_state_transitions
WHERE capability_name=E'{wf_name}'
AND from_state='Executing'
AND to_state='Cancelled'),
'Cancel', E'{wf_name}');
INSERT INTO capability_state_actions (transition_id, action_type, arguments)
VALUES (
(SELECT transition_id FROM capability_state_transitions
WHERE capability_name=E'{wf_name}'
AND from_state='Executing'
AND to_state='Cancelled'),
'SendMessage', 'capability_cancelled');
"""
)
def downgrade():
op.execute(
f"""
DELETE FROM capability_state_actions WHERE transition_id IN (
SELECT transition_id FROM capability_state_transitions WHERE capability_name = {wf_name}
)
"""
)
op.execute(
f"""
DELETE FROM capability_state_transitions WHERE capability_name = {wf_name}
"""
)
op.execute(
f"""
DELETE FROM capability_states WHERE capability_name = {wf_name}
"""
)
op.execute(
f"""
DELETE FROM capability_state_machines WHERE capability_name = {wf_name}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment