Add kv queue to google drive / google cloud storage sync handlers

Change-Id: I978ae42dbc6ce2840071cbadaf9351498a23415f
index: move seekFetcherMissTracker up a layer

In prep for missing blob dependency rescheduling in indexer.

Change-Id: I1d492e6aa64cfb658daec17e4621d1453c6d3607
TODO: more

Change-Id: Id83f4c319340d28e500ce889cd2ed951bd3998a1
types: add NewFakeSeeker

NewFakeSeeker returns a ReadSeeker that can pretend to Seek (based
on the provided total size of the reader's content), but any reads
will fail if the fake seek position doesn't match reality.

Change-Id: I4e63aa78c80fdbcd87b2133018009ed72bedb9f3
blob: move Blob type to its own file, add FromFetcher, FromReader

Prep for killing SeekFetcher.

Change-Id: Iade678ccf74d5ebc9613dbb9dbf44b9ed9ff4dea
gethandler: rewrite to not use SeekerFromStreamingFetcher; add tests

Change-Id: I785dd56f7bc7c1f113575700c74f910b4f4ea4a0
serverinit: fix flaky test. sort publishRoot prefixes, for predictable output

Change-Id: I230a7d344f9c982539b3ed6d3a88eb1066322ea5
Get rid of SeekFetcher vs StreamingFetcher distinction and complexity.

StreamingFetcher is now just Fetcher, and its FetchStreaming is now
just Fetch.

SeekFetcher is gone. Blobs are max 16 MB anyway, so we can slurp to
memory when needed. The main thing that cared about SeekFetcher
was the GET handler, ServeBlobref, because http.ServeContent needed
one for range requests. That's rewritten in an earlier commit, using
the FakeSeeker from another earlier commit.

Lot of code got simpler as a result.

Change-Id: Ib819413e48a8f9b8d97f596d0fbf771dab211f11
pkg/schema: Move two non-utf8-handling utility funcs to schema.go.

As per review comments.

Change-Id: I0240f697d0cb180a9fb2e9b1ddda7ac18869b4ad
index: reindex blobs when dependent blobs arrive out-of-order

Keep track of missing dependencies both in memory and in the index's
underlying sorted.KeyValue. When we see a dependent blob arrive, see
if we can reindex things.

Fixes camlistore.org/issue/102

Change-Id: I3d8cfc463e4b8c9d158be8f9656e772839b093b9
Merge "pkg/schema: Move two non-utf8-handling utility funcs to schema.go."
fault: new package for fault injection

Doesn't do much.

Change-Id: Iab038564a753611a8bc8f44f33a57dbfe96d76e0
s3: more fault injection, and simplify receive, removing spilling to disk

Change-Id: Id7fb01c40dc863bee483887bbf14934161eb03a0
More status handler HTML+JSON, more sync status.

Change-Id: I0381853191d5b871af649d102b976e592def791f
Fix bug where "Select as current set" item never shows up.

Change-Id: Ibc6b98c3feb65f28c3768cfaf6169044e41ad160
Merge "Fix bug where "Select as current set" item never shows up."
Merge branch 'master' of https://camlistore.googlesource.com/camlistore
Picasa: add importer.

Imports all images from all albums, and puts each image in its album.
Each album is linked under "Picasa (<username>)".
Tries to skip already imported files (check based on album/filename).
See Issue #391.

Change-Id: If00751671a429891c05bbe41f59c1421b2ff2de8
serverinit: allow S3-only configurations to also have a working index

... with kv or sqlite indexes, at least. Other types will need more
genconfig work.

Change-Id: I5fb9fa0a122693e08780c3fa20eae67fa850d98f
C+A: add Nolan Darilek (Individual CLA)

Change-Id: Ic4f94e5fc01ae8637f9f9441f961dca903c310ae