diff --git a/README.md b/README.md index fd9b360..8930e7c 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,7 @@ Each database is defined as a dictionary of the following parameters: - `group` Optional. Useful if the database needs restricted access. An LDAP group ("gid"). LDAP users who are member of this group will have access to the database. - `web_page_title` Optional. The title displayed at the top of the web page. If not provided, the default title is "BLAST server for `name`". - `placeholders` Optional. A list of placeholder dictionaries `{key: 'key_item', value: 'value_item'}` that are used to customize top or bottom supplementary HTML code (see `sequenceserver_top_web_page_html_path` and `sequenceserver_bottom_web_page_html_path`). For example `placeholders: [{key: 'key1', value: 'value1'}, {key: 'key2', value: 'value2'}]`. +- `conf_options` Optional. A list of supplementary SequenceServer configuration options dictionaries `{key: 'key_item', value: 'value_item'}` (see [SequenceServer documentation](https://sequenceserver.com/doc/#basics)). For example `conf_options: [{key: 'job_lifetime', value: '10080'}, {key: 'databases_widget', value: 'tree'}]`. Unique `name` and `port` are mandatory for each database. `users`, `ldap_businesscategory` and `group` are optional and can be used to add an authentication layer with the nginx-auth-ldap module. Choose one single authentication mode for each database. diff --git a/defaults/main.yml b/defaults/main.yml index f6f2cbc..07fb2c3 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -24,6 +24,7 @@ sequenceserver_blast_db: # users: ['fbar','jsmith'] # web_page_title: 'blablabla' # placeholders: [{key: 'key1', value: 'value1'}, {key: 'key2', value: 'value2'}] +# conf_options: [{key: 'job_lifetime', value: '10080'}, {key: 'databases_widget', value: 'tree'}] # NCBI BLAST and SLURM variables # Used in the slurm bash scripts diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index 38bc169..4e839ad 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -12,6 +12,7 @@ port: '4567' path: '/tmp/test-data' placeholders: [{key: 'key_string', value: 'value1'}, {key: 'key_link', value: 'my favorite link'}] + conf_options: [{key: 'job_lifetime', value: '10080'}, {key: 'databases_widget', value: 'tree'}] sequenceserver_top_web_page_html_path: "/tmp/top_web_page.html" sequenceserver_bottom_web_page_html_path: "/tmp/bottom_web_page.html" sequenceserver_home_url: "http://myfavoritewebsite.com" diff --git a/molecule/default/verify.yml b/molecule/default/verify.yml index 86db4db..ee5cb9a 100644 --- a/molecule/default/verify.yml +++ b/molecule/default/verify.yml @@ -83,3 +83,14 @@ set_fact: grep_slurm_batch: "{{ lib_modified_for_hpc_integration.content | b64decode | regex_findall('slurm_sbatch.sh') | first }}" failed_when: grep_slurm_batch != 'slurm_sbatch.sh' + - name: Get the SequenceServer configuration file of my_db + slurp: + src: "/etc/sequenceserver/config/sequenceserver.my_db.conf" + register: my_db_conf + - name: Display content of the SequenceServer configuration file of my_db + debug: + msg: "{{ my_db_conf.content | b64decode }}" + - name: Check that conf_option is in the SequenceServer configuration file of my_db + set_fact: + grep_slurm_batch: "{{ my_db_conf.content | b64decode | regex_findall('databases_widget') | first }}" + failed_when: grep_slurm_batch != 'databases_widget' diff --git a/templates/sequenceserver.conf.j2 b/templates/sequenceserver.conf.j2 index 367503c..95b5336 100644 --- a/templates/sequenceserver.conf.j2 +++ b/templates/sequenceserver.conf.j2 @@ -1,2 +1,9 @@ :port: '{{ item.port }}' :database_dir: '{{ item.path }}' +{% if item.conf_options is defined and item.conf_options %} +{% for option in item.conf_options %} +{% if option.key is defined and option.key and option.value is defined and option.value %} +:{{ option.key }}: '{{ option.value }}' +{% endif %} +{% endfor %} +{% endif %} \ No newline at end of file