Warning
This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
galaxy.web_stack package¶
Web application stack operations.
- class galaxy.web_stack.ApplicationStackLogFilter(name='')[source]¶
Bases:
logging.Filter
- class galaxy.web_stack.UWSGILogFilter(name='')[source]¶
Bases:
logging.Filter
- class galaxy.web_stack.ApplicationStack(app=None, config=None)[source]¶
Bases:
object
- transport_class¶
alias of
galaxy.web_stack.transport.ApplicationStackTransport
- log_filter_class¶
- log_format = '%(name)s %(levelname)s %(asctime)s [pN:%(processName)s,p:%(process)d,tN:%(threadName)s] %(message)s'¶
- server_name_template = '{server_name}'¶
- default_app_name = 'main'¶
- init_job_handling(job_config)[source]¶
Automatically add pools as handlers if they are named per predefined names and there is not an explicit job handler assignment configuration.
Also automatically set the preferred assignment method if pool handlers are found and an assignment method is not explicitly configured by the administrator.
- property pool_name¶
- property configured_pools¶
- property facts¶
- class galaxy.web_stack.UWSGIApplicationStack(app=None, config=None)[source]¶
Bases:
galaxy.web_stack.MessageApplicationStack
Interface to the uWSGI application stack. Supports running additional webless Galaxy workers as mules. Mules must be farmed to be communicable via uWSGI mule messaging, unfarmed mules are not supported.
Note that mules will use this as their stack class even though they start with the “webless” loading point.
- transport_class¶
alias of
galaxy.web_stack.transport.UWSGIFarmMessageTransport
- log_filter_class¶
alias of
galaxy.web_stack.UWSGILogFilter
- log_format = '%(name)s %(levelname)s %(asctime)s [pN:%(processName)s,p:%(process)d,w:%(worker_id)s,m:%(mule_id)s,tN:%(threadName)s] %(message)s'¶
- server_name_template = '{server_name}.{pool_name}.{instance_id}'¶
- postfork_functions: List[Tuple[Callable, List, Dict]] = []¶
- localhost_addrs = ('127.0.0.1', '[::1]')¶
- bind_all_addrs = ('', '0.0.0.0', '[::]')¶
- property configured_pools¶
- property instance_id¶
- property facts¶
- class galaxy.web_stack.GunicornApplicationStack(app=None, config=None)[source]¶
Bases:
galaxy.web_stack.ApplicationStack
- do_post_fork = False¶
- postfork_functions: List[Callable] = []¶
- late_postfork_event = <threading.Event object>¶
- class galaxy.web_stack.WeblessApplicationStack(app=None, config=None)[source]¶
Bases:
galaxy.web_stack.ApplicationStack
- property configured_pools¶
- galaxy.web_stack.application_stack_class() Type[galaxy.web_stack.ApplicationStack] [source]¶
Returns the correct ApplicationStack class for the stack under which this Galaxy process is running.
- galaxy.web_stack.application_stack_instance(app=None, config=None) galaxy.web_stack.ApplicationStack [source]¶
Submodules¶
galaxy.web_stack.gunicorn_config module¶
Gunicorn config file based on https://gist.github.com/hynek/ba655c8756924a5febc5285c712a7946
- galaxy.web_stack.gunicorn_config.on_starting(server)[source]¶
Attach a set of IDs that can be temporarily re-used.
Used on reloads when each worker exists twice.
- galaxy.web_stack.gunicorn_config.nworkers_changed(server, new_value, old_value)[source]¶
Gets called on startup too.
Set the current number of workers. Required if we raise the worker count temporarily using TTIN because server.cfg.workers won’t be updated and if one of those workers dies, we wouldn’t know the ids go that far.
- galaxy.web_stack.gunicorn_config.on_reload(server)[source]¶
Add a full set of ids into overload so it can be re-used once.
galaxy.web_stack.handlers module¶
Utilities for dealing with the Galaxy ‘handler’ process pattern.
A ‘handler’ is a named Python process running the Galaxy application responsible for some activity such as queuing up jobs or scheduling workflows.
- class galaxy.web_stack.handlers.HANDLER_ASSIGNMENT_METHODS(value)[source]¶
-
An enumeration.
- MEM_SELF = 'mem-self'¶
- DB_SELF = 'db-self'¶
- DB_PREASSIGN = 'db-preassign'¶
- DB_TRANSACTION_ISOLATION = 'db-transaction-isolation'¶
- DB_SKIP_LOCKED = 'db-skip-locked'¶
- UWSGI_MULE_MESSAGE = 'uwsgi-mule-message'¶
- exception galaxy.web_stack.handlers.HandlerAssignmentSkip[source]¶
Bases:
Exception
Exception for handler assignment methods to raise if the next method should be tried.
- class galaxy.web_stack.handlers.ConfiguresHandlers[source]¶
Bases:
object
- DEFAULT_HANDLER_TAG = '_default_'¶
- property use_messaging¶
- property deterministic_handler_assignment¶
- property is_handler¶
Indicate whether the current server is configured as a handler.
- Returns
bool
- property handler_tags¶
Get an iterable of all configured handler tags.
- property self_handler_tags¶
Get an iterable of the current process’s configured handler tags.
- assign_handler(obj, configured=None, **kwargs)[source]¶
Set a job handler, flush obj
Called assignment methods should raise py:class:HandlerAssignmentSkip to indicate that the next method should be tried.
- Parameters
obj (instance of
galaxy.model.Job
or other model object with aset_handler()
method.) – Object to assign a handler to (must be a model object withhandler
attribute andlog_str
callable).configured (str or None.) – Preconfigured handler (ID, tag, or None) for the given object.
- Returns
bool – True on successful assignment, False otherwise.
galaxy.web_stack.message module¶
Web Application Stack worker messaging.
- class galaxy.web_stack.message.ApplicationStackMessageDispatcher[source]¶
Bases:
object
- property handler_count¶
- class galaxy.web_stack.message.ApplicationStackMessage(target=None, **kwargs)[source]¶
Bases:
dict
- default_handler = None¶
- class galaxy.web_stack.message.ParamMessage(target=None, params=None, **kwargs)[source]¶
Bases:
galaxy.web_stack.message.ApplicationStackMessage
- property params¶
- class galaxy.web_stack.message.TaskMessage(target=None, params=None, **kwargs)[source]¶
Bases:
galaxy.web_stack.message.ParamMessage
- static default_handler(self, msg)[source]¶
Can be bound to an instance of any class that has message handling methods named like _handle_{task}_method
- property task¶
- class galaxy.web_stack.message.JobHandlerMessage(target=None, params=None, **kwargs)[source]¶
Bases:
galaxy.web_stack.message.TaskMessage
- target = 'job_handler'¶
- class galaxy.web_stack.message.WorkflowSchedulingMessage(target=None, params=None, **kwargs)[source]¶
Bases:
galaxy.web_stack.message.TaskMessage
- target = 'workflow_scheduling'¶
galaxy.web_stack.transport module¶
Web application stack operations
- class galaxy.web_stack.transport.ApplicationStackTransport(app, stack, dispatcher=None)[source]¶
Bases:
object
- SHUTDOWN_MSG = '__SHUTDOWN__'¶
- class galaxy.web_stack.transport.UWSGIFarmMessageTransport(app, stack, dispatcher=None)[source]¶
Bases:
galaxy.web_stack.transport.ApplicationStackTransport
Communication via uWSGI Mule Farm messages. Communication is unidirectional (workers -> mules).