Skip to content

Commit

Permalink
a basic template and an ssl template
Browse files Browse the repository at this point in the history
  • Loading branch information
pauldg committed Jan 21, 2025
1 parent 19823f1 commit cde5010
Show file tree
Hide file tree
Showing 4 changed files with 150 additions and 78 deletions.
75 changes: 1 addition & 74 deletions lib/galaxy/objectstore/templates/examples/irods.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,6 @@
type: string
help: |
Your iRODS username
logical_path:
label: Logical path
type: string
help: |
All Data Objects stored in an iRODS system are stored in some Collection,
which is a logical name for that set of Data Objects.
All Galaxy output will be stored in this collection
default: ""
timeout:
label: Connection timeout
type: integer
Expand All @@ -54,61 +46,7 @@
type: string
help: |
The iRODS resource to use
client_server_negotiation:
label: Server negotiation
type: string
help: |
Server negotiation
default: "request_server_negotiation"
client_server_policy:
label: Server policy
type: string
help: |
Server policy
default: "CS_NEG_REQUIRE"
encryption_algorithm:
label: Encryption algorithm
type: string
help: |
EVP-supplied encryption algorithm for parallel transfer encryption
default: "AES-256-CBC"
encryption_key_size:
label: Encryption key size
type: integer
help: |
Key size for parallel transfer encryption
default: 32
encryption_num_hash_rounds:
label: Number of hash rounds for encryption
type: integer
help: |
Number of hash rounds for parallel transfer encryption
default: 16
encryption_salt_size:
label: Salt size
type: integer
help: |
Salt size for parallel transfer encryption
default: 8
ssl_verify_server:
label: Ssl verify server
type: string
help: |
What level of server certificate based authentication to perform.
'none' means not to perform any authentication at all.
'cert' means to verify the certificate validity (i.e. that it was signed by a trusted CA).
'hostname' means to validate the certificate and to verify that the irods_host's
FQDN matches either the common name or one of the subjectAltNames of the certificate.
'hostname' is the default setting.
default: "hostname"
ssl_ca_certificate_file:
label: Ssl ca certificate file path
type: string
help: |
Location of a file of trusted CA certificates in PEM format.
Note that the certificates in this file are used in conjunction with the system default
trusted certificates
default: "/etc/irods/ssl/irods.crt"
default: "default"
secrets:
password:
label: Password
Expand All @@ -129,15 +67,4 @@
timeout: '{{ variables.timeout }}'
refresh_time: '{{ variables.refresh_time }}'
connection_pool_monitor_interval: '{{ variables.connection_pool_monitor_interval }}'
ssl:
client_server_negotiation: '{{ variables.client_server_negotiation }}'
client_server_policy: '{{ variables.client_server_policy }}'
encryption_algorithm: '{{ variables.encryption_algorithm }}'
encryption_key_size: '{{ variables.encryption_key_size }}'
encryption_num_hash_rounds: '{{ variables.encryption_num_hash_rounds }}'
encryption_salt_size: '{{ variables.encryption_salt_size }}'
ssl_verify_server: '{{ variables.ssl_verify_server }}'
ssl_ca_certificate_file: '{{ variables.ssl_ca_certificate_file }}'
logical:
path: '{{ variables.logical_path }}'

144 changes: 144 additions & 0 deletions lib/galaxy/objectstore/templates/examples/irods_ssl.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
- id: irods
name: iRODS Storage
version: 0
description: |
If you have an account on an iRODS server, you can use such an object store as
a storage location for your Galaxy datasets; they will be stored in
the iRODS of your choice.
variables:
host:
label: iRODS host
type: string
help: Host url to connect to.
port:
label: iRODS host port
type: integer
help: Host port to connect to.
default: 1247
username:
label: Username
type: string
help: |
Your iRODS username
logical_path:
label: Logical path
type: string
help: |
All Data Objects stored in an iRODS system are stored in some Collection,
which is a logical name for that set of Data Objects.
All Galaxy output will be stored in this collection
default: ""
timeout:
label: Connection timeout
type: integer
help: Connection timeout in seconds.
default: 30
refresh_time:
label: Refresh time
type: integer
help: Connection refresh time in seconds.
default: 300
connection_pool_monitor_interval:
label: Connection pool monitor interval
type: integer
help: Interval for monitoring the connection pool in seconds.
default: 3600
zone:
label: iRODS zone
type: string
help: |
An iRODS Zone is an independent iRODS system consisting of a Catalog Service
Provider
resource:
label: Resource
type: string
help: |
The iRODS resource to use
default: "default"
client_server_negotiation:
label: Server negotiation
type: string
help: |
Server negotiation
default: "request_server_negotiation"
client_server_policy:
label: Server policy
type: string
help: |
Server policy
default: "CS_NEG_REQUIRE"
encryption_algorithm:
label: Encryption algorithm
type: string
help: |
EVP-supplied encryption algorithm for parallel transfer encryption
default: "AES-256-CBC"
encryption_key_size:
label: Encryption key size
type: integer
help: |
Key size for parallel transfer encryption
default: 32
encryption_num_hash_rounds:
label: Number of hash rounds for encryption
type: integer
help: |
Number of hash rounds for parallel transfer encryption
default: 16
encryption_salt_size:
label: Salt size
type: integer
help: |
Salt size for parallel transfer encryption
default: 8
ssl_verify_server:
label: Ssl verify server
type: string
help: |
What level of server certificate based authentication to perform.
'none' means not to perform any authentication at all.
'cert' means to verify the certificate validity (i.e. that it was signed by a trusted CA).
'hostname' means to validate the certificate and to verify that the irods_host's
FQDN matches either the common name or one of the subjectAltNames of the certificate.
'hostname' is the default setting.
default: "hostname"
ssl_ca_certificate_file:
label: Ssl ca certificate file path
type: string
help: |
Location of a file of trusted CA certificates in PEM format.
Note that the certificates in this file are used in conjunction with the system default
trusted certificates
default: "/etc/irods/ssl/irods.crt"
secrets:
password:
label: Password
help: |
Your irods password
configuration:
type: irods
auth:
username: '{{ variables.username }}'
password: '{{ secrets.password }}'
resource:
name: '{{ variables.resource }}'
zone:
name: '{{ variables.zone }}'
connection:
host: '{{ variables.host }}'
port: '{{ variables.port }}'
timeout: '{{ variables.timeout }}'
refresh_time: '{{ variables.refresh_time }}'
connection_pool_monitor_interval: '{{ variables.connection_pool_monitor_interval }}'
ssl:
client_server_negotiation: '{{ variables.client_server_negotiation }}'
client_server_policy: '{{ variables.client_server_policy }}'
encryption_algorithm: '{{ variables.encryption_algorithm }}'
encryption_key_size: '{{ variables.encryption_key_size }}'
encryption_num_hash_rounds: '{{ variables.encryption_num_hash_rounds }}'
encryption_salt_size: '{{ variables.encryption_salt_size }}'
ssl_verify_server: '{{ variables.ssl_verify_server }}'
ssl_ca_certificate_file: '{{ variables.ssl_ca_certificate_file }}'
logical:
path: '{{ variables.logical_path }}'

8 changes: 4 additions & 4 deletions lib/galaxy/objectstore/templates/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -395,8 +395,8 @@ class IrodsObjectStoreTemplateConfiguration(StrictModel):
connection: IrodsConnectionTemplate
zone: IrodsZoneTemplate
resource: IrodsResourceTemplate
ssl: IrodsSslTemplate
logical: IrodsPathTemplate
ssl: Optional[IrodsSslTemplate] = None
logical: Optional[IrodsPathTemplate] = None
badges: BadgeList = None
template_start: Optional[str] = None
template_end: Optional[str] = None
Expand All @@ -408,8 +408,8 @@ class IrodsObjectStoreConfiguration(StrictModel):
connection: IrodsConnection
zone: IrodsZone
resource: IrodsResource
ssl: IrodsSsl
logical: IrodsPath
ssl: Optional[IrodsSsl] = None
logical: Optional[IrodsPath] = None
badges: BadgeList = None


Expand Down
1 change: 1 addition & 0 deletions test/unit/objectstore/test_template_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,7 @@ def test_examples_parse():
assert_example_parses("azure_just_container.yml")
assert_example_parses("production_gcp_s3.yml")
assert_example_parses("irods.yml")
assert_example_parses("irods_ssl.yml")


def assert_example_parses(filename: str):
Expand Down

0 comments on commit cde5010

Please sign in to comment.