@@ -8,11 +8,13 @@ set -eu
88WORKFLOW_NAME=" test_cli_workflow_$$ "
99CANCEL_NAME=" test_cli_workflow_cancel_$$ "
1010FUTURE_NAME=" test_cli_workflow_future_$$ "
11+ PERIODIC_NAME=" test_cli_workflow_periodic_$$ "
1112
1213cleanup () {
1314 pulp workflow cancel --name " ${WORKFLOW_NAME} " 2> /dev/null || true
1415 pulp workflow cancel --name " ${CANCEL_NAME} " 2> /dev/null || true
1516 pulp workflow cancel --name " ${FUTURE_NAME} " 2> /dev/null || true
17+ pulp workflow cancel --name " ${PERIODIC_NAME} " 2> /dev/null || true
1618}
1719trap cleanup EXIT
1820
@@ -36,9 +38,6 @@ assert "$(echo "$OUTPUT" | jq -r '.pulp_labels.test_key')" = "test_value"
3638expect_succ pulp workflow list --name " ${WORKFLOW_NAME} "
3739assert " $( echo " $OUTPUT " | jq -r ' .[0].name' ) " = " ${WORKFLOW_NAME} "
3840
39- # Test: list with state filter
40- expect_succ pulp workflow list --state waiting
41-
4241# Test: label set
4342expect_succ pulp workflow label set --name " ${WORKFLOW_NAME} " --key " env" --value " ci"
4443expect_succ pulp workflow show --name " ${WORKFLOW_NAME} "
@@ -49,17 +48,31 @@ expect_succ pulp workflow label unset --name "${WORKFLOW_NAME}" --key "env"
4948expect_succ pulp workflow show --name " ${WORKFLOW_NAME} "
5049assert " $( echo " $OUTPUT " | jq -r ' .pulp_labels | has("env")' ) " = " false"
5150
52- # Test: cancel a waiting workflow
51+ # Test: list the runs of a workflow (may be empty, but must be valid JSON)
52+ expect_succ pulp workflow run list --workflow " ${WORKFLOW_NAME} "
53+ assert " $OUTPUT " ! = " null"
54+
55+ # Test: create a periodic workflow with --dispatch-interval
56+ expect_succ pulp workflow create \
57+ --name " ${PERIODIC_NAME} " \
58+ --dispatch-interval " 01:00:00" \
59+ --task ' {"task_name": "pulpcore.app.tasks.base.general_create", "task_args": [], "task_kwargs": []}'
60+ expect_succ pulp workflow show --name " ${PERIODIC_NAME} "
61+ assert " $( echo " $OUTPUT " | jq -r ' .name' ) " = " ${PERIODIC_NAME} "
62+ # Stopping a periodic workflow halts its schedule.
63+ expect_succ pulp workflow cancel --name " ${PERIODIC_NAME} "
64+
65+ # Test: stop a workflow scheduled in the future
5366expect_succ pulp workflow create \
5467 --name " ${CANCEL_NAME} " \
5568 --task ' {"task_name": "pulpcore.app.tasks.base.general_create", "task_args": [], "task_kwargs": []}' \
5669 --start-time " 2099-01-01T00:00:00"
5770expect_succ pulp workflow cancel --name " ${CANCEL_NAME} "
71+ # Stopping is idempotent: a second stop still succeeds.
72+ expect_succ pulp workflow cancel --name " ${CANCEL_NAME} "
73+ # The workflow definition is still readable after being stopped.
5874expect_succ pulp workflow show --name " ${CANCEL_NAME} "
59- assert " $( echo " $OUTPUT " | jq -r ' .state' ) " = " canceled"
60-
61- # Test: canceling an already-canceled workflow should fail
62- expect_fail pulp workflow cancel --name " ${CANCEL_NAME} "
75+ assert " $( echo " $OUTPUT " | jq -r ' .name' ) " = " ${CANCEL_NAME} "
6376
6477# Test: create with --start-time in the future
6578FUTURE_NAME=" test_cli_workflow_future_$$ "
@@ -68,7 +81,7 @@ expect_succ pulp workflow create \
6881 --task ' {"task_name": "pulpcore.app.tasks.base.general_create", "task_args": [], "task_kwargs": []}' \
6982 --start-time " 2099-01-01T00:00:00"
7083expect_succ pulp workflow show --name " ${FUTURE_NAME} "
71- assert " $( echo " $OUTPUT " | jq -r ' .state ' ) " = " waiting "
84+ assert " $( echo " $OUTPUT " | jq -r ' .name ' ) " = " ${FUTURE_NAME} "
7285
7386# Clean up the future workflow
7487expect_succ pulp workflow cancel --name " ${FUTURE_NAME} "
0 commit comments