Peter Amstutz [Wed, 4 Jun 2014 19:23:31 +0000 (15:23 -0400)]
Merge remote-tracking branch 'origin/master' into 2882-job-process-stats
Peter Amstutz [Wed, 4 Jun 2014 19:23:11 +0000 (15:23 -0400)]
2882: Improved re-run job buttons on job status page
Peter Amstutz [Wed, 4 Jun 2014 19:19:10 +0000 (15:19 -0400)]
Merge branch 'master' into 2882-job-process-stats refs #2882
Peter Amstutz [Wed, 4 Jun 2014 19:03:37 +0000 (15:03 -0400)]
Merge branch 'origin-2939-re-run-job-button' into 2882-job-process-stats
Peter Amstutz [Wed, 4 Jun 2014 18:52:07 +0000 (14:52 -0400)]
2882: arv-mount restores signal handlers after sp.wait(). Fixed spelling ellapsed -> elapsed.
Brett Smith [Wed, 4 Jun 2014 14:30:16 +0000 (10:30 -0400)]
2933: Add Keep signing key configuration to Docker.
This is a little hypothetical until we Dockerize the new Keep server,
but it's necessary to get the API server running.
Refs #2933.
Brett Smith [Wed, 4 Jun 2014 14:29:05 +0000 (10:29 -0400)]
2933: Update Docker to use new Python package build process.
Refs #2933.
radhika [Wed, 4 Jun 2014 15:17:31 +0000 (11:17 -0400)]
Merge branch 'master' into 2895-no-more-redis
Tim Pierce [Tue, 3 Jun 2014 20:53:50 +0000 (16:53 -0400)]
2865: reduce Keep memory usage.
Eliminate ioutil.ReadAll to reduce unnecessary 2x memory allocations.
* PutBlockHandler allocates a buffer exactly as long as
req.ContentLength and fills it with io.ReadFull.
* GetBlock uses ioutil.ReadFile (which it arguably should have been
doing in the first place).
Refs #2865.
Peter Amstutz [Tue, 3 Jun 2014 20:10:29 +0000 (16:10 -0400)]
2882: Explicit polling frequency
Brett Smith [Tue, 3 Jun 2014 20:07:55 +0000 (16:07 -0400)]
2953: crunch-job strips permission hints from output manifests.
The API server also strips permission hints from submitted
collections, and will reject it if the specified UUID doesn't match
that result. As a consequence, this is necessary for crunch-job to
register output with the API server.
Closes #2953.
Peter Amstutz [Tue, 3 Jun 2014 19:22:33 +0000 (15:22 -0400)]
Merge remote-tracking branch 'origin/master' into origin-2939-re-run-job-button refs #2939
Conflicts:
services/api/db/schema.rb
Peter Amstutz [Tue, 3 Jun 2014 19:09:42 +0000 (15:09 -0400)]
2882: Added crunchstat service to collect cgroup stats, and added support to
crunch-job.
radhika [Tue, 3 Jun 2014 18:57:02 +0000 (14:57 -0400)]
2895: remove arvados.jobs.log_stream from arv
radhika [Tue, 3 Jun 2014 18:46:45 +0000 (14:46 -0400)]
Merge branch 'master' into 2895-no-more-redis
Ward Vandewege [Tue, 3 Jun 2014 15:01:00 +0000 (11:01 -0400)]
Fix workbench URL in inactive user notification e-mail.
refs #2681
Ward Vandewege [Tue, 3 Jun 2014 13:50:32 +0000 (09:50 -0400)]
Merge branch '2951-more-robust-fuse-test-teardown'
refs #2951
Ward Vandewege [Tue, 3 Jun 2014 13:40:54 +0000 (09:40 -0400)]
Retry the fusermount call up to 10 times with a small pause between
calls if it is not successful. This should make the teardown of the fuse
mount more reliable in automated testing.
refs #2951
Tom Clegg [Tue, 3 Jun 2014 00:35:49 +0000 (20:35 -0400)]
2872: Fix attribute_editable? to play nicer with group ownership. refs #2872
Brett Smith [Mon, 2 Jun 2014 21:26:50 +0000 (17:26 -0400)]
2893: API server accepts all serialized parameters as JSON.
This commit takes the bugfix that was applied in
135f306e, and ensures
it's applied to all serialized attributes.
Peter Amstutz [Mon, 2 Jun 2014 20:44:26 +0000 (16:44 -0400)]
2882: crunch-dispatch now sends a clean environment to crunch-job.
Tom Clegg [Mon, 2 Jun 2014 19:14:15 +0000 (15:14 -0400)]
2872: Change default order of folder contents. refs #2872
Tom Clegg [Mon, 2 Jun 2014 19:13:52 +0000 (15:13 -0400)]
2872: Ensure name link tail_uuid == owner_uuid. refs #2872
Ward Vandewege [Mon, 2 Jun 2014 19:17:44 +0000 (15:17 -0400)]
Merge branch '2681-new-inactive-user-notification'
refs #2681
Ward Vandewege [Mon, 2 Jun 2014 19:15:42 +0000 (15:15 -0400)]
Merge branch 'master' into 2681-new-inactive-user-notification
Peter Amstutz [Mon, 2 Jun 2014 18:47:33 +0000 (14:47 -0400)]
2882: Added button to cancel a running job.
Peter Amstutz [Mon, 2 Jun 2014 18:22:00 +0000 (14:22 -0400)]
2882: arv-mount --exec forwards SIGINT and SIGTERM to the underlying subprocess.
radhika [Mon, 2 Jun 2014 17:56:50 +0000 (13:56 -0400)]
2903: rename db migrate script with clear description
radhika [Mon, 2 Jun 2014 17:51:03 +0000 (13:51 -0400)]
Merge branch 'master' into 2903-remove-pi-active-and-success
Conflicts:
services/api/db/schema.rb
Peter Amstutz [Mon, 2 Jun 2014 17:32:23 +0000 (13:32 -0400)]
Merge branch 'master' into 2882-job-process-stats refs #2882
Ward Vandewege [Mon, 2 Jun 2014 17:31:33 +0000 (13:31 -0400)]
Merge branch 'master' into 2681-new-inactive-user-notification
Ward Vandewege [Mon, 2 Jun 2014 17:02:30 +0000 (13:02 -0400)]
DTRT with system_user in our user test case. Partial revocation of
commit:
e9fc734b
Brett Smith [Mon, 2 Jun 2014 14:55:15 +0000 (10:55 -0400)]
2752: Show arv-put output on stdin test failure.
Brett Smith [Mon, 2 Jun 2014 14:54:43 +0000 (10:54 -0400)]
2755: Adjust arv-put test invocation.
This method works better with the new test layout.
Brett Smith [Mon, 2 Jun 2014 14:23:42 +0000 (10:23 -0400)]
2752: arv-put works when it can't write a cache file.
Brett Smith [Mon, 2 Jun 2014 14:03:30 +0000 (10:03 -0400)]
2752: Rename test_arv_put.py.
This allows us to run specific test cases from the command-line. The
hyphen in the filename prevented that before.
Brett Smith [Mon, 2 Jun 2014 13:48:58 +0000 (09:48 -0400)]
2752/2755: Move test_cmdline code to test_arv-put.
Tim and I wrote tests for arv-put simultaneously. This commit merges
them together.
Peter Amstutz [Mon, 2 Jun 2014 13:21:56 +0000 (09:21 -0400)]
2939: Use JSON.dump instead of Oj.dump, solves the symbol keys problem.
Peter Amstutz [Mon, 2 Jun 2014 12:52:06 +0000 (08:52 -0400)]
Merge remote-tracking branch 'origin/master' into origin-2939-re-run-job-button refs #2939
Conflicts:
services/api/db/schema.rb
Peter Amstutz [Mon, 2 Jun 2014 12:50:33 +0000 (08:50 -0400)]
2939: Added repository to re-run with latest button label
Tom Clegg [Sun, 1 Jun 2014 04:13:33 +0000 (00:13 -0400)]
2872: Remove name column from collections table.
Peter Amstutz [Sat, 31 May 2014 01:52:49 +0000 (21:52 -0400)]
2939: Added generic "options" parameter to #create to allow workbench pages to
specify additional parameters to be passed through to the API server.
Peter Amstutz [Sat, 31 May 2014 01:02:59 +0000 (21:02 -0400)]
Merge remote-tracking branch 'refs/remotes/origin/2939-create-params' into origin-2939-re-run-job-button
Peter Amstutz [Sat, 31 May 2014 00:54:54 +0000 (20:54 -0400)]
2939: added no_reuse, nondeterministic
radhika [Fri, 30 May 2014 21:42:22 +0000 (17:42 -0400)]
2903: merge master
radhika [Fri, 30 May 2014 21:39:44 +0000 (17:39 -0400)]
Merge branch 'master' into 2903-remove-pi-active-and-success
radhika [Fri, 30 May 2014 21:29:04 +0000 (17:29 -0400)]
Merge branch 'master' into 2895-no-more-redis
Tom Clegg [Fri, 30 May 2014 21:22:33 +0000 (17:22 -0400)]
2939: Allow caller to pass additional parameters to create API.
radhika [Fri, 30 May 2014 21:18:17 +0000 (17:18 -0400)]
2895: remove redis gem
Tom Clegg [Fri, 30 May 2014 21:12:34 +0000 (17:12 -0400)]
2893: Fix accepting JSON-encoded components_summary in API calls. refs #2893
Peter Amstutz [Fri, 30 May 2014 20:45:00 +0000 (16:45 -0400)]
2939: Added a status page for jobs that is similar to the pipeline instance
status page. Adds two "Re-run job" buttons that allow you to re-run either the
exact version or the version that was originally supplied (usually a branch
name). Adds a "supplied_script_version" column to jobs to remember the
original script_version contents.
radhika [Fri, 30 May 2014 20:21:49 +0000 (16:21 -0400)]
Merge branch 'master' into 2895-no-more-redis
radhika [Fri, 30 May 2014 20:20:19 +0000 (16:20 -0400)]
2895: remove jobs.log_tail_follow api since we are now using websockets instead of redis
Ward Vandewege [Fri, 30 May 2014 19:50:59 +0000 (15:50 -0400)]
Merge branch 'master' into 2681-new-inactive-user-notification
Ward Vandewege [Fri, 30 May 2014 19:49:44 +0000 (15:49 -0400)]
Refactor user notification tests
Tim Pierce [Fri, 30 May 2014 19:27:48 +0000 (15:27 -0400)]
Merge branch '2755-python-sdk-permissions'
Closes #2755.
Tim Pierce [Fri, 30 May 2014 19:22:32 +0000 (15:22 -0400)]
Merge branch 'master' into 2755-python-sdk-permissions
Conflicts:
sdk/python/bin/arv-put
radhika [Fri, 30 May 2014 19:17:54 +0000 (15:17 -0400)]
2895: remove users.event_stream api
Brett Smith [Fri, 30 May 2014 19:06:37 +0000 (15:06 -0400)]
2752: Include arvados.commands submodule in built packages.
Tom Clegg [Fri, 30 May 2014 18:55:21 +0000 (14:55 -0400)]
2893: Merge branch '2893-no-symbols-in-db' closes #2893
Tom Clegg [Fri, 30 May 2014 18:54:27 +0000 (14:54 -0400)]
2893: Merge branch 'master' into 2893-no-symbols-in-db
Conflicts:
services/api/test/fixtures/links.yml
Tim Pierce [Fri, 30 May 2014 18:42:03 +0000 (14:42 -0400)]
Merge remote-tracking branch 'refs/remotes/origin/2755-python-sdk-permissions-TC' into 2755-python-sdk-permissions
Refs #2755.
Tim Pierce [Fri, 30 May 2014 18:40:37 +0000 (14:40 -0400)]
2755: add unit test for Collection.normalize_uuid.
Peter Amstutz [Fri, 30 May 2014 18:40:06 +0000 (14:40 -0400)]
Pass PATH, PYTHONPATH and PERLLIB environment from crunch-dispatcher to
crunch-job, this makes setting up a working crunch-dispatch much easier.
Tom Clegg [Fri, 30 May 2014 17:26:45 +0000 (13:26 -0400)]
2893: Add test cases. Stringify all serialized attrs coming from DB,
not just Hash. Rename has_any_symbols? to has_symbols?.
Tom Clegg [Fri, 30 May 2014 15:06:17 +0000 (11:06 -0400)]
2755: Let the API server decide the correct collection UUID format.
Tom Clegg [Fri, 30 May 2014 14:45:00 +0000 (10:45 -0400)]
2931: Remove {dependent: :destroy} in ArvadosModel. HasUuid does that now. closes #2931
Brett Smith [Fri, 30 May 2014 14:45:02 +0000 (10:45 -0400)]
Merge branch '2752-arv-put-resume'
Closes #2752, #2864.
Brett Smith [Fri, 30 May 2014 14:21:59 +0000 (10:21 -0400)]
2752: arv-put doesn't update the resume cache when aborted.
It's appealing to try to save the latest state when we have the
opportunity, but the problem is that we can't be sure that our
CollectionWriter is in a consistent state when we get a signal or
exception. The previous code could potentially write inconsistent
state, which would appear to resume successfully but PUT different
data. Instead rely exclusively on cache updates that are done from a
known consistent state.
Brett Smith [Fri, 30 May 2014 13:49:34 +0000 (09:49 -0400)]
2752: arv-put explains resumed uploads in more detail.
Wording suggested by Peter in refs #2752.
Brett Smith [Fri, 30 May 2014 13:46:08 +0000 (09:46 -0400)]
2752: arv-put writes newline after 100% human progress report.
Brett Smith [Fri, 30 May 2014 13:45:24 +0000 (09:45 -0400)]
2752: arv-put always displays 100% progress at the end.
It's okay to call writer.finish_current_stream() this way, because
every branch at the end ultimately calls it.
Brett Smith [Fri, 30 May 2014 13:08:50 +0000 (09:08 -0400)]
2752: Avoid ResumeCache name collisions from concatenating paths.
Brett Smith [Thu, 29 May 2014 20:36:30 +0000 (16:36 -0400)]
2752: arv-put checkpoints after a PUT to Keep.
This allows us to recover after a pulled-the-plug kind of failure, but
is still noticeably less overhead than checkpointing after each file.
Brett Smith [Thu, 29 May 2014 20:09:36 +0000 (16:09 -0400)]
2752: arv-put handles exit signals.
Brett Smith [Thu, 29 May 2014 20:36:14 +0000 (16:36 -0400)]
2752: Resumed collection writer doesn't do_queued_work immediately.
As noted in the comments, callers that build a writer from resumed
state must do_queued_work on it before anything else. But this split
makes it easier to treat initialization problems and work problems
separately, which is critical.
This required refactor progress reporting a bit.
Brett Smith [Thu, 29 May 2014 17:53:29 +0000 (13:53 -0400)]
2752: Remove unused CollectionWriter checkpoint hook.
Brett Smith [Thu, 29 May 2014 17:07:23 +0000 (13:07 -0400)]
2752: arv-put only caches state on failure.
This is slightly less robust, but writing the cache after every data
flush is too expensive.
Brett Smith [Thu, 29 May 2014 17:02:14 +0000 (13:02 -0400)]
2752: Don't duplicate arv-put work after resume.
This change serializes the command-line arguments that we've actually
processed, vs. not. That allows us to safely iterate over them again
to upload any files that we hadn't started, while skipping the ones
we've already done.
Brett Smith [Thu, 29 May 2014 12:55:25 +0000 (08:55 -0400)]
2752: arv-put displays progress quickly after resuming.
Refs #2752.
Brett Smith [Thu, 29 May 2014 12:54:33 +0000 (08:54 -0400)]
2752: arv-put displays a notice when it resumes.
Based on a suggestion from Peter in refs #2752.
Brett Smith [Wed, 28 May 2014 21:27:47 +0000 (17:27 -0400)]
2752: arv-put ResumeCache constructor only accepts path argument.
Refs #2752. Using exceptions to accept parsed arguments in the
constructor as well was too clever by half.
Brett Smith [Wed, 28 May 2014 17:56:10 +0000 (13:56 -0400)]
2752: Fix arv-put's write percentage output.
Brett Smith [Wed, 28 May 2014 17:55:43 +0000 (13:55 -0400)]
2752: Quiet arv-put stdin integration test.
Brett Smith [Tue, 27 May 2014 14:49:13 +0000 (10:49 -0400)]
2752: Avoid hiccup on arv-put with short stdin.
Trying to call os.stat(os.path.realpath('/dev/stdin')) usually fails
in this case. Since we're never going to be able to resume from stdin
anyway, don't bother with that check in this case.
Brett Smith [Tue, 27 May 2014 14:20:50 +0000 (10:20 -0400)]
2752: Improve arv-put initialization from cache.
This puts ArvPutCollectionWriter's own instance variables, like the
progress reporter function, in place before work is resumed.
Brett Smith [Tue, 27 May 2014 14:04:19 +0000 (10:04 -0400)]
2752: arv-put saves and restores write progress information.
This will make output less confusing to the user, and help them
understand that an upload is resuming.
Brett Smith [Mon, 26 May 2014 11:31:07 +0000 (07:31 -0400)]
2752: arv-put shouldn't resume from expired Keep locators.
Brett Smith [Mon, 26 May 2014 11:15:37 +0000 (07:15 -0400)]
2752: Add KeepLocator class to Python SDK.
I hope this can be one place to parse and manipulate locator strings.
Brett Smith [Mon, 26 May 2014 12:12:25 +0000 (08:12 -0400)]
2752: arv-put resumes interrupted downloads from cache.
This commit simply uses all the state-saving work in arv-put's main()
function.
Brett Smith [Fri, 23 May 2014 20:46:49 +0000 (16:46 -0400)]
2752: Add ResumeCache.restart().
This will make it easier for the user to bypass the cache.
Brett Smith [Fri, 23 May 2014 20:22:39 +0000 (16:22 -0400)]
2752: Refactor progress reporting in arv-put's CollectionWriter.
Brett Smith [Fri, 23 May 2014 19:52:50 +0000 (15:52 -0400)]
2752: Separate and test progress reporting functions.
Brett Smith [Fri, 23 May 2014 18:55:56 +0000 (14:55 -0400)]
2752: Factor out arv-put byte tally, and test.
Brett Smith [Fri, 23 May 2014 17:16:25 +0000 (13:16 -0400)]
2752: Add ResumableCollectionWriter serialization to arv-put.
Brett Smith [Mon, 26 May 2014 12:02:15 +0000 (08:02 -0400)]
2752: Add ResumeCache to arv-put.
This class encapsulates all the functionality necessary to
de/serialize ResumableWriter state.
Brett Smith [Mon, 26 May 2014 12:01:27 +0000 (08:01 -0400)]
2752: Generate cache filenames from arv-put arguments.
Brett Smith [Thu, 22 May 2014 21:10:40 +0000 (17:10 -0400)]
2752: Add basic test for arv-put.
Brett Smith [Thu, 22 May 2014 20:46:15 +0000 (16:46 -0400)]
2752: Extract common Python test methods.
I'm going to reuse these to test arv-put.
Brett Smith [Thu, 22 May 2014 20:11:10 +0000 (16:11 -0400)]
2752: Move arv-put functionality to arvados.commands.put.
This will make it easier to unit test arv-put, and make it easier for
developers to extend or customize its functionality.