Merge pull request #63 from TristanCacqueray/master

Maintenance fixes
This commit is contained in:
Joe H. Rahme 2013-11-12 02:27:49 -08:00
commit 4523c3ae55
9 changed files with 53 additions and 30 deletions

View File

@ -49,8 +49,13 @@ setup.py install.
$ virtualenv $HOME/venv
$ . $HOME/venv/bin/activate
$ pip install -r tools/pip-requires
$ python setup.py install
Note, without the manual pip install, the installation might failed with
this error: 'TypeError: dist must be a Distribution instance'
ref: https://bugs.launchpad.net/swift/+bug/1217288
swfiller usage
--------------

View File

@ -53,9 +53,10 @@ def main():
if args.config and os.path.isfile(args.config):
try:
conf = utils.parse_ini(args.config)
except Exception, exc:
logging.info('Unable to parse provided conf file')
except Exception:
pass
logging.error(exc)
sys.exit(1)
else:
try:
conf = utils.parse_ini()

View File

@ -96,7 +96,11 @@ class Containers(object):
container_headers = orig_container_headers.copy()
for h in ('x-container-object-count', 'x-trans-id',
'x-container-bytes-used'):
del container_headers[h]
try:
del container_headers[h]
except KeyError:
# Nov2013: swift server does not set x-trans-id header
pass
p = dest_storage_cnx[0]
url = "%s://%s%s" % (p.scheme, p.netloc, p.path)
try:

View File

@ -86,6 +86,10 @@ def create_swift_user(client, account_name, account_id, user_amount):
# Get swift_operator_role id
roleid = [role.id for role in client.roles.list()
if role.name == get_config('filler', 'swift_operator_role')]
if not roleid:
logging.error('Could not find swift_operator_role %s in keystone' %
get_config('filler', 'swift_operator_role'))
sys.exit(1)
roleid = roleid[0]
# Add tenant/user in swift operator role/group
client.roles.add_user_role(uid.id, roleid, account_id)
@ -235,7 +239,7 @@ def create_containers(cnx, acc, c_amount, index_containers=None):
try:
cnx.put_container(container_name, headers=copy.copy(meta))
containers_d[container_name] = {'meta': meta, 'objects': []}
except ClientException, e:
except(ClientException), e:
logging.warning("Unable to create container %s due to %s" %
(container_name.encode('ascii', 'ignore'),
e))

View File

@ -19,7 +19,12 @@ import logging
import eventlet
import swift.common.bufferedhttp
import swift.common.http
import swift.container.sync
try:
from swift.container.sync import _Iter2FileLikeObject as FileLikeIter
except ImportError:
# Nov2013: swift.common.utils now include a more generic object
from swift.common.utils import FileLikeIter
from swiftclient import client as swiftclient
import urllib
import urllib2
@ -107,11 +112,10 @@ def sync_object(orig_storage_url, orig_token, dest_storage_url,
post_headers = orig_headers
post_headers['x-auth-token'] = dest_token
sync_to = dest_storage_url + "/" + container_name
iterlike = swift.container.sync._Iter2FileLikeObject
try:
swiftclient.put_object(sync_to, name=object_name,
headers=post_headers,
contents=iterlike(orig_body))
contents=FileLikeIter(orig_body))
except(swiftclient.ClientException), e:
logging.info("error sync object: %s, %s" % (
object_name, e.http_reason))

View File

@ -101,8 +101,8 @@ class TestAccountSyncMetadata(TestAccountBase):
post_account_called=post_account_called,
get_account_called=get_account_called)
self.assertEquals(len(sync_container_called), 1)
self.assertEquals(len(get_account_called), 2)
self.assertEqual(len(sync_container_called), 1)
self.assertEqual(len(get_account_called), 2)
self.assertTrue(info_called)
self.assertIn('x-account-meta-life',
@ -134,8 +134,8 @@ class TestAccountSyncMetadata(TestAccountBase):
post_account_called=post_account_called,
get_account_called=get_account_called)
self.assertEquals(len(sync_container_called), 1)
self.assertEquals(len(get_account_called), 2)
self.assertEqual(len(sync_container_called), 1)
self.assertEqual(len(get_account_called), 2)
self.assertTrue(info_called)
self.assertIn('x-account-meta-life',
@ -167,8 +167,8 @@ class TestAccountSyncMetadata(TestAccountBase):
post_account_called=post_account_called,
get_account_called=get_account_called)
self.assertEquals(len(sync_container_called), 1)
self.assertEquals(len(get_account_called), 2)
self.assertEqual(len(sync_container_called), 1)
self.assertEqual(len(get_account_called), 2)
self.assertTrue(info_called)
self.assertIn('x-account-meta-life',
@ -212,7 +212,7 @@ class TestAccountSync(TestAccountBase):
ret = self.accounts_cls.get_swift_auth(
"http://test.com", tenant_name, "user", "password")
tenant_id = fakes.TENANTS_LIST[tenant_name]['id']
self.assertEquals(ret[0], "%s/v1/AUTH_%s" % (fakes.STORAGE_DEST,
self.assertEqual(ret[0], "%s/v1/AUTH_%s" % (fakes.STORAGE_DEST,
tenant_id))
def test_get_ks_auth_orig(self):
@ -220,11 +220,11 @@ class TestAccountSync(TestAccountBase):
k = fakes.CONFIGDICT['auth']['keystone_origin_admin_credentials']
tenant_name, username, password = k.split(':')
self.assertEquals(kwargs['tenant_name'], tenant_name)
self.assertEquals(kwargs['username'], username)
self.assertEquals(kwargs['password'], password)
self.assertEqual(kwargs['tenant_name'], tenant_name)
self.assertEqual(kwargs['username'], username)
self.assertEqual(kwargs['password'], password)
k = fakes.CONFIGDICT['auth']['keystone_origin']
self.assertEquals(k, kwargs['auth_url'])
self.assertEqual(k, kwargs['auth_url'])
def test_process(self):
ret = []
@ -240,7 +240,7 @@ class TestAccountSync(TestAccountBase):
for x in fakes.TENANTS_LIST)
ret_orig_storage_id = sorted(
x[0][x[0].find('AUTH_') + 5:] for x in ret)
self.assertEquals(tenant_list_ids, ret_orig_storage_id)
self.assertEqual(tenant_list_ids, ret_orig_storage_id)
[self.assertTrue(y[1].startswith(fakes.STORAGE_DEST)) for y in ret]
def test_sync_account(self):
@ -270,7 +270,7 @@ class TestAccountSync(TestAccountBase):
ret_container_list = sorted(x[7] for x in ret)
default_container_list = sorted(x[0]['name']
for x in fakes.CONTAINERS_LIST)
self.assertEquals(ret_container_list, default_container_list)
self.assertEqual(ret_container_list, default_container_list)
def test_sync_exception_get_account(self):
called = []

View File

@ -104,8 +104,8 @@ class TestContainersSyncMetadata(TestContainersBase):
post_called, info_called)
self.assertEqual(len(get_called), 2)
self.assertEqual(len(post_called), 1)
self.assertEquals(post_called[0]['x-container-meta-psg'], '')
self.assertEquals(post_called[0]['x-container-meta-om'], 'enkl')
self.assertEqual(post_called[0]['x-container-meta-psg'], '')
self.assertEqual(post_called[0]['x-container-meta-om'], 'enkl')
self.assertIn('HEADER: sync headers: cont1', info_called)
def test_sync_containers_metada_added_on_orig(self):
@ -130,7 +130,7 @@ class TestContainersSyncMetadata(TestContainersBase):
self.assertIn('HEADER: sync headers: cont1', info_called)
self.assertEqual(len(get_called), 2)
self.assertEqual(len(post_called), 1)
self.assertEquals(post_called[0]['x-container-meta-om'], 'enkl')
self.assertEqual(post_called[0]['x-container-meta-om'], 'enkl')
def test_sync_containers_metada_changed(self):
get_called = []
@ -153,7 +153,7 @@ class TestContainersSyncMetadata(TestContainersBase):
post_called, info_called)
self.assertEqual(len(get_called), 2)
self.assertEqual(len(post_called), 1)
self.assertEquals(post_called[0]['x-container-meta-psg'], 'magic')
self.assertEqual(post_called[0]['x-container-meta-psg'], 'magic')
self.assertIn('HEADER: sync headers: cont1', info_called)
def test_sync_containers_metadata_raise_client(self):

View File

@ -53,11 +53,11 @@ class TestLastModifiedMiddleware(unittest.TestCase):
def test_denied_method_conf(self):
app = FakeApp()
test = middleware.filter_factory({})(app)
self.assertEquals(test.key_name, 'Last-Modified')
self.assertEqual(test.key_name, 'Last-Modified')
test = middleware.filter_factory({'key_name': "Last Modified"})(app)
self.assertEquals(test.key_name, 'Last-Modified')
self.assertEqual(test.key_name, 'Last-Modified')
test = middleware.filter_factory({'key_name': "Custom Key"})(app)
self.assertEquals(test.key_name, 'Custom-Key')
self.assertEqual(test.key_name, 'Custom-Key')
def test_PUT_on_container(self):
self.called = False

View File

@ -16,6 +16,12 @@
# under the License.
import eventlet
import swift
try:
from swift.container.sync import _Iter2FileLikeObject as FileLikeIter
except ImportError:
# Nov2013: swift.common.utils now include a more generic object
from swift.common.utils import FileLikeIter
import swiftclient
import swsync.objects as swobjects
@ -86,8 +92,7 @@ class TestObject(test_base.TestCase):
def put_object(url, name=None, headers=None, contents=None):
self.assertEqual('obj1', name)
self.assertIn('x-auth-token', headers)
self.assertIsInstance(contents,
swift.container.sync._Iter2FileLikeObject)
self.assertIsInstance(contents, FileLikeIter)
contents_read = contents.read()
self.assertEqual(len(contents_read), len(body))
@ -153,7 +158,7 @@ class TestObject(test_base.TestCase):
"cont1",
"obj1")
self.assertIn('x-foo', headers)
self.assertEquals(headers['x-foo'], 'BaR')
self.assertEqual(headers['x-foo'], 'BaR')
def test_get_object_over_conn_timeout(self):
new_connect = fake_http_connect(200, connect_waitfor=2)