Clean up config.py (pep8, imports, misc).

This commit is contained in:
Dannon Baker
2014-06-24 18:43:13 -04:00
parent 9749b639e9
commit 1c5d3e5657
+21 -26
View File
@@ -15,13 +15,12 @@ from datetime import timedelta
from galaxy.web.formatting import expand_pretty_datetime_format
from galaxy.util import string_as_bool
from galaxy.util import listify
from galaxy.util import parse_xml
from galaxy.util.dbkeys import GenomeBuilds
from galaxy import eggs
import pkg_resources
log = logging.getLogger( __name__ )
def resolve_path( path, root ):
"""If 'path' is relative make absolute by prepending 'root'"""
if not( os.path.isabs( path ) ):
@@ -40,9 +39,9 @@ class Configuration( object ):
self.config_dict = kwargs
self.root = kwargs.get( 'root_dir', '.' )
# Collect the umask and primary gid from the environment
self.umask = os.umask( 077 ) # get the current umask
os.umask( self.umask ) # can't get w/o set, so set it back
self.gid = os.getgid() # if running under newgrp(1) we'll need to fix the group of data created on the cluster
self.umask = os.umask( 077 ) # get the current umask
os.umask( self.umask ) # can't get w/o set, so set it back
self.gid = os.getgid() # if running under newgrp(1) we'll need to fix the group of data created on the cluster
# Database related configuration
self.database = resolve_path( kwargs.get( "database_file", "database/universe.sqlite" ), self.root )
@@ -75,7 +74,7 @@ class Configuration( object ):
self.enable_unique_workflow_defaults = string_as_bool( kwargs.get( 'enable_unique_workflow_defaults', False ) )
self.tool_path = resolve_path( kwargs.get( "tool_path", "tools" ), self.root )
self.tool_data_path = resolve_path( kwargs.get( "tool_data_path", "tool-data" ), os.getcwd() )
self.len_file_path = resolve_path( kwargs.get( "len_file_path", os.path.join( self.tool_data_path, 'shared','ucsc','chrom') ), self.root )
self.len_file_path = resolve_path( kwargs.get( "len_file_path", os.path.join( self.tool_data_path, 'shared', 'ucsc', 'chrom') ), self.root )
self.test_conf = resolve_path( kwargs.get( "test_conf", "" ), self.root )
# The value of migrated_tools_config is the file reserved for containing only those tools that have been eliminated from the distribution
# and moved to the tool shed.
@@ -169,7 +168,7 @@ class Configuration( object ):
self.admin_users = kwargs.get( "admin_users", "" )
self.admin_users_list = [u.strip() for u in self.admin_users.split(',') if u]
self.reset_password_length = int( kwargs.get('reset_password_length', '15') )
self.mailing_join_addr = kwargs.get('mailing_join_addr',"galaxy-announce-join@bx.psu.edu")
self.mailing_join_addr = kwargs.get('mailing_join_addr', 'galaxy-announce-join@bx.psu.edu')
self.error_email_to = kwargs.get( 'error_email_to', None )
self.activation_email = kwargs.get( 'activation_email', None )
self.user_activation_on = string_as_bool( kwargs.get( 'user_activation_on', False ) )
@@ -271,9 +270,9 @@ class Configuration( object ):
self.object_store_cache_path = resolve_path( kwargs.get( "object_store_cache_path", "database/object_store_cache" ), self.root )
# Handle AWS-specific config options for backward compatibility
if kwargs.get( 'aws_access_key', None) is not None:
self.os_access_key= kwargs.get( 'aws_access_key', None )
self.os_secret_key= kwargs.get( 'aws_secret_key', None )
self.os_bucket_name= kwargs.get( 's3_bucket', None )
self.os_access_key = kwargs.get( 'aws_access_key', None )
self.os_secret_key = kwargs.get( 'aws_secret_key', None )
self.os_bucket_name = kwargs.get( 's3_bucket', None )
self.os_use_reduced_redundancy = kwargs.get( 'use_reduced_redundancy', False )
else:
self.os_access_key = kwargs.get( 'os_access_key', None )
@@ -454,19 +453,13 @@ class Configuration( object ):
except Exception, e:
raise ConfigurationError( "Unable to create missing directory: %s\n%s" % ( path, e ) )
# Create the directories that it makes sense to create
for path in self.file_path, \
self.new_file_path, \
self.job_working_directory, \
self.cluster_files_directory, \
self.template_cache, \
self.ftp_upload_dir, \
self.library_import_dir, \
self.user_library_import_dir, \
self.nginx_upload_store, \
'./static/genetrack/plots', \
self.whoosh_index_dir, \
self.object_store_cache_path, \
os.path.join( self.tool_data_path, 'shared', 'jars' ):
for path in (self.file_path, self.new_file_path,
self.job_working_directory, self.cluster_files_directory,
self.template_cache, self.ftp_upload_dir,
self.library_import_dir, self.user_library_import_dir,
self.nginx_upload_store, './static/genetrack/plots',
self.whoosh_index_dir, self.object_store_cache_path,
os.path.join( self.tool_data_path, 'shared', 'jars' )):
self._ensure_directory( path )
# Check that required files exist
tool_configs = self.tool_configs
@@ -482,7 +475,7 @@ class Configuration( object ):
if key in self.deprecated_options:
log.warning( "Config option '%s' is deprecated and will be removed in a future release. Please consult the latest version of the sample configuration file." % key )
def is_admin_user( self,user ):
def is_admin_user( self, user ):
"""
Determine if the provided user is listed in `admin_users`.
@@ -497,12 +490,13 @@ class Configuration( object ):
"""
return resolve_path( path, self.root )
def get_database_engine_options( kwargs, model_prefix='' ):
"""
Allow options for the SQLAlchemy database engine to be passed by using
the prefix "database_engine_option".
"""
conversions = {
conversions = {
'convert_unicode': string_as_bool,
'pool_timeout': int,
'echo': string_as_bool,
@@ -524,6 +518,7 @@ def get_database_engine_options( kwargs, model_prefix='' ):
rval[ key ] = value
return rval
def configure_logging( config ):
"""
Allow some basic logging configuration to be read from ini file.
@@ -558,7 +553,7 @@ def configure_logging( config ):
root.addHandler( handler )
# If sentry is configured, also log to it
if config.sentry_dsn:
pkg_resources.require( "raven" )
eggs.require( "raven" )
from raven.handlers.logging import SentryHandler
sentry_handler = SentryHandler( config.sentry_dsn )
sentry_handler.setLevel( logging.WARN )