arvados.git
10 years ago3990: set owner_uuid of a copied pipeline instance to that of the source, provided...
radhika [Mon, 6 Oct 2014 20:27:25 +0000 (16:27 -0400)]
3990: set owner_uuid of a copied pipeline instance to that of the source, provided it is a project and writable by the current user.

10 years agoarv-put parses arguments before instantiating an API client.
Brett Smith [Mon, 6 Oct 2014 19:16:23 +0000 (15:16 -0400)]
arv-put parses arguments before instantiating an API client.

This helps ensure that `--help` responds quickly even if the server is
slow or down.  No issue #.

10 years agoMerge branch '3634-tab-state' refs #3634
Phil Hodgson [Mon, 6 Oct 2014 19:11:19 +0000 (15:11 -0400)]
Merge branch '3634-tab-state' refs #3634

10 years agocloses #4046
radhika [Mon, 6 Oct 2014 18:55:10 +0000 (14:55 -0400)]
closes #4046
Merge branch '4046-job-queue-position'

10 years agoMerge branch 'master' into 3634-tab-state
Phil Hodgson [Mon, 6 Oct 2014 18:53:08 +0000 (14:53 -0400)]
Merge branch 'master' into 3634-tab-state

Conflicts (resolved):
apps/workbench/app/views/application/_title_and_buttons.html.erb

10 years agoMerge branch 'master' into 4046-job-queue-position
radhika [Mon, 6 Oct 2014 18:51:20 +0000 (14:51 -0400)]
Merge branch 'master' into 4046-job-queue-position

10 years ago3634: add anchor to URL when switching project tabs
Phil Hodgson [Mon, 6 Oct 2014 18:49:45 +0000 (14:49 -0400)]
3634: add anchor to URL when switching project tabs

10 years ago4046: update assert error message
radhika [Mon, 6 Oct 2014 18:47:43 +0000 (14:47 -0400)]
4046: update assert error message

10 years agoMerge branch '3782-stub-io-pipe' refs #3782
Tom Clegg [Mon, 6 Oct 2014 18:37:06 +0000 (14:37 -0400)]
Merge branch '3782-stub-io-pipe' refs #3782

10 years agoMerge branch 'master' into 4046-job-queue-position
radhika [Mon, 6 Oct 2014 18:30:52 +0000 (14:30 -0400)]
Merge branch 'master' into 4046-job-queue-position

10 years agoMerge branch '3825-crunch-pipe-to-arv-put-final'
Tim Pierce [Mon, 6 Oct 2014 18:22:00 +0000 (14:22 -0400)]
Merge branch '3825-crunch-pipe-to-arv-put-final'

Closes #3825.

10 years ago3825: code review
Tim Pierce [Mon, 6 Oct 2014 17:24:47 +0000 (13:24 -0400)]
3825: code review

* avoid overloading "output" (usually used for the output from a task or job than for diagnostic output from crunch)
** renamed:
*** start_output_log -> log_writer_start
*** write_output_log -> log_writer_send
*** finish_output_log -> log_writer_finish
*** output_log_is_active -> log_writer_is_active
* fixed missing semicolon

10 years ago3782: Merge branch 'master' into 3782-stub-io-pipe
Tom Clegg [Mon, 6 Oct 2014 17:56:30 +0000 (13:56 -0400)]
3782: Merge branch 'master' into 3782-stub-io-pipe

10 years agocloses #3583
radhika [Mon, 6 Oct 2014 17:50:11 +0000 (13:50 -0400)]
closes #3583
Merge branch '3583-provenance-graph-issue'

10 years agoMerge branch 'master' into 3583-provenance-graph-issue
radhika [Mon, 6 Oct 2014 17:49:33 +0000 (13:49 -0400)]
Merge branch 'master' into 3583-provenance-graph-issue

10 years agoMerge branch 'master' into 4046-job-queue-position
radhika [Mon, 6 Oct 2014 17:47:22 +0000 (13:47 -0400)]
Merge branch 'master' into 4046-job-queue-position

10 years ago4046: update queue_position method to increment index and add unit test.
radhika [Mon, 6 Oct 2014 17:45:58 +0000 (13:45 -0400)]
4046: update queue_position method to increment index and add unit test.

10 years agoMerge branch '3859-crunch-job-use-lock' closes #3859
Peter Amstutz [Mon, 6 Oct 2014 17:13:15 +0000 (13:13 -0400)]
Merge branch '3859-crunch-job-use-lock' closes #3859

10 years ago3782: Avoid using a huge read buffer when client requests a huge range. Add test.
Tom Clegg [Mon, 6 Oct 2014 17:10:39 +0000 (13:10 -0400)]
3782: Avoid using a huge read buffer when client requests a huge range. Add test.

10 years ago3782: Stub IO.pipe() with StringIO instead of stubbing content with KEEP_LOCAL_STORE.
Tom Clegg [Mon, 6 Oct 2014 16:40:12 +0000 (12:40 -0400)]
3782: Stub IO.pipe() with StringIO instead of stubbing content with KEEP_LOCAL_STORE.

10 years ago3782: Restore config settings changed during tests. (copied from API server)
Tom Clegg [Mon, 6 Oct 2014 16:00:50 +0000 (12:00 -0400)]
3782: Restore config settings changed during tests. (copied from API server)

10 years agoMerge branch '3687-grant-permission-on-repo-TC' closes #3687
Tom Clegg [Mon, 6 Oct 2014 15:51:49 +0000 (11:51 -0400)]
Merge branch '3687-grant-permission-on-repo-TC' closes #3687

10 years ago3687: Merge branch 'master' into 3687-grant-permission-on-repo-TC
Tom Clegg [Mon, 6 Oct 2014 15:15:05 +0000 (11:15 -0400)]
3687: Merge branch 'master' into 3687-grant-permission-on-repo-TC

10 years agocloses #4025
radhika [Mon, 6 Oct 2014 14:39:41 +0000 (10:39 -0400)]
closes #4025
Merge branch '4025-move-project-button-label'

10 years ago4025: Change the button label 'Move...' to 'Move <object_class>...' and update test...
radhika [Mon, 6 Oct 2014 14:23:49 +0000 (10:23 -0400)]
4025: Change the button label 'Move...' to 'Move <object_class>...' and update test assertion accordingly.

10 years agoMerge branch 'master' into 4025-move-project-button-label
radhika [Mon, 6 Oct 2014 14:18:12 +0000 (10:18 -0400)]
Merge branch 'master' into 4025-move-project-button-label

Conflicts:
apps/workbench/app/views/application/_title_and_buttons.html.erb

10 years ago3687: Add comment about redundant lookup.
Tom Clegg [Fri, 3 Oct 2014 23:59:00 +0000 (19:59 -0400)]
3687: Add comment about redundant lookup.

10 years ago3687: OK here just means this loop is OK, not everything is OK!
Tom Clegg [Fri, 3 Oct 2014 23:44:56 +0000 (19:44 -0400)]
3687: OK here just means this loop is OK, not everything is OK!

10 years ago3687: in User#can?, consider permission links with head_uuid pointing directly at...
Tom Clegg [Fri, 3 Oct 2014 21:41:54 +0000 (17:41 -0400)]
3687: in User#can?, consider permission links with head_uuid pointing directly at the target.

10 years agocloses #4036
radhika [Fri, 3 Oct 2014 21:22:09 +0000 (17:22 -0400)]
closes #4036
Merge branch '4036-combine-collections-in-project-issue'

10 years ago3687: add functional test for sharing within a group
Tim Pierce [Fri, 3 Oct 2014 18:48:34 +0000 (14:48 -0400)]
3687: add functional test for sharing within a group

Test that two unprivileged users in the same group can share collections.

10 years ago3634: If a link has the class "force-cache-reload", then on browser-back the page...
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)

10 years ago3634: set the response to ask the browser nicely to never cache
Phil Hodgson [Fri, 3 Oct 2014 16:41:08 +0000 (12:41 -0400)]
3634: set the response to ask the browser nicely to never cache
(even though it will use its "bfcache" anyway for many cases)

10 years ago4036: add comment for flash alert div
radhika [Fri, 3 Oct 2014 14:13:10 +0000 (10:13 -0400)]
4036: add comment for flash alert div

10 years agoMerge branch 'master' into 4036-combine-collections-in-project-issue
radhika [Fri, 3 Oct 2014 14:05:59 +0000 (10:05 -0400)]
Merge branch 'master' into 4036-combine-collections-in-project-issue

10 years agoMerge branch 'master' into 3634-tab-state
Phil Hodgson [Fri, 3 Oct 2014 12:35:06 +0000 (08:35 -0400)]
Merge branch 'master' into 3634-tab-state

10 years ago4025: add fa-fw to the newly added i tag class like all other such usages.
radhika [Fri, 3 Oct 2014 11:34:33 +0000 (07:34 -0400)]
4025: add fa-fw to the newly added i tag class like all other such usages.

10 years ago4205: add tooltips to pipeline instance tab line buttons
radhika [Fri, 3 Oct 2014 11:15:23 +0000 (07:15 -0400)]
4205: add tooltips to pipeline instance tab line buttons

10 years agoMerge branch 'master' into 4025-move-project-button-label
radhika [Fri, 3 Oct 2014 00:08:54 +0000 (20:08 -0400)]
Merge branch 'master' into 4025-move-project-button-label

10 years ago4025: add tooltips to some of the tab line buttons and also adjust the title of the...
radhika [Fri, 3 Oct 2014 00:07:11 +0000 (20:07 -0400)]
4025: add tooltips to some of the tab line buttons and also adjust the title of the "Move" button.

10 years ago3825: write log output directly to a pipe.
Tim Pierce [Thu, 2 Oct 2014 18:40:25 +0000 (14:40 -0400)]
3825: write log output directly to a pipe.

Added functions:
* start_output_log($logfilename)
* write_output_log($txt)
* finish_output_log()
* output_log_is_active()

Rewrote all code that referenced $local_logfile in terms of these
functions.

10 years agoMerge branch '3769-throttle-logs' closes #3769
Peter Amstutz [Thu, 2 Oct 2014 20:33:16 +0000 (16:33 -0400)]
Merge branch '3769-throttle-logs' closes #3769

10 years ago3769: Spelling fix and remove debugging puts.
Peter Amstutz [Thu, 2 Oct 2014 20:32:02 +0000 (16:32 -0400)]
3769: Spelling fix and remove debugging puts.

10 years ago4036: correct div class
radhika [Thu, 2 Oct 2014 19:13:26 +0000 (15:13 -0400)]
4036: correct div class

10 years ago3583: extend encode quotes logic for script parameters as well, just in case.
radhika [Thu, 2 Oct 2014 18:54:59 +0000 (14:54 -0400)]
3583: extend encode quotes logic for script parameters as well, just in case.

10 years agoMerge branch 'master' into 3583-provenance-graph-issue
radhika [Thu, 2 Oct 2014 16:19:54 +0000 (12:19 -0400)]
Merge branch 'master' into 3583-provenance-graph-issue

10 years ago4036: update the test that combines files from within a collection to expect the...
radhika [Thu, 2 Oct 2014 15:43:09 +0000 (11:43 -0400)]
4036: update the test that combines files from within a collection to expect the new collection in current project, if applicable and writable.

10 years agoMerge branch 'master' into 4036-combine-collections-in-project-issue
radhika [Thu, 2 Oct 2014 15:01:35 +0000 (11:01 -0400)]
Merge branch 'master' into 4036-combine-collections-in-project-issue

10 years ago4036: when files in a collection are combined, create the new collection in the origi...
radhika [Thu, 2 Oct 2014 14:59:50 +0000 (10:59 -0400)]
4036: when files in a collection are combined, create the new collection in the original collection's project, provided it is writable.

10 years agoMerge branch 'master' into 3769-throttle-logs
Peter Amstutz [Thu, 2 Oct 2014 14:52:47 +0000 (10:52 -0400)]
Merge branch 'master' into 3769-throttle-logs

Conflicts:
services/api/script/crunch-dispatch.rb

10 years agoMerge branch '3052-crunch-log-stdout' closes #3052
Peter Amstutz [Thu, 2 Oct 2014 14:51:36 +0000 (10:51 -0400)]
Merge branch '3052-crunch-log-stdout' closes #3052

10 years agoMerge branch 'master' into 3052-crunch-log-stdout
Peter Amstutz [Thu, 2 Oct 2014 14:46:37 +0000 (10:46 -0400)]
Merge branch 'master' into 3052-crunch-log-stdout

10 years ago3052: Change ruby style ruby style {:stderr => ''} to json style {stderr: ''}
Peter Amstutz [Thu, 2 Oct 2014 14:46:23 +0000 (10:46 -0400)]
3052: Change ruby style ruby style {:stderr => ''} to json style {stderr: ''}

10 years agoMerge branch '3782-large-job-logs'
Tim Pierce [Thu, 2 Oct 2014 14:44:30 +0000 (10:44 -0400)]
Merge branch '3782-large-job-logs'

Closes #3782.

10 years ago3782: fix FuseSharedTest
Tim Pierce [Thu, 2 Oct 2014 14:44:13 +0000 (10:44 -0400)]
3782: fix FuseSharedTest

10 years ago4036: update combine collection tests to expect the newly created collection in the...
radhika [Thu, 2 Oct 2014 14:29:04 +0000 (10:29 -0400)]
4036: update combine collection tests to expect the newly created collection in the right project.

10 years agoAdd test fixture to fix "test_cancel_someone_else's_visible_job" refs #3859
Peter Amstutz [Thu, 2 Oct 2014 13:22:28 +0000 (09:22 -0400)]
Add test fixture to fix "test_cancel_someone_else's_visible_job" refs #3859

10 years ago4036: improve rails flash message display to check if the message is an error.
radhika [Thu, 2 Oct 2014 12:32:05 +0000 (08:32 -0400)]
4036: improve rails flash message display to check if the message is an error.

10 years agoMerge branch 'master' into 3583-provenance-graph-issue
radhika [Thu, 2 Oct 2014 10:49:45 +0000 (06:49 -0400)]
Merge branch 'master' into 3583-provenance-graph-issue

10 years ago3583: replace " characters with \" in node value to ensure graph does not get mixed...
radhika [Thu, 2 Oct 2014 10:49:15 +0000 (06:49 -0400)]
3583: replace " characters with \" in node value to ensure graph does not get mixed up on node labels.

10 years agoMerge branch 'master' of git.curoverse.com:arvados into 4036-combine-collections...
radhika [Thu, 2 Oct 2014 10:37:25 +0000 (06:37 -0400)]
Merge branch 'master' of git.curoverse.com:arvados into 4036-combine-collections-in-project-issue

10 years ago4046: when combining collections in a project, set current project as owner (if writa...
radhika [Thu, 2 Oct 2014 10:35:50 +0000 (06:35 -0400)]
4046: when combining collections in a project, set current project as owner (if writable) and show the new collection.

10 years agoMerge branch '3859-api-job-lock-method' refs #3859
Peter Amstutz [Thu, 2 Oct 2014 02:01:19 +0000 (22:01 -0400)]
Merge branch '3859-api-job-lock-method' refs #3859

10 years ago3769: Tweak throttle/truncate messages and application.default.yml defaults.
Peter Amstutz [Thu, 2 Oct 2014 01:59:59 +0000 (21:59 -0400)]
3769: Tweak throttle/truncate messages and application.default.yml defaults.

10 years ago3769: Add rate_limit with log throttling logic. Multiple configuration
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.

10 years ago3782: code review feedback
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.

10 years ago3782: added state to job fixture
Tim Pierce [Wed, 1 Oct 2014 20:04:05 +0000 (16:04 -0400)]
3782: added state to job fixture

10 years agoMerge branch 'master' into 3782-large-job-logs
Tim Pierce [Wed, 1 Oct 2014 19:43:15 +0000 (15:43 -0400)]
Merge branch 'master' into 3782-large-job-logs

Conflicts:
services/api/test/fixtures/collections.yml
services/api/test/fixtures/jobs.yml

10 years agoMerge branch '3782-stub-file-content' refs #3782
Tom Clegg [Wed, 1 Oct 2014 19:36:46 +0000 (15:36 -0400)]
Merge branch '3782-stub-file-content' refs #3782

10 years ago3782: Merge branch 'master' into 3782-stub-file-content
Tom Clegg [Wed, 1 Oct 2014 19:35:33 +0000 (15:35 -0400)]
3782: Merge branch 'master' into 3782-stub-file-content

10 years agoMerge branch '3052-crunch-log-stdout' into 3769-throttle-logs
Peter Amstutz [Wed, 1 Oct 2014 19:23:23 +0000 (15:23 -0400)]
Merge branch '3052-crunch-log-stdout' into 3769-throttle-logs

10 years ago3782: Use stubbed file content for "inactive user can retrieve user agreement" test.
Tom Clegg [Wed, 1 Oct 2014 19:12:07 +0000 (15:12 -0400)]
3782: Use stubbed file content for "inactive user can retrieve user agreement" test.

10 years agoMerge branch '4000-rerun-pipeline-changed-template'
Tim Pierce [Wed, 1 Oct 2014 18:59:30 +0000 (14:59 -0400)]
Merge branch '4000-rerun-pipeline-changed-template'

Closes #4000.

10 years ago4000: update both functional tests.
Tim Pierce [Wed, 1 Oct 2014 18:58:58 +0000 (14:58 -0400)]
4000: update both functional tests.

10 years agoMerge branch 'master' into 3769-throttle-logs
Peter Amstutz [Wed, 1 Oct 2014 18:33:23 +0000 (14:33 -0400)]
Merge branch 'master' into 3769-throttle-logs

10 years ago4000: tighten up functional test
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.

10 years agoUse job state field instead of running/success columns. refs #3898
Peter Amstutz [Wed, 1 Oct 2014 18:23:21 +0000 (14:23 -0400)]
Use job state field instead of running/success columns. refs #3898

10 years ago3782: bugfix and added integration test
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

10 years agoMerge branch 'master' into 3583-provenance-graph-issue
radhika [Wed, 1 Oct 2014 17:33:37 +0000 (13:33 -0400)]
Merge branch 'master' into 3583-provenance-graph-issue

10 years ago3583: replace " characters with ' characters in node value to ensure graph does not...
radhika [Wed, 1 Oct 2014 17:31:15 +0000 (13:31 -0400)]
3583: replace " characters with ' characters in node value to ensure graph does not get mixed up on node labels.

10 years ago3859: unit test for job state changes
Peter Amstutz [Wed, 1 Oct 2014 17:06:17 +0000 (13:06 -0400)]
3859: unit test for job state changes

10 years ago3782: Merge branch 'master' into 3782-stub-file-content
Tom Clegg [Wed, 1 Oct 2014 16:08:01 +0000 (12:08 -0400)]
3782: Merge branch 'master' into 3782-stub-file-content

10 years ago3782: Remove obsolete helper method.
Tom Clegg [Wed, 1 Oct 2014 16:07:58 +0000 (12:07 -0400)]
3782: Remove obsolete helper method.

10 years ago3769: Allow up to crunch_limit_log_event_throttle_rate per
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.

10 years ago3859: Added AlreadyLockedError for job lock conflict. Added runningbarbaz
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.

10 years agoMerge branch '4004-restore-dashboard-buttons' closes #4004
Peter Amstutz [Wed, 1 Oct 2014 13:47:01 +0000 (09:47 -0400)]
Merge branch '4004-restore-dashboard-buttons' closes #4004

10 years ago4004: Add newlines for readability
Peter Amstutz [Wed, 1 Oct 2014 13:46:14 +0000 (09:46 -0400)]
4004: Add newlines for readability

10 years ago3899: Fix for counting complete/failed components refs #3899
Peter Amstutz [Wed, 1 Oct 2014 01:51:41 +0000 (21:51 -0400)]
3899: Fix for counting complete/failed components refs #3899

10 years ago3859: Add functional test for locking and fix tests broken by validate_state_change.
Peter Amstutz [Wed, 1 Oct 2014 01:30:56 +0000 (21:30 -0400)]
3859: Add functional test for locking and fix tests broken by validate_state_change.

10 years agoMerge branch 'master' into 3859-api-job-lock-method
Peter Amstutz [Wed, 1 Oct 2014 00:11:27 +0000 (20:11 -0400)]
Merge branch 'master' into 3859-api-job-lock-method

10 years agoMerge branch 'master' into 3859-crunch-job-use-lock
Peter Amstutz [Wed, 1 Oct 2014 00:11:13 +0000 (20:11 -0400)]
Merge branch 'master' into 3859-crunch-job-use-lock

10 years ago4000: fix copying pipeline instances with newer templates
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)

10 years ago3959: crunch-job use job locking API
Peter Amstutz [Tue, 30 Sep 2014 21:10:07 +0000 (17:10 -0400)]
3959: crunch-job use job locking API

10 years ago3859: Cleaned up validate_state_change. Added unit test for job locking.
Peter Amstutz [Tue, 30 Sep 2014 20:56:52 +0000 (16:56 -0400)]
3859: Cleaned up validate_state_change.  Added unit test for job locking.

10 years ago4004: Rename "Compute status" to "Compute and job status". Added integration
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),

10 years ago3782: check for Content-Range header in response
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.

10 years agoMerge branch '3961-uuid-assignment-not-permitted'
Tim Pierce [Tue, 30 Sep 2014 17:52:38 +0000 (13:52 -0400)]
Merge branch '3961-uuid-assignment-not-permitted'

Closes #3961.

10 years ago3961: fix FuseSharedTest
Tim Pierce [Tue, 30 Sep 2014 17:51:54 +0000 (13:51 -0400)]
3961: fix FuseSharedTest

Added new active_user collection to the FuseSharedTest.

10 years ago3052: Style tweak, iterate over j[:buf] to read streams
Peter Amstutz [Tue, 30 Sep 2014 17:08:19 +0000 (13:08 -0400)]
3052: Style tweak, iterate over j[:buf] to read streams

10 years agoMerge branch '3961-uuid-assignment-not-permitted'
Tim Pierce [Tue, 30 Sep 2014 17:01:07 +0000 (13:01 -0400)]
Merge branch '3961-uuid-assignment-not-permitted'

Closes #3961.