Commit Graph

295 Commits

Author SHA1 Message Date
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
greg 8bcb8bf337 Merge pull request #77 from 5apps/bugfix/api_suite_regression_fixes
[WIP] API-test-suite regression fixes
2016-03-04 21:00:01 +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
basti 7e2fbe1de9 Merge pull request #74 from 5apps/features/retire_swift_dir_objects
Don't use or create any directory objects in Swift
2016-03-04 10:10:39 -05: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
galfert d8fc27c8dd Merge pull request #73 from 5apps/features/redis_migration
Migration script for copying metadata to Redis
2016-03-02 23:47:42 +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
greg 7107c77a3f Turn Redis parameters into symbols 2016-03-01 15:06:23 +01:00
greg e7a35636fd Turn Redis parameters into symbols 2016-03-01 15:02:56 +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
greg b396a6dfd1 Update Ruby gems 2016-02-26 13:47:34 +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
greg 0e10f3b6ff Change the way to load the Redis config to allow clusters 2016-02-02 22:20:38 +00: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
galfert 902917d3ad Merge pull request #72 from 5apps/redis_metadata_storage
Redis metadata storage
2016-02-02 14:35:49 +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