Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ability to reserve DOIs through DataCite #5093 #6901

Merged
merged 20 commits into from
Jun 4, 2020
Merged

Conversation

pdurbin
Copy link
Member

@pdurbin pdurbin commented May 8, 2020

What this PR does / why we need it:

We want to reserve PIDs from DataCite when we create datasets.

Which issue(s) this PR closes:

Closes #5093

Special notes for your reviewer:

  • Most of the infrastructure was already there. It hinges on changing registerWhenPublished from true to false.
  • We are now using both the old MDS API and the new REST API.

Suggestions on how to test this:

  • Configure for DataCite
  • Test all the documented APIs

Does this PR introduce a user interface change?:

No.

Is there a release notes update needed for this change?:

No.

Additional documentation:

No.

@coveralls
Copy link

coveralls commented May 8, 2020

Coverage Status

Coverage decreased (-0.05%) to 19.586% when pulling 6bc7d93 on 5093-datacite into 777461f on develop.

- The DataCite MDS API is older, XML-based, and configured using :ref:`doi.baseurlstring`.
- The DataCite REST API is newer, JSON-based, and configured using ``doi.baseurlstringnext``.

In production, ``doi.baseurlstringnext`` should be set to ``https://api.datacite.org``
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is specific to DataCite, it might be better to name it for that - doi.dataciteapibaseurl or something. (FWIW - I could swear that at some point I discussed adding a second option versus swapping mds for api in baseurlstring with someone and decided against having a second option, but I can't find code nor conversation...)

The fix required removing the throwing of RuntimeException in
DataCiteRESTfullClient. This is considered a system exception and rolls
back the entire "create dataset" command and transaction.

This commit also remove the temporary fix I had put in to allow datasets
to be created when DataCite is down: 9cbd5d3

Basically, it's a better fix. We need the create time to be null if
DataCite is down so that we can query for unreserved DOIs and then
reserve them.
@pdurbin pdurbin changed the title for DataCite, get PID (draft state) on create #5093 ability to reserve DOIs through DataCite #5093 May 29, 2020
@pdurbin pdurbin marked this pull request as ready for review May 29, 2020 21:15
Conflicts:
src/main/java/propertyFiles/Bundle.properties
@landreev landreev self-requested a review June 1, 2020 15:27
@landreev landreev self-assigned this Jun 1, 2020
Copy link
Contributor

@landreev landreev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. In addition to looking at the code I did some experimenting with the branch, tested some failure condition; files registration, etc. - I believe it does everything we want.
May add some info for QA, to the issue. (specifically, should QA include testing of at least failures to register, with EZID and Handles as well?)

@kcondon kcondon assigned kcondon and unassigned landreev Jun 3, 2020
@kcondon
Copy link
Contributor

kcondon commented Jun 3, 2020

Issues found:
X 1. API doc is missing protocol (doi:) from PID in examples.
X 2. Add release note on adding jvm-option
X 3. Get info api fails when PID exists with "error" but no other information, nothing in log. Curl method worked.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement ability to reserve DOIs through DataCite
6 participants