Drop remaining references to uWSGI

This commit is contained in:
mvdbeek
2022-03-21 13:44:37 +01:00
parent 492e560b65
commit a9420d24b5
8 changed files with 19 additions and 73 deletions
+1 -1
View File
@@ -191,4 +191,4 @@ ENV GALAXY_CONFIG_CONDA_AUTO_INIT=False
ENTRYPOINT ["tini", "--"]
# [optional] to run:
CMD uwsgi --yaml config/galaxy.yml
CMD galaxy
-45
View File
@@ -1,45 +0,0 @@
# This is a sample supervisor config file.
# In this configuration, 2 handlers and 1 uwsgi (uwsgi is more performant than the default Paste) instance with 2 processes and 2 threads will be started.
# In order for this to work, you will need to have a [uwsgi] section in galaxy.ini, as such:
#
# [uwsgi]
# master = True
#
# Further, this assumes uwsgi has been installed through pip into a virtualenv (/home/galaxy/galaxy/.venv/, in this example).
# If this is not the case, adjust the path to uwsgi accordingly.
# If uwsgi was not installed through pip, include "--plugin python" in the uwsgi command.
# This configuration has been tested with galaxy release_16.01 and uWSGI==2.0.12.
# This assumes galaxy is installed in /home/galaxy/galaxy, so change occurences of /home/galaxy/galaxy accordingly.
# If you want to run galaxy under a different username, change "user = galaxy" to "user = <your user>".
# You will probably want to proxy uwsgi (you can't connect with a browser to uwsgi port 4001) with nginx or apache,
# see https://galaxyproject.org/admin/config/performance/scaling/#apache
# or https://galaxyproject.org/admin/config/performance/scaling/#nginx
[program:galaxy_web]
command = /home/galaxy/galaxy/.venv/bin/uwsgi --virtualenv /home/galaxy/galaxy/.venv --ini-paste /home/galaxy/galaxy/config/galaxy.ini --logdate --master --processes 2 --threads 2 --logto /home/galaxy/galaxy/uwsgi.log --socket 127.0.0.1:4001 --pythonpath lib --stats 127.0.0.1:9191
directory = /home/galaxy/galaxy
umask = 022
autostart = true
autorestart = true
startsecs = 20
user = galaxy
environment = PATH=/home/galaxy/galaxy/.venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin,PYTHONHOME=/home/galaxy/galaxy/.venv
numprocs = 1
stopsignal = INT
startretries = 15
[program:handler]
command = /home/galaxy/galaxy/.venv/bin/python ./lib/galaxy/main.py -c /home/galaxy/galaxy/config/galaxy.ini --server-name=handler%(process_num)s --log-file=/home/galaxy/galaxy/handler%(process_num)s.log
directory = /home/galaxy/galaxy
process_name = handler%(process_num)s
numprocs = 2
umask = 022
autostart = true
autorestart = true
startsecs = 20
user = galaxy
environment = PYTHONHOME=/home/galaxy/galaxy/.venv
startretries = 15
[group:galaxy]
programs = handler, galaxy_web
+4 -12
View File
@@ -50,18 +50,10 @@ Advanced Configuration
----------------------------
For more useful and manageable logging when running Galaxy with forking application stacks where multiple
Galaxy server processes are forked after the Galaxy application is loaded, some extensions to standard Python
:mod:`logging` are available in Galaxy:
- Two custom fields (aka Python :class:`logging.LogRecord` attributes) identifying the uWSGI worker ID and mule ID can
be added to log messages: ``%(worker_id)s`` and ``%(mule_id)s``. These fields aid in associating log messages with the
Galaxy server processes that emitted them. They are included in the default log format (found in
:data:`galaxy.web.stack.UWSGIApplicationStack.log_format`) when using uWSGI and are available for use in custom log
formats.
- A custom ``filename_template`` config option is available to :class:`logging.FileHandler` (or derivative class) log
handler definitions so that multiple file logging is possible. Without this custom option, all forked Galaxy server
processes would only be able to log to a single combined log file, which can be very difficult to work with.
Galaxy server processes are forked after the Galaxy application is loaded, a custom ``filename_template`` config option
is available to :class:`logging.FileHandler` (or derivative class) log handler definitions so that multiple file logging is possible.
Without this custom option, all forked Galaxy server processes would only be able to log to a single combined log file,
which can be very difficult to work with.
YAML
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+2 -1
View File
@@ -2,7 +2,8 @@
## Why do we migrate away from uWSGI
Starting with Galaxy release 22.01 the default application webserver is [Gunicorn](https://gunicorn.org/), which replaces [uWSGI](https://uwsgi-docs.readthedocs.io/en/latest/). We will remove support for running Galaxy under uWSGI in Galaxy release 22.05.
Starting with Galaxy release 22.01 the default application webserver is [Gunicorn](https://gunicorn.org/), which replaces [uWSGI](https://uwsgi-docs.readthedocs.io/en/latest/).
We have removed support for running Galaxy under uWSGI in Galaxy release 22.05.
We have made this move because uWSGI support for newer Python versions has been problematic and because
we have modernized the API portion of our backend. The Galaxy web application is now an ASGI application
driven by [FastAPI](https://fastapi.tiangolo.com/) and [Starlette](https://www.starlette.io/).
+1 -1
View File
@@ -89,7 +89,7 @@ without enclosing them in any sort of block:
.. code-block:: nginx
uwsgi_read_timeout 180;
proxy_read_timeout 180;
client_max_body_size 10g;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
@@ -34,7 +34,6 @@ Some important benefits of using Galaxy InteractiveTools
- If you accidentally close the **InteractiveTool browser window**, you can **regain access** by selecting from a **list of active InteractiveTools**
- A single **InteractiveTool** can **grant access** to **multiple running applications, servers, and interfaces**
- **InteractiveTools** can be **added to** Galaxy **Workflows**
- **Native, out-of-the box support for InteractiveTools** in Galaxy via uWSGI proxying
- **InteractiveTools** are **bonafide Galaxy Tools**; just specify **tool_type as "interactive"** and list the ports you want to expose
- **InteractiveTools** can be **added** to and **installed from the ToolShed**.
- **R Shiny apps**, **Javascript-based VNC** access to desktop environments, **genome-browsers-in-a-box**, **interactive notebook environments**, etc, are all possible with **InteractiveTools**
@@ -113,7 +113,7 @@
scratch directory available on compute). -->
<!-- Specify a complete description of the Pulsar app
to create. If this configuration defines more than
one manager - you can specify the manager name
one manager - you can specify the manager name
using the "manager" destination parameter. For more
information on configuring a Pulsar app see:
@@ -208,7 +208,7 @@
<!-- Comma separated list of Persistent Volume Claim (PVC) to container mount point mappings, in the format
PVC:mount point
Typical mount paths are extra mounts that are expected to be mounted for all jobs, such as
Typical mount paths are extra mounts that are expected to be mounted for all jobs, such as
tool scripts, the CVMFS, and all library paths set in galaxy.yml (or equivalent general galaxy config file). -->
<!-- <param id="k8s_namespace">default</param> -->
@@ -390,7 +390,7 @@
- `assign_with` - How jobs should be assigned to handlers. The value can be a single method or a
comma-separated list that will be tried in order. The default depends on whether any handlers and a job
handler "pool" (such as uWSGI mules in a `job-handlers` farm) are configured. Valid methods are
handler "pool" are configured. Valid methods are
explained in detail in the documentation referenced above and have the values:
- `mem-self` - In-memory Self Assignment
@@ -549,7 +549,7 @@
command.
-->
<!-- <param id="docker_auto_rm">true</param> -->
<!-- Override which user to launch Docker container as - defaults to
<!-- Override which user to launch Docker container as - defaults to
Galaxy's user id. For remote job execution (e.g. Pulsar) set to
remote job user. Leave empty to not use the -u argument with
Docker. -->
@@ -901,8 +901,8 @@
<param id="job_memory">16000</param>
<param id="job_cores">8</param>
<param id="job_project">BigMem</param>
<!-- Exclude hosts in the LSF cluster from receiving the job.
Useful for avoiding nodes with temporal issues.
<!-- Exclude hosts in the LSF cluster from receiving the job.
Useful for avoiding nodes with temporal issues.
-->
<param id="job_excluded_hosts">/path/to/file/with/hosts/to/be/excluded/one_per_line.txt</param>
</destination>
@@ -927,8 +927,8 @@
<container type="docker">bgruening/galaxy-stable</container>
</requirements>
Unless the job destination specifies an override
with docker_container_id_override. If neither of
Unless the job destination specifies an override
with docker_container_id_override. If neither of
these is set a default container can be specified
with docker_default_container_id. The resolved
container ID will be passed along to condor as
@@ -962,7 +962,7 @@
handler will be reused for the resubmitted job. The ``destination`` attriubte
is optional, if not present the job's original destination will be reused for the
re-submission. The ``delay`` attribute is optional, if present it will cause the job to
delay for that number of seconds before being re-submitted.
delay for that number of seconds before being re-submitted.
-->
<destination id="short_fast" runner="slurm">
<param id="nativeSpecification">--time=00:05:00 --nodes=1</param>
@@ -1090,12 +1090,12 @@
<param id="docker_default_container_id">centos:latest</param>
<!-- Specify the image on which the jobs have to be executed -->
<param id="godocker_volumes"></param>
<!-- Mount the godocker volumes
<!-- Mount the godocker volumes
volumes must be separated by commas.
eg: <param id="godocker_volumes">home,galaxy</param>
-->
<param id="virtualenv">false</param>
<!-- If a tool execution in container requires galaxy virtualenv,
<!-- If a tool execution in container requires galaxy virtualenv,
then enable it by setting the value to true.
Disable venv by setting the value to false.
-->
-1
View File
@@ -85,7 +85,6 @@ pysam = "*"
python = ">=3.7,<4"
python-dateutil = "*"
python-multipart = "*" # required to support form parsing in FastAPI/Starlette
pyuwsgi = "*"
PyYAML = "*"
refgenconf = ">=0.12.0"
requests = "*"