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>
rgw: clean up some locator use

We don't use locators anymore. New objects are always created having the
locator equals to the object name. Don't allow this to happen through
magic, just get rid of code that is setting the locator. Legacy objects
should continue to work as we'll still decode the locator, and set it on
the ioctx where needed.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
radosgw-admin: some commands use object_version param

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: generate random instance id

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: interface adjustment following a rebase

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

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: initial olh implementation

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