-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Add onedata templates #18457
Add onedata templates #18457
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we can not call this production yet and give it some time... We will deploy it on EU for a few month and then we rename the file next year?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense, I will follow your recommendations here. We just mimicked the naming from other templates.
What should be the name then - just remove the "production" prefix or something else?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess so yes, lets remove the prefix.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done.
The client schema needs to be rebuilt and a rebase is likely necessary. This should look something like: diff --git a/client/src/api/fileSources.ts b/client/src/api/fileSources.ts
index 68935db457..c08cc81294 100644
--- a/client/src/api/fileSources.ts
+++ b/client/src/api/fileSources.ts
@@ -4,3 +4,4 @@ export type FileSourceTemplateSummary = components["schemas"]["FileSourceTemplat
export type FileSourceTemplateSummaries = FileSourceTemplateSummary[];
export type UserFileSourceModel = components["schemas"]["UserFileSourceModel"];
+export type FileSourceTypes = UserFileSourceModel["type"]
diff --git a/client/src/api/schema/schema.ts b/client/src/api/schema/schema.ts
index 05a06bc61d..b8a076a8e0 100644
--- a/client/src/api/schema/schema.ts
+++ b/client/src/api/schema/schema.ts
@@ -8785,7 +8785,7 @@ export interface components {
* Type
* @enum {string}
*/
- type: "ftp" | "posix" | "s3fs" | "azure";
+ type: "ftp" | "posix" | "s3fs" | "azure" | "onedata";
/** Variables */
variables?:
| (
@@ -13748,7 +13748,7 @@ export interface components {
* Type
* @enum {string}
*/
- type: "aws_s3" | "azure_blob" | "boto3" | "disk" | "generic_s3";
+ type: "aws_s3" | "azure_blob" | "boto3" | "disk" | "generic_s3" | "onedata";
/** Variables */
variables?:
| (
@@ -16503,7 +16503,7 @@ export interface components {
* Type
* @enum {string}
*/
- type: "aws_s3" | "azure_blob" | "boto3" | "disk" | "generic_s3";
+ type: "aws_s3" | "azure_blob" | "boto3" | "disk" | "generic_s3" | "onedata";
/**
* Uuid
* Format: uuid4
@@ -16578,7 +16578,7 @@ export interface components {
* Type
* @enum {string}
*/
- type: "ftp" | "posix" | "s3fs" | "azure";
+ type: "ftp" | "posix" | "s3fs" | "azure" | "onedata";
/** Uri Root */
uri_root: string;
/**
diff --git a/client/src/components/FileSources/FileSourceTypeSpan.vue b/client/src/components/FileSources/FileSourceTypeSpan.vue
index 95129c85a0..26cfc03ba1 100644
--- a/client/src/components/FileSources/FileSourceTypeSpan.vue
+++ b/client/src/components/FileSources/FileSourceTypeSpan.vue
@@ -1,13 +1,19 @@
<script setup lang="ts">
import { computed } from "vue";
+import type {FileSourceTypes} from "@/api/fileSources"
+
const MESSAGES = {
posix: "This is a simple path based storage location that assumes the all the relevant paths are already mounted on the Galaxy server and target worker nodes.",
s3fs: "This is an remote file source plugin based on the Amazon Simple Storage Service (S3) interface. The AWS interface has become an industry standard and many storage vendors support it and use it to expose 'object' based storage.",
+ azure: "This is an remote file source plugin based on the Azure service.",
+ onedata: "This is an remote file source plugin based on the Onedata service.",
+ ftp: "This is an remote file source plugin based on the FTP protocol.",
+
};
interface Props {
- type: "posix" | "s3fs";
+ type: FileSourceTypes;
}
const props = defineProps<Props>();
diff --git a/client/src/components/ObjectStore/ObjectStoreTypeSpan.vue b/client/src/components/ObjectStore/ObjectStoreTypeSpan.vue
index 20ff0f7ffc..84b946515a 100644
--- a/client/src/components/ObjectStore/ObjectStoreTypeSpan.vue
+++ b/client/src/components/ObjectStore/ObjectStoreTypeSpan.vue
@@ -11,6 +11,7 @@ const MESSAGES = {
boto3: "This is a storage location based on the Amazon Simple Storage Service (S3) interface, but likely not stored by Amazon. The AWS interface has become an industry standard and many storage vendors support it and use it to expose object based storage.",
generic_s3:
"This is a storage location based on the Amazon Simple Storage Service (S3) interface, but likely not stored by Amazon. The AWS interface has become an industry standard and many storage vendors support it and use it to expose object based storage.",
+ onedata: "This is a storage location based on the Onedata system.",
};
interface Props {
Could you allow maintainer edit @bwalkowi so I can push those changes or use my branch from https://github.com/bwalkowi/galaxy/compare/add-onedata-templates...mvdbeek:galaxy:add-onedata-templates?expand=1? |
sure, no problem, I have just allowed maintainer edit @mvdbeek |
dda5b83
to
6ab1f7c
Compare
This PR introduces BYOS templates for Onedata as a file source and object store.
NOTE: we have unified naming conventions of variables which includes breaking changes (snake_case replaced camelCase). Probably, it will require config adjustments during Galaxy upgrade. Let us know if this is a problem.
How to test the changes?
(Select all options that apply)
Add the
fs.onedatarestfs
package to the currently used requirements (can be found in conditional-requirements.txt).Create either
file_source_templates.yml
orobject_store_templates.yml
including appropriateproduction_onedata.yml
file in the config dir, copying the part concerning Onedata fromobject_store_conf.xml.sample
.Create vault.
Start the galaxy server, log in.
Create Onedata file source/object store by filling required fields.
You will need an account in a Onedata system instance. The best way to test is to use the "demo mode", which allows easily setting up a dockerized Onedata environment: https://onedata.org/#/home/documentation/topic/stable/demo-mode
Upload some data and run some jobs. Open the Onedata UI and navigate to your space to see the stored Galaxy datasets.
License