Merge branch 'release_15.10' into dev

This commit is contained in:
Nate Coraor
2015-11-17 11:37:05 -05:00
12 changed files with 45 additions and 40 deletions
+2
View File
@@ -60,6 +60,8 @@ GalaxyApp.prototype._init = function init( options ){
self._initUser( options.user || bootstrapped.user || {} );
self.debug( 'GalaxyApp.user: ', self.user );
self.root = options.root;
self.debug( 'GalaxyApp.root: ', self.root );
//TODO: temp
self.trigger( 'ready', self );
//if( typeof options.onload === 'function' ){
@@ -17,7 +17,7 @@
#command = docker {docker_args}
# The docker image name that should be started.
image = bgruening/docker-ipython-notebook:15.10
image = bgruening/docker-ipython-notebook:15.10.1
# Additional arguments that are passed to the `docker run` command.
#command_inject = --sig-proxy=true -e DEBUG=false
@@ -8,8 +8,7 @@ import hashlib
# Sets ID and sets up a lot of other variables
ie_request.load_deploy_config()
ie_request.attr.docker_port = 6789
# Create tempdir in galaxy
temp_dir = ie_request.temp_dir
ie_request.attr.import_volume = False
if ie_request.attr.PASSWORD_AUTH:
m = hashlib.sha1()
@@ -19,23 +18,15 @@ else:
PASSWORD = "none"
## IPython Specific
# Prepare an empty notebook
notebook_id = ie_request.generate_hex(64)
with open( os.path.join( ie_request.attr.our_template_dir, 'notebook.ipynb' ), 'r') as nb_handle:
empty_nb = nb_handle.read()
empty_nb = empty_nb % notebook_id
# Copy over default notebook, unless the dataset this viz is running on is a notebook
empty_nb_path = os.path.join(temp_dir, 'ipython_galaxy_notebook.ipynb')
if hda.datatype.__class__.__name__ != "Ipynb":
with open( empty_nb_path, 'w+' ) as handle:
handle.write( empty_nb )
if hda.datatype.__class__.__name__ == "Ipynb":
DATASET_HID = hda.hid
else:
shutil.copy( hda.file_name, empty_nb_path )
DATASET_HID = None
# Add all environment variables collected from Galaxy's IE infrastructure
ie_request.launch(env_override={
'notebook_password': PASSWORD,
'dataset_hid': DATASET_HID,
})
## General IE specific
+5 -1
View File
@@ -63,7 +63,11 @@ class ConfigSerializer( base.ModelSerializer ):
'ftp_upload_dir' : _defaults_to( None ),
'ftp_upload_site' : _defaults_to( None ),
'version_major' : _defaults_to( None ),
'require_login' : _defaults_to( None )
'require_login' : _defaults_to( None ),
'inactivity_box_content' : _defaults_to( None ),
'message_box_content' : _defaults_to( None ),
'message_box_visible' : _defaults_to( False ),
'message_box_class' : _defaults_to( 'info' ),
}
@@ -582,8 +582,8 @@ class DynamicOptions( object ):
def get_fields( self, trans, other_values ):
if self.dataset_ref_name:
dataset = other_values.get( self.dataset_ref_name, None )
assert dataset is not None, "Required dataset '%s' missing from input" % self.dataset_ref_name
if not dataset:
log.warn( "Required dataset '%s' missing from input" % self.dataset_ref_name )
return [] # no valid dataset in history
# Ensure parsing dynamic options does not consume more than a megabyte worth memory.
path = dataset.file_name
@@ -31,6 +31,7 @@ class InteractiveEnviornmentRequest(object):
self.attr.galaxy_root_dir = os.path.abspath(self.attr.galaxy_config.root)
self.attr.root = web.url_for("/")
self.attr.app_root = self.attr.root + "plugins/interactive_environments/" + self.attr.viz_id + "/static/"
self.attr.import_volume = True
plugin_path = os.path.abspath( plugin.path )
@@ -60,8 +61,12 @@ class InteractiveEnviornmentRequest(object):
# This duplicates the logic in the proxy manager
if self.attr.galaxy_config.dynamic_proxy_external_proxy:
self.attr.proxy_prefix = '%s/%s' % (
slash = '/'
if self.attr.galaxy_config.cookie_path.endswith('/'):
slash = ''
self.attr.proxy_prefix = '%s%s%s' % (
self.attr.galaxy_config.cookie_path,
slash,
self.attr.galaxy_config.dynamic_proxy_prefix)
else:
self.attr.proxy_prefix = ''
@@ -184,18 +189,19 @@ class InteractiveEnviornmentRequest(object):
conf.update(env_override)
env_str = ' '.join(['-e "%s=%s"' % (key.upper(), item) for key, item in conf.items()])
volume_str = ' '.join(['-v "%s"' % volume for volume in volumes])
import_volume_str = '-v "{temp_dir}:/import/"'.format(temp_dir=temp_dir) if self.attr.import_volume else ''
# This is the basic docker command such as "sudo -u docker docker {docker_args}"
# or just "docker {docker_args}"
command = self.attr.viz_config.get("docker", "command")
# Then we format in the entire docker command in place of
# {docker_args}, so as to let the admin not worry about which args are
# getting passed
command = command.format(docker_args='run {command_inject} {environment} -d -P -v "{temp_dir}:/import/" {volume_str} {image}')
command = command.format(docker_args='run {command_inject} {environment} -d -P {import_volume_str} {volume_str} {image}')
# Once that's available, we format again with all of our arguments
command = command.format(
command_inject=self.attr.viz_config.get("docker", "command_inject"),
environment=env_str,
temp_dir=temp_dir,
import_volume_str=import_volume_str,
volume_str=volume_str,
image=self.attr.viz_config.get("docker", "image")
)
+8 -11
View File
@@ -27,6 +27,7 @@ class JobController( BaseAPIController, UsesLibraryMixinItems ):
def __init__( self, app ):
super( JobController, self ).__init__( app )
self.hda_manager = managers.hdas.HDAManager( app )
self.dataset_manager = managers.datasets.DatasetManager( app )
@expose_api
def index( self, trans, **kwd ):
@@ -228,19 +229,15 @@ class JobController( BaseAPIController, UsesLibraryMixinItems ):
decoded_job_id = self.decode_id( id )
except Exception:
raise exceptions.MalformedId()
query = trans.sa_session.query( trans.app.model.Job )
if trans.user_is_admin():
query = query.filter(
trans.app.model.Job.id == decoded_job_id
)
else:
query = query.filter(
trans.app.model.Job.user == trans.user,
trans.app.model.Job.id == decoded_job_id
)
job = query.first()
job = trans.sa_session.query( trans.app.model.Job ).filter( trans.app.model.Job.id == decoded_job_id ).first()
if job is None:
raise exceptions.ObjectNotFound()
if not trans.user_is_admin() and job.user != trans.user:
if not job.output_datasets:
raise exceptions.ItemAccessibilityException( "Job has no output datasets." )
for data_assoc in job.output_datasets:
if not self.dataset_manager.is_accessible( data_assoc.dataset.dataset, trans.user ):
raise exceptions.ItemAccessibilityException( "You are not allowed to rerun this job." )
return job
@expose_api
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"galaxy-app-base.js","sources":["../src/galaxy-app-base.js"],"names":["define","userModel","metricsLogger","addLogging","localize","BASE_MVC","bootstrapped","GalaxyApp","options","self","this","_init","DEBUGGING_KEY","NAMESPACE_KEY","localDebugging","localStorage","getItem","storageErr","console","log","prototype","_","extend","Backbone","Events","logger","_processOptions","debug","_initConfig","config","_patchGalaxy","window","Galaxy","_initLogger","loggerOptions","_initLocale","_initUser","user","trigger","_setUpListeners","defaultOptions","patchExisting","root","defaults","k","hasOwnProperty","patchWith","consoleLogger","consoleLevel","MetricsLogger","ALL","consoleNamespaceWhitelist","split","emit","map","i","arguments","Array","slice","call","LoggableMixin","_l","userJSON","User","currUser","lastAjax","$","document","bind","ev","xhr","data","JSON","parse","err","url","location","href","debugging","setting","undefined","setItem","removeItem","debuggingNamespaces","namespaces","csv","newSettings","toString","userEmail","get"],"mappings":"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"}
{"version":3,"file":"galaxy-app-base.js","sources":["../src/galaxy-app-base.js"],"names":["define","userModel","metricsLogger","addLogging","localize","BASE_MVC","bootstrapped","GalaxyApp","options","self","this","_init","DEBUGGING_KEY","NAMESPACE_KEY","localDebugging","localStorage","getItem","storageErr","console","log","prototype","_","extend","Backbone","Events","logger","_processOptions","debug","_initConfig","config","_patchGalaxy","window","Galaxy","_initLogger","loggerOptions","_initLocale","_initUser","user","root","trigger","_setUpListeners","defaultOptions","patchExisting","defaults","k","hasOwnProperty","patchWith","consoleLogger","consoleLevel","MetricsLogger","ALL","consoleNamespaceWhitelist","split","emit","map","i","arguments","Array","slice","call","LoggableMixin","_l","userJSON","User","currUser","lastAjax","$","document","bind","ev","xhr","data","JSON","parse","err","url","location","href","debugging","setting","undefined","setItem","removeItem","debuggingNamespaces","namespaces","csv","newSettings","toString","userEmail","get"],"mappings":"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"}
+1 -1
View File
@@ -1,2 +1,2 @@
define(["mvc/user/user-model","utils/metrics-logger","utils/add-logging","utils/localization","mvc/base-mvc","bootstrapped-data"],function(a,b,c,d,e,f){function g(a){var b=this;return b._init(a||{})}c(g,"GalaxyApp");var h="galaxy:debug",i=h+":namespaces",j=!1;try{j="true"==localStorage.getItem(h)}catch(k){console.log(d("localStorage not available for debug flag retrieval"))}return g.prototype._init=function(a){var b=this;return _.extend(b,Backbone.Events),j&&(b.logger=console),b._processOptions(a),b.debug("GalaxyApp.options: ",b.options),b._initConfig(a.config||f.config||{}),b.debug("GalaxyApp.config: ",b.config),b._patchGalaxy(window.Galaxy),b._initLogger(b.options.loggerOptions||{}),b.debug("GalaxyApp.logger: ",b.logger),b._initLocale(),b.debug("GalaxyApp.localize: ",b.localize),b._initUser(a.user||f.user||{}),b.debug("GalaxyApp.user: ",b.user),b.trigger("ready",b),b._setUpListeners(),b},g.prototype.defaultOptions={patchExisting:!0,root:"/",loggerOptions:{}},g.prototype._processOptions=function(a){var b=this,c=b.defaultOptions;b.debug("_processOptions: ",a),b.options={};for(var d in c)c.hasOwnProperty(d)&&(b.options[d]=a.hasOwnProperty(d)?a[d]:c[d]);return b},g.prototype._initConfig=function(a){var b=this;return b.debug("_initConfig: ",a),b.config=a,b.config.debug=j||b.config.debug,b},g.prototype._patchGalaxy=function(a){var b=this;if(b.options.patchExisting&&a){b.debug("found existing Galaxy object:",a);for(var c in a)a.hasOwnProperty(c)&&(b.debug(" patching in "+c+" to Galaxy"),b[c]=a[c])}},g.prototype._initLogger=function(a){var c=this;if(c.config.debug){a.consoleLogger=a.consoleLogger||console,a.consoleLevel=a.consoleLevel||b.MetricsLogger.ALL;try{a.consoleNamespaceWhitelist=localStorage.getItem(i).split(",")}catch(d){}}return c.debug("_initLogger:",a),c.logger=new b.MetricsLogger(a),c.emit={},["log","debug","info","warn","error","metric"].map(function(a){c.emit[a]=function(){c.logger.emit(a,arguments[0],Array.prototype.slice.call(arguments,1))}}),c.config.debug&&(e.LoggableMixin.logger=c.logger),c},g.prototype._initLocale=function(a){var b=this;return b.debug("_initLocale:",a),b.localize=d,window._l=b.localize,b},g.prototype._initUser=function(b){var c=this;return c.debug("_initUser:",b),c.user=new a.User(b),c.user.logger=c.logger,c.currUser=c.user,c},g.prototype._setUpListeners=function(){var a=this;return a.lastAjax={},$(document).bind("ajaxSend",function(b,c,d){var e=d.data;try{e=JSON.parse(e)}catch(f){}a.lastAjax={url:location.href.slice(0,-1)+d.url,data:e}}),a},g.prototype.debugging=function(a){var b=this;try{if(void 0===a)return"true"===localStorage.getItem(h);if(a)return localStorage.setItem(h,!0),!0;localStorage.removeItem(h),b.debuggingNamespaces(null)}catch(c){console.log(d("localStorage not available for debug flag retrieval"))}return!1},g.prototype.debuggingNamespaces=function(a){var b=this;try{if(void 0===a){var c=localStorage.getItem(i);return"string"==typeof c?c.split(","):[]}null===a?localStorage.removeItem(i):localStorage.setItem(i,a);var e=b.debuggingNamespaces();return b.logger&&(b.logger.options.consoleNamespaceWhitelist=e),e}catch(f){console.log(d("localStorage not available for debug namespace retrieval"))}},g.prototype.toString=function(){var a=this.user?this.user.get("email")||"(anonymous)":"uninitialized";return"GalaxyApp("+a+")"},{GalaxyApp:g}});
define(["mvc/user/user-model","utils/metrics-logger","utils/add-logging","utils/localization","mvc/base-mvc","bootstrapped-data"],function(a,b,c,d,e,f){function g(a){var b=this;return b._init(a||{})}c(g,"GalaxyApp");var h="galaxy:debug",i=h+":namespaces",j=!1;try{j="true"==localStorage.getItem(h)}catch(k){console.log(d("localStorage not available for debug flag retrieval"))}return g.prototype._init=function(a){var b=this;return _.extend(b,Backbone.Events),j&&(b.logger=console),b._processOptions(a),b.debug("GalaxyApp.options: ",b.options),b._initConfig(a.config||f.config||{}),b.debug("GalaxyApp.config: ",b.config),b._patchGalaxy(window.Galaxy),b._initLogger(b.options.loggerOptions||{}),b.debug("GalaxyApp.logger: ",b.logger),b._initLocale(),b.debug("GalaxyApp.localize: ",b.localize),b._initUser(a.user||f.user||{}),b.debug("GalaxyApp.user: ",b.user),b.root=a.root,b.debug("GalaxyApp.root: ",b.root),b.trigger("ready",b),b._setUpListeners(),b},g.prototype.defaultOptions={patchExisting:!0,root:"/",loggerOptions:{}},g.prototype._processOptions=function(a){var b=this,c=b.defaultOptions;b.debug("_processOptions: ",a),b.options={};for(var d in c)c.hasOwnProperty(d)&&(b.options[d]=a.hasOwnProperty(d)?a[d]:c[d]);return b},g.prototype._initConfig=function(a){var b=this;return b.debug("_initConfig: ",a),b.config=a,b.config.debug=j||b.config.debug,b},g.prototype._patchGalaxy=function(a){var b=this;if(b.options.patchExisting&&a){b.debug("found existing Galaxy object:",a);for(var c in a)a.hasOwnProperty(c)&&(b.debug(" patching in "+c+" to Galaxy"),b[c]=a[c])}},g.prototype._initLogger=function(a){var c=this;if(c.config.debug){a.consoleLogger=a.consoleLogger||console,a.consoleLevel=a.consoleLevel||b.MetricsLogger.ALL;try{a.consoleNamespaceWhitelist=localStorage.getItem(i).split(",")}catch(d){}}return c.debug("_initLogger:",a),c.logger=new b.MetricsLogger(a),c.emit={},["log","debug","info","warn","error","metric"].map(function(a){c.emit[a]=function(){c.logger.emit(a,arguments[0],Array.prototype.slice.call(arguments,1))}}),c.config.debug&&(e.LoggableMixin.logger=c.logger),c},g.prototype._initLocale=function(a){var b=this;return b.debug("_initLocale:",a),b.localize=d,window._l=b.localize,b},g.prototype._initUser=function(b){var c=this;return c.debug("_initUser:",b),c.user=new a.User(b),c.user.logger=c.logger,c.currUser=c.user,c},g.prototype._setUpListeners=function(){var a=this;return a.lastAjax={},$(document).bind("ajaxSend",function(b,c,d){var e=d.data;try{e=JSON.parse(e)}catch(f){}a.lastAjax={url:location.href.slice(0,-1)+d.url,data:e}}),a},g.prototype.debugging=function(a){var b=this;try{if(void 0===a)return"true"===localStorage.getItem(h);if(a)return localStorage.setItem(h,!0),!0;localStorage.removeItem(h),b.debuggingNamespaces(null)}catch(c){console.log(d("localStorage not available for debug flag retrieval"))}return!1},g.prototype.debuggingNamespaces=function(a){var b=this;try{if(void 0===a){var c=localStorage.getItem(i);return"string"==typeof c?c.split(","):[]}null===a?localStorage.removeItem(i):localStorage.setItem(i,a);var e=b.debuggingNamespaces();return b.logger&&(b.logger.options.consoleNamespaceWhitelist=e),e}catch(f){console.log(d("localStorage not available for debug namespace retrieval"))}},g.prototype.toString=function(){var a=this.user?this.user.get("email")||"(anonymous)":"uninitialized";return"GalaxyApp("+a+")"},{GalaxyApp:g}});
//# sourceMappingURL=../maps/galaxy-app-base.js.map
+7 -3
View File
@@ -457,12 +457,16 @@ def wait_on_state( state_func, assert_ok=False, timeout=DEFAULT_TIMEOUT ):
return wait_on( get_state, desc="state", timeout=timeout)
def wait_on( function, desc, timeout=5 ):
def wait_on( function, desc, timeout=DEFAULT_TIMEOUT ):
delta = .25
iteration = 0
while True:
if (delta * iteration) > timeout:
assert False, "Timed out waiting on %s." % desc
total_wait = delta * iteration
if total_wait > timeout:
timeout_message = "Timed out after %s seconds waiting on %s." % (
total_wait, desc
)
assert False, timeout_message
iteration += 1
value = function()
if value is not None:
+4 -3
View File
@@ -110,9 +110,10 @@ class JobsApiTestCase( api.ApiTestCase, TestsDatasets ):
show_jobs_response = self._get( "jobs/%s" % job_id, admin=False )
self._assert_not_has_keys( show_jobs_response.json(), "command_line", "external_id" )
with self._different_user():
show_jobs_response = self._get( "jobs/%s" % job_id, admin=False )
self._assert_status_code_is( show_jobs_response, 404 )
# TODO: Re-activate test case when API accepts privacy settings
# with self._different_user():
# show_jobs_response = self._get( "jobs/%s" % job_id, admin=False )
# self._assert_status_code_is( show_jobs_response, 200 )
show_jobs_response = self._get( "jobs/%s" % job_id, admin=True )
self._assert_has_keys( show_jobs_response.json(), "command_line", "external_id" )
+1 -1
View File
@@ -357,7 +357,7 @@ test_data:
run_workflow_response = self._post( "workflows", data=workflow_request )
self._assert_status_code_is( run_workflow_response, 200 )
self.dataset_populator.wait_for_history( history_id, assert_ok=True, timeout=10 )
self.dataset_populator.wait_for_history( history_id, assert_ok=True )
return self.__cat_job_id( history_id )
def _assert_first_step_is_paired_input( self, downloaded_workflow ):