improve mercurial hook error handling

This commit is contained in:
Sebastian Sdorra
2012-06-02 15:06:59 +02:00
parent 3ba0766281
commit a5fa1fc007

View File

@@ -42,21 +42,32 @@ baseUrl = os.environ['SCM_URL']
challenge = os.environ['SCM_CHALLENGE'] challenge = os.environ['SCM_CHALLENGE']
credentials = os.environ['SCM_CREDENTIALS'] credentials = os.environ['SCM_CREDENTIALS']
def callHookUrl(ui, repo, hooktype, node):
abort = True
try:
url = baseUrl + hooktype
ui.debug( "send scm-hook to " + url + " and " + node + "\n" )
data = urllib.urlencode({'node': node, 'challenge': challenge, 'credentials': credentials, 'repositoryPath': repo.root})
conn = urllib2.urlopen(url, data);
if conn.code >= 200 and conn.code < 300:
ui.debug( "scm-hook " + hooktype + " success with status code " + str(conn.code) + "\n" )
abort = False
else:
ui.warn( "ERROR: scm-hook failed with error code " + str(conn.code) + "\n" )
except ValueError:
ui.warn( "scm-hook failed with an exception\n" )
return abort
def callback(ui, repo, hooktype, node=None, source=None, pending=None, **kwargs): def callback(ui, repo, hooktype, node=None, source=None, pending=None, **kwargs):
if pending != None: if pending != None:
pending() pending()
failure = True abort = True
if node != None: if node != None:
try: if len(baseUrl) > 0:
url = baseUrl + hooktype abort = callHookUrl(ui, repo, hooktype, node)
ui.debug( "send scm-hook to " + url + " and " + node + "\n" ) else:
data = urllib.urlencode({'node': node, 'challenge': challenge, 'credentials': credentials, 'repositoryPath': repo.root}) ui.warn("ERROR: scm-manager hooks are disabled, please check your configuration and the scm-manager log for details\n")
conn = urllib2.urlopen(url, data); abort = False
if conn.code >= 200 and conn.code < 300: else:
ui.debug( "scm-hook " + hooktype + " success with status code " + str(conn.code) + "\n" ) ui.warn("changeset node is not available")
failure = False return abort
else:
ui.warn( "scm-hook failed with error code " + str(conn.code) + "\n" )
except ValueError:
ui.warn( "scm-hook failed with an exception\n" )
return failure