Fix 500 error when attempting to update installed repository.

This commit is contained in:
Dave B
2015-11-13 11:50:22 -05:00
parent daccea42bd
commit 7c45bf13fa
2 changed files with 14 additions and 2 deletions
+11
View File
@@ -335,6 +335,17 @@ def shrink_string_by_size( value, size, join_by="..", left_larger=True, beginnin
return value
def parse_query_string( query_string ):
if '=' not in query_string:
return {}
retval = {}
arguments = query_string.split( '&' )
for argument in arguments:
key, value = argument.split( '=' )
retval[ key ] = value
return retval
def pretty_print_time_interval( time=False, precise=False ):
"""
Get a datetime object or a int() Epoch timestamp and return a
@@ -10,6 +10,7 @@ from paste.httpheaders import AUTH_TYPE
from paste.httpheaders import REMOTE_USER
from galaxy.util import asbool
from galaxy.util import parse_query_string
from galaxy.util.hash_util import new_secure_hash
from tool_shed.util import hg_util
from tool_shed.util import commit_util
@@ -49,11 +50,11 @@ class Hg( object ):
# a clone or a pull. However, we do not want to increment the times_downloaded count if we're only setting repository
# metadata.
if cmd == 'getbundle' and not self.setting_repository_metadata:
common, _ = environ[ 'HTTP_X_HGARG_1' ].split( '&' )
hg_args = parse_query_string( environ[ 'HTTP_X_HGARG_1' ] )
# The 'common' parameter indicates the full sha-1 hash of the changeset the client currently has checked out. If
# this is 0000000000000000000000000000000000000000, then the client is performing a fresh checkout. If it has any
# other value, the client is getting updates to an existing checkout.
if common == 'common=0000000000000000000000000000000000000000':
if 'common' in hg_args and hg_args[ 'common' ] == '0000000000000000000000000000000000000000':
# Increment the value of the times_downloaded column in the repository table for the cloned repository.
if 'PATH_INFO' in environ:
# Instantiate a database connection