Open bodom0015 opened 4 years ago
girder_wholetale
?Jupyter Notebook
and Jupyter Classic
- . I am currently unable to view the logs of the Tale image build to debug further. Not sure where to file this.. gwvolman
?gwvolman
?ERROR An error was encountered while publishing your Tale. 'size'
... wat? gwvolman
?Failed to get the deposition (id=490450). Server returned: 403 Client Error: FORBIDDEN for url: https://sandbox.zenodo.org/api/deposit/depositions/490450 { "message": "You don't have the permission to access the requested resource. It is either read-protected or not readable by the server.", "status": 403 }
PR for test plan improvements forthcoming
PR for test plan improvements: https://github.com/whole-tale/wt-design-docs/pull/130
Outstanding Issues:
Jupyter Notebook
and Jupyter Classic
- . I am currently unable to view the logs of the Tale image build to debug further. Not sure where to file this.. gwvolman
?Open Questions:
JupyterLab
appears to actually build properlyI'm guessing that register_ligo.py wasn't run after everything was deployed.
I was able to build and run all of the Jupyter instances. Does the job log at girder.stage.wholetale.org show a stack trace? Spark Notebook Classic Lab
The exported Tale should have a run-local.sh script in the root of the zip. Running it will spin up a container that exposes itself though the browser. It should handle mounting the data.
Thank you for clarifying, @ThomasThelen
I just reran the builds for Jupyter Classic
and Jupyter Notebook
and this time they completed just fine.
Looking back, I'm not sure which was which but it looks like a 502: Bad Gateway
was hit during both of those builds? Perhaps Girder was somehow restarted during these builds? Unclear what might have happened, but it seems to be working now...
From https://girder.stage.wholetale.org/#job/5e59902e351c4c0da4b48872:
Step 51/76 : RUN R --quiet -e "install.packages('shiny', repos='https://mran.microsoft.com/snapshot/2020-02-26', method='libcurl')"
---> Running in 024c93a1c194
> install.packages('shiny', repos='https://mran.microsoft.com/snapshot/2020-02-26', method='libcurl')
[91mInstalling package into ‘/srv/rlibs’
(as ‘lib’ is unspecified)
[0m[91malso installing the dependencies ‘BH’, ‘magrittr’, ‘httpuv’, ‘xtable’, ‘sourcetools’, ‘later’, ‘promises’, ‘fastmap’
... ... ... ... ... ... ... ... ... ... ... ...
CC src/libuv_la-fs-poll.lo
CC src/libuv_la-idna.loHTTPError: 502 Server Error: Bad Gateway for url: https://girder.stage.wholetale.org/api/v1/job/5e59902e351c4c0da4b48872
File "/usr/local/lib/python3.5/dist-packages/celery/app/trace.py", line 382, in trace_task
R = retval = fun(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/girder_worker/task.py", line 148, in __call__
results = super(Task, self).__call__(*_t_args, **_t_kwargs)
File "/usr/local/lib/python3.5/dist-packages/celery/app/trace.py", line 641, in __protected_call__
return self.run(*args, **kwargs)
File "/gwvolman/gwvolman/tasks.py", line 437, in build_tale_image
ret = _build_image(cli, tale_id, image, tag, temp_dir, REPO2DOCKER_VERSION)
File "/gwvolman/gwvolman/utils.py", line 324, in _build_image
print(line.decode('utf-8').strip())
File "/usr/local/lib/python3.5/dist-packages/girder_worker/utils.py", line 158, in write
self._write_func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/girder_worker/utils.py", line 259, in write
self._flush()
File "/usr/local/lib/python3.5/dist-packages/girder_worker/utils.py", line 237, in _flush
req.raise_for_status()
File "/usr/local/lib/python3.5/dist-packages/requests/models.py", line 941, in raise_for_status
raise HTTPError(http_error_msg, response=self)
From https://girder.stage.wholetale.org/#job/5e598fb7351c4c0da4b48855:
Step 57/64 : RUN chown -R ${NB_USER}:${NB_USER} ${REPO_DIR}
---> Running in 5cf07978e98a
Removing intermediate container 5cf07978e98aHTTPError: 502 Server Error: Bad Gateway for url: https://girder.stage.wholetale.org/api/v1/job/5e598fb7351c4c0da4b48855
File "/usr/local/lib/python3.5/dist-packages/celery/app/trace.py", line 382, in trace_task
R = retval = fun(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/girder_worker/task.py", line 148, in __call__
results = super(Task, self).__call__(*_t_args, **_t_kwargs)
File "/usr/local/lib/python3.5/dist-packages/celery/app/trace.py", line 641, in __protected_call__
return self.run(*args, **kwargs)
File "/gwvolman/gwvolman/tasks.py", line 437, in build_tale_image
ret = _build_image(cli, tale_id, image, tag, temp_dir, REPO2DOCKER_VERSION)
File "/gwvolman/gwvolman/utils.py", line 324, in _build_image
print(line.decode('utf-8').strip())
File "/usr/local/lib/python3.5/dist-packages/girder_worker/utils.py", line 158, in write
self._write_func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/girder_worker/utils.py", line 259, in write
self._flush()
File "/usr/local/lib/python3.5/dist-packages/girder_worker/utils.py", line 237, in _flush
req.raise_for_status()
File "/usr/local/lib/python3.5/dist-packages/requests/models.py", line 941, in raise_for_status
raise HTTPError(http_error_msg, response=self)
Test Plan
https://github.com/whole-tale/wt-design-docs/issues/new?template=test_plan.md
Note: For all tests, repeat for supported browser/OS combinations.
Preconditions:
Authentication
[x] Basic login flow
[x] Basic logout flow
[x] Return-route for non-logged in users (#300)
Navigation
Browse
Preconditions:
Assumes production Tales present (e.g., LIGO, materials, etc).
No running instances
[x] General
[x] Search
TESTCASE: Search filtering appears to work, but the original LIGO Tale missing from master list on https://dashboard.stage.wholetale.org
[x] Filter
[x] View tale
[x] Launch instance
TESTCASE: Add a step to "View Logs" while awaiting Tale image build
Manage
Preconditions
Empty home directory
No registered data
[x] Register General
[x] Register DataONE data
10.5065/D6862DM8
XXX: Had to manually refresh after removing datasets - possibly https://github.com/whole-tale/dashboard/issues/427?
[x] Dataverse
[ ] Globus/MDF
XXX: Searching for this DOI/dataset yielded an error message:
No matching results found.
Run
Preconditions:
No running Tale instances
[x] General
TESTCASE: There is now only one option for exporting a Tale - wording could be adjusted slightly to convey this
[x] Interact tab
[x] Files tab
[x] Metadata tab - Owned Tale
Environment
dropdown menuLicense
dropdownCreated by <your_name>
underAuthors
Published Location
readsThis Tale has not been published
[x] Home
TESTCASE: Missing confirmation of "Move To..." - how should this work? XXX: Needed manual refresh in between copying and deleting - we should attempt to refresh the data after each operation (e.g. copy, delete, etc)
[x] External data
doi:10.18739/A29G5GD0V
) on Manage > Data (see Manage > Register test cases above)[ ] Workspaces
XXX: Needed manual refresh in between copying and deleting - we should attempt to refresh the data after each operation (e.g. copy, delete, etc)
bag-info.txt
bagit.txt
data/
fetch.txt
manifest-md5.txt
manifest-sha256.txt
metadata/
run-local.sh
tagmanifest-sha256.txt
tagmanifest-md5.txt
README.md
metadata
foldermanifest.json
andenvironment.json
fileLICENSE
fileTESTCASE: I was not asked for confirmation, the download just started up
Settings
[x] Default State
[x] Connect to DataONE
[x] Connect to Dataverse
XXX: "Connect Account" should disable when no new resource_servers can be offered
XXX: "Connect Account" should disable when no new resource_servers can be offered
/user/me
endpoint to confirm tokens are still presentTale Creation
[x] Create RStudio Tale
[ ] Compose Jupyter Tale
TESTCASE: Which Jupyter? All of them? (Current assumption is to try to run all of them) XXX: I attempted to build all types of Jupyter Tales and received an error message (
Error: Building image
) from bothJupyter Notebook
andJupyter Classic
- . I am unable to view the logs of the Tale to debug further[x] Compose OpenRefine Tale
[x] Too many instances
Analyze in Whole Tale
Task 1: Importing a Dataset from Dataverse
These test cases cover potential situations that can occur when importing datasets from Dataverse.
Testing Steps:
Replication Data for: "Agricultural Fires and Health at Birth"
Input data
section matches the uri withData Source
appendedCreate New Tale and Launch
button is disabledCreate New Tale and Launch
External DataTale Workspacescience
TESTCASE: No "External Data" appeared, even after Tale was running. Dataset also did not appear under "Manage" after Tale was running (same as in #125). I believe this is a typo in the test case, as
READ/WRITE
shouldn't result in any "External Data"Task 2: Importing a Dataset from DataONE
These test cases cover different scenarios that may happen when importing datasets from DataONE.
This test covers the ideal case where dataset importing has all of the needed information to properly run. This includes the dataset location, title, and selected environment.
Testing Steps:
Fire influences on forest recovery and associated climate feedbacks in Siberian Larch Forests, Russia
Selected data
section matches the uri withData Source
appendedRstudio
is selected in the Environments widgetCreate New Tale and Launch
button is enabledCreate New Tale and Launch
science
Analyze in Whole Tale
feature is deployed across a few DataONE test sites. This test ensures Whole Tale has the ability to import data from each of them.Links:
Testing Steps:
Create New Tale and Launch
Task 3: Shared Behavior
These cases show errors that are common between Dataverse and DataONE. Although they are tested using DataONE URIs, the errors should be the same when replacing it with a Dataverse URI.
This test covers the case where the name query parameter is missing. The expected behavior is that the uri query parameter is used instead.
Testing Steps:
https://dataverse.harvard.edu/api/access/datafile/3323458
Selected data
section matches the uri withData Source
appendedCreate New Tale and Launch
button is disabledCreate New Tale and Launch
This test covers the case where a user imports data from an external source and selects READ/WRITE in the Create Tale Modal.
Testing Steps:
Selected data
section matches the uri withData Source
appendedCreate New Tale and Launch
button is disabledREAD/WRITE
Create New Tale and Launch
TESTCASE: https://dashboard.stage.wholetale.org/browse?uri=https%3A%2F%2Fdataverse.harvard.edu%2Fapi%2Faccess%2Fdatafile%2F3323458 does not provide a title, so step 3 may not be accurate for that case TESTCASE: https://dashboard.stage.wholetale.org/browse?api=https%3A%2F%2Fdev.nceas.ucsb.edu%2Fknb%2Fd1%2Fmn%2Fv2&environment=JupyterLab&name=proveit&uri=doi%3A10.5072%2FFK27P92Z55 provides an environment, so step 7 is not necessary for that case XXX: https://dashboard.stage.wholetale.org/browse?api=https%3A%2F%2Fdev.nceas.ucsb.edu%2Fknb%2Fd1%2Fmn%2Fv2&environment=JupyterLab&name=proveit&uri=doi%3A10.5072%2FFK27P92Z55 yields only a
404.html
in the Tale Workspace.. possibly a bug, but perhaps this is expected?Tale metadata tests
The purpose of these tests are to confirm that the metadata files (manifest.json, environment.json, LICENSE) we generate are correct.
[x] manifest.json
manifest.json
file undermetadata/
schema:author
createdBy
aggregates
aggregates
Datasets
[x] environment.json
metadata/environment.json
config
section from girder matches theconfig
section inenvironment.json
[x] LICENSE
LICENSE
fileLICENSE
file matches the selected license on the metadata pageLICENSE
changed appropriatelyPublishing tests
[x] Case 1: No Accounts Configured
Publish tale...
Go to Settings
[ ] Case 2: Publishing to a Third Party
Publish tale...
Publish
metadata.xml
LICENSE
README.md
manifest.json
environment.json
Repeat for each third party provider
a. After publishing to DataONE, use girder to query the Tale
b. Ensure that the 'pid' field in the 'publishInfo' object has an identifier in a doi format
XXX:
Zenodo Sandbox
worked fine, butDataONE Dev
did not - after fixing the description and the authors, I was unable to publish with the following error message:....... wat?
Published Location
in Run > metadataPublished Location
has changed to the correct package landing pageZenodo integration tests
doi:10.5281/zenodo.16384
ver_1
https://zenodo.org/record/1172960#.XidIvlNKh24
ver_2
doi:10.5281/zenodo.1172960
ver_2
doi:10.5281/zenodo.608984
ver_2
The register tests the following cases.
The register tests the following cases.
publishInfo
field on the tale object contains pid, repository, repository_id, uriTESTCASE: Cannot use the Water Tale for this, must create your own Tale -
Failed to get the deposition (id=490450). Server returned: 403 Client Error: FORBIDDEN for url: https://sandbox.zenodo.org/api/deposit/depositions/490450 { "message": "You don't have the permission to access the requested resource. It is either read-protected or not readable by the server.", "status": 403 }
. Perhaps the imported tale already contains some publishInfo that is being reused? TESTCASE: Clarification needed here. I know how to export, but not sure I quite grasp how to "download and run local" - do you mean run the Docker image on my local machine?Regression tests
[x] Internal-state problems (#326)
/manage
viewtest123
) and click down into it/manage
viewtest123
folder and close the incognito tab/manage
view of your Home folder[x] Invalid instance ID (#333)
/run/ThisIsObviouslyNotARealID
/browse
page instead[x] Files don't overflow Manage page (#410)
[x] Handle read only Tales (#406)
I'll compile these down into a more-easily digestible list soon