arvados.git
9 years ago3408: Merge branch 'master' into 3408-production-datamanager
Tom Clegg [Tue, 17 Feb 2015 18:46:32 +0000 (13:46 -0500)]
3408: Merge branch 'master' into 3408-production-datamanager

9 years agoMerge branch '4759-timestamp-precision-TC' closes #4759
Tom Clegg [Tue, 17 Feb 2015 17:07:50 +0000 (12:07 -0500)]
Merge branch '4759-timestamp-precision-TC' closes #4759

9 years agocloses #5220
Radhika Chippada [Tue, 17 Feb 2015 15:25:24 +0000 (10:25 -0500)]
closes #5220
Merge branch '5220-no-sharing-box-for-anon-user'

9 years ago5220: whitespace cleanup.
Ward Vandewege [Tue, 17 Feb 2015 15:13:16 +0000 (10:13 -0500)]
5220: whitespace cleanup.

9 years ago4759: Add functional tests for timestamp precision.
Tom Clegg [Tue, 17 Feb 2015 06:35:41 +0000 (01:35 -0500)]
4759: Add functional tests for timestamp precision.

9 years ago4759: Add test for inequality filters.
Tom Clegg [Tue, 17 Feb 2015 03:36:03 +0000 (22:36 -0500)]
4759: Add test for inequality filters.

9 years ago4759: Ignore args to as_json.
Tom Clegg [Tue, 17 Feb 2015 03:35:20 +0000 (22:35 -0500)]
4759: Ignore args to as_json.

9 years ago5220: do not show "Sharing and permissions" box when an anonymous user is viewing...
Radhika Chippada [Mon, 16 Feb 2015 23:30:03 +0000 (18:30 -0500)]
5220: do not show "Sharing and permissions" box when an anonymous user is viewing a shared collection.

9 years agocloses #5189
Radhika Chippada [Mon, 16 Feb 2015 22:46:05 +0000 (17:46 -0500)]
closes #5189
Merge branch '5189-manage-acct-shows-own-repos'

9 years ago5189: a little cleanup
Radhika Chippada [Mon, 16 Feb 2015 22:45:01 +0000 (17:45 -0500)]
5189: a little cleanup

9 years agoMerge branch 'master' into 5189-manage-acct-shows-own-repos
Radhika Chippada [Mon, 16 Feb 2015 22:28:40 +0000 (17:28 -0500)]
Merge branch 'master' into 5189-manage-acct-shows-own-repos

9 years agoMerge branch '3410-replication-attrs' closes #3410 refs #5011
Tom Clegg [Mon, 16 Feb 2015 20:53:51 +0000 (15:53 -0500)]
Merge branch '3410-replication-attrs' closes #3410 refs #5011

9 years agoFix typo in COPYING.
Ward Vandewege [Mon, 16 Feb 2015 20:02:48 +0000 (15:02 -0500)]
Fix typo in COPYING.

No issue #

9 years ago3410: Merge branch 'master' into 3410-replication-attrs
Tom Clegg [Mon, 16 Feb 2015 19:13:00 +0000 (14:13 -0500)]
3410: Merge branch 'master' into 3410-replication-attrs

Conflicts:
services/api/test/fixtures/collections.yml
services/api/test/unit/collection_test.rb

9 years ago4759: Use ISO 8601 timestamps with fractional seconds in API responses.
Tom Clegg [Mon, 16 Feb 2015 19:00:09 +0000 (14:00 -0500)]
4759: Use ISO 8601 timestamps with fractional seconds in API responses.

9 years agorefs #5096
Radhika Chippada [Mon, 16 Feb 2015 17:50:21 +0000 (12:50 -0500)]
refs #5096
Merge branch '5096-wb-collection-name-or-desc-update'

9 years agoMerge branch 'master' into 5096-wb-collection-name-or-desc-update
Radhika Chippada [Mon, 16 Feb 2015 17:46:00 +0000 (12:46 -0500)]
Merge branch 'master' into 5096-wb-collection-name-or-desc-update

Conflicts:
apps/workbench/test/controllers/collections_controller_test.rb

9 years ago5096: more efficient update method override.
Radhika Chippada [Mon, 16 Feb 2015 17:42:17 +0000 (12:42 -0500)]
5096: more efficient update method override.

9 years agoMerge branch 'master' into 5189-manage-acct-shows-own-repos
Radhika Chippada [Mon, 16 Feb 2015 16:33:55 +0000 (11:33 -0500)]
Merge branch 'master' into 5189-manage-acct-shows-own-repos

9 years agoMerge branch '5095-fuse-ls-takes-forever' closes #5095
Peter Amstutz [Mon, 16 Feb 2015 16:33:34 +0000 (11:33 -0500)]
Merge branch '5095-fuse-ls-takes-forever' closes #5095

9 years ago5189: include owned repositories in the list of repositories returned in manage_account.
Radhika Chippada [Mon, 16 Feb 2015 16:29:54 +0000 (11:29 -0500)]
5189: include owned repositories in the list of repositories returned in manage_account.

9 years ago5095: _mtime on collection defaults to 0 instead of time.time().
Peter Amstutz [Mon, 16 Feb 2015 16:01:58 +0000 (11:01 -0500)]
5095: _mtime on collection defaults to 0 instead of time.time().

9 years ago5095: Set _mtime when the collection object is updated.
Peter Amstutz [Mon, 16 Feb 2015 15:11:42 +0000 (10:11 -0500)]
5095: Set _mtime when the collection object is updated.

9 years agocloses #5186
Radhika Chippada [Mon, 16 Feb 2015 13:56:02 +0000 (08:56 -0500)]
closes #5186
Merge branch '5186-collection-with-empty-properties'

9 years ago5186: a few more test assertions.
Radhika Chippada [Mon, 16 Feb 2015 13:54:43 +0000 (08:54 -0500)]
5186: a few more test assertions.

9 years ago3410: Update comments.
Tom Clegg [Mon, 16 Feb 2015 08:12:43 +0000 (03:12 -0500)]
3410: Update comments.

9 years ago3410: Fix search index so [old versions of] tests pass after down-migration.
Tom Clegg [Mon, 16 Feb 2015 08:12:32 +0000 (03:12 -0500)]
3410: Fix search index so [old versions of] tests pass after down-migration.

9 years ago3410: Fix overly sensitive test.
Tom Clegg [Mon, 16 Feb 2015 08:11:23 +0000 (03:11 -0500)]
3410: Fix overly sensitive test.

9 years ago5186: collection properties attribute is a hash
Radhika Chippada [Sun, 15 Feb 2015 20:48:46 +0000 (15:48 -0500)]
5186: collection properties attribute is a hash

9 years ago3410: Update comments.
Tom Clegg [Sun, 15 Feb 2015 01:20:37 +0000 (20:20 -0500)]
3410: Update comments.

9 years ago3410: Rename maybe_clear_redundancy_confirmed to maybe_clear_replication_confirmed.
Tom Clegg [Sun, 15 Feb 2015 00:56:19 +0000 (19:56 -0500)]
3410: Rename maybe_clear_redundancy_confirmed to maybe_clear_replication_confirmed.

9 years ago5096: if only collection name or description is being updated, do not include manifes...
Radhika Chippada [Sat, 14 Feb 2015 23:46:14 +0000 (18:46 -0500)]
5096: if only collection name or description is being updated, do not include manifest_text in the request.

9 years agoEnsure result order is predictable, even if client-provided orders do not specify...
Tom Clegg [Sat, 14 Feb 2015 21:54:00 +0000 (16:54 -0500)]
Ensure result order is predictable, even if client-provided orders do not specify a complete ordering.

Fixes intermittent test failures. Example (from
https://ci.curoverse.com/job/arvados-api-server/1305/console):

GroupsTest#test_get_all_pages_of_group-owned_objects [/data/1/jenkins/workspace/arvados-api-server/services/api/test/integration/groups_test.rb:31]:
Received 'zzzzz-4zz18-fy296fx3hot09f7' again on page 3.
<nil> expected but was
<true>.

No issue #

9 years agoMerge branch '5011-thread-safe-test' refs #5011
Tom Clegg [Sat, 14 Feb 2015 22:02:12 +0000 (17:02 -0500)]
Merge branch '5011-thread-safe-test' refs #5011

9 years agoMerge branch '5200-anonymous-download'
Ward Vandewege [Sat, 14 Feb 2015 13:39:46 +0000 (08:39 -0500)]
Merge branch '5200-anonymous-download'

Closes #5200

9 years agoMerge branch 'master' into 5200-anonymous-download
Ward Vandewege [Sat, 14 Feb 2015 13:39:15 +0000 (08:39 -0500)]
Merge branch 'master' into 5200-anonymous-download

9 years agoMerge branch 'master' into 3408-production-datamanager
Tom Clegg [Fri, 13 Feb 2015 22:02:16 +0000 (17:02 -0500)]
Merge branch 'master' into 3408-production-datamanager

9 years agoAdded different event types for started, partially complete and final log entries.
mishaz [Tue, 10 Feb 2015 02:39:39 +0000 (02:39 +0000)]
Added different event types for started, partially complete and final log entries.

9 years agoMoved some logging code from datamananager to loggerutil.
mishaz [Tue, 10 Feb 2015 02:11:34 +0000 (02:11 +0000)]
Moved some logging code from datamananager to loggerutil.

9 years agoUpdated logger to do all work in a dedicated goroutine, so we don't need to worry...
mishaz [Tue, 10 Feb 2015 01:55:37 +0000 (01:55 +0000)]
Updated logger to do all work in a dedicated goroutine, so we don't need to worry about locking. Small changes to calling code.

9 years agoRenamed timestamp fields to begin with "time_"
mishaz [Fri, 30 Jan 2015 01:32:31 +0000 (01:32 +0000)]
Renamed timestamp fields to begin with "time_"

9 years agoNow fetch Keep Server Status and record it to the log. Renamed some fields and added...
mishaz [Fri, 30 Jan 2015 01:25:11 +0000 (01:25 +0000)]
Now fetch Keep Server Status and record it to the log. Renamed some fields and added a comment for a potential improvement to decrease lock contention.

9 years agoImproved erorr message to make it clear what's a size and what's a timestamp.
mishaz [Tue, 27 Jan 2015 01:27:37 +0000 (01:27 +0000)]
Improved erorr message to make it clear what's a size and what's a timestamp.

9 years agoRenamed BlockDigest's ToString() to String() to implement fmt.Stringer() interface...
mishaz [Tue, 27 Jan 2015 01:06:21 +0000 (01:06 +0000)]
Renamed BlockDigest's ToString() to String() to implement fmt.Stringer() interface so that we get more readable error messages when structs contain BlockDigests.

9 years agoA bunch of changes, most in response to Peter's review.
mishaz [Sat, 24 Jan 2015 02:22:01 +0000 (02:22 +0000)]
A bunch of changes, most in response to Peter's review.

Logger:
Edit() and Record() have been replaced with the single Update() method which takes a function as input (suggested by Tom).
lastWrite replaced by nextWriteAllowed, for cleaner logic
Added writeScheduled to reduce the number of writes scheduled and attempted, thereby reducing lock contention
Added sanity-checking of params
A bunch of overdue cleanup
Update documentation to reflect the above changes

Manifest:
Renamed ManifestLine to ManifestStream

Util:
Deleted a lot of crap that proved less useful than I thought.
Moved collection.NumberCollectionsAvailable() to util.NumberItemsAvailable() and made it more generic.

collection:
Just cleanup in response to changes in above packages.

keep:
Switched Mtime from int to int64 to avoid y2038 problems.
Switched approach for avoiding keep proxy from using "accessible" to filtering on service_type = disk.
Cleanup in response to changes in above packages.

loggerutil:
Cleanup in response to changes in logger.

9 years agoAdded comment, ran gofmt.
mishaz [Wed, 21 Jan 2015 01:34:29 +0000 (01:34 +0000)]
Added comment, ran gofmt.

9 years agoAdded Logger.MutateLog() on Tom's suggestion. Tried it out in one instance to make...
mishaz [Wed, 21 Jan 2015 01:31:17 +0000 (01:31 +0000)]
Added Logger.MutateLog() on Tom's suggestion. Tried it out in one instance to make sure it works.

9 years agoFinished adding logging to keep.GetServerContents but have not tested fully yet.
mishaz [Wed, 14 Jan 2015 01:40:50 +0000 (01:40 +0000)]
Finished adding logging to keep.GetServerContents but have not tested fully yet.

9 years agoran gofmt
mishaz [Wed, 14 Jan 2015 00:50:21 +0000 (00:50 +0000)]
ran gofmt

9 years agoBroke keep.GetServerContents() into smaller functions.
mishaz [Wed, 14 Jan 2015 00:49:31 +0000 (00:49 +0000)]
Broke keep.GetServerContents() into smaller functions.

9 years agoRemoved channel awareness from keep.GetServerContents().
mishaz [Tue, 13 Jan 2015 23:56:05 +0000 (23:56 +0000)]
Removed channel awareness from keep.GetServerContents().

9 years agogofmt'd all my source code. No other changes.
mishaz [Tue, 13 Jan 2015 23:27:05 +0000 (23:27 +0000)]
gofmt'd all my source code. No other changes.

9 years agoStarted logging in keep.go. More work to be done.
mishaz [Tue, 13 Jan 2015 01:15:34 +0000 (01:15 +0000)]
Started logging in keep.go. More work to be done.

9 years agoCreated loggerutil to hold common datamanager logger code. Moved FatalWithMessage...
mishaz [Tue, 13 Jan 2015 00:49:53 +0000 (00:49 +0000)]
Created loggerutil to hold common datamanager logger code. Moved FatalWithMessage to it.

9 years agoMoved some logic from datamanager.go to keep.go.
mishaz [Tue, 13 Jan 2015 00:23:17 +0000 (00:23 +0000)]
Moved some logic from datamanager.go to keep.go.

9 years agoStarted reading collections and keep data in parallel. Moved some logic from datamana...
mishaz [Mon, 12 Jan 2015 23:20:50 +0000 (23:20 +0000)]
Started reading collections and keep data in parallel. Moved some logic from datamanager.go to collections.go. Added logging to end of run.

9 years agoMerge branch 'master' of git.curoverse.com:arvados into 3408-production-datamanager
mishaz [Sun, 11 Jan 2015 18:29:13 +0000 (18:29 +0000)]
Merge branch 'master' of git.curoverse.com:arvados into 3408-production-datamanager

Conflicts resolved:
services/api/Gemfile
services/api/Gemfile.lock

9 years agoAdded recording of fatal errors to logger.
mishaz [Fri, 9 Jan 2015 04:53:42 +0000 (04:53 +0000)]
Added recording of fatal errors to logger.

9 years agoAdded ForceRecord() method to enable writing remaining log changes before exiting.
mishaz [Fri, 9 Jan 2015 04:11:29 +0000 (04:11 +0000)]
Added ForceRecord() method to enable writing remaining log changes before exiting.

9 years agoSwitched Logger edit hooks to write hooks so they'll trigger less often.
mishaz [Fri, 9 Jan 2015 04:00:40 +0000 (04:00 +0000)]
Switched Logger edit hooks to write hooks so they'll trigger less often.

9 years agoSwitched batch size to 50. Added logging of batch size.
mishaz [Thu, 8 Jan 2015 23:22:09 +0000 (23:22 +0000)]
Switched batch size to 50. Added logging of batch size.

9 years agoAdded memory alloc in use to stats exported to log. Also added EditHooks to Logger...
mishaz [Thu, 8 Jan 2015 23:17:52 +0000 (23:17 +0000)]
Added memory alloc in use to stats exported to log. Also added EditHooks to Logger, enabling users to add functions to get called on each Edit() call.

9 years agoAdded structure to data manager log entries, grouping similar fields.
mishaz [Thu, 8 Jan 2015 22:35:37 +0000 (22:35 +0000)]
Added structure to data manager log entries, grouping similar fields.

9 years agoAdded ability to turn off logging by passing an empty string as the event type.
mishaz [Thu, 8 Jan 2015 22:24:00 +0000 (22:24 +0000)]
Added ability to turn off logging by passing an empty string as the event type.

9 years agoStarted using Logger in data manager and collections.
mishaz [Thu, 8 Jan 2015 22:16:49 +0000 (22:16 +0000)]
Started using Logger in data manager and collections.

9 years agoAdded support for MinimumWriteInterval.
mishaz [Thu, 8 Jan 2015 21:06:49 +0000 (21:06 +0000)]
Added support for MinimumWriteInterval.

9 years agoFixed bugs in logger, changed interface some, added documentation.
mishaz [Thu, 8 Jan 2015 20:14:10 +0000 (20:14 +0000)]
Fixed bugs in logger, changed interface some, added documentation.
Still need to add support for MinimunWriteInterval.

9 years agoAdded logger to write log messages that grow over time. Not working yet.
mishaz [Thu, 8 Jan 2015 01:47:51 +0000 (01:47 +0000)]
Added logger to write log messages that grow over time. Not working yet.

9 years agoStarted focusing on Keep Server responses again. Switched to using blockdigest instea...
mishaz [Wed, 7 Jan 2015 04:16:40 +0000 (04:16 +0000)]
Started focusing on Keep Server responses again. Switched to using blockdigest instead of strings. Added per block info so that we can track block replication across servers.

9 years agoFixed heap profile writing so that we overwrite previous heap profiles rather than...
mishaz [Wed, 7 Jan 2015 01:45:55 +0000 (01:45 +0000)]
Fixed heap profile writing so that we overwrite previous heap profiles rather than adding to them. Minor cleanup too.

9 years agoAdded string copying to try to reduce memory usage, didn't seem to work. Cleaned...
mishaz [Wed, 24 Dec 2014 20:26:38 +0000 (20:26 +0000)]
Added string copying to try to reduce memory usage, didn't seem to work. Cleaned up logging (and logging logic) so that we only see one line per batch.

9 years agoStarted parsing modification date as a timestamp instead of leaving it as a string.
mishaz [Wed, 24 Dec 2014 19:29:08 +0000 (19:29 +0000)]
Started parsing modification date as a timestamp instead of leaving it as a string.

9 years agoSwitched from strings to BlockDigests to hold block digests more efficiently. Started...
mishaz [Wed, 24 Dec 2014 01:36:43 +0000 (01:36 +0000)]
Switched from strings to BlockDigests to hold block digests more efficiently. Started clearing out manifest text once we finished with it. Made profiling conitional on flag (before it crashed if not provided). Added final heap profile once collections were finished.

Runs to completion!

9 years agoChanges to manifest that I forgot to add to previous checking.
mishaz [Wed, 24 Dec 2014 00:24:07 +0000 (00:24 +0000)]
Changes to manifest that I forgot to add to previous checking.

9 years agoAdded blockdigest class to store digests more efficiently. This has the nice side...
mishaz [Tue, 23 Dec 2014 23:55:12 +0000 (23:55 +0000)]
Added blockdigest class to store digests more efficiently. This has the nice side effect of reducing how many string slices we use from the SDK, so the large string can get garbage collected once we remove other usages.

9 years agoLong overdue checkin of data manager. Current code runs, but uses way too much memory...
mishaz [Tue, 23 Dec 2014 19:33:07 +0000 (19:33 +0000)]
Long overdue checkin of data manager. Current code runs, but uses way too much memory and eventually crashes. This checkin includes heap profiling to track down memory usage.

9 years agoAdded reporting of disk usage. This is the Collection Storage of each user as describ...
mishaz [Sat, 22 Nov 2014 00:57:40 +0000 (00:57 +0000)]
Added reporting of disk usage. This is the Collection Storage of each user as described here: https://arvados.org/projects/arvados/wiki/Data_Manager_Design_Doc#Reports-Produced
But it does not include the size of projects owned by the user (projects and subprojects are each reported as their own users)

Report is just logged to screen for now.

9 years agoStarted reading index from keep servers.
mishaz [Thu, 16 Oct 2014 20:57:06 +0000 (20:57 +0000)]
Started reading index from keep servers.
Added lots of code to handle unexpected results from keep server.

9 years agoStarted reading response from keep server.
mishaz [Wed, 15 Oct 2014 20:53:53 +0000 (20:53 +0000)]
Started reading response from keep server.

9 years agoMerge branch 'master' of git.curoverse.com:arvados into 3408-production-datamanager
Tom Clegg [Fri, 13 Feb 2015 21:22:55 +0000 (16:22 -0500)]
Merge branch 'master' of git.curoverse.com:arvados into 3408-production-datamanager

9 years ago5095: Record mtime() from group#contents
Peter Amstutz [Fri, 13 Feb 2015 21:22:43 +0000 (16:22 -0500)]
5095: Record mtime() from group#contents

9 years ago5095: Don't check update when getting mtime().
Peter Amstutz [Fri, 13 Feb 2015 21:12:02 +0000 (16:12 -0500)]
5095: Don't check update when getting mtime().

9 years agoMerge branch '5037-nonocache' closes #5037
Tom Clegg [Fri, 13 Feb 2015 19:03:13 +0000 (14:03 -0500)]
Merge branch '5037-nonocache' closes #5037

9 years agoMerge branch '5030-hide-graph-until-data' closes #5030
Tom Clegg [Fri, 13 Feb 2015 18:17:36 +0000 (13:17 -0500)]
Merge branch '5030-hide-graph-until-data' closes #5030

9 years ago5011: Fix unreliable test.
Tom Clegg [Fri, 13 Feb 2015 00:04:01 +0000 (19:04 -0500)]
5011: Fix unreliable test.

The collection writer was (sometimes) consuming the last 200 response
even though it could write 3 copies without it. This shouldn't fail
the test: the only reason we count the PUT calls is to verify all
three of the 200 responses were consumed (i.e., none of the 500
responses were counted toward the achieved replication level). To
verify this without being sensitive to extra requests, we simply
arrange for the three 200 responses to be the last ones available.

9 years ago5011: Use a threadsafe wrapper to feed side effects to mocks.
Tom Clegg [Thu, 12 Feb 2015 23:56:02 +0000 (18:56 -0500)]
5011: Use a threadsafe wrapper to feed side effects to mocks.

9 years ago5200: Fix overly sensitive fuse test. (Do not fail every time a fixture is added.)
Tom Clegg [Thu, 12 Feb 2015 23:23:38 +0000 (18:23 -0500)]
5200: Fix overly sensitive fuse test. (Do not fail every time a fixture is added.)

9 years ago5200: Do not fail tests if application.yml is missing: defaults are enough to pass...
Tom Clegg [Thu, 12 Feb 2015 22:42:16 +0000 (17:42 -0500)]
5200: Do not fail tests if application.yml is missing: defaults are enough to pass tests.

9 years ago5200: Enable anonymous file view/download.
Tom Clegg [Thu, 12 Feb 2015 22:09:17 +0000 (17:09 -0500)]
5200: Enable anonymous file view/download.

9 years agoMerge branch '4839-worker-state' closes #4839
Tom Clegg [Thu, 12 Feb 2015 19:24:55 +0000 (14:24 -0500)]
Merge branch '4839-worker-state' closes #4839

9 years agoMerge branch '4904-arv-web' closes #4904
Peter Amstutz [Thu, 12 Feb 2015 18:53:34 +0000 (13:53 -0500)]
Merge branch '4904-arv-web' closes #4904

9 years agoMerge branch 'master' into 4904-arv-web
Peter Amstutz [Thu, 12 Feb 2015 18:52:48 +0000 (13:52 -0500)]
Merge branch 'master' into 4904-arv-web

9 years ago4904: Remove extraneous ciddir and cidfilepath. Explicit non-zero exit code
Peter Amstutz [Thu, 12 Feb 2015 18:52:28 +0000 (13:52 -0500)]
4904: Remove extraneous ciddir and cidfilepath.  Explicit non-zero exit code
when an ArgumentError is caught.

9 years ago4839: Use node[crunch_worker_state], not node[info][slurm_state], to make shutdown...
Tom Clegg [Thu, 12 Feb 2015 18:35:35 +0000 (13:35 -0500)]
4839: Use node[crunch_worker_state], not node[info][slurm_state], to make shutdown decisions.

9 years agoNode Manager daemon tests avoid checking monitor.is_alive().
Brett Smith [Thu, 12 Feb 2015 16:43:38 +0000 (11:43 -0500)]
Node Manager daemon tests avoid checking monitor.is_alive().

Checking is_alive() creates race conditions, because we might check
the actor's live state before it's had a chance to process a stop
message in its queue.  We just had a build fail because of this:
<https://ci.curoverse.com/job/arvados-api-server/1299/>.  Always check
that a monitor is alive by sending it a real message.  No issue #.

9 years agoFix undependable test (incorrectly assumed a particular job would be on the first...
Tom Clegg [Thu, 12 Feb 2015 15:57:36 +0000 (10:57 -0500)]
Fix undependable test (incorrectly assumed a particular job would be on the first page of /jobs). No issue #

9 years agoMerge branch '4951-request-vm-TC' refs #4951
Tom Clegg [Thu, 12 Feb 2015 15:19:42 +0000 (10:19 -0500)]
Merge branch '4951-request-vm-TC' refs #4951

9 years ago4951: Empty out ActionMailer::Base.deliveries so we can count deliveries caused by...
Tom Clegg [Thu, 12 Feb 2015 15:13:46 +0000 (10:13 -0500)]
4951: Empty out ActionMailer::Base.deliveries so we can count deliveries caused by the current test.

9 years ago4951: Rearrange js to make use of Rails built-ins. Add generic AJAX error handler.
Tom Clegg [Thu, 12 Feb 2015 08:18:52 +0000 (03:18 -0500)]
4951: Rearrange js to make use of Rails built-ins. Add generic AJAX error handler.

9 years ago4951: Add localStorage to browser dependency checks.
Tom Clegg [Thu, 12 Feb 2015 07:54:34 +0000 (02:54 -0500)]
4951: Add localStorage to browser dependency checks.