tests/test-lfs-serve-access.t
author Matt Harbison <matt_harbison@yahoo.com>
Thu, 15 Nov 2018 18:08:29 -0500
changeset 40661 380f5131ee7b
parent 40660 9f78d10742af
child 40662 93e5d18251d6
permissions -rw-r--r--
lfs: handle URLErrors to add additional information Sometimes the blob server is hit first (e.g. on push), and sometimes it's hit last (e.g. pull). Throw in depth first subrepo operations, and things quickly get insane. It wasn't even mentioning LFS, so just saying "connection refused" can be confusing- especially if the blob server is a secondary server and connecting to the repo server works. The exception handler for the transfer handler will print the full path to the blob, but that seems fine given that it might be necessary to debug a second server. (We don't yet support a standalone blob server, so the handler for the Batch API will cover 99.9% of the current problems. But it might as well be handled now while I'm thinking about it.) The function for translating to a message was mostly borrowed from scmutil.catchall().
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
38021
538e850ae737 tests: mark tests that fail when using chg as #require no-chg
Kyle Lippincott <spectral@google.com>
parents: 37766
diff changeset
     1
#require serve no-reposimplestore no-chg
37248
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     2
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     3
  $ cat >> $HGRCPATH <<EOF
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     4
  > [extensions]
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     5
  > lfs=
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     6
  > [lfs]
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     7
  > track=all()
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     8
  > [web]
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
     9
  > push_ssl = False
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    10
  > allow-push = *
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    11
  > EOF
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    12
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    13
Serving LFS files can experimentally be turned off.  The long term solution is
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    14
to support the 'verify' action in both client and server, so that the server can
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    15
tell the client to store files elsewhere.
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    16
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    17
  $ hg init server
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    18
  $ hg --config "lfs.usercache=$TESTTMP/servercache" \
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    19
  >    --config experimental.lfs.serve=False -R server serve -d \
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    20
  >    -p $HGPORT --pid-file=hg.pid -A $TESTTMP/access.log -E $TESTTMP/errors.log
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    21
  $ cat hg.pid >> $DAEMON_PIDS
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    22
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    23
Uploads fail...
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    24
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    25
  $ hg init client
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    26
  $ echo 'this-is-an-lfs-file' > client/lfs.bin
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    27
  $ hg -R client ci -Am 'initial commit'
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    28
  adding lfs.bin
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    29
  $ hg -R client push http://localhost:$HGPORT
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    30
  pushing to http://localhost:$HGPORT/
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    31
  searching for changes
40659
8863f08c1630 lfs: provide more Batch API error info via a hint in the raised exception
Matt Harbison <matt_harbison@yahoo.com>
parents: 40324
diff changeset
    32
  abort: LFS HTTP error: HTTP Error 400: no such method: .git!
40660
9f78d10742af lfs: improve the hints for common errors in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 40659
diff changeset
    33
  (check that lfs serving is enabled on http://localhost:$HGPORT/.git/info/lfs and "upload" is supported)
37248
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    34
  [255]
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    35
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    36
... so do a local push to make the data available.  Remove the blob from the
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    37
default cache, so it attempts to download.
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    38
  $ hg --config "lfs.usercache=$TESTTMP/servercache" \
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    39
  >    --config "lfs.url=null://" \
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    40
  >    -R client push -q server
37617
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
    41
  $ mv `hg config lfs.usercache` $TESTTMP/servercache
37248
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    42
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    43
Downloads fail...
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    44
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    45
  $ hg clone http://localhost:$HGPORT httpclone
40324
6637b079ae45 lfs: autoload the extension when cloning from repo with lfs enabled
Matt Harbison <matt_harbison@yahoo.com>
parents: 40034
diff changeset
    46
  (remote is using large file support (lfs); lfs will be enabled for this repository)
37248
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    47
  requesting all changes
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    48
  adding changesets
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    49
  adding manifests
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    50
  adding file changes
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    51
  added 1 changesets with 1 changes to 1 files
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    52
  new changesets 525251863cad
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    53
  updating to branch default
40659
8863f08c1630 lfs: provide more Batch API error info via a hint in the raised exception
Matt Harbison <matt_harbison@yahoo.com>
parents: 40324
diff changeset
    54
  abort: LFS HTTP error: HTTP Error 400: no such method: .git!
40660
9f78d10742af lfs: improve the hints for common errors in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 40659
diff changeset
    55
  (check that lfs serving is enabled on http://localhost:$HGPORT/.git/info/lfs and "download" is supported)
37248
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    56
  [255]
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    57
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39457
diff changeset
    58
  $ "$PYTHON" $RUNTESTDIR/killdaemons.py $DAEMON_PIDS
37248
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    59
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    60
  $ cat $TESTTMP/access.log $TESTTMP/errors.log
37556
b77aa48ba690 httppeer: only advertise partial-pull if capabilities are known
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37498
diff changeset
    61
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
37498
aacfca6f9767 wireproto: support for pullbundles
Joerg Sonnenberger <joerg@bec.de>
parents: 37348
diff changeset
    62
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D525251863cad618e55d483555f3d00a2ca99597e x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
aacfca6f9767 wireproto: support for pullbundles
Joerg Sonnenberger <joerg@bec.de>
parents: 37348
diff changeset
    63
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=phases x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
aacfca6f9767 wireproto: support for pullbundles
Joerg Sonnenberger <joerg@bec.de>
parents: 37348
diff changeset
    64
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=bookmarks x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
37248
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    65
  $LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 400 - (glob)
37556
b77aa48ba690 httppeer: only advertise partial-pull if capabilities are known
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37498
diff changeset
    66
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
37498
aacfca6f9767 wireproto: support for pullbundles
Joerg Sonnenberger <joerg@bec.de>
parents: 37348
diff changeset
    67
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
aacfca6f9767 wireproto: support for pullbundles
Joerg Sonnenberger <joerg@bec.de>
parents: 37348
diff changeset
    68
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%252C03%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Aphases%253Dheads%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=525251863cad618e55d483555f3d00a2ca99597e&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
37248
dfb38c4850a9 lfs: add an experimental knob to disable blob serving
Matt Harbison <matt_harbison@yahoo.com>
parents:
diff changeset
    69
  $LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 400 - (glob)
37617
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
    70
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
    71
  $ rm -f $TESTTMP/access.log $TESTTMP/errors.log
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
    72
  $ hg --config "lfs.usercache=$TESTTMP/servercache" -R server serve -d \
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
    73
  >    -p $HGPORT --pid-file=hg.pid --prefix=subdir/mount/point \
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
    74
  >    -A $TESTTMP/access.log -E $TESTTMP/errors.log
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
    75
  $ cat hg.pid >> $DAEMON_PIDS
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
    76
40660
9f78d10742af lfs: improve the hints for common errors in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 40659
diff changeset
    77
Reasonable hint for a misconfigured blob server
9f78d10742af lfs: improve the hints for common errors in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 40659
diff changeset
    78
9f78d10742af lfs: improve the hints for common errors in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 40659
diff changeset
    79
  $ hg -R httpclone update default --config lfs.url=http://localhost:$HGPORT/missing
9f78d10742af lfs: improve the hints for common errors in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 40659
diff changeset
    80
  abort: LFS HTTP error: HTTP Error 404: Not Found!
9f78d10742af lfs: improve the hints for common errors in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 40659
diff changeset
    81
  (the "lfs.url" config may be used to override http://localhost:$HGPORT/missing)
9f78d10742af lfs: improve the hints for common errors in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 40659
diff changeset
    82
  [255]
9f78d10742af lfs: improve the hints for common errors in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 40659
diff changeset
    83
40661
380f5131ee7b lfs: handle URLErrors to add additional information
Matt Harbison <matt_harbison@yahoo.com>
parents: 40660
diff changeset
    84
  $ hg -R httpclone update default --config lfs.url=http://localhost:$HGPORT2/missing
380f5131ee7b lfs: handle URLErrors to add additional information
Matt Harbison <matt_harbison@yahoo.com>
parents: 40660
diff changeset
    85
  abort: LFS error: *onnection *refused*! (glob)
380f5131ee7b lfs: handle URLErrors to add additional information
Matt Harbison <matt_harbison@yahoo.com>
parents: 40660
diff changeset
    86
  (the "lfs.url" config may be used to override http://localhost:$HGPORT2/missing)
380f5131ee7b lfs: handle URLErrors to add additional information
Matt Harbison <matt_harbison@yahoo.com>
parents: 40660
diff changeset
    87
  [255]
380f5131ee7b lfs: handle URLErrors to add additional information
Matt Harbison <matt_harbison@yahoo.com>
parents: 40660
diff changeset
    88
40660
9f78d10742af lfs: improve the hints for common errors in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 40659
diff changeset
    89
Blob URIs are correct when --prefix is used
9f78d10742af lfs: improve the hints for common errors in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 40659
diff changeset
    90
37691
d241e6632669 lfs: fix the inferred remote store path when using a --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37690
diff changeset
    91
  $ hg clone --debug http://localhost:$HGPORT/subdir/mount/point cloned2
37617
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
    92
  using http://localhost:$HGPORT/subdir/mount/point
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
    93
  sending capabilities command
40324
6637b079ae45 lfs: autoload the extension when cloning from repo with lfs enabled
Matt Harbison <matt_harbison@yahoo.com>
parents: 40034
diff changeset
    94
  (remote is using large file support (lfs); lfs will be enabled for this repository)
37617
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
    95
  query 1; heads
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
    96
  sending batch command
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
    97
  requesting all changes
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
    98
  sending getbundle command
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
    99
  bundle2-input-bundle: with-transaction
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   100
  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   101
  adding changesets
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   102
  add changeset 525251863cad
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   103
  adding manifests
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   104
  adding file changes
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   105
  adding lfs.bin revisions
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   106
  added 1 changesets with 1 changes to 1 files
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   107
  bundle2-input-part: total payload size 648
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   108
  bundle2-input-part: "listkeys" (params: 1 mandatory) supported
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   109
  bundle2-input-part: "phase-heads" supported
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   110
  bundle2-input-part: total payload size 24
37842
326b174c6a47 bundle2: mark the bundle2 part as advisory (issue5872)
Boris Feld <boris.feld@octobus.net>
parents: 37766
diff changeset
   111
  bundle2-input-part: "cache:rev-branch-cache" (advisory) supported
37617
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   112
  bundle2-input-part: total payload size 39
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   113
  bundle2-input-bundle: 3 parts total
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   114
  checking for updated bookmarks
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   115
  updating the branch cache
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   116
  new changesets 525251863cad
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   117
  updating to branch default
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   118
  resolving manifests
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   119
   branchmerge: False, force: False, partial: False
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   120
   ancestor: 000000000000, local: 000000000000+, remote: 525251863cad
37691
d241e6632669 lfs: fix the inferred remote store path when using a --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37690
diff changeset
   121
  lfs: assuming remote store: http://localhost:$HGPORT/subdir/mount/point/.git/info/lfs
37617
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   122
  Status: 200
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   123
  Content-Length: 371
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   124
  Content-Type: application/vnd.git-lfs+json
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   125
  Date: $HTTP_DATE$
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   126
  Server: testing stub value
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   127
  {
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   128
    "objects": [
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   129
      {
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   130
        "actions": {
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   131
          "download": {
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   132
            "expires_at": "$ISO_8601_DATE_TIME$"
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   133
            "header": {
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   134
              "Accept": "application/vnd.git-lfs"
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   135
            }
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   136
            "href": "http://localhost:$HGPORT/subdir/mount/point/.hg/lfs/objects/f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e"
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   137
          }
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   138
        }
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   139
        "oid": "f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e"
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   140
        "size": 20
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   141
      }
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   142
    ]
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   143
    "transfer": "basic"
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   144
  }
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   145
  lfs: downloading f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e (20 bytes)
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   146
  Status: 200
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   147
  Content-Length: 20
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   148
  Content-Type: application/octet-stream
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   149
  Date: $HTTP_DATE$
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   150
  Server: testing stub value
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   151
  lfs: adding f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e to the usercache
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   152
  lfs: processed: f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e
37765
ab04972a33ef lfs: enable the final download count status message
Matt Harbison <matt_harbison@yahoo.com>
parents: 37692
diff changeset
   153
  lfs: downloaded 1 files (20 bytes)
37617
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   154
   lfs.bin: remote created -> g
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   155
  getting lfs.bin
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   156
  lfs: found f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e in the local lfs store
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   157
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
40034
393e44324037 httppeer: report http statistics
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39707
diff changeset
   158
  (sent 3 HTTP requests and * bytes; received * bytes in responses) (glob)
37617
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   159
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39457
diff changeset
   160
  $ "$PYTHON" $RUNTESTDIR/killdaemons.py $DAEMON_PIDS
37617
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   161
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   162
  $ cat $TESTTMP/access.log $TESTTMP/errors.log
40660
9f78d10742af lfs: improve the hints for common errors in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 40659
diff changeset
   163
  $LOCALIP - - [$LOGDATE$] "POST /missing/objects/batch HTTP/1.1" 404 - (glob)
37617
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   164
  $LOCALIP - - [$LOGDATE$] "GET /subdir/mount/point?cmd=capabilities HTTP/1.1" 200 - (glob)
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   165
  $LOCALIP - - [$LOGDATE$] "GET /subdir/mount/point?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   166
  $LOCALIP - - [$LOGDATE$] "GET /subdir/mount/point?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%252C03%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Aphases%253Dheads%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=525251863cad618e55d483555f3d00a2ca99597e&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   167
  $LOCALIP - - [$LOGDATE$] "POST /subdir/mount/point/.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob)
b03f2e0fdb88 lfs: teach the blob server to handle --prefix
Matt Harbison <matt_harbison@yahoo.com>
parents: 37556
diff changeset
   168
  $LOCALIP - - [$LOGDATE$] "GET /subdir/mount/point/.hg/lfs/objects/f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e HTTP/1.1" 200 - (glob)
37689
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   169
39457
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   170
Blobs that already exist in the usercache are linked into the repo store, even
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   171
though the client doesn't send the blob.
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   172
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   173
  $ hg init server2
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   174
  $ hg --config "lfs.usercache=$TESTTMP/servercache" -R server2 serve -d \
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   175
  >    -p $HGPORT --pid-file=hg.pid \
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   176
  >    -A $TESTTMP/access.log -E $TESTTMP/errors.log
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   177
  $ cat hg.pid >> $DAEMON_PIDS
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   178
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   179
  $ hg --config "lfs.usercache=$TESTTMP/servercache" -R cloned2 --debug \
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   180
  >    push http://localhost:$HGPORT | grep '^[{} ]'
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   181
  {
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   182
    "objects": [
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   183
      {
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   184
        "oid": "f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e"
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   185
        "size": 20
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   186
      }
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   187
    ]
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   188
    "transfer": "basic"
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   189
  }
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   190
  $ find server2/.hg/store/lfs/objects | sort
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   191
  server2/.hg/store/lfs/objects
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   192
  server2/.hg/store/lfs/objects/f0
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   193
  server2/.hg/store/lfs/objects/f0/3217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39457
diff changeset
   194
  $ "$PYTHON" $RUNTESTDIR/killdaemons.py $DAEMON_PIDS
39457
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   195
  $ cat $TESTTMP/errors.log
a913d2892e17 lfs: ensure the blob is linked to the remote store on skipped uploads
Matt Harbison <matt_harbison@yahoo.com>
parents: 38239
diff changeset
   196
37689
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   197
  $ cat >> $TESTTMP/lfsstoreerror.py <<EOF
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   198
  > import errno
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   199
  > from hgext.lfs import blobstore
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   200
  > 
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   201
  > _numverifies = 0
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   202
  > _readerr = True
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   203
  > 
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   204
  > def reposetup(ui, repo):
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   205
  >     # Nothing to do with a remote repo
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   206
  >     if not repo.local():
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   207
  >         return
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   208
  > 
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   209
  >     store = repo.svfs.lfslocalblobstore
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   210
  >     class badstore(store.__class__):
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   211
  >         def download(self, oid, src):
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   212
  >             '''Called in the server to handle reading from the client in a
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   213
  >             PUT request.'''
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   214
  >             origread = src.read
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   215
  >             def _badread(nbytes):
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   216
  >                 # Simulate bad data/checksum failure from the client
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   217
  >                 return b'0' * len(origread(nbytes))
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   218
  >             src.read = _badread
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   219
  >             super(badstore, self).download(oid, src)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   220
  > 
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   221
  >         def _read(self, vfs, oid, verify):
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   222
  >             '''Called in the server to read data for a GET request, and then
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   223
  >             calls self._verify() on it before returning.'''
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   224
  >             global _readerr
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   225
  >             # One time simulation of a read error
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   226
  >             if _readerr:
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   227
  >                 _readerr = False
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   228
  >                 raise IOError(errno.EIO, '%s: I/O error' % oid)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   229
  >             # Simulate corrupt content on client download
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   230
  >             blobstore._verify(oid, 'dummy content')
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   231
  > 
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   232
  >         def verify(self, oid):
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   233
  >             '''Called in the server to populate the Batch API response,
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   234
  >             letting the client re-upload if the file is corrupt.'''
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   235
  >             # Fail verify in Batch API for one clone command and one push
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   236
  >             # command with an IOError.  Then let it through to access other
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   237
  >             # functions.  Checksum failure is tested elsewhere.
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   238
  >             global _numverifies
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   239
  >             _numverifies += 1
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   240
  >             if _numverifies <= 2:
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   241
  >                 raise IOError(errno.EIO, '%s: I/O error' % oid)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   242
  >             return super(badstore, self).verify(oid)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   243
  > 
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   244
  >     store.__class__ = badstore
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   245
  > EOF
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   246
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   247
  $ rm -rf `hg config lfs.usercache`
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   248
  $ rm -f $TESTTMP/access.log $TESTTMP/errors.log
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   249
  $ hg --config "lfs.usercache=$TESTTMP/servercache" \
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   250
  >    --config extensions.lfsstoreerror=$TESTTMP/lfsstoreerror.py \
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   251
  >    -R server serve -d \
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   252
  >    -p $HGPORT1 --pid-file=hg.pid -A $TESTTMP/access.log -E $TESTTMP/errors.log
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   253
  $ cat hg.pid >> $DAEMON_PIDS
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   254
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   255
Test an I/O error in localstore.verify() (Batch API) with GET
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   256
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   257
  $ hg clone http://localhost:$HGPORT1 httpclone2
40324
6637b079ae45 lfs: autoload the extension when cloning from repo with lfs enabled
Matt Harbison <matt_harbison@yahoo.com>
parents: 40034
diff changeset
   258
  (remote is using large file support (lfs); lfs will be enabled for this repository)
37689
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   259
  requesting all changes
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   260
  adding changesets
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   261
  adding manifests
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   262
  adding file changes
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   263
  added 1 changesets with 1 changes to 1 files
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   264
  new changesets 525251863cad
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   265
  updating to branch default
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   266
  abort: LFS server error for "lfs.bin": Internal server error!
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   267
  [255]
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   268
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   269
Test an I/O error in localstore.verify() (Batch API) with PUT
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   270
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   271
  $ echo foo > client/lfs.bin
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   272
  $ hg -R client ci -m 'mod lfs'
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   273
  $ hg -R client push http://localhost:$HGPORT1
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   274
  pushing to http://localhost:$HGPORT1/
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   275
  searching for changes
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   276
  abort: LFS server error for "unknown": Internal server error!
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   277
  [255]
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   278
TODO: figure out how to associate the file name in the error above
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   279
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   280
Test a bad checksum sent by the client in the transfer API
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   281
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   282
  $ hg -R client push http://localhost:$HGPORT1
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   283
  pushing to http://localhost:$HGPORT1/
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   284
  searching for changes
37692
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   285
  abort: HTTP error: HTTP Error 422: corrupt blob (oid=b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c, action=upload)!
37689
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   286
  [255]
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   287
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   288
  $ echo 'test lfs file' > server/lfs3.bin
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   289
  $ hg --config experimental.lfs.disableusercache=True \
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   290
  >    -R server ci -Aqm 'another lfs file'
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   291
  $ hg -R client pull -q http://localhost:$HGPORT1
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   292
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   293
Test an I/O error during the processing of the GET request
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   294
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   295
  $ hg --config lfs.url=http://localhost:$HGPORT1/.git/info/lfs \
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   296
  >    -R client update -r tip
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   297
  abort: HTTP error: HTTP Error 500: Internal Server Error (oid=276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d, action=download)!
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   298
  [255]
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   299
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   300
Test a checksum failure during the processing of the GET request
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   301
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   302
  $ hg --config lfs.url=http://localhost:$HGPORT1/.git/info/lfs \
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   303
  >    -R client update -r tip
37692
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   304
  abort: HTTP error: HTTP Error 422: corrupt blob (oid=276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d, action=download)!
37689
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   305
  [255]
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   306
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39457
diff changeset
   307
  $ "$PYTHON" $RUNTESTDIR/killdaemons.py $DAEMON_PIDS
37689
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   308
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   309
  $ cat $TESTTMP/access.log
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   310
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   311
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   312
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%252C03%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Aphases%253Dheads%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=525251863cad618e55d483555f3d00a2ca99597e&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   313
  $LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   314
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   315
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D392c05922088bacf8e68a6939b480017afbf245d x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   316
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=phases x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   317
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=bookmarks x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   318
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=branchmap HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   319
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=bookmarks x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   320
  $LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   321
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   322
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D392c05922088bacf8e68a6939b480017afbf245d x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   323
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=phases x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   324
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=bookmarks x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   325
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=branchmap HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   326
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=bookmarks x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   327
  $LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob)
37692
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   328
  $LOCALIP - - [$LOGDATE$] "PUT /.hg/lfs/objects/b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c HTTP/1.1" 422 - (glob)
37689
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   329
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   330
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D392c05922088bacf8e68a6939b480017afbf245d x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   331
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%252C03%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Aphases%253Dheads%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=525251863cad618e55d483555f3d00a2ca99597e&heads=506bf3d83f78c54b89e81c6411adee19fdf02156+525251863cad618e55d483555f3d00a2ca99597e&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   332
  $LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   333
  $LOCALIP - - [$LOGDATE$] "GET /.hg/lfs/objects/276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d HTTP/1.1" 500 - (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   334
  $LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob)
37692
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   335
  $LOCALIP - - [$LOGDATE$] "GET /.hg/lfs/objects/276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d HTTP/1.1" 422 - (glob)
37689
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   336
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   337
  $ grep -v '  File "' $TESTTMP/errors.log
37690
726c4102db9e lfs: log information about Internal Server Errors reported in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 37689
diff changeset
   338
  $LOCALIP - - [$ERRDATE$] HG error:  Exception happened while processing request '/.git/info/lfs/objects/batch': (glob)
726c4102db9e lfs: log information about Internal Server Errors reported in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 37689
diff changeset
   339
  $LOCALIP - - [$ERRDATE$] HG error:  Traceback (most recent call last): (glob)
726c4102db9e lfs: log information about Internal Server Errors reported in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 37689
diff changeset
   340
  $LOCALIP - - [$ERRDATE$] HG error:      verifies = store.verify(oid) (glob)
726c4102db9e lfs: log information about Internal Server Errors reported in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 37689
diff changeset
   341
  $LOCALIP - - [$ERRDATE$] HG error:      raise IOError(errno.EIO, '%s: I/O error' % oid) (glob)
726c4102db9e lfs: log information about Internal Server Errors reported in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 37689
diff changeset
   342
  $LOCALIP - - [$ERRDATE$] HG error:  IOError: [Errno 5] f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e: I/O error (glob)
726c4102db9e lfs: log information about Internal Server Errors reported in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 37689
diff changeset
   343
  $LOCALIP - - [$ERRDATE$] HG error:   (glob)
726c4102db9e lfs: log information about Internal Server Errors reported in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 37689
diff changeset
   344
  $LOCALIP - - [$ERRDATE$] HG error:  Exception happened while processing request '/.git/info/lfs/objects/batch': (glob)
726c4102db9e lfs: log information about Internal Server Errors reported in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 37689
diff changeset
   345
  $LOCALIP - - [$ERRDATE$] HG error:  Traceback (most recent call last): (glob)
726c4102db9e lfs: log information about Internal Server Errors reported in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 37689
diff changeset
   346
  $LOCALIP - - [$ERRDATE$] HG error:      verifies = store.verify(oid) (glob)
726c4102db9e lfs: log information about Internal Server Errors reported in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 37689
diff changeset
   347
  $LOCALIP - - [$ERRDATE$] HG error:      raise IOError(errno.EIO, '%s: I/O error' % oid) (glob)
726c4102db9e lfs: log information about Internal Server Errors reported in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 37689
diff changeset
   348
  $LOCALIP - - [$ERRDATE$] HG error:  IOError: [Errno 5] b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c: I/O error (glob)
726c4102db9e lfs: log information about Internal Server Errors reported in the Batch API
Matt Harbison <matt_harbison@yahoo.com>
parents: 37689
diff changeset
   349
  $LOCALIP - - [$ERRDATE$] HG error:   (glob)
37692
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   350
  $LOCALIP - - [$ERRDATE$] HG error:  Exception happened while processing request '/.hg/lfs/objects/b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c': (glob)
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   351
  $LOCALIP - - [$ERRDATE$] HG error:  Traceback (most recent call last): (glob)
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   352
  $LOCALIP - - [$ERRDATE$] HG error:      localstore.download(oid, req.bodyfh) (glob)
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   353
  $LOCALIP - - [$ERRDATE$] HG error:      super(badstore, self).download(oid, src) (glob)
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   354
  $LOCALIP - - [$ERRDATE$] HG error:      % oid) (glob)
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   355
  $LOCALIP - - [$ERRDATE$] HG error:  LfsCorruptionError: corrupt remote lfs object: b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c (glob)
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   356
  $LOCALIP - - [$ERRDATE$] HG error:   (glob)
37689
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   357
  $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/.hg/lfs/objects/276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d': (glob)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   358
  Traceback (most recent call last):
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   359
      self.do_write()
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   360
      self.do_hgweb()
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   361
      for chunk in self.server.application(env, self._start_response):
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   362
      for r in self._runwsgi(req, res, repo):
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   363
      rctx, req, res, self.check_perm)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   364
      return func(*(args + a), **kw)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   365
      lambda perm:
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   366
      res.setbodybytes(localstore.read(oid))
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   367
      blob = self._read(self.vfs, oid, verify)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   368
      raise IOError(errno.EIO, '%s: I/O error' % oid)
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   369
  IOError: [Errno 5] 276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d: I/O error
a7dbda94c86a test-lfs: add tests to force server error path coverage
Matt Harbison <matt_harbison@yahoo.com>
parents: 37617
diff changeset
   370
  
37692
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   371
  $LOCALIP - - [$ERRDATE$] HG error:  Exception happened while processing request '/.hg/lfs/objects/276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d': (glob)
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   372
  $LOCALIP - - [$ERRDATE$] HG error:  Traceback (most recent call last): (glob)
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   373
  $LOCALIP - - [$ERRDATE$] HG error:      res.setbodybytes(localstore.read(oid)) (glob)
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   374
  $LOCALIP - - [$ERRDATE$] HG error:      blob = self._read(self.vfs, oid, verify) (glob)
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   375
  $LOCALIP - - [$ERRDATE$] HG error:      blobstore._verify(oid, 'dummy content') (glob)
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   376
  $LOCALIP - - [$ERRDATE$] HG error:      hint=_('run hg verify')) (glob)
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   377
  $LOCALIP - - [$ERRDATE$] HG error:  LfsCorruptionError: detected corrupt lfs object: 276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d (glob)
10e5bb9678f4 lfs: gracefully handle aborts on the server when corrupt blobs are detected
Matt Harbison <matt_harbison@yahoo.com>
parents: 37691
diff changeset
   378
  $LOCALIP - - [$ERRDATE$] HG error:   (glob)
37766
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   379
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   380
Basic Authorization headers are returned by the Batch API, and sent back with
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   381
the GET/PUT request.
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   382
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   383
  $ rm -f $TESTTMP/access.log $TESTTMP/errors.log
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   384
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   385
  $ cat >> $HGRCPATH << EOF
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   386
  > [experimental]
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   387
  > lfs.disableusercache = True
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   388
  > [auth]
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   389
  > l.schemes=http
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   390
  > l.prefix=lo
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   391
  > l.username=user
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   392
  > l.password=pass
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   393
  > EOF
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   394
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   395
  $ cat << EOF > userpass.py
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   396
  > import base64
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   397
  > from mercurial.hgweb import common
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   398
  > def perform_authentication(hgweb, req, op):
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   399
  >     auth = req.headers.get(b'Authorization')
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   400
  >     if not auth:
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   401
  >         raise common.ErrorResponse(common.HTTP_UNAUTHORIZED, b'who',
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   402
  >                 [(b'WWW-Authenticate', b'Basic Realm="mercurial"')])
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   403
  >     if base64.b64decode(auth.split()[1]).split(b':', 1) != [b'user',
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   404
  >                                                             b'pass']:
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   405
  >         raise common.ErrorResponse(common.HTTP_FORBIDDEN, b'no')
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   406
  > def extsetup():
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   407
  >     common.permhooks.insert(0, perform_authentication)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   408
  > EOF
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   409
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   410
  $ hg --config extensions.x=$TESTTMP/userpass.py \
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   411
  >    -R server serve -d -p $HGPORT1 --pid-file=hg.pid \
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   412
  >    -A $TESTTMP/access.log -E $TESTTMP/errors.log
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   413
  $ mv hg.pid $DAEMON_PIDS
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   414
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   415
  $ hg clone --debug http://localhost:$HGPORT1 auth_clone | egrep '^[{}]|  '
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   416
  {
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   417
    "objects": [
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   418
      {
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   419
        "actions": {
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   420
          "download": {
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   421
            "expires_at": "$ISO_8601_DATE_TIME$"
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   422
            "header": {
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   423
              "Accept": "application/vnd.git-lfs"
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   424
              "Authorization": "Basic dXNlcjpwYXNz"
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   425
            }
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   426
            "href": "http://localhost:$HGPORT1/.hg/lfs/objects/276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d"
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   427
          }
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   428
        }
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   429
        "oid": "276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d"
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   430
        "size": 14
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   431
      }
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   432
    ]
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   433
    "transfer": "basic"
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   434
  }
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   435
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   436
  $ echo 'another blob' > auth_clone/lfs.blob
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   437
  $ hg -R auth_clone ci -Aqm 'add blob'
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   438
  $ hg -R auth_clone --debug push | egrep '^[{}]|  '
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   439
  {
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   440
    "objects": [
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   441
      {
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   442
        "actions": {
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   443
          "upload": {
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   444
            "expires_at": "$ISO_8601_DATE_TIME$"
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   445
            "header": {
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   446
              "Accept": "application/vnd.git-lfs"
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   447
              "Authorization": "Basic dXNlcjpwYXNz"
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   448
            }
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   449
            "href": "http://localhost:$HGPORT1/.hg/lfs/objects/df14287d8d75f076a6459e7a3703ca583ca9fb3f4918caed10c77ac8622d49b3"
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   450
          }
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   451
        }
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   452
        "oid": "df14287d8d75f076a6459e7a3703ca583ca9fb3f4918caed10c77ac8622d49b3"
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   453
        "size": 13
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   454
      }
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   455
    ]
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   456
    "transfer": "basic"
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   457
  }
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   458
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 39457
diff changeset
   459
  $ "$PYTHON" $RUNTESTDIR/killdaemons.py $DAEMON_PIDS
37766
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   460
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   461
  $ cat $TESTTMP/access.log $TESTTMP/errors.log
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   462
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=capabilities HTTP/1.1" 401 - (glob)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   463
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   464
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   465
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%252C03%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Aphases%253Dheads%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=506bf3d83f78c54b89e81c6411adee19fdf02156+525251863cad618e55d483555f3d00a2ca99597e&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   466
  $LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 401 - (glob)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   467
  $LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   468
  $LOCALIP - - [$LOGDATE$] "GET /.hg/lfs/objects/276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d HTTP/1.1" 200 - (glob)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   469
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=capabilities HTTP/1.1" 401 - (glob)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   470
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   471
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D525251863cad618e55d483555f3d00a2ca99597e+4d9397055dc0c205f3132f331f36353ab1a525a3 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   472
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=phases x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   473
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=bookmarks x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   474
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=branchmap HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   475
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=bookmarks x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   476
  $LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 401 - (glob)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   477
  $LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   478
  $LOCALIP - - [$LOGDATE$] "PUT /.hg/lfs/objects/df14287d8d75f076a6459e7a3703ca583ca9fb3f4918caed10c77ac8622d49b3 HTTP/1.1" 201 - (glob)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   479
  $LOCALIP - - [$LOGDATE$] "POST /?cmd=unbundle HTTP/1.1" 200 - x-hgarg-1:heads=666f726365 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
925707ac2855 lfs: add the 'Authorization' property to the Batch API response, if present
Matt Harbison <matt_harbison@yahoo.com>
parents: 37765
diff changeset
   480
  $LOCALIP - - [$LOGDATE$] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=phases x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)