Commit Graph
100 Commits
Author SHA1 Message Date
Garret Alfert c1d60586ec Improve some spec wordings 2016-06-03 01:08:52 +02:00
Garret Alfert 28b6a7f22d Merge branch 'master' into feature/update_to_recent_rs_spec
# Conflicts:
#	spec/swift/app_spec.rb
2016-06-02 22:21:16 +02:00
Garret Alfert a349db5243 Spec for directory listing of non-existing directories 2016-06-02 18:57:40 +02:00
Garret Alfert 576e4a9afb Specs for response headers on GET requests 2016-06-02 18:57:37 +02:00
Garret Alfert 16e51038b1 Send ETag of deleted item in header 2016-06-02 18:56:45 +02:00
Garret Alfert 23f0908f38 No need for Expires header anymore 2016-06-02 18:54:49 +02:00
Garret Alfert ed8061b594 Use content type "application/ld+json" for directory listings 2016-06-02 18:54:47 +02:00
Garret Alfert c897959029 Send "Precondition Failed" message body with 412 responses 2016-06-02 18:49:44 +02:00
Garret Alfert cc91b5c4cd Send "Not Found" message body with 404 responses (refs #42) 2016-06-02 13:19:06 +02:00
Garret Alfert 83d8f29a04 Send "Conflict" message body with 409 responses (closes #409) 2016-06-02 13:18:59 +02:00
Garret Alfert 9a9a9c79e5 Send "Unauthorized" message body with 401 responses (refs #42) 2016-06-02 13:18:51 +02:00
Garret Alfert 781687d8a1 Migration for adding metadata for root dir to Redis 2016-03-07 14:14:07 +01:00
Garret Alfert df87deaf0b Don't fail when order of array is different 2016-03-04 22:48:50 +01:00
Garret Alfert 648f86e0f3 Fix typo in specs 2016-03-04 22:40:04 +01:00
Garret Alfert 1d39445ba9 Fix deleting metadata for empty subdirectories 2016-03-04 22:17:33 +01:00
Garret Alfert 5378826c6a Also use content checksum for ETag calculation
Timestamp is not enough, as it might be the same
for two consequent PUTs.
2016-03-04 22:17:25 +01:00
Garret Alfert 3590b7dedc Determine correct metadata key for objects in root dir 2016-03-04 20:47:41 +01:00
Garret Alfert 1c0bd18915 Delete obsolete method 2016-03-04 20:34:48 +01:00
Garret Alfert 43ff83d26b Don't allow PUTS with Content-Range header 2016-03-04 19:33:00 +01:00
Garret Alfert fd3293025d ETags are quoted, doh 2016-03-04 19:32:36 +01:00
Garret Alfert d08bc45489 Don't use or create any directory objects in Swift 2016-03-04 15:33:28 +01:00
Garret Alfert 14a522f09f Load bundled environment to access all libraries 2016-03-03 00:39:35 +01:00
Garret Alfert 9b7b224f79 Use more explicit key name for items 2016-03-02 18:06:42 +01:00
Garret Alfert c2fd9bc6d0 Change Redis metadata key prefix to rs:m 2016-03-02 18:04:38 +01:00
Garret Alfert 88f2dceb27 Use single letters for Redis metadata keys
Saves 16 characters per document object and 10
characters per directory object
2016-03-02 15:00:33 +01:00
Garret Alfert 650da91a1d Shorten Redis metadata keys
Use rsm:<username>:<dir>:i instead of
rs_meta:<username>:<dir>:items
2016-03-02 14:43:28 +01:00
Garret Alfert 067f4a1553 Use shorter Redis key for dir backend config
rsc:db:username instead of rs_config:dir_backend:username
2016-03-02 14:33:48 +01:00
Garret Alfert ff25b40385 Save last modified timestamp for objects as well 2016-03-02 14:05:53 +01:00
Garret Alfert 19f6fcd068 Use actual Last-Modified time we get from Swift 2016-03-02 14:00:59 +01:00
Garret Alfert d18de83893 Strip trailing whitespace from Swift token 2016-03-02 13:59:44 +01:00
Garret Alfert f1f450cc72 Don't add double trailing slash to container URL
The directory name already contains a trailing slash.
2016-03-01 22:57:54 +01:00
Garret Alfert 41074e35b3 Log usernames for failed migration to separate file
This way they can be easily retried later on.
2016-02-29 15:35:37 +01:00
Garret Alfert 33731f793a Set dry_run via environment variable
Can be enabled via `DRYRUN=true`
2016-02-24 19:07:26 +01:00
Garret Alfert 3b391246ed Use proper logger for migration script 2016-02-24 19:07:15 +01:00
Garret Alfert 570e3dcdb5 Set directory backend type during migration 2016-02-24 19:06:48 +01:00
Garret Alfert 54176b6928 Use data directly from Swift for metadata migration 2016-02-22 16:22:38 +01:00
Garret Alfert 5370df9c75 Basic migration script using actual RS dir listings 2016-02-15 15:15:01 +01:00
Garret Alfert c730333143 Don't try to do put or delete requests to root dir in order to update etag 2016-02-02 18:07:12 +01:00
Garret Alfert d7a71d039f Comment out the Riak settings from example config 2016-02-02 01:04:49 +01:00
Garret Alfert 2516e9090e Make Travis only run Swift specs for now 2016-02-02 00:57:53 +01:00
Garret Alfert 2e6ad907ef Merge branch 'master' into redis_metadata_storage 2016-02-02 00:36:30 +01:00
Garret Alfert 954f046dd9 Make Travis install Redis 2016-02-02 00:19:15 +01:00
Garret Alfert 536df23336 Make Travis create a Swift token file 2016-02-02 00:10:47 +01:00
Garret Alfert 409628c9e7 Trying to fix specs when run on Travis 2016-02-01 18:04:35 +01:00
Garret Alfert 9ba85446ef Use parentheses to fix syntax warnings 2016-02-01 15:00:39 +01:00
Garret Alfert 7084a50d1b Make dir_empty? method use Redis metadata 2016-01-29 16:45:17 +01:00
Garret Alfert 573dadf365 Respond with 503 when directory backend is locked 2016-01-29 16:18:49 +01:00
Garret Alfert a4673e9661 Use directory backend config from redis instead of config file 2016-01-29 16:18:09 +01:00
Garret Alfert 16dcc56fba No need to stub has_name_collision? anymore 2016-01-29 15:16:24 +01:00
Garret Alfert 4ca67c7ea9 Do collision detection via Redis metadata 2016-01-28 19:15:50 +01:00
Garret Alfert 4e7c8f68bb Add missing arguments to method call 2016-01-28 17:48:20 +01:00
Garret Alfert d973771192 Remove some duplication 2016-01-26 20:33:43 +01:00
Garret Alfert 0745354b8a Retrieve directory listing from Redis via Lua 2016-01-26 20:32:29 +01:00
Garret Alfert 737be34e73 Configure the source of dir listing (redis or swift) 2016-01-26 20:21:45 +01:00
Garret Alfert 15196ca4b9 Check IF_NONE_MATCH header for directory listings 2016-01-23 14:29:37 -05:00
Garret Alfert bec9f7a6cc Set ETag header for directory listings 2016-01-23 14:29:18 -05:00
Garret Alfert c676c1a6a8 Add metadata entry for root directory 2016-01-23 14:28:14 -05:00
Garret Alfert 599865cf3f Generate directory listing from Redis metadata 2016-01-23 13:26:38 -05:00
Garret Alfert dfc8a59096 Fix redis keys and content for nested directories 2016-01-23 13:20:42 -05:00
Garret Alfert f73c286ce9 Purge all keys from redis before every test run 2016-01-23 12:34:08 -05:00
Garret Alfert 25c170021e Delete metadata from Redis when deleting objects 2016-01-22 16:04:28 -05:00
Garret Alfert 02e5d0b5ab Fix relative path in riak specs 2016-01-22 14:49:57 -05:00
Garret Alfert 972378e67f Don't care for order of array when comparing 2016-01-22 14:46:41 -05:00
Garret Alfert 189d04af25 Save list of directory items in redis 2016-01-20 17:27:00 -05:00
Garret Alfert cd2c0865e8 Save directory metadata in redis (WIP) 2016-01-20 15:53:22 -05:00
Garret Alfert 990ea9cf28 Save object metadata in redis 2016-01-20 15:33:35 -05:00
Garret Alfert 77bd54b009 Move old specs into riak subdir 2016-01-20 15:32:44 -05:00
Garret Alfert 67ebeb47d8 Use new hook-juggler URL in Travis config
Heroku changed their routing using a new domain.
2014-10-21 16:06:36 +02:00
Garret Alfert 8e355ba532 Respond with 409 on naming collisions between documents and folders 2014-09-23 17:59:28 +02:00
Garret Alfert 1603d3d2ff Merge branch 'master' into rs_spec_02
Conflicts:
	lib/remote_storage/riak.rb
	spec/directories_spec.rb
2014-09-23 17:58:21 +02:00
Garret Alfert a6707dd40d Add spec for unescaped special characters 2014-02-24 20:44:23 +01:00
Garret Alfert 9e6cc6178d Don't choke on colons in directory names (fixes #39) 2014-02-24 17:43:43 +01:00
Garret Alfert ed4152095b Code formatting 2014-01-09 23:58:20 +01:00
Garret Alfert 270ac1442e If-None-Match header may contain multiple revisions 2014-01-09 23:51:05 +01:00
Garret Alfert 38e69f1423 Last-Modified header is not needed anymore 2014-01-09 21:00:13 +01:00
Garret Alfert 8073eec851 HEAD requests for directory listings 2014-01-09 20:03:34 +01:00
Garret Alfert f8b1ad730a HEAD requests for documents 2014-01-09 19:26:36 +01:00
Garret Alfert 6d86fa516a Set Content-Length header for documents on GET 2014-01-08 23:27:07 +01:00
Garret Alfert 75e52f3e9a New directory listing format 2014-01-08 21:41:01 +01:00
Garret Alfert fd8b2059b2 Value for 'Expires' header needs to be a string 2013-12-09 01:57:26 +01:00
Garret Alfert 4ae4865de5 Set response code for newly created objects to 201 2013-12-08 23:22:36 +01:00
Garret Alfert 5ddde402a8 Set 'Expires' header to 0 for all responses 2013-12-08 22:59:03 +01:00
Garret Alfert a559f55a6d Change response code for successful DELETE requests from 204 to 200 2013-12-08 22:45:03 +01:00
Garret Alfert 96438bac8d Remove ETag header from DELETE requests 2013-12-08 22:42:01 +01:00
Garret Alfert ba3f5db598 Change response code for unauthorized access from 403 to 401 2013-12-08 22:38:36 +01:00
Garret Alfert 17068f33df Don't write any opslog when count and size didn't change (same file) 2013-11-19 19:35:04 +01:00
Garret Alfert 2f95aab874 Don't increase opslog count when overwriting existing binary file 2013-11-19 19:23:13 +01:00
Garret Alfert 088cd2677c Send ETag header with 304 response as well 2013-11-16 13:54:30 +01:00
Garret Alfert 3937862358 Use patched riak-ruby-client (closes #32)
The patched version escapes square brackets in the
key and bucket names correctly.
2013-11-06 21:56:23 +01:00
Garret Alfert 08a7cddcfe Tell Travis to wait a little longer for riak to start 2013-11-01 14:40:39 +01:00
Garret Alfert 48dc081ba5 Tell travis to only test master and stable branch 2013-11-01 14:01:02 +01:00
Garret Alfert 75b5fda0e9 Remove unicorn gem dependency 2013-11-01 13:06:06 +01:00
Garret Alfert 256b3c426e Use ETags as version in directory listings 2013-10-27 22:29:17 +01:00
Garret Alfert 39dac0a5ed Remove some duplication 2013-10-27 22:29:17 +01:00
Garret Alfert a470b37c2c Allow to expose ETag header via CORS 2013-10-27 22:29:06 +01:00
Garret Alfert 2a2cc0a3ec Allow If-Match and If-None-Match headers via CORS 2013-10-27 22:28:43 +01:00
Garret Alfert b907f02f37 Specs for ETag headers for binary files 2013-10-27 22:28:05 +01:00
Garret Alfert 5215cdc5e0 Spec for updating ETags of all parent directories on delete 2013-10-27 22:27:19 +01:00
Garret Alfert 3b5f99ee0d Refactor 2013-10-27 22:26:50 +01:00
Garret Alfert f7eac9b411 Specs for If-None-Match on GET requests 2013-10-26 05:10:11 +02:00