Compare commits

...

6 commits

Author SHA1 Message Date
Kefu Chai
601dc256eb bootstrap: add libffi-dev for gevent
because gevent 1.3.2 requires cffi>=1.11.5, and cffi requires
libffi-dev to build.

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit a2b3e4ef77)
2018-05-31 01:20:23 +08:00
Nathan Cutler
f2e71ed5c4 Merge pull request #160 from zhangsw/jewel-set-acl
jewel: Add a test case for setting acl on object with no version id specified

Reviewed-by: Orit Wasserman <owasserm@redhat.com>
2017-08-25 20:07:28 +02:00
Zhang Shaowen
4a7fe5fb4b jewel: Add a test case for setting acl on object with no version id specified.
Fixes: http://tracker.ceph.com/issues/18923

Signed-off-by: Zhang Shaowen <zhangshaowen@cmss.chinamobile.com>
2017-04-25 16:49:13 +08:00
Matt Benjamin
a65d1b490d Merge pull request #140 from mdw-at-linuxbox/ceph-jewel-setupfix
Use non-broken version of setuptools, and fix bootstrap to be more po…
2017-01-26 12:04:50 -05:00
Marcus Watts
218987825f Use non-broken version of setuptools, and fix bootstrap to be more portable.
Most recent version of setuptools breaks when asked to load requests 0.14.0.
symptom, complains about not being able to import filterfalse thus:
        from six.moves import map, filter, filterfalse
this comes from setuptools, and older versions of setuptools don't have
this problem.

Various versions of centos7 and fedora have interesting names for packages,
	centos7: python-pip is python2-pip
	fedora24: python-virtualenv is python2-virtualenv
This is somewhat masked by using sudo yum: if the actual package
is installed, rpm knows that the capability is there and does nothing.
But, if the package isn't there, or you haven't chosen to set up
sudo to work that way, this does not work.

Signed-off-by: Marcus Watts <mwatts@redhat.com>
(cherry picked from commit ddc150439d)
2017-01-26 04:44:50 -05:00
Sage Weil
dfc7a1271b test_s3: mark test_oject_head_zero_bytes fails_on_rgw
It works on civetweb, fails on apache.  Revert this once it is fixed.

See http://tracker.ceph.com/issues/15460

Signed-off-by: Sage Weil <sage@redhat.com>
2016-04-12 08:29:02 -04:00
2 changed files with 82 additions and 6 deletions

View file

@ -2,7 +2,7 @@
set -e
if [ -f /etc/debian_version ]; then
for package in python-pip python-virtualenv python-dev libevent-dev; do
for package in python-pip python-virtualenv python-dev libevent-dev libffi-dev; do
if [ "$(dpkg --status -- $package 2>/dev/null|sed -n 's/^Status: //p')" != "install ok installed" ]; then
# add a space after old values
missing="${missing:+$missing }$package"
@ -12,9 +12,18 @@ if [ -f /etc/debian_version ]; then
echo "$0: missing required DEB packages. Installing via sudo." 1>&2
sudo apt-get -y install $missing
fi
fi
if [ -f /etc/redhat-release ]; then
for package in python-pip python-virtualenv python-devel libevent-devel; do
elif [ -f /etc/fedora-release ]; then
for package in python-pip python2-virtualenv python-devel libevent-devel libffi-devel; do
if [ "$(rpm -qa $package 2>/dev/null)" == "" ]; then
missing="${missing:+$missing }$package"
fi
done
if [ -n "$missing" ]; then
echo "$0: missing required RPM packages. Installing via sudo." 1>&2
sudo yum -y install $missing
fi
elif [ -f /etc/redhat-release ]; then
for package in python2-pip python-virtualenv python-devel libevent-devel libffi-devel; do
if [ "$(rpm -qa $package 2>/dev/null)" == "" ]; then
missing="${missing:+$missing }$package"
fi
@ -30,8 +39,8 @@ virtualenv --no-site-packages --distribute virtualenv
# avoid pip bugs
./virtualenv/bin/pip install --upgrade pip
# work-around change in pip 1.5
./virtualenv/bin/pip install setuptools --no-use-wheel --upgrade
# slightly old version of setuptools; newer fails w/ requests 0.14.0
./virtualenv/bin/pip install setuptools==32.3.1
./virtualenv/bin/pip install -r requirements.txt

View file

@ -1012,6 +1012,7 @@ def test_multi_object_delete():
@attr(method='put')
@attr(operation='write zero-byte key')
@attr(assertion='correct content length')
@attr('fails_on_rgw') # actually, just apache; works with civetweb.
def test_object_head_zero_bytes():
bucket = get_new_bucket()
key = bucket.new_key('foo')
@ -6767,6 +6768,72 @@ def test_versioned_object_acl():
k = bucket.new_key(keyname)
check_grants(k.get_acl().acl.grants, default_policy)
@attr(resource='object')
@attr(method='put')
@attr(operation='change acl on an object with no version specified changes latest version')
@attr(assertion='works')
@attr('versioning')
def test_versioned_object_acl_no_version_specified():
bucket = get_new_bucket()
check_configure_versioning_retry(bucket, True, "Enabled")
keyname = 'foo'
key0 = bucket.new_key(keyname)
key0.set_contents_from_string('bar')
key1 = bucket.new_key(keyname)
key1.set_contents_from_string('bla')
key2 = bucket.new_key(keyname)
key2.set_contents_from_string('zxc')
stored_keys = []
for key in bucket.list_versions():
stored_keys.insert(0, key)
k2 = stored_keys[2]
policy = bucket.get_acl(key_name=k2.name, version_id=k2.version_id)
default_policy = [
dict(
permission='FULL_CONTROL',
id=policy.owner.id,
display_name=policy.owner.display_name,
uri=None,
email_address=None,
type='CanonicalUser',
),
]
print repr(policy)
check_grants(policy.acl.grants, default_policy)
bucket.set_canned_acl('public-read', key_name=k2.name)
policy = bucket.get_acl(key_name=k2.name, version_id=k2.version_id)
print repr(policy)
check_grants(
policy.acl.grants,
[
dict(
permission='FULL_CONTROL',
id=policy.owner.id,
display_name=policy.owner.display_name,
uri=None,
email_address=None,
type='CanonicalUser',
),
dict(
permission='READ',
id=None,
display_name=None,
uri='http://acs.amazonaws.com/groups/global/AllUsers',
email_address=None,
type='Group',
),
],
)
def _do_create_object(bucket, objname, i):
k = bucket.new_key(objname)