Bug 1021354

Summary: [Functional] UTF-8 functional testcases are failing with keystone auth
Product: [Red Hat Storage] Red Hat Gluster Storage Reporter: pushpesh sharma <psharma>
Component: gluster-swiftAssignee: Luis Pabón <lpabon>
Status: CLOSED NOTABUG QA Contact: pushpesh sharma <psharma>
Severity: medium Docs Contact:
Priority: medium    
Version: 2.1CC: bbandari, grajaiya, madam, rhs-bugs, shaines, vagarwal
Target Milestone: ---Keywords: ZStream
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-10-29 21:11:15 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description pushpesh sharma 2013-10-21 07:07:32 UTC
Description of problem:

Execution of openstack-swift functional TC(which is now part of gluster-swift as well) with keystone as auth mechanism results in failing of some UTF-8 functional tests.

This means if we use keystone as a authentication mechanism,G4S wont be able to fully support those URL which contain UTF-8 characters.  

Version-Release number of selected component (if applicable):

[root@dhcp207-15 ~]# rpm -qa|grep gluster
gluster-swift-account-1.8.0-6.11.el6rhs.noarch
gluster-swift-plugin-1.8.0-7.el6rhs.noarch
glusterfs-libs-3.4.0.35rhs-1.el6_4.x86_64
glusterfs-fuse-3.4.0.35rhs-1.el6_4.x86_64
gluster-swift-1.8.0-6.11.el6rhs.noarch
gluster-swift-proxy-1.8.0-6.11.el6rhs.noarch
gluster-swift-container-1.8.0-6.11.el6rhs.noarch
glusterfs-3.4.0.35rhs-1.el6_4.x86_64
glusterfs-api-3.4.0.35rhs-1.el6_4.x86_64
gluster-swift-object-1.8.0-6.11.el6rhs.noarch


How reproducible:


Steps to Reproduce:
1. git clone https://github.com/gluster/gluster-swift.git
2. Change auth mechanism to keystone , can refer 
https://mojo.redhat.com/groups/glusterfs/blog/2013/10/10/g4s-keystone
or
http://pushpeshsharma.blogspot.in/2013/10/G4S-Keystone.html
3.Change the auth mechanism in /etc/swift/test.conf.Use instruction specified in user/dev guide to execute functional test cases.


Actual results:
17 UTF-8 related functional test cases failed. 

Expected results:

all functional TC should pass. 

Additional info:

======================================================================
ERROR: testInvalidUTF8Path (test.functional.tests.TestAccount)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 256, in testInvalidUTF8Path
    self.assert_(not container.create(cfg={'no_path_quote': True}))
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 397, in create
    parms=parms, cfg=cfg) in (201, 202)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 210, in make_request
    path = self.make_path(path, cfg=cfg)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 194, in make_path
    '/'.join([quote(i) for i in path]))
UnicodeDecodeError: 'ascii' codec can't decode byte 0x81 in position 0: ordinal not in range(128)

======================================================================
ERROR: testInvalidUTF8Path (test.functional.tests.TestAccountUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 256, in testInvalidUTF8Path
    self.assert_(not container.create(cfg={'no_path_quote': True}))
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 397, in create
    parms=parms, cfg=cfg) in (201, 202)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 210, in make_request
    path = self.make_path(path, cfg=cfg)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 194, in make_path
    '/'.join([quote(i) for i in path]))
UnicodeDecodeError: 'ascii' codec can't decode byte 0x89 in position 0: ordinal not in range(128)

======================================================================
ERROR: testUtf8Container (test.functional.tests.TestContainer)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 556, in testUtf8Container
    self.assert_(container.create(cfg={'no_path_quote': True}))
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 397, in create
    parms=parms, cfg=cfg) in (201, 202)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 210, in make_request
    path = self.make_path(path, cfg=cfg)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 194, in make_path
    '/'.join([quote(i) for i in path]))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)

======================================================================
ERROR: testSlashInName (test.functional.tests.TestContainerUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 588, in testSlashInName
    self.assert_(not cont.create(cfg={'no_path_quote': True}),
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 397, in create
    parms=parms, cfg=cfg) in (201, 202)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 210, in make_request
    path = self.make_path(path, cfg=cfg)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 194, in make_path
    '/'.join([quote(i) for i in path]))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)

======================================================================
ERROR: testUtf8Container (test.functional.tests.TestContainerUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 556, in testUtf8Container
    self.assert_(container.create(cfg={'no_path_quote': True}))
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 397, in create
    parms=parms, cfg=cfg) in (201, 202)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 210, in make_request
    path = self.make_path(path, cfg=cfg)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 194, in make_path
    '/'.join([quote(i) for i in path]))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xce in position 0: ordinal not in range(128)

======================================================================
ERROR: testBlankMetadataName (test.functional.tests.TestFileUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 1121, in testBlankMetadataName
    self.assertRaises(ResponseError, file.write_random)
  File "/usr/lib64/python2.6/unittest.py", line 335, in failUnlessRaises
    callableObj(*args, **kwargs)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 748, in write_random
    if not self.write(data, hdrs=hdrs, parms=parms, cfg=cfg):
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 722, in write
    self.conn.put_start(self.path, hdrs=headers, parms=parms, cfg=cfg)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 283, in put_start
    self.connection.endheaders()
  File "/usr/lib64/python2.6/httplib.py", line 908, in endheaders
    self._send_output()
  File "/usr/lib64/python2.6/httplib.py", line 778, in _send_output
    msg = "\r\n".join(self._buffer)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 16: ordinal not in range(128)

======================================================================
ERROR: testCopy (test.functional.tests.TestFileUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 937, in testCopy
    file.sync_metadata(metadata)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 679, in sync_metadata
    self.conn.make_request('POST', self.path, hdrs=headers, cfg=cfg)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 236, in make_request
    self.response = try_request()
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 227, in try_request
    self.connection.request(method, path, data, headers)
  File "/usr/lib64/python2.6/httplib.py", line 914, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib64/python2.6/httplib.py", line 951, in _send_request
    self.endheaders()
  File "/usr/lib64/python2.6/httplib.py", line 908, in endheaders
    self._send_output()
  File "/usr/lib64/python2.6/httplib.py", line 778, in _send_output
    msg = "\r\n".join(self._buffer)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 48: ordinal not in range(128)

======================================================================
ERROR: testCopyFromHeader (test.functional.tests.TestFileUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 1023, in testCopyFromHeader
    data = file.write_random()
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 748, in write_random
    if not self.write(data, hdrs=hdrs, parms=parms, cfg=cfg):
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 722, in write
    self.conn.put_start(self.path, hdrs=headers, parms=parms, cfg=cfg)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 283, in put_start
    self.connection.endheaders()
  File "/usr/lib64/python2.6/httplib.py", line 908, in endheaders
    self._send_output()
  File "/usr/lib64/python2.6/httplib.py", line 778, in _send_output
    msg = "\r\n".join(self._buffer)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xeb in position 48: ordinal not in range(128)

======================================================================
ERROR: testCopyFromHeader404s (test.functional.tests.TestFileUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 1057, in testCopyFromHeader404s
    Utils.create_name(), source_filename)})
  File "/usr/lib64/python2.6/unittest.py", line 335, in failUnlessRaises
    callableObj(*args, **kwargs)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 722, in write
    self.conn.put_start(self.path, hdrs=headers, parms=parms, cfg=cfg)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 283, in put_start
    self.connection.endheaders()
  File "/usr/lib64/python2.6/httplib.py", line 908, in endheaders
    self._send_output()
  File "/usr/lib64/python2.6/httplib.py", line 778, in _send_output
    msg = "\r\n".join(self._buffer)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 13: ordinal not in range(128)

======================================================================
ERROR: testDeleteThen404s (test.functional.tests.TestFileUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 1115, in testDeleteThen404s
    self.assertRaises(ResponseError, method)
  File "/usr/lib64/python2.6/unittest.py", line 335, in failUnlessRaises
    callableObj(*args, **kwargs)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 679, in sync_metadata
    self.conn.make_request('POST', self.path, hdrs=headers, cfg=cfg)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 236, in make_request
    self.response = try_request()
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 227, in try_request
    self.connection.request(method, path, data, headers)
  File "/usr/lib64/python2.6/httplib.py", line 914, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib64/python2.6/httplib.py", line 951, in _send_request
    self.endheaders()
  File "/usr/lib64/python2.6/httplib.py", line 908, in endheaders
    self._send_output()
  File "/usr/lib64/python2.6/httplib.py", line 778, in _send_output
    msg = "\r\n".join(self._buffer)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 48: ordinal not in range(128)

======================================================================
ERROR: testGetContentType (test.functional.tests.TestFileUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 1406, in testGetContentType
    file.write_random()
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 748, in write_random
    if not self.write(data, hdrs=hdrs, parms=parms, cfg=cfg):
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 722, in write
    self.conn.put_start(self.path, hdrs=headers, parms=parms, cfg=cfg)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 283, in put_start
    self.connection.endheaders()
  File "/usr/lib64/python2.6/httplib.py", line 908, in endheaders
    self._send_output()
  File "/usr/lib64/python2.6/httplib.py", line 778, in _send_output
    msg = "\r\n".join(self._buffer)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 14: ordinal not in range(128)

======================================================================
ERROR: testHead (test.functional.tests.TestFileUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 1345, in testHead
    file.write_random(self.env.file_size)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 748, in write_random
    if not self.write(data, hdrs=hdrs, parms=parms, cfg=cfg):
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 722, in write
    self.conn.put_start(self.path, hdrs=headers, parms=parms, cfg=cfg)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 283, in put_start
    self.connection.endheaders()
  File "/usr/lib64/python2.6/httplib.py", line 908, in endheaders
    self._send_output()
  File "/usr/lib64/python2.6/httplib.py", line 778, in _send_output
    msg = "\r\n".join(self._buffer)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xed in position 14: ordinal not in range(128)

======================================================================
ERROR: testMetadataNumberLimit (test.functional.tests.TestFileUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 1150, in testMetadataNumberLimit
    self.assert_(file.write())
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 722, in write
    self.conn.put_start(self.path, hdrs=headers, parms=parms, cfg=cfg)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 283, in put_start
    self.connection.endheaders()
  File "/usr/lib64/python2.6/httplib.py", line 908, in endheaders
    self._send_output()
  File "/usr/lib64/python2.6/httplib.py", line 778, in _send_output
    msg = "\r\n".join(self._buffer)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe1 in position 41: ordinal not in range(128)

======================================================================
ERROR: testMetadataOnPost (test.functional.tests.TestFileUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 1392, in testMetadataOnPost
    self.assert_(file.sync_metadata())
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 679, in sync_metadata
    self.conn.make_request('POST', self.path, hdrs=headers, cfg=cfg)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 236, in make_request
    self.response = try_request()
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 227, in try_request
    self.connection.request(method, path, data, headers)
  File "/usr/lib64/python2.6/httplib.py", line 914, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib64/python2.6/httplib.py", line 951, in _send_request
    self.endheaders()
  File "/usr/lib64/python2.6/httplib.py", line 908, in endheaders
    self._send_output()
  File "/usr/lib64/python2.6/httplib.py", line 778, in _send_output
    msg = "\r\n".join(self._buffer)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xeb in position 48: ordinal not in range(128)

======================================================================
ERROR: testMetadataOnPut (test.functional.tests.TestFileUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 1447, in testMetadataOnPut
    file.write_random(self.env.file_size)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 748, in write_random
    if not self.write(data, hdrs=hdrs, parms=parms, cfg=cfg):
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 722, in write
    self.conn.put_start(self.path, hdrs=headers, parms=parms, cfg=cfg)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 283, in put_start
    self.connection.endheaders()
  File "/usr/lib64/python2.6/httplib.py", line 908, in endheaders
    self._send_output()
  File "/usr/lib64/python2.6/httplib.py", line 778, in _send_output
    msg = "\r\n".join(self._buffer)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 48: ordinal not in range(128)

======================================================================
ERROR: testQuestionMarkInName (test.functional.tests.TestFileUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 1099, in testQuestionMarkInName
    self.assert_(file.write(cfg={'no_path_quote': True}))
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 722, in write
    self.conn.put_start(self.path, hdrs=headers, parms=parms, cfg=cfg)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 258, in put_start
    path = self.make_path(path, cfg)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 194, in make_path
    '/'.join([quote(i) for i in path]))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)

======================================================================
ERROR: testSerialization (test.functional.tests.TestFileUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 1467, in testSerialization
    file.write_random(f['bytes'])
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 748, in write_random
    if not self.write(data, hdrs=hdrs, parms=parms, cfg=cfg):
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 722, in write
    self.conn.put_start(self.path, hdrs=headers, parms=parms, cfg=cfg)
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 283, in put_start
    self.connection.endheaders()
  File "/usr/lib64/python2.6/httplib.py", line 908, in endheaders
    self._send_output()
  File "/usr/lib64/python2.6/httplib.py", line 778, in _send_output
    msg = "\r\n".join(self._buffer)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 14: ordinal not in range(128)

----------------------------------------------------------------------
Ran 155 tests in 158.855s

FAILED (SKIP=3, errors=17)

Comment 2 Luis Pabón 2013-10-21 11:05:27 UTC
Pushpesh and I have tested and confirmed the issue.  The issue seems to be a bug in the functional tests themselves.

Comment 3 Luis Pabón 2013-10-22 02:22:53 UTC
I will backport the OpenStack Swift patch to the functional tests and try it out again.

Comment 4 pushpesh sharma 2013-10-23 15:38:25 UTC
Luis,

The the problem was reproducible on a RHOS-swift setup as well. The issue which i find earlier with functional TC 

https://bugs.launchpad.net/swift/+bug/1190190

is not the problem as I hit the issue on a RHOS-grizzly setup while executing latest upstream functional TCs (havana based). 

I am not sure if functional cases have an issue or the swift-code.However,if you and Peter are of the opinion that it is the problem with swift-test-client,then i dont see the issue as a blocker for RHS2.1-U1.

I logging an upstream issue for this.We can also take the opinion of RHOS team on this.

Comment 5 Luis Pabón 2013-10-23 22:55:22 UTC
Ok, let me investigate further. I will have a reply by Oct 24 EDT.  I need some time to setup my own keystone <--> RHS env to debug this issue.

Comment 6 Luis Pabón 2013-10-25 03:19:41 UTC
I have found that the fix for the main functional tests is as follows (Please make sure to use the tests from grizzly branch -- git checkout -b grizzly origin/grizzly ):

diff --git a/test/functional/swift_test_client.py b/test/functional/swift_test_client.py
index 65a6824..0dc3103 100644
--- a/test/functional/swift_test_client.py
+++ b/test/functional/swift_test_client.py
@@ -170,9 +170,9 @@ class Connection(object):
         self.storage_host = x[2].split(':')[0]
         if ':' in x[2]:
             self.storage_port = int(x[2].split(':')[1])
-        self.storage_url = '/%s/%s' % (x[3], x[4])
+        self.storage_url = str('/%s/%s' % (x[3], x[4]))
 
-        self.storage_token = storage_token
+        self.storage_token = str(storage_token)

Not only does the storage url need to be converted, but also the token.  Once I have done this, I started working on the functionalnose tests.  To work with these tests you need to setup a test2 tenant in Keystone with username and password as specified in /etc/swift/test.conf.  Lastly, you need one more user, tester3 but part of tenant 'test' as specified in /etc/swift/test.conf.

Currently my failures on the functionalnose tests seem to be due to 'public' access, meaning trying to access a container without a token:
[root@localhost gluster-swift]# nosetests -v --exe -s test/functionalnosetests/
test_bad_metadata (test.functionalnosetests.test_account.TestAccount) ... ok
test_metadata (test.functionalnosetests.test_account.TestAccount) ... ok
test_multi_metadata (test.functionalnosetests.test_account.TestAccount) ... ok
test_POST_bad_metadata (test.functionalnosetests.test_container.TestContainer) ... ok
test_POST_metadata (test.functionalnosetests.test_container.TestContainer) ... ok
test_PUT_bad_metadata (test.functionalnosetests.test_container.TestContainer) ... ok
test_PUT_metadata (test.functionalnosetests.test_container.TestContainer) ... ok
test_cross_account_container (test.functionalnosetests.test_container.TestContainer) ... ok
test_cross_account_public_container (test.functionalnosetests.test_container.TestContainer) ... ok
test_long_name_content_type (test.functionalnosetests.test_container.TestContainer) ... ok
test_multi_metadata (test.functionalnosetests.test_container.TestContainer) ... ok
test_nonadmin_user (test.functionalnosetests.test_container.TestContainer) ... ok
test_null_name (test.functionalnosetests.test_container.TestContainer) ... ok
test_public_container (test.functionalnosetests.test_container.TestContainer) ... > /root/gluster-swift/test/functionalnosetests/test_container.py(361)test_public_container()
-> def get(url, token, parsed, conn):
(Pdb) c
ERROR
test_copy_object (test.functionalnosetests.test_object.TestObject) ... ok
test_delete_content_type (test.functionalnosetests.test_object.TestObject) ... ok
test_manifest (test.functionalnosetests.test_object.TestObject) ... ok
test_null_name (test.functionalnosetests.test_object.TestObject) ... ok
test_private_object (test.functionalnosetests.test_object.TestObject) ... ok
test_public_object (test.functionalnosetests.test_object.TestObject) ... ERROR


** More info to come, but at least the simple diff will run most of the functional tests against a Keystone configuration.

Comment 7 pushpesh sharma 2013-10-25 11:09:42 UTC
Definitely better results with small changes in swift_test_client.py.The issue seems with functional tests only.We can close this BZ as "Not a BUG" based on these observations.   

[root@dhcp207-15 gluster-swift]# ./functests.sh 
..............F..............F.......F...............SSS......F...............................E........E...................................E........E.........
======================================================================
ERROR: testFileSizeLimit (test.functional.tests.TestFile)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 1254, in testFileSizeLimit
    cfg={'set_content_length': i}))
  File "/root/gluster-swift/test/functional/tests.py", line 154, in timeout
    raise t.exception
ResponseError: 413: Request Entity Too Large

======================================================================
ERROR: testNameLimit (test.functional.tests.TestFile)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 1085, in testNameLimit
    self.assert_(file.write())
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 740, in write
    raise ResponseError(self.conn.response)
ResponseError: 400: Bad Request

======================================================================
ERROR: testFileSizeLimit (test.functional.tests.TestFileUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 1254, in testFileSizeLimit
    cfg={'set_content_length': i}))
  File "/root/gluster-swift/test/functional/tests.py", line 154, in timeout
    raise t.exception
ResponseError: 413: Request Entity Too Large

======================================================================
ERROR: testNameLimit (test.functional.tests.TestFileUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 1085, in testNameLimit
    self.assert_(file.write())
  File "/root/gluster-swift/test/functional/swift_test_client.py", line 740, in write
    raise ResponseError(self.conn.response)
ResponseError: 400: Bad Request

======================================================================
FAIL: testPUT (test.functional.tests.TestAccount)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 281, in testPUT
    self.assert_status([403, 405])
  File "/root/gluster-swift/test/functional/tests.py", line 202, in assert_status
    (self.env.conn.response.status, status_or_statuses))
AssertionError: Status returned: 202 Expected: [403, 405]

======================================================================
FAIL: testPUT (test.functional.tests.TestAccountUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 281, in testPUT
    self.assert_status([403, 405])
  File "/root/gluster-swift/test/functional/tests.py", line 202, in assert_status
    (self.env.conn.response.status, status_or_statuses))
AssertionError: Status returned: 202 Expected: [403, 405]

======================================================================
FAIL: testContainerNameLimit (test.functional.tests.TestContainer)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 472, in testContainerNameLimit
    self.assert_(not cont.create())
AssertionError

======================================================================
FAIL: testContainerNameLimit (test.functional.tests.TestContainerUTF8)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functional/tests.py", line 472, in testContainerNameLimit
    self.assert_(not cont.create())
AssertionError

----------------------------------------------------------------------
Ran 158 tests in 197.960s

FAILED (SKIP=3, errors=4, failures=4)
/root/gluster-swift
.............E.....E
======================================================================
ERROR: test_public_container (test.functionalnosetests.test_container.TestContainer)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functionalnosetests/test_container.py", line 376, in test_public_container
    resp = retry(get)
  File "/root/gluster-swift/test/functionalnosetests/swift_testing.py", line 179, in retry
    raise Exception('No result after %s retries.' % retries)
Exception: No result after 5 retries.

======================================================================
ERROR: test_public_object (test.functionalnosetests.test_object.TestObject)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/gluster-swift/test/functionalnosetests/test_object.py", line 200, in test_public_object
    resp = retry(get)
  File "/root/gluster-swift/test/functionalnosetests/swift_testing.py", line 179, in retry
    raise Exception('No result after %s retries.' % retries)
Exception: No result after 5 retries.

----------------------------------------------------------------------
Ran 20 tests in 33.578s

FAILED (errors=2)
/root/gluster-swift