GNUmakefile: replace leading spaces with TABs
[iwhd.git] / notes.txt
blobe4495429c847e885e22ca7a9bfde17287d10f970
1 Commands:
3         GET /
4                 list top-level objects
6         POST /_new/bucket
7                 create bucket with attributes
9         GET /_providers
10                 list providers
12         POST /_providers/_new/provider
13                 create new provider with info
15         GET /_providers/provider
16                 show provider information (requires token)
18         POST /_providers/provider
19                 set provider information (requires/token)
21         GET /bucket
22                 list bucket contents
24         GET /bucket?query=xxx
25                 query bucket contents
27         DELETE /bucket
28                 delete bucket (must be empty)
30         POST /bucket/_new/object
31                 create object with attributes
33         GET /bucket/object
34                 get body/attr* list
36         GET /bucket/object/body
37                 get object body
39         PUT /bucket/object/body
40                 put object body
42         POST /bucket/object op=push
43                 trigger re-replication
45         POST /bucket/object op=pull depot=xxx
46                 trigger reverse replication
48         POST /bucket/object op-check depot=xxx
49                 check availability
51         DELETE /bucket/object
52                 delete object
54         GET /bucket/object/attrs
55                 get all attributes
57         POST /bucket/object/attrs
58                 set multiple attributes
60         GET /bucket/object/attr_X
61                 get attribute X
63         PUT /bucket/object/attr_X
64                 set attribute X
66         DELETE /bucket/object/attr_X
67                 delete attribute X
69 Formats:
71         JSON top-level list
72         [
73                 {
74                         "type": "bucket_factory",
75                         "path": ".../_new"
76                 },
77                 {
78                         "type": "provider_list",
79                         "path": ".../_providers"
80                 },
81                 {
82                         "type": "bucket",
83                         "name": "bucketA",
84                         "path": ".../bucketA"
85                 },
86                 {
87                         "type": "bucket",
88                         "name": "bucketB",
89                         "path": ".../bucketB"
90                 }
91         ]
93         JSON provider list
94         [
95                 {
96                         "name": "my primary",
97                         "type": "cf",
98                         "host": "swift.usersys.redhat.com",
99                         "port": 8080,
100                         "username": "my_cf_username",
101                         "password": "my_cf_password"
102                 },
103                 {
104                         "name": "my secondary",
105                         "type": "s3",
106                         "host": "s3.amazonaws.com",
107                         "port": 80,
108                         "username": "my_aws_key",
109                         "password": "my_aws_secret"
110                 }
111         }
113         JSON bucket-level list
114         [
115                 {
116                         "type": "object_factory",
117                         "path": ".../bucket/_new"
118                 },
119                 {
120                         "type": "object",
121                         "name": "objectC",
122                         "path": ".../bucketA/objectC"
123                 },
124                 {
125                         "type": "object",
126                         "name": "objectD",
127                         "path": ".../bucketA/objectD"
128                 }
129         ]
131         JSON object-level list
132         [
133                 {
134                         "type": "body",
135                         "path": ".../bucketA/objectC/body"
136                 },
137                 {
138                         "type": "multi_attributes",
139                         "path": ".../bucketA/objectC/attrs"
140                 },
141                 {
142                         "type": "single_attribute",
143                         "name": "abc",
144                         "path": ".../bucketA/objectC/attr_abc"
145                 }
146                 {
147                         "type": "single_attribute",
148                         "name": "xyz",
149                         "path": ".../bucketA/objectC/attr_xyz"
150                 }
151         ]
154 To Do - priority (1 highest) work (5 largest) desc:
155         1 1 policy inheritance
156         1 2 delete metadata as well as data
157         1 3 re-replicate on policy change (single object)
158         2 2 manual re-replication trigger
159         2 1 re-replicate on *any* tag change
160         2 3 replication-complete API
161         2 5 basic cred-management API
162         2 3 content types
163         --- done
164         2 1 start own MongoDB
165         2 2 reverse-replication API
166         2 4 link-following syntax
167         2 5 reconcile dispatch with commands/format above
168         3 5 fully modular FS/S3/CF driver structure
169         3 5 VMWare back end
170         3 5 EBS back end
171         3 5 RHEV back end (dependency on Ayal)
172             * Mark McLoughlin / Eoghan Glynn / rhevm-api
173         3 5 start own Hail
174         3 5 fully dynamic config
175         3 3 fix string handling (eliminate strtok)
176         3 4 re-replicate on policy change (default)
177         3 4 writes proxied upstream
178         4 1 direct-copy API (PUT with special header?)
179         4 2 use MongoDB C driver now that it's supported
180         4 3 chunked encoding
181         4 3 statistics/usage API
182         4 3 enhanced query syntax (limits)
183         4 4 optimize re-replication (check current locs)
184         4 5 dcloud-obj back end
185         4 5 immediate inline replication
186         4 5 generate MongoDB queries from ours
187         4 5 auth
188         5 2 deletes proxied upstream
189         5 3 cache control (TTL?)
190         5 5 replicated DB
191         partial-object reads
192         partial-object writes?