rgw: add versioning_enabled field to bucket info

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: get bucket versioning status op

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: restful op to set bucket versioning

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: enable s3 get/set versioning ops

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw, cls_rgw: add accounted_size for object metadata entry

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: remove unused code

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: decouple object name from index representation

We can't have a direct mapping between the object name to the way we
index it in the bucket index. Have rgw_obj provide different
representations appropriately and use the proper ones where needed.
Introduce the instance element which will be used to refer to versioned
objects.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: rename rgw_obj::key to rgw_obj::loc

to avoid confusion

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw, cls_rgw: various datastructures use new rgw_obj_key

Instead of using a string for referencing object's index key, use a
rgw_obj_key structure that's also references the object's instance.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: rename cls_rgw_obj::key to cls_rgw_obj::loc

to avoid confusion.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
cls_rgw: change data structures to keep single object key structure

instead of keeping the key name and instance separately. Also, translate
key structure into the index key string representation.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: adapt to new objclass interface

use rgw_obj_key instead of string, and pass it on to the objclass.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
radosgw-admin: adapt to new interfaces

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
test: cls_rgw fixes

adapt to new objclass interfaces

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>