From b76a65bd2e86455a1e47f7c74c8916d6c4ed5372 Mon Sep 17 00:00:00 2001 From: Haili Hu Date: Mon, 20 Oct 2025 15:50:53 +0200 Subject: [PATCH 1/5] Added option --delete-request to delete bulk request with given ID --- ada/ada | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/ada/ada b/ada/ada index 4b7c13a..2041146 100755 --- a/ada/ada +++ b/ada/ada @@ -186,6 +186,9 @@ usage() { --stat-request Show status of bulk request for given request-id + --delete-request + Delete bulk request with given request-id + --events [--resume] [--force] [--recursive] [--timeout s] Subscribe to changes in the given direcory, using server-sent events (SSE). @@ -630,7 +633,12 @@ get_args() { command='stat-request' request_id="$2" shift ; shift - ;; + ;; + --delete-request ) + command='delete-request' + request_id="$2" + shift ; shift + ;; --events ) command='events' channel_name="$2" @@ -1472,6 +1480,26 @@ get_status_requestid () { } +delete_requestid () { + local request_id="$1" + # check if request ID is valid, exit if invalid + get_status_requestid ${request_id} > /dev/null 2>&1 + if [ $? == 1 ] ; then + echo 1>&2 "Error: cannot delete bulk request, request ID invalid" + exit 1 + fi + command='$debug && set -x + curl "${curl_authorization[@]}" \ + "${curl_options_common[@]}" \ + -X DELETE "${api}"/bulk-requests/"${request_id}"' + if $dry_run ; then + echo "$command" + else + eval "$command" + fi +} + + bulk_request() { local activity="$1" local pathlist="$2" @@ -2322,7 +2350,7 @@ validate_input() { exit 1 fi ;; - stat-request ) + stat-request | delete-request) if [[ -z $request_id || $request_id =~ ^-- ]] ; then echo 1>&2 "ERROR: command $command requires a request-id." exit 1 @@ -2830,6 +2858,9 @@ api_call () { stat-request ) get_status_requestid "$request_id" ;; + delete-request ) + delete_requestid "$request_id" + ;; events | report-staged ) if [ "${BASH_VERSINFO[0]}" -lt 4 ] ; then echo 1>&2 "ERROR: your bash version is too old: $BASH_VERSION." \ From 8c72f4ebb0ff325cc0179bb4b5ec647b8e6b7035 Mon Sep 17 00:00:00 2001 From: Haili Hu Date: Mon, 20 Oct 2025 16:37:09 +0200 Subject: [PATCH 2/5] Added test --- ada/ada | 10 +++++----- tests/integration_test.sh | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/ada/ada b/ada/ada index 2041146..1d9d887 100755 --- a/ada/ada +++ b/ada/ada @@ -1473,7 +1473,7 @@ get_status_requestid () { if [[ $valid == 'true' ]] ; then echo "$result" else - echo 1>&2 "Error: the request ID '$request_id' is not valid" + echo 1>&2 "ERROR: the request ID '$request_id' is not valid" return 1 fi fi @@ -1485,7 +1485,7 @@ delete_requestid () { # check if request ID is valid, exit if invalid get_status_requestid ${request_id} > /dev/null 2>&1 if [ $? == 1 ] ; then - echo 1>&2 "Error: cannot delete bulk request, request ID invalid" + echo 1>&2 "ERROR: cannot delete bulk request, request ID invalid" exit 1 fi command='$debug && set -x @@ -1530,7 +1530,7 @@ bulk_request() { esac else if $recursive ; then - echo 1>&2 "Error: recursive (un)staging forbidden when using file-list." + echo 1>&2 "ERROR: recursive (un)staging forbidden when using file-list." exit 1 else expand=TARGETS @@ -1546,7 +1546,7 @@ bulk_request() { # check if request ID is valid, exit if invalid get_status_requestid ${request_id} > /dev/null 2>&1 if [ $? == 1 ] ; then - echo 1>&2 "Error: cannot unstage, request ID invalid" + echo 1>&2 "ERROR: cannot unstage, request ID invalid" exit 1 fi arguments="{\"id\": \"${request_id}\"}" @@ -1657,7 +1657,7 @@ with_files_in_dir_do () { case $recursive in true | false ) ;; # No problem * ) - echo 1>&2 "Error in with_files_in_dir_do: recursive='$recursive'; should be true or false." + echo 1>&2 "ERROR in with_files_in_dir_do: recursive='$recursive'; should be true or false." exit 1 ;; esac diff --git a/tests/integration_test.sh b/tests/integration_test.sh index 2b562d3..c8354ef 100755 --- a/tests/integration_test.sh +++ b/tests/integration_test.sh @@ -422,6 +422,24 @@ test_ada_request_id() { uid=`cat "${stdoutF}" | jq -r '.uid'` echo $uid assertEquals ${uid} ${request_id} + + # Test deleting of request id, + command="ada/ada --tokenfile ${token_file} --delete-request ${request_id} --api ${api}" + echo "Running command:" + echo $command + eval $command >${stdoutF} 2>${stderrF} + result=$? + assertEquals "ada returned error code ${result}" 0 ${result} || return + + # Test if request has been deleted; request id should not exist anymore + command="ada/ada --tokenfile ${token_file} --stat-request ${request_id} --api ${api}" + echo "Running command:" + echo $command + eval $command >${stdoutF} 2>${stderrF} + result=$? + assertEquals "Request ID ${request_id} not deleted as expected" 1 ${result} || return + grep "ERROR" "${stderrF}" >/dev/null + assertTrue "ada --stat-request did not return ERROR message as expected" $? } # Stages files in file_list From f59f4f2b8e3d02b390b47f95e33f73a41cdf7c26 Mon Sep 17 00:00:00 2001 From: Haili Hu Date: Wed, 22 Oct 2025 15:55:14 +0200 Subject: [PATCH 3/5] Check argument for delete-request --- ada/ada | 1 + 1 file changed, 1 insertion(+) diff --git a/ada/ada b/ada/ada index 4ed8338..0797a38 100755 --- a/ada/ada +++ b/ada/ada @@ -672,6 +672,7 @@ get_args() { ;; --delete-request ) command='delete-request' + check_arg $command $2 request_id="$2" shift ; shift ;; From b464b2c9eb390cb027e0f65ff671f3f66d757176 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 22 Oct 2025 13:55:31 +0000 Subject: [PATCH 4/5] Set version to 110-delete-bulk-request --- ada/ada | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ada/ada b/ada/ada index 0797a38..e6f14fb 100755 --- a/ada/ada +++ b/ada/ada @@ -304,7 +304,7 @@ set_defaults() { # The ADA_VERSION value will be automatically updated by Github action Update-ada-version.yml # For a release, it will contain the version number (like v3.1). # For a branch, it will contain the branch name. - ADA_VERSION="master" + ADA_VERSION="110-delete-bulk-request" args= api= debug=false From b5b7172ce16c848bc6d124a3cd125c79efa137e0 Mon Sep 17 00:00:00 2001 From: Haili Hu Date: Wed, 22 Oct 2025 16:12:55 +0200 Subject: [PATCH 5/5] Fix integration test for ada version --- ada/ada | 2 +- tests/integration_test.sh | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ada/ada b/ada/ada index e6f14fb..8983ad9 100755 --- a/ada/ada +++ b/ada/ada @@ -407,7 +407,7 @@ get_args() { ;; --version ) echo "$ADA_VERSION" - exit 1 + exit 0 ;; --tokenfile ) check_arg "tokenfile" $2 diff --git a/tests/integration_test.sh b/tests/integration_test.sh index c8354ef..bdbc2f0 100755 --- a/tests/integration_test.sh +++ b/tests/integration_test.sh @@ -5,7 +5,8 @@ # Check if version is as expected test_ada_version() { result=`ada/ada --version` - assertEquals "Check ada version:" "v3.1" ${result} + assertEquals "ada returned error code" 0 $? + echo "Testing ada version ${result}" } # Check whoami