Phil Hodgson [Fri, 3 Oct 2014 16:42:27 +0000 (12:42 -0400)]
3634: If a link has the class "force-cache-reload", then on browser-back the page will be reloaded
(a modal will be shown to the user while the reload is occurring)
Tom Clegg [Fri, 3 Oct 2014 14:16:16 +0000 (10:16 -0400)]
3775: Run local/dev jobs on code from arbitrary remote git repositories.
* repository is a local path X -> use local repository X or X/.git.
* repository is a git url (git://, https://, git@host:repo.git, etc)
fetch branches, tags, and objects from the remote and use the result
to resolve script_version to a commit sha1 and run the job.
* else -> look up the named repository in Arvados and use its
fetch_url as a remote git url as above.
* --git-dir is given on the command line -> use that instead of
$Job->{repository} in the above logic. (This isn't new. It ensures
we don't go off fetching arbitrary remotes when crunch-dispatch.rb
has already pulled the code into its own internal git repo.)
Incidental changes:
* Lose support for looking up subversion revision numbers using
git-svn tags.
* Lose support for CRUNCH_DEFAULT_GIT_DIR environment variable. Pass
--git-dir instead.
* Improve log messages during checkout/install phase.
Tom Clegg [Fri, 3 Oct 2014 13:42:33 +0000 (09:42 -0400)]
3775: Remove stagnant $job_has_uuid flag. Every job has a uuid. The
only time to skip updating the job record on the server side is when
croak() happens before $Job is created/fetched.
Peter Amstutz [Wed, 1 Oct 2014 21:12:52 +0000 (17:12 -0400)]
3769: Add rate_limit with log throttling logic. Multiple configuration
parameters to throttle excessive logging by bytes, lines, logs table events,
and total logged output.
Tim Pierce [Wed, 1 Oct 2014 20:52:17 +0000 (16:52 -0400)]
3782: code review feedback
* Fixed whitespace, JavaScript style in _show_log.html.erb
* Removed unused bytecount variable from file_enumerator
* Changed the new job and collection fixtures to have the job uuid match
the uuid listed in the log.
Tim Pierce [Wed, 1 Oct 2014 18:28:38 +0000 (14:28 -0400)]
4000: tighten up functional test
Updated the test to ensure that a copied pipeline instance actually has
the expected script_parameters from both the source instance and source
template, respectively.
Tim Pierce [Wed, 1 Oct 2014 17:50:53 +0000 (13:50 -0400)]
3782: bugfix and added integration test
* Fixed bug where log viewer would always request partial log and receive
206, even when total log size is shorter than log_viewer_max_bytes.
* Added integration tests:
** set up KEEP_LOCAL_STORE with dummy log
** test retrieving full job log
** test retrieving partial job log
Peter Amstutz [Wed, 1 Oct 2014 16:00:25 +0000 (12:00 -0400)]
3769: Allow up to crunch_limit_log_event_throttle_rate per
crunch_limit_log_event_throttle_period, then silence the logs until the next
crunch_limit_log_event_throttle_period.
Peter Amstutz [Wed, 1 Oct 2014 15:23:37 +0000 (11:23 -0400)]
3859: Added AlreadyLockedError for job lock conflict. Added runningbarbaz
fixture so test "cancel someone else's visible job" is testing the right thing.
Tim Pierce [Tue, 30 Sep 2014 22:07:15 +0000 (18:07 -0400)]
4000: fix copying pipeline instances with newer templates
* When copying script parameters from a pipeline instance, check that
the component exists in the source instance before blindly
dereferencing it.
* Added tests for copying when components=use_latest and when
script=use_same (the two edge cases exposed by this bug)
Peter Amstutz [Tue, 30 Sep 2014 19:40:37 +0000 (15:40 -0400)]
4004: Rename "Compute status" to "Compute and job status". Added integration
tests for buttons. Reduced dashboard page rendering time by at least 25% by
batching certain API server requests (previously happing per-object),
Tim Pierce [Mon, 29 Sep 2014 22:25:36 +0000 (18:25 -0400)]
3782: check for Content-Range header in response
Change the logic for detecting whether the log has been truncated to:
* response status code is 206
* a Content-Range header is present with 'bytes 0-x/y'
* x + 1 < y
Add a "download full log" link that is present when the full log is
available to be viewed.
Tim Pierce [Tue, 30 Sep 2014 04:42:16 +0000 (00:42 -0400)]
3961: test creating subprojects under home with duplicate names
New tests:
* unprivileged user creating a subproject under their home project, with
an existing name, returns 422
* unprivileged user creating a subproject under their home project, with
an existing name, and ensure_unique_name=true, succeeds
Tim Pierce [Mon, 29 Sep 2014 21:55:17 +0000 (17:55 -0400)]
3782: keep log viewer code in _show_log.html.erb
Keep log-related restrictions in the log viewer and not in general
purpose workbench code:
* Add Rails.configuration.log_viewer_max_bytes to specify the maximum
number of log bytes to display
* The log viewer specifies a byte limit via the HTTP Range header. The
Content-Length of the response is set to the minimum of the 'size'
query parameter and the byte range. If the log appears to have been
truncated, the viewer reports it in the 'log_viewer_overview' pane.
* CollectionsController.FileStreamer either delivers the entire file
or exactly opts[:maxbytes] bytes, whichever comes first. It does not
add any log-specific message.