Antony Chazapis [Wed, 22 Jun 2011 15:34:32 +0000 (18:34 +0300)]
Merge branch 'master' of https://code.grnet.gr/git/pithos
Antony Chazapis [Wed, 22 Jun 2011 15:33:59 +0000 (18:33 +0300)]
Fix POST to delete metadata when none is supplied. Add 'update' parameter to update certain meta values only.
Sofia Papagiannaki [Wed, 22 Jun 2011 15:32:30 +0000 (18:32 +0300)]
client bug fixing in print usage
Fixes #567
Sofia Papagiannaki [Wed, 22 Jun 2011 15:08:54 +0000 (18:08 +0300)]
Merge branch 'master' of https://code.grnet.gr/git/pithos
Sofia Papagiannaki [Wed, 22 Jun 2011 15:08:40 +0000 (18:08 +0300)]
- display command usage instead of client usage
- include trashed objects in listing using meta filtering
Refs #576
Christos Stathis [Wed, 22 Jun 2011 14:59:06 +0000 (17:59 +0300)]
Merge branch 'master' of https://code.grnet.gr/git/pithos
Christos Stathis [Wed, 22 Jun 2011 14:59:02 +0000 (17:59 +0300)]
Finally displayed virtual folder hierarchy up to second level
Antony Chazapis [Wed, 22 Jun 2011 13:38:55 +0000 (16:38 +0300)]
Fix version list and copy from version when the object is deleted.
Remove 'public' from permissions.
Sofia Papagiannaki [Tue, 21 Jun 2011 14:40:11 +0000 (17:40 +0300)]
Merge branch 'master' of https://code.grnet.gr/git/pithos
Sofia Papagiannaki [Tue, 21 Jun 2011 14:39:52 +0000 (17:39 +0300)]
add command group and create option option sharing
for development assistance
for the time being they just pass the relative headers
Refs #567
Antony Chazapis [Tue, 21 Jun 2011 14:00:55 +0000 (17:00 +0300)]
Merge branch 'master' of https://code.grnet.gr/git/pithos
Antony Chazapis [Tue, 21 Jun 2011 14:00:45 +0000 (17:00 +0300)]
Initial permissions support.
* Use 'X-Object-Sharing' header to get/set permissions.
* Replaces 'X-Object-Public' header (now obsolete).
* No permission enforcement yet.
Refs #449
Refs #595
Antony Chazapis [Tue, 21 Jun 2011 13:55:35 +0000 (16:55 +0300)]
Fix tests (object HEAD returns 200).
Sofia Papagiannaki [Tue, 21 Jun 2011 13:54:52 +0000 (16:54 +0300)]
bug fixing update/delete metadata
(sends back to the server only the user defined meta)
also bug fixing in client account unset (check for no path provided)
Fixes #576
Sofia Papagiannaki [Tue, 21 Jun 2011 11:49:37 +0000 (14:49 +0300)]
add license & introduce include_trashed parameter
(default False) in list_objects
Refs #567
Sofia Papagiannaki [Tue, 21 Jun 2011 08:42:17 +0000 (11:42 +0300)]
Merge branch 'master' of https://code.grnet.gr/git/pithos
Sofia Papagiannaki [Tue, 21 Jun 2011 08:42:02 +0000 (11:42 +0300)]
+better metadata handling
instead of setting each time new metadata
(by replacing older)
lib provides 2 new methods:
update: for adding and updating older values
delete: for deleting older data
+methods for trashing and
restoring an object
+new client commands for:
- trashing (remove, rm), restoring (restore) objects
- deleting metadata (unset)
- creating directory markers (mkdir)
+ remove version option from move command
+minor changes for simplifying code
Fixes #567
Antony Chazapis [Mon, 20 Jun 2011 10:41:43 +0000 (13:41 +0300)]
Merge branch 'master' of https://code.grnet.gr/git/pithos
Antony Chazapis [Mon, 20 Jun 2011 10:41:22 +0000 (13:41 +0300)]
Add recommended practices/examples in docs.
Sofia Papagiannaki [Mon, 20 Jun 2011 09:00:35 +0000 (12:00 +0300)]
reads exactly as many bytes from the response as the response content-length
refs to the problem with the trailing \n
Fixes #567
Antony Chazapis [Sun, 19 Jun 2011 12:52:20 +0000 (15:52 +0300)]
Bug fixes.
* Empty object update.
* Parameter version equal to 'list' in requests.
* Object HEAD response code (should be 200).
* Remove source version parameter when moving with PUT/MOVE.
* Mark 'X-Object-Public' as TBD in the docs.
Christos Stathis [Fri, 17 Jun 2011 16:39:50 +0000 (19:39 +0300)]
Merge branch 'master' of https://code.grnet.gr/git/pithos
Christos Stathis [Fri, 17 Jun 2011 16:39:25 +0000 (19:39 +0300)]
First version of client that displays first level containers
Sofia Papagiannaki [Fri, 17 Jun 2011 14:18:02 +0000 (17:18 +0300)]
bug fixing in object version copy/move
and object update
Fixes #567
Sofia Papagiannaki [Fri, 17 Jun 2011 11:12:15 +0000 (14:12 +0300)]
support for object version move
separate options for versionlist and get version
Refs #567
Sofia Papagiannaki [Fri, 17 Jun 2011 10:26:28 +0000 (13:26 +0300)]
client support from COPY/MOVE from specific version
Refs #567
Sofia Papagiannaki [Fri, 17 Jun 2011 09:50:26 +0000 (12:50 +0300)]
add version support
Refs #567
Sofia Papagiannaki [Fri, 17 Jun 2011 09:48:16 +0000 (12:48 +0300)]
slight modifications to support list object versions
Refs #593
Giorgos Verigakis [Thu, 16 Jun 2011 22:01:52 +0000 (01:01 +0300)]
Add an X-Object-Size response header
204 responses set Content-Length to 0 and a different header is
needed in order to get the object size.
Sofia Papagiannaki [Thu, 16 Jun 2011 17:25:03 +0000 (20:25 +0300)]
create zero-length objects
better exception handling
Refs #567
Antony Chazapis [Tue, 14 Jun 2011 20:00:42 +0000 (23:00 +0300)]
Fix manifest and copy/move prefix parsing.
Sofia Papagiannaki [Tue, 14 Jun 2011 16:52:04 +0000 (19:52 +0300)]
support for account/container HEAD/GET until parameter
create zero-length objects
remove last trailing enter from response
Fixes #567
Antony Chazapis [Tue, 14 Jun 2011 16:28:15 +0000 (19:28 +0300)]
Add template for version list.
Refs #593
Antony Chazapis [Tue, 14 Jun 2011 16:26:25 +0000 (19:26 +0300)]
Large object support.
Giorgos Verigakis [Tue, 14 Jun 2011 15:57:08 +0000 (18:57 +0300)]
Add a simple FUSE backend client
Only supports flat hierarchies for now:
the only dirs are containers that can only contain files.
Requires MacFUSE in Mac OS X, Windows not supported.
Antony Chazapis [Tue, 14 Jun 2011 11:16:55 +0000 (14:16 +0300)]
Remove strip() from tests.
Sofia Papagiannaki [Fri, 10 Jun 2011 15:12:43 +0000 (18:12 +0300)]
_list() strip data returned from server
before further processing
Fixes #567
Sofia Papagiannaki [Fri, 10 Jun 2011 15:02:39 +0000 (18:02 +0300)]
_list(...) returns always list
in _get_metadata(...) prefix is optional: if not present returns all the metadata
Sofia Papagiannaki [Fri, 10 Jun 2011 14:05:11 +0000 (17:05 +0300)]
remove leftover comments
Sofia Papagiannaki [Fri, 10 Jun 2011 13:46:58 +0000 (16:46 +0300)]
support from chunked transfers, object update and move
Fixes #567
Sofia Papagiannaki [Fri, 10 Jun 2011 13:46:23 +0000 (16:46 +0300)]
client support from chunked transfers, object update and move
Fixes #567
Sofia Papagiannaki [Fri, 10 Jun 2011 13:44:38 +0000 (16:44 +0300)]
fixes chunked transfer data
Antony Chazapis [Fri, 10 Jun 2011 10:47:00 +0000 (13:47 +0300)]
Document versioning and public objects.
Fixes #593
Fixes #595
Antony Chazapis [Thu, 9 Jun 2011 23:15:49 +0000 (02:15 +0300)]
Versioning extras, including account/container "time machine".
* Update metadata with the hashmap to create a single new object version.
* Add source version when duplicating in PUT/COPY/MOVE.
* Add 'until' parameter in account/container HEAD/GET.
* Expose object version list.
* Include user in backend functions (for future use).
Refs #593
Antony Chazapis [Thu, 9 Jun 2011 14:09:29 +0000 (17:09 +0300)]
Limit metadata in object headers accessed via /public. Simplify implementation.
Refs #595
Antony Chazapis [Thu, 9 Jun 2011 13:21:50 +0000 (16:21 +0300)]
Pass account from request URL to backend functions and not request.user.
Antony Chazapis [Thu, 9 Jun 2011 13:03:16 +0000 (16:03 +0300)]
Support public files.
Use 'X-Object-Public' to mark files as public. Then they can be accessed via the /public URL without authentication.
Refs #595
Antony Chazapis [Thu, 9 Jun 2011 12:55:24 +0000 (15:55 +0300)]
Antony Chazapis [Thu, 9 Jun 2011 12:44:48 +0000 (15:44 +0300)]
Fix modification time in accounts/containers.
Antony Chazapis [Thu, 9 Jun 2011 11:48:06 +0000 (14:48 +0300)]
Advanced versioning support. New backend.
- Everything is versioned in the backend.
- Time-controlled account/container listings.
- Initial API support with the 'version' parameter in object HEAD/GET.
Refs #593
Sofia Papagiannaki [Tue, 7 Jun 2011 09:00:31 +0000 (12:00 +0300)]
fix for double matching metadata filtering
Sofia Papagiannaki [Tue, 7 Jun 2011 08:58:11 +0000 (11:58 +0300)]
#Fixes 451
Antony Chazapis [Fri, 3 Jun 2011 16:55:17 +0000 (19:55 +0300)]
Fix precondition check replies.
Sofia Papagiannaki [Fri, 3 Jun 2011 12:03:58 +0000 (15:03 +0300)]
Fixes #567
separates the interaction with the api from the command line tool
+ some extensions to support more options
Sofia Papagiannaki [Wed, 1 Jun 2011 14:06:52 +0000 (17:06 +0300)]
Fixes #565
Sofia Papagiannaki [Wed, 1 Jun 2011 14:06:12 +0000 (17:06 +0300)]
Fixes chunked object post with specific upto range limit
Sofia Papagiannaki [Wed, 1 Jun 2011 12:25:45 +0000 (15:25 +0300)]
Fixes #565
Sofia Papagiannaki [Wed, 1 Jun 2011 12:25:11 +0000 (15:25 +0300)]
import missing hashlib
Antony Chazapis [Wed, 1 Jun 2011 11:26:23 +0000 (14:26 +0300)]
Fix Content-Range parsing.
Antony Chazapis [Wed, 1 Jun 2011 10:48:44 +0000 (13:48 +0300)]
Add 411 error to POST in doc.
Antony Chazapis [Tue, 31 May 2011 14:04:25 +0000 (17:04 +0300)]
Produce new ETag when updating an object (corrected).
Antony Chazapis [Tue, 31 May 2011 13:45:44 +0000 (16:45 +0300)]
Produce new ETag when updating an object.
Antony Chazapis [Tue, 31 May 2011 11:01:39 +0000 (14:01 +0300)]
Merge branch 'master' of https://code.grnet.gr/git/pithos
Antony Chazapis [Tue, 31 May 2011 11:01:17 +0000 (14:01 +0300)]
Include storage type in container meta/hashmap replies. Minor doc updates.
Sofia Papagiannaki [Tue, 31 May 2011 07:56:53 +0000 (10:56 +0300)]
Fixes #565
Antony Chazapis [Sun, 29 May 2011 12:39:34 +0000 (15:39 +0300)]
Document partial object updates and hashmaps.
Refs #563
Antony Chazapis [Sun, 29 May 2011 10:24:04 +0000 (13:24 +0300)]
Handle partial object updates through POST.
Antony Chazapis [Fri, 27 May 2011 16:50:31 +0000 (19:50 +0300)]
Change database placement/naming defaults.
Antony Chazapis [Fri, 27 May 2011 16:39:56 +0000 (19:39 +0300)]
Merge branch 'master' of https://code.grnet.gr/git/pithos
Antony Chazapis [Fri, 27 May 2011 16:39:25 +0000 (19:39 +0300)]
Fix object GET.
Sofia Papagiannaki [Fri, 27 May 2011 16:39:13 +0000 (19:39 +0300)]
Merge branch 'master' of https://code.grnet.gr/git/pithos
Sofia Papagiannaki [Fri, 27 May 2011 16:39:00 +0000 (19:39 +0300)]
minor improvements
Giorgos Verigakis [Fri, 27 May 2011 16:28:19 +0000 (19:28 +0300)]
Add a Content-Type header when sending data
Sofia Papagiannaki [Fri, 27 May 2011 16:01:18 +0000 (19:01 +0300)]
add license
Sofia Papagiannaki [Fri, 27 May 2011 15:53:24 +0000 (18:53 +0300)]
additional api tests
Giorgos Verigakis [Fri, 27 May 2011 15:27:35 +0000 (18:27 +0300)]
Merge branch 'master' of https://code.grnet.gr/git/pithos
Giorgos Verigakis [Fri, 27 May 2011 15:27:29 +0000 (18:27 +0300)]
Deployment improvements
* Better URL handling
* Always send a content-length with the cli client
Antony Chazapis [Fri, 27 May 2011 15:11:30 +0000 (18:11 +0300)]
Move doc to docs. Fix doc compilation warnings.
Antony Chazapis [Fri, 27 May 2011 14:20:25 +0000 (17:20 +0300)]
Add license.
Fixes #577
Antony Chazapis [Fri, 27 May 2011 13:48:53 +0000 (16:48 +0300)]
Provide metadata functions for tags and trash support. Restructure backend to work with blocks and hashmaps.
List of major API updates (tested and ready changes are in the docs):
* List object meta keys in container headers.
* Filter object listings based on their meta keys.
* Enforce metadata replacement on POST/COPY/MOVE.
* Add Content-Range to range replies.
* Return ETag in If-None-Match GET replies.
* Handle multi-range GET replies as outlined in RFC2616.
* Add Content-Disposition to the allowable object headers.
* Implement block per block GET and PUT.
* Better range parsing (and multiple ranges).
The new backend is version-ready, but the API does not yet implement versions. The frontend exposes hashmaps through GET - this may change.
Fixes #559
Fixes #561
Refs #563
Antony Chazapis [Thu, 26 May 2011 09:45:15 +0000 (12:45 +0300)]
Include documentation folder, README.
Antony Chazapis [Wed, 18 May 2011 09:34:14 +0000 (12:34 +0300)]
Fix account/container size reporting, zero-length object uploading.
Giorgos Verigakis [Tue, 17 May 2011 16:47:15 +0000 (19:47 +0300)]
Merge https://code.grnet.gr/git/pithos into pithospub
Giorgos Verigakis [Tue, 17 May 2011 16:04:57 +0000 (19:04 +0300)]
Add a simple client for the API
Sofia Papagiannaki [Tue, 17 May 2011 15:58:38 +0000 (18:58 +0300)]
Add unit tests for backend and API
* Tests the OpenStack Object Storage API v1 functionality plus the extras
* Tests the functionality of a BaseBackend which implements the API
Fixes #451
Fixes #453
Antony Chazapis [Tue, 17 May 2011 15:41:07 +0000 (18:41 +0300)]
Implement basic functionality plus some extras
The API is based on the Apr. 15, 2011 release of the OpenStack Object Storage API v1.
The implementation is broken up into two layers - frontend (API) and backend (data and metadata handling).
The API is documented in the wiki. The following list is copied here for reference.
List of differences from the OOS API and clarifications:
* Authentication is done by another system. The token is used in the same way, but it is obtained differently. The top level GET request is kept compatible with the OOS API and allows for guest/testing operations.
* Support for X-Account-Meta-* style headers at the account level. Use POST to update.
* Support for X-Container-Meta-* style headers at the account level. Can be set when creating via PUT. Use POST to update.
* Some processing is done in the variable part of all X-*-Meta-* headers. If it includes underscores, they will be converted to dashes and the first letter of all intra-dash strings will be capitalized.
* All metadata replies, at all levels, include latest modification information.
* At all levels, a GET request may use If-Modified-Since and If-Unmodified-Since headers.
* A GET reply for a level will include all headers of the corresponding HEAD request.
* To avoid conflicts between objects and virtual directory markers in container listings, it is recommended that object names do not end with the delimiter used.
* The Accept header may be used in requests instead of the format parameter to specify the desired reply format. The parameter overrides the header.
* Container/object lists use a 200 return code if the reply is of type json/xml. The reply will include an empty json/xml.
* Container/object lists include all associated metadata if the reply is of type json/xml. Some names are kept to their OOS API equivalents for compatibility.
* In headers, dates are formatted according to RFC 1123. In extended information listings, dates are formatted according to ISO 8601.
* Object headers allowed, in addition to X-Object-Meta-*: Content-Encoding
* Object MOVE support.
Fixes #445
Fixes #447
Christos Stathis [Fri, 6 May 2011 14:26:06 +0000 (17:26 +0300)]
Removed or commented out various things not related to v.2
Christos Stathis [Fri, 6 May 2011 13:37:45 +0000 (16:37 +0300)]
Merge branch 'master' of https://code.grnet.gr/git/pithos
Christos Stathis [Fri, 6 May 2011 13:29:22 +0000 (16:29 +0300)]
Removed un-needed files
Christos Stathis [Fri, 6 May 2011 13:29:02 +0000 (16:29 +0300)]
Hardcoded pithos site url
Christos Stathis [Fri, 6 May 2011 13:28:28 +0000 (16:28 +0300)]
Fixed css class names
Antony Chazapis [Fri, 6 May 2011 09:21:20 +0000 (12:21 +0300)]
Update default settings. Minor changes.
papagian [Thu, 5 May 2011 15:52:05 +0000 (18:52 +0300)]
Refs #453
papagian [Thu, 5 May 2011 15:51:04 +0000 (18:51 +0300)]
Refs #447
papagian [Thu, 5 May 2011 15:50:45 +0000 (18:50 +0300)]
#Refs #447
Christos Stathis [Thu, 5 May 2011 14:05:54 +0000 (17:05 +0300)]
Merge branch 'master' of https://code.grnet.gr/git/pithos
Christos Stathis [Thu, 5 May 2011 14:05:40 +0000 (17:05 +0300)]
Updated copyright notice
papagian [Thu, 5 May 2011 12:46:35 +0000 (15:46 +0300)]
Refs #453
Antony Chazapis [Thu, 5 May 2011 10:33:18 +0000 (13:33 +0300)]
Merge branch 'master' of https://code.grnet.gr/git/pithos
Antony Chazapis [Thu, 5 May 2011 10:32:57 +0000 (13:32 +0300)]
Clean up, sort out logging.