Moved behavioral logic from CeleryUserRateLimit model class to base_task
module because model classes should be plain old classes. Ran
make config-schema to update galaxy_options.rst and galaxy.yml.sample
based on changes made to config_schema.yml.
Introduce a celery_user_rate_limit config parameter which
specifies how many tasks per second a user can execute. Create a
custom celery Task class called GalaxyTask with a before_start hook
that implements the rate limiting logic. Add a new table,
celery_user_rate_limit that tracks the last scheduled execution time
by user id. Add new integration test, test_celery_user_rate_limit.py.
- `carbon_intensity` and `geographical_server_location_name` are
automatically computed on startup and are never set by an admin. So
they don't need to be in the config at all.
- Add `geographical_server_location_code`, `geographical_server_location_name` and `carbon_intensity` flags.
- Alphabetically sort the list of config flags in galaxy init file.
- Add logic to set `geographical_server_location_name` and `carbon_intensity` based off of `geographical_server_location_code`.
All 3 beaker caches, mulled_resolution, citations, biotools service,
now use the same default cache table, beaker_cache. This reduces the
number of open db connections because beaker creates a separate
sqlalchemy engine and associated connection pool for each distinct
table and each connection pool opens up a certain number of connections.
This was causing the integration tests to fail because the max
postgress connections(100) were being exceeded.
ext:database.
Rather than store cache data in the file system store cache data
in the database. These are the last 2 beaker caches that need
to be converted to the database as part of issue 15216.
Introduce new config parameters for database url, cache table name.
Introduce logic to default values of a parameter to values of another
parameter. i.e. default cache database url to database_connection.
Metadata for this was placed in code. Should probably be
placed eventually in config file which would require a change
to the config_schema.yml.
Introduced a new unit test, test_citations_db.py
Did not introduce a new test for the biotools_service beaker cache
because I could not find a place in the code where it was used.
Rather than store cache data in the file system store cache data
in the database. Partially addresses issue 15216. For now this was
only changed for the mulled resolution cache. Introduced new
config parameters for database url, cache table name. Introduced
logic to default values of a parameter to values of another
parameter. i.e. default cache database url to database_connection.
Metadata for this was placed in code. Should probably be
placed eventually in config file which would require a change
to the config_schema.yml.
Introduced a new unit test, test_mulled_resolution_cache_db.py.
fixes https://github.com/galaxyproject/galaxy/issues/15673
- singularity: add `--no_mount tmp` (analogous to docker's default)
- do not bind `$TMPDIR:rw,$TMP:rw,$TEMP:rw` by default
- instead (by default )provide a writable `/tmp` via
`$_GALAXY_JOB_TMP_DIR/:/tmp:rw` note that this dir is still also
available as `$_GALAXY_JOB_TMP_DIR:rw`
- Server location can be set as a valid ISO 3166 code. This is used to
determine the carbon intensity based off of the galaxy instance server
location
- A non-default power usage effectiveness value can be set
- Carbon emissions reporting can be toggled