WaterButler is a Python web application for interacting with various file storage services via a single RESTful API, developed at Center for Open Science.
Apache License 2.0
62
stars
76
forks
source link
[ENG-337] [OATHPIT] Throw ownCloud into the Oath Pit #386
Enable and update the ownCloud provider for aiohttp 3.
Changes
WB .make_request() now supports WebDAV methods
aiohttp.ClientSession only has functions available for native HTTP methods. For WebDAV (a protocol that extends HTTP) ones, WB lets the ClientSession instance call _request() directly and then wraps the return object with aiohttp.client._RequestContextManager.
WB client session now supports customized connector
For providers that use a customized connector such as owncloud, the new session is created (if no session is found in the event loop) with the given connector while an existing session simply ignores (and closes) the new connector. Given that the session is per loop for each instance, the existing session if found must already have a connector with qualified customizations.
Use kwarg ssl= instead of verify_ssl= when initializing aiohttp.TCPConnecto
verify_ssl= has been deprecated and no longer takes any effect on setting the property _ssl of a TCPConnector instance. Use ssl= instead. For details see the following links.
Here is a list of tests that I have done locally, all of which have passed. Extra notes and quirks are added under each list if there is any. In addition, tests are done for both non-root and root.
Getting metadata for a file and folder
This is automatic when you list files and expand folders
DAZ (a folder containing five files of 20B, 1 MB, 11 MB, 88 MB, 264MB)
Delete a file and a folder; delete multiple files and folders
Folder creation and deletion
Renaming files and folders
After renaming a folder or file (successfully), clicking on the renamed folder triggers the following error. Please see the video attachment in the ticket.
Intra move and copy
ownCloud supports intra move / copy. My local tests includes moving file and folders between two ownCloud projects with the same ownCloud account.
Inter move and copy
Between ownCloud and OSFStorage
Between ownCloud and another 3rd-party (S3 in this case)
Comments persist with moves
Revisions: N / A
Project root is storage root vs. a subfolder
Not required but I still tested this since I have to create two projects (one with root and the other with subfolder) anyway for testing intra copy / move.
Coverage increased (+2.6%) to 56.968% when pulling 2aaf76078f9a0c885a7b42d343fb1ee1d23b5bb4 on cslzchen:feature/oathpit-owncloud into 12f540acf2a5bb9983b5bc7e213b1513797beb07 on CenterForOpenScience:feature/oathpit.
Ticket
https://openscience.atlassian.net/browse/ENG-337
Purpose
Enable and update the ownCloud provider for
aiohttp
3.Changes
.make_request()
now supports WebDAV methodsaiohttp.ClientSession
only has functions available for native HTTP methods. For WebDAV (a protocol that extends HTTP) ones, WB lets theClientSession
instance call_request()
directly and then wraps the return object withaiohttp.client._RequestContextManager
.ssl=
instead ofverify_ssl=
when initializingaiohttp.TCPConnecto
verify_ssl=
has been deprecated and no longer takes any effect on setting the property_ssl
of aTCPConnector
instance. Usessl=
instead. For details see the following links.Side effects
No
QA Notes
Here is a list of tests that I have done locally, all of which have passed. Extra notes and quirks are added under each list if there is any. In addition, tests are done for both non-root and root.
Getting metadata for a file and folder
Downloading (20B, 1 MB, 11 MB, 88 MB, 264MB)
Contiguous Uploading (20B, 1 MB, 11 MB, 88 MB, 264MB one-by-one and together)
DAZ (a folder containing five files of 20B, 1 MB, 11 MB, 88 MB, 264MB)
Delete a file and a folder; delete multiple files and folders
Folder creation and deletion
Renaming files and folders
Intra move and copy
Inter move and copy
Comments persist with moves
Revisions: N / A
Project root is storage root vs. a subfolder
Updating a file
Deployment Notes
N / A