Commit Graph

93447 Commits

Author SHA1 Message Date
Yehuda Sadeh
dcb5e06ca1 rgw: sanitize header attributes
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-11 13:34:41 -08:00
Yehuda Sadeh
2d6b645d23 qa/rgw: support for storage classes
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-11 08:43:41 -08:00
Yehuda Sadeh
0e032311ad rgw: clean up generic attribute val
There are cases where we keep/kept attributes value with a null termination,
which bufferlist.to_str() returns as part of the string and returned
headers are broken.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-09 13:23:45 -08:00
Yehuda Sadeh
c5e997ecec test/cli: fix radosgw-admin cli test
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-09 11:02:57 -08:00
Yehuda Sadeh
83f7af473b qa/ragweed: change the way we determine which ragweed branch to use
- if force-branch, use that
 - otherwise:
    - read default-branch from client config
    - use suite branch or ceph branch if suite branch is not defined
    - if this branch is one of official releases (or master), prefix
      it with 'ceph-'

try to clone branch specified above, if failed (branch doesn't exist probably)
and not force-branch, use default-branch.
Also add an option to override ragweed repo.

Switched all force-branch from ragweed qa suite to default-branch.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-09 11:02:57 -08:00
Yehuda Sadeh
44fab540cf rgw: get layout rest op: fix last tail object size
This triggered an issue in ragweed

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-07 15:56:46 -08:00
Yehuda Sadeh
a4a5aac7d0 rgw: fix generic obj attrs to http headers
use bl.to_str() instead of bl.c_str() to avoid encoding of the null
termination.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-06 13:14:13 -08:00
Yehuda Sadeh
53dfdc7e36 rgw: fix check for no storage_class specified in obj copy
S3 doesn't allow copying object into itself if it doesn't modify
attributes. Need to check that the object's storage class changes
but we only have that info later, so code rearranged a bit to
allow that.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-06 13:14:13 -08:00
Yehuda Sadeh
1ba297476d rgw-admin: don't allow configuring zone placement if not configured in zonegroup
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-06 13:14:13 -08:00
Yehuda Sadeh
d5c788e951 rgw-admin: rework storage class zone config
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-04 16:59:09 -08:00
Yehuda Sadeh
b7cae719c0 rgw: use dest placement for compression type
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-04 14:46:39 -08:00
Yehuda Sadeh
5c1ebba550 rgw: remove a warning
No need for warning, rgw_placement_rule is being read as a string
and backward compatible.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-04 13:27:26 -08:00
Yehuda Sadeh
65b55155ae rgw: fetch_remote_obj() supports placement rule
placement rule is optional, and if not provided will use the storage_class of
the source object that is being fetched (if possible).

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-04 13:19:42 -08:00
Yehuda Sadeh
6a8920b1b5 rgw: api adjustments following rebase
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:24 -08:00
Yehuda Sadeh
0e226a27bf rgw: lifecycle: do filter checks later
Filter checks (currently only tags checks) need to access the objects
themselves, while the action checks don't. Make action checks happen first
to avoid unnecessary rados operations if objects don't pass action checks.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:24 -08:00
Yehuda Sadeh
c70b42fb30 rgw: lifecycle: support for noncurrent transition
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:24 -08:00
Yehuda Sadeh
8cd2d02a32 rgw: lifecycle: current obj transitions
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:24 -08:00
Yehuda Sadeh
3e0b21c971 rgw: lifecycle: use unmod_since when deleting obj
To avoid a race. Also use the op object ctx to avoid reading object
head again (if read previously), and consolidate the different
removal calls.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:24 -08:00
Yehuda Sadeh
cf1dcb4723 rgw: lifecycle: fixes, some useful logging
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:24 -08:00
Yehuda Sadeh
a9c3771b58 rgw: tighter lifecycle processing
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:24 -08:00
Yehuda Sadeh
cad2c2abd8 rgw: lifecycle: consolidate versioned and non-versioned operation
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:23 -08:00
Yehuda Sadeh
a0fa9f5efc rgw: lifecycle: rework listing iteration
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:23 -08:00
Yehuda Sadeh
5f424aac0a rgw: lifecycle: some code cleanup
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:23 -08:00
Yehuda Sadeh
a71787704d rgw: lifecycle and xml parser fixes
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:23 -08:00
Yehuda Sadeh
dc808953f2 rgw: rework lifecycle parsing
Use new style xml parsing, instead of inheriting from XMLParser.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:23 -08:00
Zhang Shaowen
408f04ff4a rgw: move check_date place
Signed-off-by: Zhang Shaowen <zhangshaowen@cmss.chinamobile.com>
2019-01-03 19:00:23 -08:00
Zhang Shaowen
9e1d2af992 rgw: remove enum defination for storage class.
Signed-off-by: Zhang Shaowen <zhangshaowen@cmss.chinamobile.com>
2019-01-03 19:00:22 -08:00
Zhang Shaowen
97678bb66a rgw: support object transition in lifecycle config set.
Signed-off-by: Zhang Shaowen <zhangshaowen@cmss.chinamobile.com>
2019-01-03 19:00:22 -08:00
Yehuda Sadeh
2a8e8a98d8 rgw: check that placement rule is valid if bucket exists
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:22 -08:00
Yehuda Sadeh
c3b504df07 rgw: prevent creation of bucket with non-existent storage class
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:22 -08:00
Yehuda Sadeh
c451928019 rgw: don't try to read beyong object size
Otherwise even if we prefetch all the data, we'd try to issue another
request to read the rest of the object.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:22 -08:00
Yehuda Sadeh
dcc3c0c873 rgw: tiering: encode standard storage_class in rule explicitly
If it's standard storage class, don't avoid encoding it,
otherwise we can't know if it was set or not.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:22 -08:00
Yehuda Sadeh
3354bd4812 rgw: tiering: add support for multipart uploads
Encode multipart info structure in the upload meta object,
store the storage_cass info there. Use the storage class
that was set on upload init when uploading all the parts,
and when completing the upload.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:22 -08:00
Yehuda Sadeh
447b74c13a rgw: tighten storage_class assignment
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:21 -08:00
yuliyang
f3676ebfd4 rgw: fix storage_class in rgw_bucket_dir_entry_meta::dump
Signed-off-by: yuliyang <yuliyang@cmss.chinamobile.com>
2019-01-03 19:00:21 -08:00
Yehuda Sadeh
85c5a95f34 rgw, cls_rgw: propagate storage class to the index
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:21 -08:00
Yehuda Sadeh
e2eea3e594 rgw: copy_obj() inherit dest rule from default bucket rule
Otherwise it can be empty, in which case we'll always copy data, even
if rule doesn't change.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:21 -08:00
Yehuda Sadeh
3bac92c90d rgw: set dest placement rule when copying object
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:21 -08:00
Yehuda Sadeh
316ada445e rgw: blacklist x-amz-storage-class header
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:21 -08:00
Yehuda Sadeh
053a765876 rgw: data obj synchronous read, use correct ioctx
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:20 -08:00
Yehuda Sadeh
1a3733fc77 rgw: encode dest storage_class when copying object
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:20 -08:00
Yehuda Sadeh
63591be687 rgw: use bl.to_str() and not bl.c_str()
can't rely on bufferlist to be null terminated

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:20 -08:00
Yehuda Sadeh
b55c102afc rgw-admin: clean dumped attrs
don't show terminating null chars

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:20 -08:00
Yehuda Sadeh
a270c8b856 rgw: tiering fixes
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 19:00:20 -08:00
Yehuda Sadeh
ab639f2d0f test/rgw: api fixes
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 18:04:18 -08:00
Yehuda Sadeh
5a08d063ea rgw: propagate storage class to manifest generator
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 18:04:18 -08:00
Yehuda Sadeh
708d339663 rgw: more storage class data structure changes
storage class also handles compression info

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 18:01:37 -08:00
Yehuda Sadeh
5e4201daba rgw: add support for storage class
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 18:01:37 -08:00
Yehuda Sadeh
cbfb05660e rgw: object write processors use tail placement rule
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
2019-01-03 17:52:03 -08:00
Alfredo Deza
8cb6de178e
Merge pull request #25674 from alfredodeza/wip-rm37442
ceph-volume normalize comma to dot for string to int conversions 

Reviewed-by: Andrew Schoen <aschoen@redhat.com>
2019-01-03 13:44:06 -05:00