Commit Graph

118 Commits

Author SHA1 Message Date
Brad Fitzpatrick 16b4d5c7e3 camtool: add discovery subcommand
Change-Id: Ic4cbc2777719301d3e4f3cdb0b14c10be6f64b3e
2014-02-09 15:16:47 -08:00
Brad Fitzpatrick 283aa2a03a Fix build on 32-bit platforms (e.g. Android)
Change-Id: Id5feff31ed103aeaaebf9b3e09a5e8a03b572a2d
2014-02-08 16:43:21 -08:00
Tamás Gulácsi 97520583b8 Use 'uint32' instead of 'int64' for blob sizes everywhere.
Not just in blob.SizedRef, but in blobserver.Fetch and
blobserver.FetchStreaming, too.
Blobs have a max size of 10-32 MB anyway, and the index.Corpus is now using
uint32 to save memory.

Change-Id: I1172445c2f9463fdaee55bfe0f1218d44be4aa53
2014-02-08 17:58:12 +01:00
Brad Fitzpatrick 179b11acbd client: add NewStorageClient
Change-Id: Ia559ccc111a68e053fe60afb2fb39e1186f70fd1
2014-02-07 10:59:23 -08:00
Brad Fitzpatrick 3f27e4f708 Add android camput pre-exit hook.
Change-Id: I30f9771e5562ece6a35d44cc8ab57c305a2899cb
2014-01-30 17:29:28 +01:00
Brad Fitzpatrick 8bc393e978 client/android: track connection closes too
Change-Id: I08b3ddec817fb27e0d52841168492ba510087bf3
2014-01-30 17:19:30 +01:00
Brad Fitzpatrick eb27581da7 httputil: add DecodeJSON and CloseBody helpers, then use them everywhere
httputil.CloseBody closes a http.Response.Body nicely, such that it's
more likely to be re-used.

httputil.DecodeJSON parses JSON from a Response.Body and closes the
body. It also keeps a temporary copy of the input, for error messages.

Then use them everywhere, to improve HTTP TCP connection re-use.

And misc other clean-ups.

Change-Id: I5dc44be0165b13659459ed29ce5ab44c17d9739f
2014-01-28 22:00:52 -08:00
Dustin Sallings 6f5b0151f2 client: don't remember discovery errors permanently
fixes camlistore.org/issue/348

Change-Id: I689319cd03dbbcc035698a2ce58d4557c28d9ac0
2014-01-27 16:45:18 -08:00
Brad Fitzpatrick a70b554023 pkg/client, camput: don't stat each chunk before uploading
Trust the have cache for skipping uploads.

Reduces total number of HTTP requests.

Also, set Transport's MaxIdleConnsPerHost to be the same as
our HTTP concurrency level, to not keep re-creating TCP
connections.
2014-01-27 16:07:15 -08:00
Brad Fitzpatrick 798cd5e9d2 client: use syncutil.Gate instead doing it by hand 2014-01-27 14:08:05 -08:00
Brad Fitzpatrick 0072a5b325 client/android: instrument memory usage.
also try to GC and return memory to OS every 5 seconds, but
that barely makes a dent in the real problem.

more later.

Change-Id: I2979e099121bdcb8578124b1c45714313cc2ec09
2014-01-26 22:05:02 -08:00
Brad Fitzpatrick 9abba638a0 Add new environment variables for setting client identity for use with test.World.
Testing clients should now use CAMLI_CLIENT_IDENTITY,
CAMLI_DISABLE_CLIENT_CONFIG_FILE (both new) and existing
CAMLI_SECRET_RING, set using the new test.World accessors.

Change-Id: I9fc0571b008f033674466bbc98129ae1919a0640
2014-01-20 13:54:42 -08:00
Brad Fitzpatrick a384ff188d Get rid of CAMLI_DEV_KEYBLOBS / keyblobs / etc.
Fixes camlistore.org/issue/277

Change-Id: I7f380f9d18785f600fa0c442d5a19cd118782788
2014-01-20 13:47:08 -08:00
Brad Fitzpatrick 2086406552 Client fixes and cleanups:
* Fix TODO about moving camput file's havecache up a layer into
  camput itself. So now it's used for all commands (camput permanode,
  camput attr, etc). Reduces HTTP requests.

* Fix camlistore.org/issue/343 -- don't do stats before uploads
  in cases where it's useless. Adds a field to UploadHandle.

* Fix camlistore.org/issue/344: upload the public key whenever
  uploading a signed blob. Usually this is a no-op because of the
  have cache.

* Use zero (or <=0 rather), not -1, to mean unknown on UploadHandle
  Size.

* More docs on public stuff.
2014-01-15 18:32:02 -08:00
Brad Fitzpatrick 3addb89651 client: don't use server address as alias when upgrading old config
Fixes camlistore.org/issue/342
2014-01-15 16:27:55 -08:00
Brad Fitzpatrick 94ff6ac141 pkg/search, pkg/client, cmd/camtool: add 'camtool claims' subcommand
Change-Id: Id9d8381facd97a946c3582b226d433ab59b18da7
2014-01-14 11:48:49 -08:00
Brad Fitzpatrick b7230b2897 client: add CAMLI_DEFAULT_SERVER env option for selecting default server
For demos, when we want to show using camput/camget but select the devcam server
instead of our production servers.

Change-Id: Ie2adfd4f80df3119a705b51bb9736c3b66612d1c
2014-01-11 10:41:36 -08:00
mpl b5d29a181f client,camget: add -cert to specify trusted cert with share URLs
http://camlistore.org/issue/330

Change-Id: I6d060fe4804d6cf9baa3686243e3ab93839ec9ac
2014-01-09 12:05:38 -08:00
mpl 52a16e3483 Merge "pkg/client: auth and (camtool) TLS fixes" 2014-01-09 19:24:17 +00:00
mpl 1db2e7eaf3 pkg/client: auth and (camtool) TLS fixes
1) disallow auth from env when not in dev mode or on android
2) allow insecureTLS with flag in debug mode
3) set transport so that insecureTLS or trustedCert modes work

http://camlistore.org/issue/325

Change-Id: I6d8056bb75ffff5f002dfe9bd631ae996dc4e5ef
2014-01-09 11:23:40 -08:00
Brad Fitzpatrick 3237139992 Merge "pkg/client: better error handling propogation." 2014-01-08 18:03:33 +00:00
mpl 3f13d1a043 pkg/client: fix method to find a server in the config
http://camlistore.org/issue/325

Change-Id: I4aa6d5103848b73ed169ab7d7de3a60a33723b79
2014-01-07 18:52:48 -08:00
Bill Thiede fc3d238478 pkg/client: better error handling propogation.
Convert non-200 HTTP responses into proper error objects returned to
caller.

Change-Id: Ib04fb8cf2e04d8ae85908233adc5f9e5f7b32d01
2014-01-06 21:06:01 -08:00
mpl a9ff17ca81 client: log.Fatalf typo
Change-Id: I2bffa2b6a9de351ed0f8ad0b13c1e1f62212c2ea
2014-01-06 10:46:07 -08:00
mpl 10d863e323 Merge "pkg/client: multi servers config" 2014-01-06 07:24:52 +00:00
mpl bf8c463d0a pkg/client: multi servers config
http://camlistore.org/issue/309

Change-Id: I22bbbf6a808a772272f153b2535d693bd986d13a
2014-01-05 23:19:43 -08:00
Brad Fitzpatrick 9a993218e5 Merge "Change the upload protocol." 2014-01-06 06:24:48 +00:00
mpl 9902305735 Merge "client: improved ignoredFiles" 2014-01-06 04:57:30 +00:00
mpl 7c21c617b6 client: improved ignoredFiles
also changed osutil.HomeDir for windows so it looks like an abs path for
filepath.IsAbs

http://camlistore.org/issue/290

Change-Id: I1b32c1c13e7d23a421a6da2c0f9d6b8b07f48b8d
2014-01-05 20:53:46 -08:00
Brad Fitzpatrick 91f8b2ad49 Change the upload protocol.
No more dynamic upload URL, which trips up half our new users behind
reverse proxies when the camlistored process doesn't know its
forward-facing URL.

The original camlistore stat + upload protocol was influenced by App
Engine's limitations at the time, and some of our indecision about
where the Camlistore design is going. We understand the Camlistore
design now, and App Engine's former limitations are gone. Time to
clean things up.

More REST-y now too.

See http://camlistore.org/issue/123

Change-Id: I92c6552f830b925cef379c204a982a2213bf2f4b
2014-01-04 20:24:58 -08:00
Brad Fitzpatrick 3e725e2a98 Change self-signed cert fingerprint to 80 bits of SHA-256.
More secondary preimage resistance. Also better docs and less vague and less promoted Android
UI.

Feedback from Adam Langley, but likely misinterpreted.

Change-Id: I3bf1029b6fc07c0b8dab2af44926aa87b0d4cbad
2014-01-04 16:37:33 -08:00
Brad Fitzpatrick 550b522618 client: fix crashes when used by the Android app
There is no config file on Android.

Fixes camlistore.org/issue/287

Change-Id: If4bee897adee528f9ba58fb3093c327583e00ec4
2014-01-03 16:07:10 -08:00
Brad Fitzpatrick 19f4324066 client: fix constructor not setting authMode
Change-Id: I820079354291a67eb61dcc04fa8215037ec98ca8
2013-12-27 17:13:33 -08:00
Brad Fitzpatrick 7d4c86d0de client: add a Search method
Change-Id: Iec4c22bf6e4bbe40645ec178b5c2d23392ad270d
2013-12-27 16:22:06 -08:00
Dustin Sallings 3742b287a9 require auth config in storage-remote
The client configuration requires this if it's not passed in through the
environment.  Since this is for a storage service, it makes sense to
place it with the specific remote.

Since SetupAuthFromConfig was a bit awkward and not used elsewhere, it's
replaced with a more simple and explicit SetupAuthFromString to which
the exact auth details you wish to use are provided.

Change-Id: Id39ff314738794e299d48cbe634be2aa5d5c3bd1
2013-12-26 11:00:03 -08:00
Brad Fitzpatrick 9fd329df80 Merge "cmd/camtool: (re)index command" 2013-12-26 17:29:03 +00:00
mpl 2d85e017ff cmd/camtool: (re)index command
http://camlistore.org/issue/193

Change-Id: I498f92bdc153f44dc84d4b47f03c47a8e7b54ad9
2013-12-26 18:23:15 +01:00
Brad Fitzpatrick 6793ce3d93 client: fix one of the constructors that allowed logger to be uninitialized
Change-Id: Id864716cd5c821fbb2446bab7a42ed9b89a6983e
2013-12-26 08:28:15 -08:00
Brad Fitzpatrick 911d07e16e client: use a method value.
http://golang.org/doc/go1.1#method_values

Change-Id: I68d516fdbfa60b6688f74bd9c3293583fc51b2ec
2013-12-24 19:47:16 -08:00
mpl 6e7eacea4a Merge "pkg/client: some cleanup, doc on the website" 2013-12-23 22:31:45 +00:00
mpl 1e8d46ee45 pkg/client: some cleanup, doc on the website
Changed some keys to be consistent with the server config, and removed
some others.

We're now using jsonconfig to get the keys and validate the config.

Removed some unused funcs/methods, moved some global vars as members of a client.

Also, having two possible defaults for the secret keyring
(.config/camlistore/identity-secring.gpg and .gnupg/secring.gpg)
was annoying and confusing imho, so I removed the latter.

http://camlistore.org/issue/259

Change-Id: Icf79fa8822b62b5d91843698861dd19cb553607a
2013-12-23 20:23:21 +01:00
jakubbrzeski 33e925ffa1 camput: allow ignoring files NOT only if --filenodes used
Change-Id: I7856c5f6602e6b439ebcebbcb83eddb1d1865e88
2013-12-16 16:52:59 +01:00
Brad Fitzpatrick 49fced871b Update a comment in client/config.go
Change-Id: Icc30171776c87107bdf844c4dc908f35ed98b9a4
2013-12-07 06:48:02 -08:00
Brad Fitzpatrick b82b8efe4c Start of new context package and *context.Context type.
Will eventually be plumbed through lots of APIs, especially those requiring or benefiting from
cancelation notification and/or those needing access to the HTTP context (e.g. App Engine).

Change-Id: I591496725d620126e09d49eb07cade7707c7fc64
2013-12-02 13:20:51 -08:00
Brad Fitzpatrick fd122a5de6 Blind fix of bug in 3fa6d69405.
See, tests matter.

Change-Id: I8c42be90db246e3529eac9f62711ea5510db605d
2013-11-24 18:40:51 -08:00
Brad Fitzpatrick 3fa6d69405 client: be robust against servers/proxies returning compressed content
Change-Id: Id87c26a7d6e6d3f794a5421ece7cd344b10e1a8b
2013-11-24 18:27:41 -08:00
Brad Fitzpatrick dcf5f6abe7 client: clean up. finish moving all Android stuff to pkg/client/android
Change-Id: Ia3d19a323d9c734a01ec9a12509b115191afcfdd
2013-10-26 11:08:34 -07:00
Brad Fitzpatrick 2040d2e442 Add new pkg/client/android, to clean up Android API gunk from pkg/client's godoc.
This is just a start. AndroidStatsTransport and AndroidStatusReceiver and most (all?)
of pkg/client/android.go should migrate too.

Change-Id: Id4140730bbdd218fdf7ba7cedc7870ce5164e06c
2013-10-22 07:37:15 -07:00
Brad Fitzpatrick cf15b2be90 client: use the schema.Signer API, remove Client.SignBlob method
Change-Id: I177c78f4f7f4ca54afd021d4ada866a35eea06eb
2013-10-22 07:26:44 -07:00
Brad Fitzpatrick 63b4f390cb client: upload public key if necessary whenever uploading a signed blob
Change-Id: I2e61da4fa2eeae2332c67902f8dd5f064b027835
2013-09-22 19:38:42 +01:00