Warning

This document is for an in-development version 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

filter(record)[source]
class galaxy.web.stack.UWSGILogFilter(name='')[source]

Bases: logging.Filter

filter(record)[source]
class galaxy.web.stack.ApplicationStack(app=None, config=None)[source]

Bases: object

name = None
prohibited_middleware = frozenset([])
transport_class

alias of galaxy.web.stack.transport.ApplicationStackTransport

log_filter_class

alias of ApplicationStackLogFilter

log_format = '%(name)s %(levelname)s %(asctime)s %(message)s'
server_name_template = '{server_name}'
default_app_name = 'main'
classmethod log_filter()[source]
classmethod get_app_kwds(config_section, app_name=None, for_paste_app=False)[source]
classmethod register_postfork_function(f, *args, **kwargs)[source]
__init__(app=None, config=None)[source]
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.

init_late_prefork()[source]
log_startup()[source]
start()[source]
allowed_middleware(middleware)[source]
workers()[source]
pool_name
configured_pools
has_base_pool(pool_name)[source]
has_pool(pool_name)[source]
in_pool(pool_name)[source]
pool_members(pool_name)[source]
facts
set_postfork_server_name(app)[source]
register_message_handler(func, name=None)[source]
deregister_message_handler(func=None, name=None)[source]
send_message(dest, msg=None, target=None, params=None, **kwargs)[source]
shutdown()[source]
class galaxy.web.stack.MessageApplicationStack(app=None, config=None)[source]

Bases: galaxy.web.stack.ApplicationStack

__init__(app=None, config=None)[source]
init_late_prefork()[source]
start()[source]
register_message_handler(func, name=None)[source]
deregister_message_handler(func=None, name=None)[source]
send_message(dest, msg=None, target=None, params=None, **kwargs)[source]
shutdown()[source]
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.

name = 'uWSGI'
prohibited_middleware = frozenset(['EvalException', 'wrap_in_static'])
transport_class

alias of galaxy.web.stack.transport.UWSGIFarmMessageTransport

log_filter_class

alias of UWSGILogFilter

log_format = '%(name)s %(levelname)s %(asctime)s [p:%(process)s,w:%(worker_id)s,m:%(mule_id)s] [%(threadName)s] %(message)s'
server_name_template = '{server_name}.{pool_name}.{instance_id}'
postfork_functions = []
localhost_addrs = ('127.0.0.1', '[::1]')
bind_all_addrs = ('', '0.0.0.0', '[::]')
classmethod get_app_kwds(config_section, app_name=None)[source]
classmethod register_postfork_function(f, *args, **kwargs)[source]
__init__(app=None, config=None)[source]
configured_pools
instance_id
log_startup()[source]
start()[source]
in_pool(pool_name)[source]
pool_members(pool_name)[source]
workers()[source]
facts
shutdown()[source]
class galaxy.web.stack.PasteApplicationStack(app=None, config=None)[source]

Bases: galaxy.web.stack.ApplicationStack

name = 'Python Paste'
class galaxy.web.stack.WeblessApplicationStack(app=None, config=None)[source]

Bases: galaxy.web.stack.ApplicationStack

name = 'Webless'
__init__(app=None, config=None)[source]
configured_pools
in_pool(pool_name)[source]
pool_members(pool_name)[source]
galaxy.web.stack.application_stack_class()[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)[source]
galaxy.web.stack.application_stack_log_filter()[source]
galaxy.web.stack.application_stack_log_formatter()[source]
galaxy.web.stack.register_postfork_function(f, *args, **kwargs)[source]
galaxy.web.stack.get_app_kwds(config_section, app_name=None)[source]
galaxy.web.stack.get_stack_facts(config=None)[source]

Submodules

galaxy.web.stack.message module

Web Application Stack worker messaging

class galaxy.web.stack.message.ApplicationStackMessageDispatcher[source]

Bases: object

__init__()[source]
register_func(func, name=None)[source]
deregister_func(func=None, name=None)[source]
handler_count
dispatch(msg_str)[source]
class galaxy.web.stack.message.ApplicationStackMessage(target=None, **kwargs)[source]

Bases: dict

default_handler = None
__init__(target=None, **kwargs)[source]
validate()[source]
encode()[source]
bind_default_handler(obj, name)[source]

Bind the default handler method to obj as attribute name.

This could also be implemented as a mixin class.

target
set_target
class galaxy.web.stack.message.ParamMessage(target=None, params=None, **kwargs)[source]

Bases: galaxy.web.stack.message.ApplicationStackMessage

__init__(target=None, params=None, **kwargs)[source]
validate()[source]
params
set_params
class galaxy.web.stack.message.TaskMessage(target=None, params=None, **kwargs)[source]

Bases: galaxy.web.stack.message.ParamMessage

static default_handler(msg)[source]

Can be bound to an instance of any class that has message handling methods named like _handle_{task}_method

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.message.decode(msg_str)[source]

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__'
__init__(app, stack, dispatcher=None)[source]

Pre-fork initialization.

init_late_prefork()[source]
start_if_needed()[source]
stop_if_unneeded()[source]
start()[source]

Post-fork initialization.

send_message(msg, dest)[source]
shutdown()[source]
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).

init_late_prefork()[source]
__init__(app, stack, dispatcher=None)[source]
start()[source]

Post-fork initialization.

This is mainly done here for the future possibility that we’ll be able to run mules post-fork without exec()ing. In a programmed mule it could be done at __init__ time.

shutdown()[source]
send_message(msg, dest)[source]