def reset_environment(): call(['resetchase']) pids = {} try: port2server = {} for s, p in (('account', 6002), ('container', 6001), ('object', 6000)): for n in xrange(1, 5): pids['%s%d' % (s, n)] = \ Popen(['chase-%s-server' % s, '/etc/chase/%s-server/%d.conf' % (s, n)]).pid port2server[p + (n * 10)] = '%s%d' % (s, n) pids['proxy'] = Popen( ['chase-proxy-server', '/etc/chase/proxy-server.conf']).pid account_ring = Ring('/etc/chase/account.ring.gz') container_ring = Ring('/etc/chase/container.ring.gz') object_ring = Ring('/etc/chase/object.ring.gz') attempt = 0 while True: attempt += 1 try: url, token = get_auth('http://127.0.0.1:8080/auth/v1.0', 'test:tester', 'testing') account = url.split('/')[-1] break except Exception, err: if attempt > 9: print err print 'Giving up after %s retries.' % attempt raise err print err print 'Retrying in 2 seconds...' sleep(2) except BaseException, err: kill_pids(pids) raise err
def reset_environment(): call(['resetchase']) pids = {} try: port2server = {} for s, p in (('account', 6002), ('container', 6001), ('object', 6000)): for n in xrange(1, 5): pids['%s%d' % (s, n)] = \ Popen(['chase-%s-server' % s, '/etc/chase/%s-server/%d.conf' % (s, n)]).pid port2server[p + (n * 10)] = '%s%d' % (s, n) pids['proxy'] = Popen(['chase-proxy-server', '/etc/chase/proxy-server.conf']).pid account_ring = Ring('/etc/chase/account.ring.gz') container_ring = Ring('/etc/chase/container.ring.gz') object_ring = Ring('/etc/chase/object.ring.gz') attempt = 0 while True: attempt += 1 try: url, token = get_auth('http://127.0.0.1:8080/auth/v1.0', 'test:tester', 'testing') account = url.split('/')[-1] break except Exception, err: if attempt > 9: print err print 'Giving up after %s retries.' % attempt raise err print err print 'Retrying in 2 seconds...' sleep(2) except BaseException, err: kill_pids(pids) raise err
def __init__(self, logger, conf, names): self.logger = logger self.user = conf.user self.key = conf.key self.auth_url = conf.auth self.use_proxy = conf.use_proxy.lower() in TRUE_VALUES if self.use_proxy: url, token = client.get_auth(self.auth_url, self.user, self.key) self.token = token self.account = url.split('/')[-1] if conf.url == '': self.url = url else: self.url = conf.url else: self.token = 'SlapChop!' self.account = conf.account self.url = conf.url self.ip, self.port = self.url.split('/')[2].split(':') self.containers = [ '%s_%d' % (conf.container_name, i) for i in xrange(int(conf.num_containers)) ] self.object_size = int(conf.object_size) self.object_sources = conf.object_sources self.files = [] if self.object_sources: self.object_sources = self.object_sources.split() self.files = [file(f, 'rb').read() for f in self.object_sources] self.put_concurrency = int(conf.put_concurrency) self.get_concurrency = int(conf.get_concurrency) self.del_concurrency = int(conf.del_concurrency) self.total_objects = int(conf.num_objects) self.total_gets = int(conf.num_gets) self.timeout = int(conf.timeout) self.devices = conf.devices.split() self.names = names self.conn_pool = ConnectionPool( self.url, max(self.put_concurrency, self.get_concurrency, self.del_concurrency))
def __init__(self, logger, conf, names): self.logger = logger self.user = conf.user self.key = conf.key self.auth_url = conf.auth self.use_proxy = conf.use_proxy.lower() in TRUE_VALUES if self.use_proxy: url, token = client.get_auth(self.auth_url, self.user, self.key) self.token = token self.account = url.split('/')[-1] if conf.url == '': self.url = url else: self.url = conf.url else: self.token = 'SlapChop!' self.account = conf.account self.url = conf.url self.ip, self.port = self.url.split('/')[2].split(':') self.containers = ['%s_%d' % (conf.container_name, i) for i in xrange(int(conf.num_containers))] self.object_size = int(conf.object_size) self.object_sources = conf.object_sources self.files = [] if self.object_sources: self.object_sources = self.object_sources.split() self.files = [file(f, 'rb').read() for f in self.object_sources] self.put_concurrency = int(conf.put_concurrency) self.get_concurrency = int(conf.get_concurrency) self.del_concurrency = int(conf.del_concurrency) self.total_objects = int(conf.num_objects) self.total_gets = int(conf.num_gets) self.timeout = int(conf.timeout) self.devices = conf.devices.split() self.names = names self.conn_pool = ConnectionPool(self.url, max(self.put_concurrency, self.get_concurrency, self.del_concurrency))
def retry(func, *args, **kwargs): """ You can use the kwargs to override the 'retries' (default: 5) and 'use_account' (default: 1). """ global url, token, parsed, conn retries = kwargs.get('retries', 5) use_account = 1 if 'use_account' in kwargs: use_account = kwargs['use_account'] del kwargs['use_account'] use_account -= 1 attempts = 0 backoff = 1 while attempts <= retries: attempts += 1 try: if not url[use_account] or not token[use_account]: url[use_account], token[use_account] = \ get_auth(chase_test_auth, chase_test_user[use_account], chase_test_key[use_account]) parsed[use_account] = conn[use_account] = None if not parsed[use_account] or not conn[use_account]: parsed[use_account], conn[use_account] = \ http_connection(url[use_account]) return func(url[use_account], token[use_account], parsed[use_account], conn[use_account], *args, **kwargs) except (socket.error, HTTPException): if attempts > retries: raise parsed[use_account] = conn[use_account] = None except AuthError, err: url[use_account] = token[use_account] = None continue except InternalServerError, err: pass
def retry(func, *args, **kwargs): """ You can use the kwargs to override the 'retries' (default: 5) and 'use_account' (default: 1). """ global url, token, parsed, conn retries = kwargs.get('retries', 5) use_account = 1 if 'use_account' in kwargs: use_account = kwargs['use_account'] del kwargs['use_account'] use_account -= 1 attempts = 0 backoff = 1 while attempts <= retries: attempts += 1 try: if not url[use_account] or not token[use_account]: url[use_account], token[use_account] = \ get_auth(chase_test_auth, chase_test_user[use_account], chase_test_key[use_account]) parsed[use_account] = conn[use_account] = None if not parsed[use_account] or not conn[use_account]: parsed[use_account], conn[use_account] = \ http_connection(url[use_account]) return func(url[use_account], token[use_account], parsed[use_account], conn[use_account], *args, **kwargs) except (socket.error, HTTPException): if attempts > retries: raise parsed[use_account] = conn[use_account] = None except AuthError, err: url[use_account] = token[use_account] = None continue except InternalServerError, err: pass
def test_ok(self): c.http_connection = self.fake_http_connection(200) url, token = c.get_auth('http://www.test.com', 'asdf', 'asdf') self.assertEquals(url, None) self.assertEquals(token, None)