Peter Amstutz [Fri, 23 May 2014 18:16:42 +0000 (14:16 -0400)]
Merge branch '1885-keep-proxy' into 2751-python-sdk-keep-proxy-support
Peter Amstutz [Fri, 23 May 2014 18:08:53 +0000 (14:08 -0400)]
1885: Added logging of invalid requests. Added logging when the server list is
update. Improved KeepClient error reporting.
Peter Amstutz [Fri, 23 May 2014 14:27:59 +0000 (10:27 -0400)]
Merge branch 'master' into 1885-keep-proxy
Peter Amstutz [Fri, 23 May 2014 14:26:31 +0000 (10:26 -0400)]
1885: Fix bug in not returning from the handler on failed authorization.
Improved logging (which uncovered the previous bug.) Tweaked go.sh and tests.
Tom Clegg [Thu, 22 May 2014 22:23:02 +0000 (18:23 -0400)]
Fix crash in jobs.queue API. Add test case.
Peter Amstutz [Thu, 22 May 2014 18:51:56 +0000 (14:51 -0400)]
1885: Made ServiceRoots atomically updatable, so that KeepProxy can poll for
changes in the services list without disrupting any active flows.
Peter Amstutz [Thu, 22 May 2014 17:38:10 +0000 (13:38 -0400)]
Merge branch 'master' into 1885-keep-proxy
Peter Amstutz [Thu, 22 May 2014 17:37:50 +0000 (13:37 -0400)]
Merge branch '2798-go-keep-client' closes #2798
Peter Amstutz [Thu, 22 May 2014 17:36:58 +0000 (13:36 -0400)]
1885: GET and HEAD through the proxy work correctly now. Added invalid API token test.
Peter Amstutz [Thu, 22 May 2014 15:17:32 +0000 (11:17 -0400)]
1885: Full-stack integration test (api+keep+keepproxy+keepclient) works!
Peter Amstutz [Thu, 22 May 2014 14:45:33 +0000 (10:45 -0400)]
Merge remote-tracking branch 'origin/master' into 1885-keep-proxy
Peter Amstutz [Thu, 22 May 2014 14:45:18 +0000 (10:45 -0400)]
1885: Integration test of proxy work in progress.
Peter Amstutz [Wed, 21 May 2014 20:35:50 +0000 (16:35 -0400)]
Changed API server to use X-External-Client instead of
X-Keep-Proxy-Required. refs #2776
Peter Amstutz [Wed, 21 May 2014 20:32:23 +0000 (16:32 -0400)]
1885: Stubbed out integration test for proxy
Peter Amstutz [Wed, 21 May 2014 20:14:03 +0000 (16:14 -0400)]
Merge branch '2798-go-keep-client' into 1885-keep-proxy
Peter Amstutz [Wed, 21 May 2014 20:00:47 +0000 (16:00 -0400)]
Merge branch 'master' into 2798-go-keep-client
Peter Amstutz [Wed, 21 May 2014 20:00:05 +0000 (16:00 -0400)]
2798: Adds client side support for Keep proxy X-Keep-Desired-Replicas and
X-Keep-Replicas-Stored headers, and ARVADOS_KEEP_PROXY environment variable.
Added tests.
Tim Pierce [Wed, 21 May 2014 19:29:54 +0000 (15:29 -0400)]
Merge branch 'master' of git.curoverse.com:arvados
Refs #2755.
Tim Pierce [Wed, 21 May 2014 19:27:46 +0000 (15:27 -0400)]
2755: fix blob signing bug. (refs #2755)
Tim Pierce [Wed, 21 May 2014 18:15:01 +0000 (14:15 -0400)]
Merge branch '2755-api-collection-permissions'
closes #2784, closes #2787
Tim Pierce [Wed, 21 May 2014 17:34:22 +0000 (13:34 -0400)]
2755: incorporate code review
* lib/locator.rb renamed => app/models/locator.rb
* Relaxed Locator.parse! handling of hint content.
* Locator.parse() rescues only from ArgumentError.
* Removed blob_signing_ttl from application.yml.example.
* Collections.show only matches locators that are preceded by a space,
when parsing manifest_text.
Tim Pierce [Mon, 19 May 2014 22:17:29 +0000 (18:17 -0400)]
2755: fix merge conflicts (refs #2755)
Tim Pierce [Mon, 19 May 2014 22:09:18 +0000 (18:09 -0400)]
Merge branch '2755-api-collection-permissions' of git.curoverse.com:arvados into 2755-api-collection-permissions
Refs #2755
Conflicts:
services/api/app/controllers/arvados/v1/collections_controller.rb
services/api/config/application.default.yml
services/api/config/application.yml.example
services/api/test/functional/arvados/v1/collections_controller_test.rb
Brett Smith [Wed, 21 May 2014 19:25:20 +0000 (15:25 -0400)]
Merge branch '2764-wget-collections'
Closes #2764, #2774, #2830.
Brett Smith [Wed, 21 May 2014 15:30:44 +0000 (11:30 -0400)]
2764: UI overhaul to the Collection download page.
Refs #2764, based on feedback.
Peter Amstutz [Tue, 20 May 2014 19:44:59 +0000 (15:44 -0400)]
2764: Fixed active_all_collections scoped token to be able to access
keep_disks. Also some minor code cleanup in FileStreamer.
Peter Amstutz [Tue, 20 May 2014 19:00:42 +0000 (15:00 -0400)]
2764: Fixed scopes_allow_request to use request.request_method (the effective
HTTP method) instead of request.method (the actual HTTP method) because
workbench uses POST even for GET.
Brett Smith [Thu, 15 May 2014 20:38:12 +0000 (16:38 -0400)]
2764: Add wget-friendly Collections file page.
This new route will become the way you share authless Collection links
with others. They can pass it to `wget -r` to download the whole
collection, nicely organized, with nothing extraneous. Since it
doesn't try to load user information or look up related Arvados items,
it can be rendered using an API token with a very narrow scope.
Because wget respects robots.txt, this branch stops using that in
favor of the corresponding <meta> tag. The new view only limits
indexing, so wget can follow the links on the page.
Refs #2764.
Brett Smith [Thu, 15 May 2014 19:54:32 +0000 (15:54 -0400)]
2764: Introduce show_file_links route.
Right now this just takes advantage of the provided reader token, but
we're going to extend it to provide a wget-friendly view.
Brett Smith [Wed, 21 May 2014 19:16:34 +0000 (15:16 -0400)]
2765: Tear out general Workbench reader_tokens support.
Refs #2765. This approach is not tenable in its current form, and the
callbacks are making further development confusing, so I'm getting rid
of them.
Conflicts:
apps/workbench/test/functional/collections_controller_test.rb
Brett Smith [Tue, 20 May 2014 19:15:11 +0000 (15:15 -0400)]
2764: Reset browser session between Workbench integration tests.
Peter and I just debugged an issue where a test was falsely passing
because the session had authorization state in it. This prevents it
from passing.
Brett Smith [Wed, 21 May 2014 17:30:05 +0000 (13:30 -0400)]
2753: Properly close entire Collection file tree in Workbench.
Brett Smith [Tue, 6 May 2014 15:30:58 +0000 (11:30 -0400)]
1904: Make Keep file EPERM test stricter.
Refs #1904. Tom said that we want the security benefits of a 404
result, so make sure that's exactly what we get.
Peter Amstutz [Wed, 21 May 2014 18:46:15 +0000 (14:46 -0400)]
Merge branch '2776-keep-services-table' closes #2776
Peter Amstutz [Wed, 21 May 2014 18:31:22 +0000 (14:31 -0400)]
Merge branch 'master' into 2751-python-sdk-keep-proxy-support
Peter Amstutz [Wed, 21 May 2014 18:31:03 +0000 (14:31 -0400)]
Merge branch 'master' into 2776-keep-services-table
Peter Amstutz [Wed, 21 May 2014 18:29:40 +0000 (14:29 -0400)]
2776: Fixed misspelled accessable->accessible. Thanks Brett! Tweaked
workbench icons for keep services and compute nodes. Removed spurious print
statements. Tighted up definitions of service_host, service_port and
service_ssl_flag in keep_disk model.
Tom Clegg [Wed, 21 May 2014 18:19:21 +0000 (14:19 -0400)]
Remove obsolete secret_token.rb.
Tim Pierce [Wed, 21 May 2014 17:43:23 +0000 (13:43 -0400)]
Merge branch '2770-keep-sigterm' (closes #2770)
Peter Amstutz [Wed, 21 May 2014 17:32:06 +0000 (13:32 -0400)]
2751: merge because git derp.
Peter Amstutz [Wed, 21 May 2014 17:30:28 +0000 (13:30 -0400)]
2751: Added support for keep_services table, can still use keep_disks as a fallback.
Peter Amstutz [Wed, 21 May 2014 17:30:28 +0000 (13:30 -0400)]
2751: Added support for keep_services table, can still use keep_disks as a fallback.
Brett Smith [Wed, 21 May 2014 16:04:00 +0000 (12:04 -0400)]
Merge branch '2753-collection-tree-view'
Closes #2777, #2828, #2753.
Brett Smith [Wed, 21 May 2014 14:27:10 +0000 (10:27 -0400)]
2753: Add space between Workspace file tree buttons and scrollbar.
Brett Smith [Wed, 21 May 2014 14:19:55 +0000 (10:19 -0400)]
2753: Move file tree CSS to collections.css.
Brett Smith [Wed, 21 May 2014 14:17:29 +0000 (10:17 -0400)]
2753: Refactor Collection view to use library CSS.
Brett Smith [Wed, 21 May 2014 14:07:28 +0000 (10:07 -0400)]
2753: Replace Workbench file tree backgrounds with hover effect.
Based on feedback from Tom in refs #2753. I'm still concerned about
users being able to line up buttons with filenames, so the highlight
on :hover is intended to help with that.
Brett Smith [Thu, 15 May 2014 14:55:47 +0000 (10:55 -0400)]
2753: Workbench shows Collection files in a tree.
Brett Smith [Tue, 13 May 2014 21:31:29 +0000 (17:31 -0400)]
2753: Workbench renders "0 bytes" for empty file sizes.
Brett Smith [Mon, 12 May 2014 21:29:55 +0000 (17:29 -0400)]
2753: Add Workbench Collection#files_tree.
Brett Smith [Mon, 12 May 2014 15:21:12 +0000 (11:21 -0400)]
2753: Add tests for CollectionsHelper.file_path.
Brett Smith [Mon, 12 May 2014 14:37:55 +0000 (10:37 -0400)]
2753: Make Collection filenames with existing helper.
This is pure refactoring to make the code more consistent.
Ward Vandewege [Wed, 21 May 2014 15:42:05 +0000 (11:42 -0400)]
Add some basic request logging to Keep.
Peter Amstutz [Wed, 21 May 2014 15:24:04 +0000 (11:24 -0400)]
2798: Updated keep client with buffer/streamer changes.
Peter Amstutz [Wed, 21 May 2014 15:00:21 +0000 (11:00 -0400)]
2798: Renamed internal messaging structs in an attempt to use the word "reader"
slightly less. Refactored tests to reduce redundancy slightly. Added test with large number of concurrent readers. Rewrote "how to use" package comments and wrote a small novel about the "theory of operation".
Peter Amstutz [Wed, 21 May 2014 02:23:18 +0000 (22:23 -0400)]
2798: Tracks opening and closing of readers, will block closing AsyncStream
until all readers are closed. Additionally, will block if too many readers are
created.
Peter Amstutz [Tue, 20 May 2014 21:12:10 +0000 (17:12 -0400)]
mend
Peter Amstutz [Tue, 20 May 2014 21:09:06 +0000 (17:09 -0400)]
2798: Renamed TransferBuffer->AsyncStream, BufferReader->StreamReader,
StartTransferFromReader->AsyncStreamFromReader,
StartTransferFromSlice->AsyncStreamFromSlice. Changed structs to use pointer
receivers instead of embedded pointer fields. Updated tests.
Peter Amstutz [Tue, 20 May 2014 20:40:11 +0000 (16:40 -0400)]
2798: Renamed 'buffer' package to 'streamer'
Brett Smith [Tue, 20 May 2014 19:50:48 +0000 (15:50 -0400)]
Merge branch '2753-collection-metadata'
Closes #2780, #2837.
Brett Smith [Mon, 19 May 2014 16:07:18 +0000 (12:07 -0400)]
2753: Show immediate relations on Workbench Collection page.
This concept and implementation borrows a lot from the new folder UI.
Brett Smith [Mon, 19 May 2014 15:22:48 +0000 (11:22 -0400)]
2753: Move Workbench object list rendering to application_helper.
I would like to be able to reuse this functionality in the upcoming
Collections view.
Brett Smith [Mon, 19 May 2014 14:14:24 +0000 (10:14 -0400)]
2753: Add event_at data to Log fixtures.
Brett Smith [Fri, 16 May 2014 17:33:57 +0000 (13:33 -0400)]
2753: Remove older, unused Workbench provenance code.
I do not see any code that would directly render these partials;
they're not indirectly referenced in the pane list; and I can remove
the controller code and run all our tests without tripping on a
NoMethodError exception from a nil.
Peter Amstutz [Tue, 20 May 2014 18:11:15 +0000 (14:11 -0400)]
2776: Added test for keep_services/accessable route.
Peter Amstutz [Tue, 20 May 2014 17:54:21 +0000 (13:54 -0400)]
2776: Added 'accessable' route to 'keep_services'
Peter Amstutz [Tue, 20 May 2014 17:38:18 +0000 (13:38 -0400)]
2776: Added stub API documentation for keep_services table.
Peter Amstutz [Tue, 20 May 2014 17:30:08 +0000 (13:30 -0400)]
2776: Fixed run_test_server.py to work with new 'keep_services' model
Peter Amstutz [Tue, 20 May 2014 17:22:12 +0000 (13:22 -0400)]
2776: Fixed backwards-compatible inclusion of service_host/port/ssl_flag for keep_disks.
Peter Amstutz [Tue, 20 May 2014 15:37:33 +0000 (11:37 -0400)]
2776: Added Keep services page to workbench (uses default layouts)
Peter Amstutz [Tue, 20 May 2014 14:30:20 +0000 (10:30 -0400)]
2776: Added controller and route for keep_services, fixed tests.
Peter Amstutz [Tue, 20 May 2014 14:10:43 +0000 (10:10 -0400)]
2776: Added keep_services model and migration.
Tim Pierce [Tue, 13 May 2014 15:06:00 +0000 (11:06 -0400)]
2755: Verify permission signatures on create.
Phase 1 of #2755: when creating a new collection, verify any permission
signatures found in the manifest. Unsigned locators in the manifest are
implicitly permitted (to be disabled in Phase 4)
* New "Locator" class to parse, examine and manipulate Keep locators.
* Collections.create checks permission signatures in a manifest.
* Collections.show signs locators in a manifest.
* collections_controller_test.rb: new unit tests to exercise signed
manifests and related features:
- "create collection with signed manifest"
- "create collection with signed manifest and explicit TTL"
- "create fails with invalid signature"
- "create fails with uuid of signed manifest"
- "multiple locators per line"
- "multiple signed locators per line"
* application.yml.example: new configuration variables
- Rails.configuration.blob_signing_key
- Rails.configuration.blob_signing_ttl
(refs #2755)
Peter Amstutz [Mon, 19 May 2014 21:11:09 +0000 (17:11 -0400)]
2776: Started adding KeepServices model.
Tom Clegg [Mon, 19 May 2014 20:50:19 +0000 (16:50 -0400)]
Fix crash when saving api_client_authorization during migration.
Peter Amstutz [Mon, 19 May 2014 19:15:01 +0000 (15:15 -0400)]
2798: Finished writing documentation comment for buffer package.
Tom Clegg [Mon, 19 May 2014 18:57:37 +0000 (14:57 -0400)]
2352: Reset column information between adding a new serialized
attribute and using the model. Otherwise, Rails (4) fails to validate
the serialized attribute.
Peter Amstutz [Mon, 19 May 2014 18:56:27 +0000 (14:56 -0400)]
2798: Continued refactoring buffer reader into separate buffer package. Made
internal buffer management functions package-internal and added a public API.
Updated keepclient to use buffer package public API. Added HashCheckingReader
to provide transparent checking of checksums. Added more package and API
comments.
Tom Clegg [Mon, 19 May 2014 16:21:56 +0000 (12:21 -0400)]
Prevent admin from creating an object with empty string as UUID.
Tim Pierce [Fri, 16 May 2014 19:29:31 +0000 (15:29 -0400)]
2770: terminate on SIGTERM.
When SIGTERM is received, the Keep server shuts down gracefully. (refs #2770)
Tom Clegg [Fri, 16 May 2014 19:28:20 +0000 (15:28 -0400)]
2809: Fix arvados_api_client usage in FileStreamer. refs #2809
Tom Clegg [Fri, 16 May 2014 14:57:32 +0000 (10:57 -0400)]
Remove debug log message. refs #1969
Tom Clegg [Fri, 16 May 2014 00:44:28 +0000 (20:44 -0400)]
2809: Fix disappearing ArvadosApiClient in development mode. refs #2809
Tom Clegg [Thu, 15 May 2014 21:14:15 +0000 (17:14 -0400)]
2755: Defer to CollectionReader to get manifests instead of going
directly to Keep (which only works when Keep has no permission
checks).
refs #2755
Ward Vandewege [Thu, 15 May 2014 21:11:08 +0000 (17:11 -0400)]
Merge branch '0000-arv-mount-bugfixes'
This closes #2831
Ward Vandewege [Thu, 15 May 2014 20:47:42 +0000 (16:47 -0400)]
CollectionReader can throw exceptions (for example, when passing an
argument that is not a manifest or collection UUID). Trap those and
print an error message, instead blowing up the fuse driver.
Peter Amstutz [Thu, 15 May 2014 20:47:14 +0000 (16:47 -0400)]
2798: Completed move of Transfer() related code out to 'buffer' package.
Peter Amstutz [Thu, 15 May 2014 20:42:33 +0000 (16:42 -0400)]
2798: Added AuthorizedGet(), Ask() and AuthorizedAsk(). Added BLOCKSIZE
constant and moved errors.New() declarations to the top of the file. Improved
test server runner. Changed some test methods to take copies of KeepClient
instead of pointer.
Peter Amstutz [Thu, 15 May 2014 20:36:18 +0000 (16:36 -0400)]
Moved non-keep-specific buffering code into a separate package.
Peter Amstutz [Thu, 15 May 2014 20:22:33 +0000 (16:22 -0400)]
1885: Renamed DiscoverKeepDisks to DiscoverKeepServers, moved error.New()
declarations to the top, changed some tests to use KeepClient copy instead of
pointer.
Ward Vandewege [Thu, 15 May 2014 20:18:38 +0000 (16:18 -0400)]
In daemon mode, arv-mount should set up the fuse connection before
forking to the background, so that any failures to set up are reported
to the user.
Peter Amstutz [Thu, 15 May 2014 19:14:55 +0000 (15:14 -0400)]
1885: First commit of most complete keep proxy, no tests yet. Removed build.sh
in favor of go.sh that wraps 'go' with the desired GOPATH and 'go get'. Added
keepclient.Ask() method which does HTTP HEAD. Added AuthorizedGet() and
AuthorizedAsk() which provide signature and timestamp.
Tom Clegg [Thu, 15 May 2014 18:19:32 +0000 (14:19 -0400)]
2809: Merge branch '2809-workbench-rails4' refs #2809
Tom Clegg [Thu, 15 May 2014 18:19:06 +0000 (14:19 -0400)]
2809: Merge branch 'master' into 2809-workbench-rails4 refs #2809
Conflicts:
apps/workbench/app/models/arvados_api_client.rb
Tom Clegg [Thu, 15 May 2014 16:30:25 +0000 (12:30 -0400)]
2809: Move coffee-rails out of :assets section to make tests thread-safe.
Otherwise, when Rails decides to build assets while running the test
suite, we get:
WARN: tilt autoloading 'coffee_script' in a non thread-safe way; explicit require 'coffee_script' suggested.
Tom Clegg [Thu, 15 May 2014 16:26:10 +0000 (12:26 -0400)]
2809: Remove javascript and coffeescript boilerplate.
Tom Clegg [Wed, 14 May 2014 22:00:09 +0000 (18:00 -0400)]
2809: Remove some unnecessary sleep(0.1).
Tom Clegg [Wed, 14 May 2014 21:56:59 +0000 (17:56 -0400)]
2809: Rearrange "run API server during tests" to suit Minitest 5.
Also, use passenger instead of webrick.
Tom Clegg [Wed, 14 May 2014 20:35:39 +0000 (16:35 -0400)]
2809: Upgrade to Rails 4.1
Tom Clegg [Wed, 14 May 2014 18:21:05 +0000 (14:21 -0400)]
2809: Add wait_for_ajax after submitting forms, to avoid race condition.