API, configuration: doc and clean up

This commit is contained in:
Carl Eberhard
2015-02-09 11:49:49 -05:00
parent 19ce7033d3
commit 0e37a931ce
+43 -34
View File
@@ -31,18 +31,25 @@ class ConfigurationController( BaseAPIController ):
serialization_params = self._parse_serialization_params( kwd, 'all' )
return self.get_config_dict( trans, is_admin, **serialization_params )
def get_config_dict( self, trans, return_admin=False, **kwargs ):
def get_config_dict( self, trans, return_admin=False, view=None, keys=None, default_view='all' ):
"""
Return a dictionary with (a subset of) current Galaxy settings.
If `return_admin` also include a subset of more sensitive keys.
Pass in `view` (String) and comma seperated list of keys to control which
configuration settings are returned.
"""
serializer = self.config_serializer
if return_admin:
#TODO: this should probably just be under a different route: 'admin/configuration'
serializer = self.admin_config_serializer
if 'default_view' not in kwargs:
kwargs[ 'default_view' ] = serializer.default_view
serialized = serializer.serialize_to_view( trans, self.app.config, **kwargs )
serialized = serializer.serialize_to_view( trans, self.app.config,
view=view, keys=keys, default_view=default_view )
return serialized
#TODO: for lack of a manager file for the config. May well be better in config.py? Circ imports?
class ConfigSerializer( base.ModelSerializer ):
def __init__( self, app ):
@@ -54,42 +61,42 @@ class ConfigSerializer( base.ModelSerializer ):
def default_serializer( self, trans, config, key ):
return config.get( key, None )
def _defaults_to( self, default ):
return lambda t, i, k: i.get( k, default )
def add_serializers( self ):
def _defaults_to( default ):
return lambda t, i, k: i.get( k, default )
self.serializers = {
#TODO: this is available from user data, remove
'is_admin_user' : lambda *a: False,
'brand' : lambda t, i, k: i.get( k, "" ),
'brand' : _defaults_to( '' ),
#TODO: this doesn't seem right
'logo_url' : lambda t, i, k: self.url_for( i.get( k, '/') ),
'terms_url' : lambda t, i, k: i.get( k, "" ),
'logo_url' : lambda t, i, k: self.url_for( i.get( k, '/' ) ),
'terms_url' : _defaults_to( '' ),
#TODO: don't hardcode here - hardcode defaults once in config.py
'wiki_url' : self._defaults_to( "http://galaxyproject.org/" ),
'search_url' : self._defaults_to( "http://galaxyproject.org/search/usegalaxy/" ),
'mailing_lists' : self._defaults_to( "http://wiki.galaxyproject.org/MailingLists" ),
'screencasts_url' : self._defaults_to( "http://vimeo.com/galaxyproject" ),
'citation_url' : self._defaults_to( "http://wiki.galaxyproject.org/CitingGalaxy" ),
'support_url' : self._defaults_to( "http://wiki.galaxyproject.org/Support" ),
'lims_doc_url' : self._defaults_to( "http://main.g2.bx.psu.edu/u/rkchak/p/sts" ),
'biostar_url' : lambda t, i, k: i.biostar_url,
'wiki_url' : _defaults_to( "http://galaxyproject.org/" ),
'search_url' : _defaults_to( "http://galaxyproject.org/search/usegalaxy/" ),
'mailing_lists' : _defaults_to( "http://wiki.galaxyproject.org/MailingLists" ),
'screencasts_url' : _defaults_to( "http://vimeo.com/galaxyproject" ),
'citation_url' : _defaults_to( "http://wiki.galaxyproject.org/CitingGalaxy" ),
'support_url' : _defaults_to( "http://wiki.galaxyproject.org/Support" ),
'lims_doc_url' : _defaults_to( "http://main.g2.bx.psu.edu/u/rkchak/p/sts" ),
'biostar_url' : _defaults_to( '' ),
'biostar_url_redirect' : lambda *a: self.url_for( controller='biostar', action='biostar_redirect',
qualified=True ),
qualified=True ),
'allow_user_creation' : lambda t, i, k: i.allow_user_creation,
'use_remote_user' : lambda t, i, k: i.use_remote_user,
'remote_user_logout_href' : lambda t, i, k: i.remote_user_logout_href,
'enable_cloud_launch' : self._defaults_to( False ),
'datatypes_disable_auto' : self._defaults_to( False ),
'allow_user_dataset_purge' : self._defaults_to( False ),
'enable_unique_workflow_defaults' : self._defaults_to( False ),
'allow_user_creation' : _defaults_to( False ),
'use_remote_user' : _defaults_to( None ),
'remote_user_logout_href' : _defaults_to( '' ),
'enable_cloud_launch' : _defaults_to( False ),
'datatypes_disable_auto' : _defaults_to( False ),
'allow_user_dataset_purge' : _defaults_to( False ),
'enable_unique_workflow_defaults' : _defaults_to( False ),
'nginx_upload_path' : self._defaults_to( self.url_for( controller='api', action='tools' ) ),
'ftp_upload_dir' : self._defaults_to( None ),
'ftp_upload_site' : self._defaults_to( None ),
'nginx_upload_path' : _defaults_to( self.url_for( controller='api', action='tools' ) ),
'ftp_upload_dir' : _defaults_to( None ),
'ftp_upload_site' : _defaults_to( None ),
}
@@ -98,14 +105,16 @@ class AdminConfigSerializer( ConfigSerializer ):
def add_serializers( self ):
super( AdminConfigSerializer, self ).add_serializers()
def _defaults_to( default ):
return lambda t, i, k: i.get( k, default )
self.serializers.update({
#TODO: this is available from user data, remove
'is_admin_user' : lambda *a: True,
'library_import_dir' : self._defaults_to( None ),
'user_library_import_dir' : self._defaults_to( None ),
'allow_library_path_paste' : self._defaults_to( None ),
'allow_user_creation' : self._defaults_to( False ),
'allow_user_deletion' : self._defaults_to( False ),
'library_import_dir' : _defaults_to( None ),
'user_library_import_dir' : _defaults_to( None ),
'allow_library_path_paste' : _defaults_to( False ),
'allow_user_creation' : _defaults_to( False ),
'allow_user_deletion' : _defaults_to( False ),
})