1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/3bbb2f8e43b1/
Changeset: 3bbb2f8e43b1
User: martenson
Date: 2013-12-19 21:47:36
Summary: removed unnecessary class from toolshed top menu items as it started to ‘work’ with the last bootstrap dropdown plugin inclusion (didn’t do anything until now)
Affected #: 1 file
diff -r cf07500dd390b0daed5a266d69f3ca20e92e06e0 -r 3bbb2f8e43b109b5adc8925a52ed23d9f31cd236 templates/webapps/tool_shed/base_panels.mako
--- a/templates/webapps/tool_shed/base_panels.mako
+++ b/templates/webapps/tool_shed/base_panels.mako
@@ -38,9 +38,9 @@
%><li class="${cls}" style="${style}">
%if href:
- <a class="${a_cls}" data-toggle="dropdown" target="${target}" href="${href}">${display}${extra}</a>
+ <a class="${a_cls}" target="${target}" href="${href}">${display}${extra}</a>
%else:
- <a class="${a_cls}" data-toggle="dropdown">${display}${extra}</a>
+ <a class="${a_cls}" >${display}${extra}</a>
%endif
%if menu_options:
<ul class="dropdown-menu">
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/8411a9f30feb/
Changeset: 8411a9f30feb
Branch: stable
User: dannon
Date: 2013-12-19 20:38:03
Summary: Fix workflow import url XSS.
Affected #: 1 file
diff -r a9a0ac9c1afae8dd0d662c9c800d0228c883c107 -r 8411a9f30feb3a6fd15cecc09809afe2e24b5e79 templates/webapps/galaxy/workflow/import.mako
--- a/templates/webapps/galaxy/workflow/import.mako
+++ b/templates/webapps/galaxy/workflow/import.mako
@@ -31,7 +31,7 @@
<form name="import_workflow" id="import_workflow" action="${h.url_for( controller='workflow', action='import_workflow' )}" enctype="multipart/form-data" method="POST"><div class="form-row"><label>Galaxy workflow URL:</label>
- <input type="text" name="url" value="${url}" size="40">
+ <input type="text" name="url" value="${url | h}" size="40"><div class="toolParamHelp" style="clear: both;">
If the workflow is accessible via a URL, enter the URL above and click <b>Import</b>.
</div>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/cf07500dd390/
Changeset: cf07500dd390
User: dannon
Date: 2013-12-19 20:38:03
Summary: Fix workflow import url XSS.
Affected #: 1 file
diff -r 235cd1515a88fc394328a636ca4f08eb5608f3bd -r cf07500dd390b0daed5a266d69f3ca20e92e06e0 templates/webapps/galaxy/workflow/import.mako
--- a/templates/webapps/galaxy/workflow/import.mako
+++ b/templates/webapps/galaxy/workflow/import.mako
@@ -31,7 +31,7 @@
<form name="import_workflow" id="import_workflow" action="${h.url_for( controller='workflow', action='import_workflow' )}" enctype="multipart/form-data" method="POST"><div class="form-row"><label>Galaxy workflow URL:</label>
- <input type="text" name="url" value="${url}" size="40">
+ <input type="text" name="url" value="${url | h}" size="40"><div class="toolParamHelp" style="clear: both;">
If the workflow is accessible via a URL, enter the URL above and click <b>Import</b>.
</div>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/235cd1515a88/
Changeset: 235cd1515a88
User: greg
Date: 2013-12-19 20:36:23
Summary: Exclude repositories that require excluded repositories from the tool shed's install and test runs.
Affected #: 3 files
diff -r 4b62b64265487834429b5337b6d3c3c9c38b072a -r 235cd1515a88fc394328a636ca4f08eb5608f3bd lib/galaxy/webapps/tool_shed/api/repository_revisions.py
--- a/lib/galaxy/webapps/tool_shed/api/repository_revisions.py
+++ b/lib/galaxy/webapps/tool_shed/api/repository_revisions.py
@@ -87,10 +87,10 @@
rd_tups = metadata[ 'repository_dependencies' ][ 'repository_dependencies' ]
for rd_tup in rd_tups:
tool_shed, name, owner, changeset_revision = rd_tup[ 0:4 ]
- repository_dependencies_dict = dict( tool_shed=tool_shed,
- name=name,
- owner=owner,
- changeset_revision=changeset_revision )
+ repository_dependencies_dict = dict( tool_shed=str( tool_shed ),
+ name=str( name ),
+ owner=str( owner ),
+ changeset_revision=str( changeset_revision ) )
rd = suc.get_repository_by_name_and_owner( trans.app, name, owner )
encoded_rd_id = trans.security.encode_id( rd.id )
rd_repository_metadata = suc.get_repository_metadata_by_changeset_revision( trans,
diff -r 4b62b64265487834429b5337b6d3c3c9c38b072a -r 235cd1515a88fc394328a636ca4f08eb5608f3bd test/install_and_test_tool_shed_repositories/base/util.py
--- a/test/install_and_test_tool_shed_repositories/base/util.py
+++ b/test/install_and_test_tool_shed_repositories/base/util.py
@@ -375,6 +375,19 @@
hg_id = '%d:%s' % ( ctx_rev, str( changectx ) )
return hg_id
+def get_repository_dependencies_for_changeset_revision( tool_shed_url, encoded_repository_metadata_id ):
+ """
+ Return the list of dictionaries that define all repository dependencies of the repository_metadata
+ record associated with the received encoded_repository_metadata_id via the Tool Shed API.
+ """
+ error_message = ''
+ parts = [ 'api', 'repository_revisions', encoded_repository_metadata_id, 'repository_dependencies' ]
+ api_url = get_api_url( base=tool_shed_url, parts=parts )
+ repository_dependency_dicts, error_message = json_from_url( api_url )
+ if error_message:
+ return None, error_message
+ return repository_dependency_dicts, error_message
+
def get_repository_dict( url, repository_dict ):
error_message = ''
parts = [ 'api', 'repositories', repository_dict[ 'repository_id' ] ]
@@ -613,8 +626,8 @@
# </blacklist>
# A list is returned with the following structure:
# [{ 'reason': The default reason or the reason specified in this section,
- # 'repositories': [( name, owner, changeset revision if changeset revision else None ),
- # ( name, owner, changeset revision if changeset revision else None )]}]
+ # 'repositories': [( name, owner, changeset_revision if changeset_revision else None ),
+ # ( name, owner, changeset_revision if changeset_revision else None )]}]
exclude_list = []
exclude_verbose = []
xml_tree, error_message = parse_xml( xml_filename )
diff -r 4b62b64265487834429b5337b6d3c3c9c38b072a -r 235cd1515a88fc394328a636ca4f08eb5608f3bd test/install_and_test_tool_shed_repositories/tool_dependency_definitions/functional_tests.py
--- a/test/install_and_test_tool_shed_repositories/tool_dependency_definitions/functional_tests.py
+++ b/test/install_and_test_tool_shed_repositories/tool_dependency_definitions/functional_tests.py
@@ -100,9 +100,13 @@
# here because our call to the Tool Shed API filters by downloadable='true', in which case deleted will always be False.
log.debug( 'Loading the list of repositories excluded from testing from the file %s...' % \
str( exclude_list_file ) )
- exclude_list = install_and_test_base_util.parse_exclude_list( exclude_list_file )
+ # The following exclude_list will look something like this:
+ # [{ 'reason': The default reason or the reason specified in this section,
+ # 'repositories': [( name, owner, changeset_revision if changeset_revision else None ),
+ # ( name, owner, changeset_revision if changeset_revision else None )]}]
+ exclude_list_dicts = install_and_test_base_util.parse_exclude_list( exclude_list_file )
else:
- exclude_list = []
+ exclude_list_dicts = []
# Generate a test method that will use Twill to install each repository into the embedded Galaxy application that was
# started up, installing repository and tool dependencies. Upon successful installation, generate a test case for each
# functional test defined for each tool in the repository and execute the test cases. Record the result of the tests.
@@ -146,15 +150,40 @@
tool_test_results_dict = install_and_test_base_util.get_tool_test_results_dict( tool_test_results_dicts )
# See if this repository should be skipped for any reason.
this_repository_is_in_the_exclude_list = False
+ requires_excluded = False
skip_reason = None
- for exclude_dict in exclude_list:
+ for exclude_dict in exclude_list_dicts:
reason = exclude_dict[ 'reason' ]
exclude_repositories = exclude_dict[ 'repositories' ]
+ # 'repositories':
+ # [( name, owner, changeset_revision if changeset_revision else None ),
+ # ( name, owner, changeset_revision if changeset_revision else None )]
if ( name, owner, changeset_revision ) in exclude_repositories or ( name, owner, None ) in exclude_repositories:
this_repository_is_in_the_exclude_list = True
skip_reason = reason
break
- if this_repository_is_in_the_exclude_list:
+ if not this_repository_is_in_the_exclude_list:
+ # Skip this repository if it has a repository dependency that is in the exclude list.
+ repository_dependency_dicts, error_message = \
+ install_and_test_base_util.get_repository_dependencies_for_changeset_revision( install_and_test_base_util.galaxy_tool_shed_url,
+ encoded_repository_metadata_id )
+ if error_message:
+ log.debug( 'Error getting repository dependencies for revision %s of repository %s owned by %s:' % \
+ ( changeset_revision, name, owner ) )
+ log.debug( error_message )
+ else:
+ for repository_dependency_dict in repository_dependency_dicts:
+ rd_name = repository_dependency_dict[ 'name' ]
+ rd_owner = repository_dependency_dict[ 'owner' ]
+ rd_changeset_revision = repository_dependency_dict[ 'changeset_revision' ]
+ if ( rd_name, rd_owner, rd_changeset_revision ) in exclude_repositories or \
+ ( rd_name, rd_owner, None ) in exclude_repositories:
+ skip_reason = 'This repository requires revision %s of repository %s owned by %s which is excluded from testing.' % \
+ ( rd_changeset_revision, rd_name, rd_owner )
+ requires_excluded = True
+ break
+ # Register the reason this repository is being skipped if, in fact, it is.
+ if this_repository_is_in_the_exclude_list or requires_excluded:
tool_test_results_dict[ 'not_tested' ] = dict( reason=skip_reason )
params = dict( do_not_test=False )
# TODO: do something useful with response_dict
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/4b62b6426548/
Changeset: 4b62b6426548
User: jgoecks
Date: 2013-12-19 20:30:09
Summary: Workflows API, running workflows: add support for using workflow replacement parameters in postjob actions. This enables use of rename action.
Affected #: 1 file
diff -r 706a30b2c1a08279a1ddf3f5149f2ade03eb5f5c -r 4b62b64265487834429b5337b6d3c3c9c38b072a lib/galaxy/webapps/galaxy/api/workflows.py
--- a/lib/galaxy/webapps/galaxy/api/workflows.py
+++ b/lib/galaxy/webapps/galaxy/api/workflows.py
@@ -112,8 +112,6 @@
# ------------------------------------------------------------------------------- #
-
-
if 'workflow_id' not in payload:
# create new
if 'installed_repository_file' in payload:
@@ -241,11 +239,15 @@
visit_input_values( tool.inputs, step.state.inputs, callback )
job, out_data = tool.execute( trans, step.state.inputs, history=history)
outputs[ step.id ] = out_data
+
+ # Do post-job actions.
+ replacement_params = payload.get('replacement_params', {})
for pja in step.post_job_actions:
if pja.action_type in ActionBox.immediate_actions:
- ActionBox.execute(self.app, trans.sa_session, pja, job, replacement_dict=None)
+ ActionBox.execute(trans.app, trans.sa_session, pja, job, replacement_dict=replacement_params)
else:
job.add_post_job_action(pja)
+
for v in out_data.itervalues():
rval['outputs'].append(trans.security.encode_id(v.id))
else:
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.