Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
bbcab5f
change plugin coupling protocol from "filesystem" to other values by …
sjanssen2 Sep 17, 2025
21736bc
fix import
sjanssen2 Sep 17, 2025
a52d387
fix import
sjanssen2 Sep 17, 2025
b707937
relative import to fix py2 import issue
sjanssen2 Sep 17, 2025
878df24
python2 compatible makedirs
sjanssen2 Sep 17, 2025
7dcaa1e
add ability to fetch all files of a given directory (ensure compatibi…
sjanssen2 Sep 19, 2025
296a3e3
adding a delete_file_from_central method, which does NOT delete when …
sjanssen2 Sep 26, 2025
41fa351
avoid error when file already present
sjanssen2 Sep 26, 2025
07efd64
remove unused variable name
sjanssen2 Sep 26, 2025
5ac2380
more clean test file removal
sjanssen2 Sep 26, 2025
216b22c
account for having direct access to qiita main in tests
sjanssen2 Sep 26, 2025
4dfb592
codestyle
sjanssen2 Sep 26, 2025
464c6c6
be more verbose in debug mode
sjanssen2 Nov 3, 2025
b12d740
generally provide a _fix_plugincoupling_filepath function for plugin …
sjanssen2 Nov 3, 2025
816c4f3
unified logging
sjanssen2 Nov 3, 2025
d42b534
a more versatile function
sjanssen2 Nov 3, 2025
10780a2
codestyle
sjanssen2 Nov 3, 2025
bcbe53d
avoid computation from / and instead just trim away
sjanssen2 Nov 3, 2025
4d6ab0d
fetching of whole directories
sjanssen2 Nov 6, 2025
dae7765
adding a test for directory fetching
sjanssen2 Nov 6, 2025
296e138
using a local path
sjanssen2 Nov 6, 2025
821d5a1
debug
sjanssen2 Nov 6, 2025
bf327a7
more debugging
sjanssen2 Nov 6, 2025
74a8dff
more debug
sjanssen2 Nov 6, 2025
138d6a3
remove infos
sjanssen2 Nov 6, 2025
3c086c8
explicit file names
sjanssen2 Nov 6, 2025
9b54be3
avoid access to PluginTestCase
sjanssen2 Nov 6, 2025
bfe86f8
test with prefix
sjanssen2 Nov 6, 2025
f70bd86
remove ./
sjanssen2 Nov 6, 2025
d3709d9
debug
sjanssen2 Nov 6, 2025
405f52e
check nginx
sjanssen2 Nov 6, 2025
09a43ca
manually switch to tornado
sjanssen2 Nov 6, 2025
038db34
check nginx logs
sjanssen2 Nov 7, 2025
a2919cc
pull correct branch
sjanssen2 Nov 7, 2025
c48fe15
proper renaming
sjanssen2 Nov 7, 2025
c3163fb
create dir first
sjanssen2 Nov 7, 2025
d36f4b8
clean up test
sjanssen2 Nov 7, 2025
4005690
debug
sjanssen2 Nov 7, 2025
34ff8b0
more debug
sjanssen2 Nov 7, 2025
9406453
adapt fp
sjanssen2 Nov 7, 2025
5d968a8
clean up
sjanssen2 Nov 7, 2025
d226ab5
clean up workflow file
sjanssen2 Nov 7, 2025
18dbaa8
prepare to clean up filepath mess
sjanssen2 Nov 7, 2025
e21171b
get files
sjanssen2 Nov 7, 2025
7cd6f16
more debug
sjanssen2 Nov 7, 2025
9e2baf0
forcer cat
sjanssen2 Nov 7, 2025
c3cc119
read log here
sjanssen2 Nov 7, 2025
7b11c64
debug in client
sjanssen2 Nov 7, 2025
13b226a
remove cat
sjanssen2 Nov 7, 2025
c8eaae6
trigger build
sjanssen2 Nov 7, 2025
c560eff
trigger
sjanssen2 Nov 7, 2025
86f86fb
trigger
sjanssen2 Nov 7, 2025
119e14a
clean debug infos
sjanssen2 Nov 7, 2025
fa819be
remove debug infos
sjanssen2 Nov 7, 2025
eed36ed
Merge pull request #3 from jlab/fetch_directories_clean
sjanssen2 Nov 7, 2025
edb6154
Merge pull request #2 from jlab/fetch_directories
sjanssen2 Nov 7, 2025
f2619e0
fall back to base branch
sjanssen2 Nov 7, 2025
9639d56
more verbose log message
sjanssen2 Nov 11, 2025
793b287
allow for file/dir deletion in test mode
sjanssen2 Nov 12, 2025
46b932e
no exception handling
sjanssen2 Nov 12, 2025
6a13ca0
codestyle
sjanssen2 Nov 12, 2025
891d43b
Merge pull request #4 from jlab/enable_pluginprotocol_change_delete
sjanssen2 Nov 12, 2025
6c60b02
also return full filepath when in filesystem mode
sjanssen2 Nov 13, 2025
f305ed2
Merge pull request #5 from jlab/deposite_filesystem_returnBasedir
sjanssen2 Nov 13, 2025
0763558
test if fileobject exists prior to delete attempt
sjanssen2 Nov 13, 2025
5c74aca
Merge pull request #6 from jlab/test_existance
sjanssen2 Nov 13, 2025
5e4d293
after calling a plugin function, push files of artifacts to qiita cen…
sjanssen2 Nov 13, 2025
0d6a453
handle cases where Command function does NOT return typical 3-tuple
sjanssen2 Nov 13, 2025
b5f9c0e
adapt push function to list of ArtifactInfos
sjanssen2 Nov 14, 2025
9cc935a
add tests
sjanssen2 Nov 14, 2025
4a046cb
cope with no return value
sjanssen2 Nov 14, 2025
2b08035
make method static
sjanssen2 Nov 14, 2025
57f031e
Merge pull request #7 from jlab/uncouple_clientpush
sjanssen2 Nov 14, 2025
5635f2b
add an interception to automatically fetch files from qiita central
sjanssen2 Nov 14, 2025
b898b29
Merge pull request #8 from jlab/uncouple_fetch
sjanssen2 Nov 14, 2025
1f1ed20
some debug infos
sjanssen2 Nov 15, 2025
38779ed
expose base_data_dir in self instead of extra method "deposit..."
sjanssen2 Nov 16, 2025
01e18dd
add attribute to fake client
sjanssen2 Nov 16, 2025
267fe7d
fix signature
sjanssen2 Nov 16, 2025
6e5ed91
added option to turn off automatic file fetching
sjanssen2 Nov 17, 2025
a688908
use a more simple request to determine base_data_dir
sjanssen2 Nov 17, 2025
8508a80
push files when patching artifact summaries
sjanssen2 Nov 17, 2025
3f38b13
codestyle
sjanssen2 Nov 17, 2025
cdbf4e4
more elaborate test for plain string instead of json dict
sjanssen2 Nov 17, 2025
2321dbe
handle missing py27 JSONDecodeError
sjanssen2 Nov 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions .github/workflows/qiita-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,11 @@ jobs:

# we need to download qiita directly so we have "easy" access to
# all config files
wget https://github.com/biocore/qiita/archive/dev.zip
unzip dev.zip
# wget https://github.com/biocore/qiita/archive/dev.zip
# unzip dev.zip
wget https://github.com/jlab/qiita/archive/refs/heads/tornado_FetchFileFromCentralHandler.zip
unzip tornado_FetchFileFromCentralHandler.zip
mv qiita-tornado_FetchFileFromCentralHandler qiita-dev

# pull out the port so we can modify the configuration file easily
pgport=${{ job.services.postgres.ports[5432] }}
Expand Down
43 changes: 41 additions & 2 deletions qiita_client/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from future import standard_library
from json import dumps
import urllib
from qiita_client import QiitaClient
from qiita_client import QiitaClient, ArtifactInfo

import logging

Expand Down Expand Up @@ -100,9 +100,48 @@ def __init__(self, name, description, function, required_parameters,
self.outputs = outputs
self.analysis_only = analysis_only

@staticmethod
def _push_artifacts_files_to_central(qclient, artifacts):
"""Pushes all files of a list of artifacts to BASE_DATA_DIR.

Parameters
----------
qclient : qiita_client.QiitaClient
The Qiita server client
artifacts : [ArtifactInfo]
A list of qiita Artifacts

Returns
-------
The input list of artifacts
"""
if artifacts is None:
return artifacts

for artifact in artifacts:
if isinstance(artifact, ArtifactInfo):
logger.debug('QiitaCommand::__call__: Push artifact files '
'via %s to central:' % qclient._plugincoupling)
for i in range(len(artifact.files)):
(fp, ftype) = artifact.files[i]
# send file to Qiita central and potentially update
# filepath, which is not done at the moment (2025-11-14)
logger.debug(' artifact files %s pushed to central' % fp)
fp = qclient.push_file_to_central(fp)
artifact.files[i] = (fp, ftype)

def __call__(self, qclient, server_url, job_id, output_dir):
logger.debug('Entered QiitaCommand.__call__()')
return self.function(qclient, server_url, job_id, output_dir)
results = self.function(
qclient, server_url, job_id, output_dir)
# typical, but not all, functions of QiitaCommands return 3-tuple
# status=bool, list of artifacts, error_message=str
if isinstance(results, tuple) and (len(results) == 3) and \
isinstance(results[0], bool) and \
isinstance(results[1], list) and \
isinstance(results[2], str):
QiitaCommand._push_artifacts_files_to_central(qclient, results[1])
return results


class QiitaArtifactType(object):
Expand Down
Loading
Loading