Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
return f % random.randrange(16 ** l)
if __name__ == '__main__':
if len(sys.argv) < 5:
print('Usage: %s RPS requestSize selfHost:port partner1Host:port partner2Host:port ...' % sys.argv[0])
sys.exit(-1)
numCommands = int(sys.argv[1])
cmdSize = int(sys.argv[2])
selfAddr = sys.argv[3]
if selfAddr == 'readonly':
selfAddr = None
partners = sys.argv[4:]
maxCommandsQueueSize = int(0.9 * SyncObjConf().commandsQueueSize / len(partners))
obj = TestObj(selfAddr, partners)
while obj._getLeader() is None:
time.sleep(0.5)
time.sleep(4.0)
startTime = time.time()
while time.time() - startTime < 25.0:
st = time.time()
for i in xrange(0, numCommands):
obj.testMethod(getRandStr(cmdSize), callback=clbck)
_g_sent += 1
delta = time.time() - st
return f % random.randrange(16 ** l)
if __name__ == '__main__':
if len(sys.argv) < 5:
print('Usage: %s RPS requestSize selfHost:port partner1Host:port partner2Host:port ...' % sys.argv[0])
sys.exit(-1)
numCommands = int(sys.argv[1])
cmdSize = int(sys.argv[2])
selfAddr = sys.argv[3]
if selfAddr == 'readonly':
selfAddr = None
partners = sys.argv[4:]
maxCommandsQueueSize = int(0.9 * SyncObjConf().commandsQueueSize / len(partners))
obj = TestObj(selfAddr, partners)
while obj._getLeader() is None:
time.sleep(0.5)
time.sleep(4.0)
startTime = time.time()
while time.time() - startTime < 25.0:
st = time.time()
for i in xrange(0, numCommands):
obj.testMethod(getRandStr(cmdSize), time.time(), callback=clbck)
_g_sent += 1
delta = time.time() - st
def test_retry(self):
return_values = [FAIL_REASON.QUEUE_FULL, FAIL_REASON.SUCCESS, FAIL_REASON.REQUEST_DENIED]
def test(callback):
callback(True, return_values.pop(0))
self.assertTrue(self.so.retry(test))
self.assertFalse(self.so.retry(test))
def test_unpickle():
data = {'foo': 'bar', 'command': b'\xfa', 'entries': [b'\xfb', b'\xfc']}
python2_cpickle = b'\x80\x02}q\x01(U\x03fooq\x02U\x03barq\x03U\x07commandq\x04U\x01\xfaU\x07entriesq\x05]q\x06(U\x01\xfbU\x01\xfceu.'
python2_pickle = b'\x80\x02}q\x00(U\x03fooq\x01U\x03barq\x02U\x07commandq\x03U\x01\xfaq\x04U\x07entriesq\x05]q\x06(U\x01\xfbq\x07U\x01\xfcq\x08eu.'
python3_pickle = b'\x80\x02}q\x00(X\x03\x00\x00\x00fooq\x01X\x03\x00\x00\x00barq\x02X\x07\x00\x00\x00commandq\x03c_codecs\nencode\nq\x04X\x02\x00\x00\x00\xc3\xbaq\x05X\x06\x00\x00\x00latin1q\x06\x86q\x07Rq\x08X\x07\x00\x00\x00entriesq\t]q\n(h\x04X\x02\x00\x00\x00\xc3\xbbq\x0bh\x06\x86q\x0cRq\rh\x04X\x02\x00\x00\x00\xc3\xbcq\x0eh\x06\x86q\x0fRq\x10eu.'
python2_cpickle_data = pickle.loads(python2_cpickle)
assert data == python2_cpickle_data, 'Failed to unpickle data pickled by python2 cPickle'
python2_pickle_data = pickle.loads(python2_pickle)
assert data == python2_pickle_data, 'Failed to unpickle data pickled by python2 pickle'
python3_pickle_data = pickle.loads(python3_pickle)
assert data == python3_pickle_data, 'Failed to unpickle data pickled by python3 pickle'
def setUp(self):
self.conf = SyncObjConf(appendEntriesUseBatch=False, appendEntriesPeriod=0.001, journalFile='foo.journal',
raftMinTimeout=0.004, raftMaxTimeout=0.005, autoTickPeriod=0.001)
callback = Mock()
callback.replicated = False
self.so = KVStoreTTL('127.0.0.1:1234', [], self.conf, on_set=callback, on_delete=callback)
self.so.set_retry_timeout(10)
def setUp(self):
self.conf = SyncObjConf(appendEntriesUseBatch=False, dynamicMembershipChange=True, autoTick=False)
self.so = DynMemberSyncObj('127.0.0.1:1234', ['127.0.0.1:1235'], self.conf)
def setUp(self):
self.temp_dir = TemporaryDirectory()
host = '0.0.0.0'
port = get_free_port()
seed_addr = None
conf = SyncObjConf(
fullDumpFile=self.temp_dir.name + '/supervise.zip',
logCompactionMinTime=300,
dynamicMembershipChange=True
)
data_dir = self.temp_dir.name + '/supervise'
grpc_port = get_free_port()
grpc_max_workers = 10
http_port = get_free_port()
logger = getLogger(NAME)
log_handler = StreamHandler()
logger.setLevel(ERROR)
log_handler.setLevel(INFO)
log_format = Formatter('%(asctime)s - %(levelname)s - %(pathname)s:%(lineno)d - %(message)s')
log_handler.setFormatter(log_format)
logger.addHandler(log_handler)
http_logger = getLogger(NAME + '_http')
def setUp(self):
self.temp_dir = TemporaryDirectory()
self.example_dir = os.path.normpath(os.path.join(os.path.dirname(__file__), '../example'))
host = '0.0.0.0'
port = get_free_port()
seed_addr = None
conf = SyncObjConf(
fullDumpFile=self.temp_dir.name + '/supervise.zip',
logCompactionMinTime=300,
dynamicMembershipChange=True
)
data_dir = self.temp_dir.name + '/supervise'
grpc_port = get_free_port()
grpc_max_workers = 10
http_port = get_free_port()
logger = getLogger(NAME)
log_handler = StreamHandler()
logger.setLevel(ERROR)
log_handler.setLevel(INFO)
log_format = Formatter('%(asctime)s - %(levelname)s - %(pathname)s:%(lineno)d - %(message)s')
log_handler.setFormatter(log_format)
logger.addHandler(log_handler)
http_logger = getLogger(NAME + '_http')
def __init__(self, selfNodeAddr, otherNodeAddrs,
testType = TEST_TYPE.DEFAULT,
compactionMinEntries = 0,
dumpFile = None,
journalFile = None,
password = None,
dynamicMembershipChange = False,
useFork = True,
testBindAddr = False):
cfg = SyncObjConf(autoTick=False, appendEntriesUseBatch=False)
cfg.appendEntriesPeriod = 0.1
cfg.raftMinTimeout = 0.5
cfg.raftMaxTimeout = 1.0
cfg.dynamicMembershipChange = dynamicMembershipChange
if testBindAddr:
cfg.bindAddress = selfNodeAddr
if dumpFile is not None:
cfg.fullDumpFile = dumpFile
if password is not None:
cfg.password = password
cfg.useFork = useFork
logging.basicConfig(format = u'[%(asctime)s %(filename)s:%(lineno)d %(levelname)s] %(message)s', level = logging.DEBUG)
_bchr = functools.partial(struct.pack, 'B')
class TEST_TYPE:
DEFAULT = 0
COMPACTION_1 = 1
COMPACTION_2 = 2
RAND_1 = 3
JOURNAL_1 = 4
AUTO_TICK_1 = 5
WAIT_BIND = 6
LARGE_COMMAND = 7
class TestObj(SyncObj):
def __init__(self, selfNodeAddr, otherNodeAddrs,
testType = TEST_TYPE.DEFAULT,
compactionMinEntries = 0,
dumpFile = None,
journalFile = None,
password = None,
dynamicMembershipChange = False,
useFork = True,
testBindAddr = False,
consumers = None,
onStateChanged = None,
leaderFallbackTimeout = None):
cfg = SyncObjConf(autoTick=False, appendEntriesUseBatch=False)
cfg.appendEntriesPeriod = 0.1