Hacking Keep » History » Revision 4
Revision 3 (Tom Clegg, 07/16/2014 09:22 AM) → Revision 4/9 (Tom Clegg, 07/16/2014 09:24 AM)
h1. Hacking Keep
{{toc}}
h2. Source tree layout
The Keep server source code is in @/services/keep/src/keep@.
<pre>
cd
git clone https://github.com/curoverse/arvados.git
ls arvados/services/keep/src/keep
</pre>
h2. Install build-prerequisites
Install Go. See http://golang.org/doc/install or try this short cut:
<pre>
wget https://go.googlecode.com/files/go1.2.1.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.2.1.linux-amd64.tar.gz
cd /usr/local/bin
sudo ln -s ../go/bin/* .
</pre>
(Check https://code.google.com/p/go/downloads/list for other platforms and newer versions.)
Install mux.
<pre>
GOPATH=~/go go get github.com/gorilla/mux
</pre>
h2. Run test suite
<pre>
cd ~/arvados/services/keep/src/keep
GOPATH=~/go go test
</pre>
You should see something like this:
<pre>
2014/07/16 09:24:01 GET e4d909c290d0fb1ca068ffaddf22cbd0 2014/04/17 18:20:34 e4d909c290d0fb1ca068ffaddf22cbd0: not found on any volumes, giving up
2014/07/16 09:24:01 GET e4d909c290d0fb1ca068ffaddf22cbd0
2014/07/16 09:24:01 GET e4d909c290d0fb1ca068ffaddf22cbd0
2014/07/16 09:24:01 GET e4d909c290d0fb1ca068ffaddf22cbd0
2014/07/16 09:24:01 GET e4d909c290d0fb1ca068ffaddf22cbd0
2014/07/16 09:24:01 PUT e4d909c290d0fb1ca068ffaddf22cbd0
2014/07/16 09:24:01 PUT e4d909c290d0fb1ca068ffaddf22cbd0
2014/07/16 09:24:01 PUT e4d909c290d0fb1ca068ffaddf22cbd0
2014/07/16 09:24:01 [MockVolume]: 2014/04/17 18:20:34 /tmp/keeptest071039943/keep: checksum mismatch for request e4d909c290d0fb1ca068ffaddf22cbd0 mismatch: /tmp/keeptest071039943/keep/e4d/e4d909c290d0fb1ca068ffaddf22cbd0 (actual hash 55ae4d45d2db0793d53f03e805f656e5)
2014/07/16 09:24:01 2014/04/17 18:20:34 e4d909c290d0fb1ca068ffaddf22cbd0: checksum mismatch, no good copy not found on any volumes, giving up
2014/07/16 09:24:01 GetBlock: reading 2014/04/17 18:20:34 /tmp/keeptest791706190/keep: opening /tmp/keeptest791706190/keep/e4d/e4d909c290d0fb1ca068ffaddf22cbd0: open /tmp/keeptest791706190/keep/e4d/e4d909c290d0fb1ca068ffaddf22cbd0: permission denied
2014/04/17 18:20:34 e4d909c290d0fb1ca068ffaddf22cbd0: Bad volume not found on any volumes, giving up
2014/07/16 09:24:01 [MockVolume]: Write(e4d909c290d0fb1ca068ffaddf22cbd0): Bad volume
2014/07/16 09:24:01 GetBlock: reading 2014/04/17 18:20:34 e4d909c290d0fb1ca068ffaddf22cbd0: Bad volume could not create directory /tmp/keeptest791706190/keep/e4d: mkdir /tmp/keeptest791706190/keep/e4d: permission denied
2014/07/16 09:24:01 2014/04/17 18:20:34 /tmp/keeptest791706190/keep: opening /tmp/keeptest791706190/keep/e4d/e4d909c290d0fb1ca068ffaddf22cbd0: open /tmp/keeptest791706190/keep/e4d/e4d909c290d0fb1ca068ffaddf22cbd0: permission denied
2014/04/17 18:20:34 e4d909c290d0fb1ca068ffaddf22cbd0: MD5 checksum 55ae4d45d2db0793d53f03e805f656e5 did not match request
2014/07/16 09:24:01 [MockVolume]: 2014/04/17 18:20:34 e4d909c290d0fb1ca068ffaddf22cbd0: not found on any volumes, giving up
2014/04/17 18:20:34 /tmp/keeptest667295577/keep: checksum mismatch for request e4d909c290d0fb1ca068ffaddf22cbd0 mismatch: /tmp/keeptest667295577/keep/e4d/e4d909c290d0fb1ca068ffaddf22cbd0 (actual hash 55ae4d45d2db0793d53f03e805f656e5)
2014/07/16 09:24:01 e4d909c290d0fb1ca068ffaddf22cbd0: checksum mismatch, no good copy found
2014/07/16 09:24:01 e4d909c290d0fb1ca068ffaddf22cbd0: could not create directory /tmp/volume_test436651248/e4d: mkdir /tmp/volume_test436651248/e4d: permission denied
PASS
ok _/home/you/src/arvados/services/keep/src/keep 0.030s _/home/you/arvados/services/keep 0.136s
</pre>