Mercurial > hg
changeset 40659:8863f08c1630
lfs: provide more Batch API error info via a hint in the raised exception
A coworker had a typo in `lfs.url`, forgot it was even set because usually the
blob server is inferred, and then got a 404. It would have been easier to debug
with the failing URL printed.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Thu, 15 Nov 2018 17:55:01 -0500 |
parents | 4ec8bee15930 |
children | 9f78d10742af |
files | hgext/lfs/blobstore.py tests/test-lfs-serve-access.t |
diffstat | 2 files changed, 9 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/lfs/blobstore.py Thu Nov 15 17:50:14 2018 -0500 +++ b/hgext/lfs/blobstore.py Thu Nov 15 17:55:01 2018 -0500 @@ -263,16 +263,17 @@ 'objects': objects, 'operation': action, }) - batchreq = util.urlreq.request('%s/objects/batch' % self.baseurl, - data=requestdata) + url = '%s/objects/batch' % self.baseurl + batchreq = util.urlreq.request(url, data=requestdata) batchreq.add_header('Accept', 'application/vnd.git-lfs+json') batchreq.add_header('Content-Type', 'application/vnd.git-lfs+json') try: rsp = self.urlopener.open(batchreq) rawjson = rsp.read() except util.urlerr.httperror as ex: - raise LfsRemoteError(_('LFS HTTP error: %s (action=%s)') - % (ex, action)) + raise LfsRemoteError(_('LFS HTTP error: %s') % ex, + hint=_('api=%s, action=%s') + % (url, action)) try: response = json.loads(rawjson) except ValueError:
--- a/tests/test-lfs-serve-access.t Thu Nov 15 17:50:14 2018 -0500 +++ b/tests/test-lfs-serve-access.t Thu Nov 15 17:55:01 2018 -0500 @@ -29,7 +29,8 @@ $ hg -R client push http://localhost:$HGPORT pushing to http://localhost:$HGPORT/ searching for changes - abort: LFS HTTP error: HTTP Error 400: no such method: .git (action=upload)! + abort: LFS HTTP error: HTTP Error 400: no such method: .git! + (api=http://localhost:$HGPORT/.git/info/lfs/objects/batch, action=upload) [255] ... so do a local push to make the data available. Remove the blob from the @@ -50,7 +51,8 @@ added 1 changesets with 1 changes to 1 files new changesets 525251863cad updating to branch default - abort: LFS HTTP error: HTTP Error 400: no such method: .git (action=download)! + abort: LFS HTTP error: HTTP Error 400: no such method: .git! + (api=http://localhost:$HGPORT/.git/info/lfs/objects/batch, action=download) [255] $ "$PYTHON" $RUNTESTDIR/killdaemons.py $DAEMON_PIDS