bug 1135700 - make uploadsymbols use Socorro symbol upload API. r=gps

--HG--
extra : rebase_source : 2f177f3e2dbae3e658da9c034dfd9e4b29c03015
This commit is contained in:
Ted Mielczarek 2015-02-23 13:48:54 -05:00
Родитель be5d687375
Коммит 1097d4012f
3 изменённых файлов: 82 добавлений и 0 удалений

Просмотреть файл

@ -249,6 +249,9 @@ endif # MOZ_CRASHREPORTER
uploadsymbols: uploadsymbols:
ifdef MOZ_CRASHREPORTER ifdef MOZ_CRASHREPORTER
ifdef SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE
$(PYTHON) $(topsrcdir)/toolkit/crashreporter/tools/upload_symbols.py '$(DIST)/$(PKG_PATH)$(SYMBOL_FULL_ARCHIVE_BASENAME).zip'
endif
$(SHELL) $(topsrcdir)/toolkit/crashreporter/tools/upload_symbols.sh $(SYMBOL_INDEX_NAME) '$(DIST)/$(PKG_PATH)$(SYMBOL_FULL_ARCHIVE_BASENAME).zip' $(SHELL) $(topsrcdir)/toolkit/crashreporter/tools/upload_symbols.sh $(SYMBOL_INDEX_NAME) '$(DIST)/$(PKG_PATH)$(SYMBOL_FULL_ARCHIVE_BASENAME).zip'
endif endif

Просмотреть файл

@ -8892,6 +8892,7 @@ AC_SUBST(LIBJPEG_TURBO_MIPS_ASM)
AC_SUBST(MOZ_PACKAGE_JSSHELL) AC_SUBST(MOZ_PACKAGE_JSSHELL)
AC_SUBST(MOZ_FOLD_LIBS) AC_SUBST(MOZ_FOLD_LIBS)
AC_SUBST(SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE)
AC_SUBST(MOZ_ENABLE_SZIP) AC_SUBST(MOZ_ENABLE_SZIP)
AC_SUBST(MOZ_SZIP_FLAGS) AC_SUBST(MOZ_SZIP_FLAGS)

Просмотреть файл

@ -0,0 +1,78 @@
#!/usr/bin/env python
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This script uploads a symbol zip file passed on the commandline
# to the Socorro symbol upload API hosted on crash-stats.mozilla.org.
#
# Using this script requires you to have generated an authentication
# token in the crash-stats web interface. You must put the token in a file
# and set SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE to the path to the file in
# the mozconfig you're using.
from __future__ import print_function
import os
import requests
import sys
from buildconfig import substs
# This is the staging server
url = 'https://crash-stats.allizom.org/symbols/upload'
# This is the production server, we'll switch this
# once we're comfortable this works.
#url = 'https://crash-stats.mozilla.com/symbols/upload'
def main():
if len(sys.argv) != 2:
print('Usage: uploadsymbols.py <zip file>', file=sys.stderr)
return 1
if not os.path.isfile(sys.argv[1]):
print('Error: zip file "{0}" does not exist!'.format(sys.argv[1]),
file=sys.stderr)
return 1
symbols_zip = sys.argv[1]
if 'SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE' not in substs:
print('Error: you must set SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE in your mozconfig!', file=sys.stderr)
return 1
token_file = substs['SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE']
if not os.path.isfile(token_file):
print('Error: SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE "{0}" does not exist!'.format(token_file), file=sys.stderr)
return 1
auth_token = open(token_file, 'r').read().strip()
print('Uploading symbol file "{0}" to "{1}"...'.format(sys.argv[1], url))
try:
r = requests.post(
url,
files={'symbols.zip': open(sys.argv[1], 'rb')},
headers={'Auth-Token': auth_token},
allow_redirects=False,
timeout=60,
)
except requests.exceptions.RequestException as e:
print('Error: {0}'.format(e))
return 1
if r.status_code >= 200 and r.status_code < 300:
print('Uploaded successfully!')
elif r.status_code < 400:
print('Error: bad auth token? ({0})'.format(r.status_code),
file=sys.stderr)
return 1
else:
print('Error: got HTTP response {0}'.format(r.status_code),
file=sys.stderr)
return 1
return 0
if __name__ == '__main__':
sys.exit(main())