Tim Pierce [Mon, 25 Aug 2014 14:40:28 +0000 (10:40 -0400)]
3448: update tests with "untouchable" volumes
Added a "Touchable" flag to MockVolume, so that we can test that
PutBlock does the right thing when Touch fails. Previous code was using
volume.Bad as an attempt to test this, but that short-circuited the Put
request before it ever attempted to call Touch.
Added TODOs with more testing improvements we can make as time permits.
radhika [Sat, 23 Aug 2014 17:19:39 +0000 (13:19 -0400)]
3153: when new_users_are_active config param is set, even blacklisted users will be "active", and hence the email notification would say the user is setup when auto_setup_new_users is set.
radhika [Fri, 22 Aug 2014 19:51:08 +0000 (15:51 -0400)]
3112: reload current location when error report modal is closing. otherwise, the modal does not show up if the help menu dropdown option is used right after sending an error report from within the 404 page.
Tim Pierce [Fri, 22 Aug 2014 17:52:33 +0000 (13:52 -0400)]
3448: unit tests, bug fixes
UnixVolume.Delete tests the return status of lockfile (oops, left out of
previous commit)
New unit/integration tests:
* TestPutTouch (volume_unix_test.go): issues a volume.Put for a block
that already exists, and confirms that the mtime of the existing block
is updated.
* TestPutBlockTouchFails (keepstore_test.go): issues PutBlock for a
block that already exists but cannot be modified, confirms that the
mtime on the old block is unchanged and that a new copy has been
stored.
Added a volume.Mtime() method to return the block mtime, to assist in
testing.
radhika [Fri, 22 Aug 2014 15:14:32 +0000 (11:14 -0400)]
3153: when exsiting repository name or vm login link is used as username, assert the generated unique username starts with the given username and ends with a number.
radhika [Fri, 22 Aug 2014 15:09:31 +0000 (11:09 -0400)]
3153: when deriving unique name, look for all can_login links, not just the vm_uuid configured. update tests to assert the generated username ends with a number when using a preconfigured username for this link.
Tom Clegg [Fri, 22 Aug 2014 00:16:47 +0000 (20:16 -0400)]
3171: Do not follow permission graph through a User, unless permission on the User is can_manage. Restore usual permission model to user lookups. Add tests.
Tim Pierce [Thu, 21 Aug 2014 20:33:50 +0000 (16:33 -0400)]
3448: unit tests for deleting new blocks
Added cases to TestDeleteHandler to test that blocks newer than
-permission_ttl will not be removed from the volume even if
volume.Delete() returned true.
Tim Pierce [Thu, 21 Aug 2014 19:55:47 +0000 (15:55 -0400)]
3448: code review comments.
Extend GetBlock() to optionally update the file modification time, so
PUT operations can update the timestamp of an existing block.
UnixVolume.Delete() returns nil if the file is too new to delete (the
reasoning here is that this is the correct thing for the server to do,
even if the result technically does not fulfill the user's request, so
the server should return success).
Tim Pierce [Thu, 21 Aug 2014 17:50:18 +0000 (13:50 -0400)]
3448: check block timestamp before DELETE
volume.Delete locks the target file and checks the timestamp before
proceeding. If the file is newer than permission_ttl specifies, return a
PermissionError. This way, a block that has been marked for recycling by
Data Manager but subsequently was re-added by a user will not be
prematurely deleted.
PutBlock now updates the timestamp on the target block if it already
exists on disk, to prevent DELETE from recycling old blocks that have
just been refreshed.
To update block timestamps, the blob server uses the new volume.Touch
method. MockVolume and UnixVolume have been updated appropriately.
Peter Amstutz [Thu, 21 Aug 2014 16:13:11 +0000 (12:13 -0400)]
3504: Set owner_uuid when creating collection (will set owner_uuid of name link
on old apiserver, and set owner of collection object directly on new
apiserver.)
Peter Amstutz [Thu, 21 Aug 2014 15:03:58 +0000 (11:03 -0400)]
3504: Fixed preload_links_for_objects to use @objects.to_a. Fix collections
page to restore link names. Remove obsolete tests for "persist" button. Tweak
pipeline instance tests.
Peter Amstutz [Wed, 20 Aug 2014 21:10:37 +0000 (17:10 -0400)]
3504: Use preload_links_for_objects in projects_controller. Use
self[:portable_data_hash] in collection.rb to avoid recursive definition of
.uuid and .portable_data_hash. Revert change to show_attributes. Removed
column from collections show_recent. Reverted python tests to correspond to
behavior of pre-3036 API server so test pass.