-
Notifications
You must be signed in to change notification settings - Fork 493
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
Publish API/button needs to send message(s) to external endpoint on publication #3561
Comments
"the backend" endpoint for Dataverse to communicate with needs to be defined/implemented. I'll set up another repo (analogous to how we approached the DCM) for that component; (initially with mocks) so that there's something to develop against. |
Until renamed (and to avoid namespace confusion), "the backend" is RSAL. Very preliminary API docs there, mocks to follow. |
and mocks are in that repo as well |
We discussed this in sprint planning today, and @pameyer mentioned that @michbarsinai currently has what he needs to move this forward and will continue to provide things as needed. |
It has been requested that the "Design Options for Remotely Managed Datasets" doc by @michbarsinai be reviewed by all interested parties in time to discuss it during the regular Tuesday morning call next week (Feb 14): https://docs.google.com/document/d/1_m4wHYsocNGDj-uBmBCXjwh0kVPyS5GyThjKnigS1zg/edit?usp=sharing |
"Design Options for Remotely Managed Datasets" not currently applicable (to this issue), since @michbarsinai 's redesign (and subsequent meetings/conversations about it). Some of these discussions touched on the need to prevent users from changing a dataset (or initiating other state transitions) at various points of the process; this intersects with the idea of ensuring that datasets aren't changeable while the dataset is being reviewed (#3172). |
@pameyer good point. Here's a link to the new "Design Document for Publication Workflows" doc that we've switch to: https://docs.google.com/document/d/1GFrCh23TdYc87dBi4xg5Pl2_Gf1usQqrqaik2-i7V7A/edit?usp=sharing |
After reviewing the aforementioned design doc in our mtg yesterday, we agreed that for now, we'll be able to utilize the UX example of dataset locking as it exists for tabular data file ingest. Taking that example of disabling action buttons, we'll also use the message block at the top of the page to display a warning, with more details, as well as User Guide and Contact Support links. There is also the example of "Draft", "Unpublished" and "In Review" publication status labels next to the dataset title, where we could add new labels for "Reviewed" or any other state we may need to display. |
I just mentioned this issue to @donsizemore at http://irclog.iq.harvard.edu/dataverse/2017-05-16#i_52743 because his problem reminds of the reason we are introducing this "workflows" concept. The operation his user is attempting is slow:
Also, I'd like to mention that @michbarsinai has been working away on a branch at https://github.com/IQSS/dataverse/tree/3561-publication-workflows that's ready for some code review. |
Yesterday I asked @djbrooke about the status of https://github.com/IQSS/dataverse/tree/3561-publication-workflows and he indicated that it is not ready for code review. @michbarsinai is still working away on it. My bad. I just left a related comment on this effort at #3725 (comment) that might be of interest. |
at least according to my notes; @michbarsinai mentioned this was ready for an initial (non-UI) code review 5/2. |
@pameyer I dunno. Yesterday @michbarsinai mentioned |
The parts ready for the code review are the new DatasetPublishCommand, which was heavily refactored.
… On 18 May 2017, at 18:05, Philip Durbin ***@***.***> wrote:
@pameyer <https://github.com/pameyer> I dunno. Yesterday @michbarsinai <https://github.com/michbarsinai> mentioned ServiceLoader and NoClassFoundException's so I think he's still plugging away. Sounds like SPI stuff (#3657 <#3657>).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <#3561 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AB2UJK_xEvXjvm4pUq9h1hJ4LaoZswyUks5r7F4-gaJpZM4Lcw-H>.
|
Some SPI pointers in @pdurbin 's comment: |
Possibly worth mentioning in the documentation that calls to |
(pushed a fix for this; but would like to review - see below). The "unpublished" tag immediately disappears, even when there is a workflow in progress. (the fix I pushed should also take care of the improperly rendered "export metadata" button) |
failure case when workflow uses an external system, and the external system is down. results in an unpublished dataset w\ the published button greyed out; probably should report an error and clear the workflow lock. |
I added an info message for when the dataset is locked in the publish workflow; the actual message, dataset.publish.workflow.inprogress in the bundle is just a placeholder: Publish workflow in progress please replace it with something sensible |
I fixed the missing "unpublished" tag by moving the setPublicationDate() line from the PublishDatasetCommand to FinalizePublishDatasetCommand (publication date being non null is the definition used by dvobject.isReleased(), used in turn by the dataset page to determine if the dataset is published). |
If the fixes I made today are legit, this should be ready for QA. |
@pmeyer - this should have been taken care of by the catch clauses here:
https://github.com/IQSS/dataverse/blob/3561-publication-workflows/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/HttpSendReceiveClientStep.java#L40 <https://github.com/IQSS/dataverse/blob/3561-publication-workflows/src/main/java/edu/harvard/iq/dataverse/workflow/internalspi/HttpSendReceiveClientStep.java#L40>
Reporting error is done using returning a Failure object, which causes the rollback system to roll-back the successful steps done so far.
… On 5 Sep 2017, at 22:09, pameyer ***@***.***> wrote:
failure case when workflow uses an external system, and the external system is down. results in an unpublished dataset w\ the published button greyed out; probably should report an error and clear the workflow lock.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <#3561 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AB2UJP_WsYLeEOwcjAciS1BdIFeZ_vmXks5sfZyGgaJpZM4Lcw-H>.
|
@michbarsinai I'll re-test; but it was looking like there was a lock that wasn't getting cleared on rollback. I'll update with more definite information once I've done some investigation. |
split into #4124 |
From discussion at stand-up and some investigation, this is probably better off in its own issue (source of the problems is system misconfiguration/failure, and there's a relatively straightforward way to get out of the stuck state (for a sysadmin). |
@michbarsinai What there a specific reason why the following steps were left in PublishDatasetCommand:
as opposed to moving all this stuff to the Finalize command? So far we are inclined to just move all that code to the Finalize command. Would that cause any kind of problem we are not aware of? |
At Leonid's request, here is the info for configuring the RSAL Mock: Also, to configure Dataverse to use the new workflow you must do the following:
|
Issues observed:
Behavior:
|
Just pushed in a fix for the 3. (submit for review button needs to go away). |
As discussed with @pameyer @djbrooke and @scolapasta yesterday the rsync solution we are working on in #3145 requires potentially time intensive movement of files from one filesystem called "hold" to another filesystem called "public" just before the dataset is published in Dataverse. In the doc we reviewed we called this "Publish API/button needs to send message(s) to external endpoint on publication" and the external endpoint in question is currently known as "The Backend" but will eventually be given an name and will expose a JSON-based REST endpoint. The communication between Dataverse and The Backend will go something like this:
We will iterate on this description and provide more details as needed.
The text was updated successfully, but these errors were encountered: