deposit_client: Allow deposit metadata update on completed deposit
This opens the --swhid
to the swh upload
cli.
If the update is ok, this returns the unchanged status summary of the deposit. Otherwise, for example, update a non-complete deposit (status not "done"), this returns an explicit error.
Scenario around those cases are explicited in the diff.
Sample cli:
swh deposit upload \
--url https://deposit.internal.staging.swh.network/ \
--username swh \
--password $(swhpass ls operations/deposit.softwareheritage.org/http-auth/swh | head -1) \
--metadata "./deposit-update.xml" \ # [1]
--deposit-id 605 \
--swhid swh:1:dir:ef04a768181417fbc5eef4243e2507915f24deea
- [1] deposit-update.xml
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:codemeta="https://doi.org/10.5063/SCHEMA/CODEMETA-2.0">
<name>test-project</name>
<author>ardumont</author>
<codemeta:identifier>38857a56-bab9-46f6-9087-6f91f3e1be89</codemeta:identifier>
</entry>
This cli sample is the equivalent of swh/meta$812 (which uses curl).
Related to #2538 (closed)
Test Plan
tox
Using this code and the staging deposit server, it is happy with the following:
Oct 12 11:03:21 deposit python3[181685]: 2020-10-12 11:03:21 [181685] gunicorn.access:INFO 127.0.0.1 - swh [12/Oct/2020:11:03:21 +0000] "PUT /1/swh/605/metadata/ HTTP/1.1" 204 0 "-" "python-requests/2.20.1"
Migrated from D4228 (view on Phabricator)