Commit ed0cb88e authored by Grégory Wisniewski's avatar Grégory Wisniewski

Unify packets checking in master and storage.


git-svn-id: https://svn.erp5.org/repos/neo/branches/prototype3@521 71dcc9de-d417-0410-9af5-da40c76e7ee4
parent bdc2f9b5
...@@ -18,13 +18,14 @@ ...@@ -18,13 +18,14 @@
import unittest, logging, os import unittest, logging, os
from tempfile import mkstemp from tempfile import mkstemp
from mock import Mock from mock import Mock
from neo.tests.base import NeoTestBase
from neo.master.app import Application from neo.master.app import Application
from neo.protocol import INVALID_PTID, INVALID_OID, INVALID_TID, \ from neo.protocol import INVALID_PTID, INVALID_OID, INVALID_TID, \
INVALID_UUID, Packet, NOTIFY_NODE_INFORMATION INVALID_UUID, Packet, NOTIFY_NODE_INFORMATION
from neo.node import MasterNode, ClientNode, StorageNode from neo.node import MasterNode, ClientNode, StorageNode
from neo.storage.mysqldb import p64, u64 from neo.storage.mysqldb import p64, u64
class MasterAppTests(unittest.TestCase): class MasterAppTests(NeoTestBase):
def setUp(self): def setUp(self):
logging.basicConfig(level = logging.WARNING) logging.basicConfig(level = logging.WARNING)
...@@ -81,18 +82,6 @@ server: 127.0.0.1:10023 ...@@ -81,18 +82,6 @@ server: 127.0.0.1:10023
# Delete tmp file # Delete tmp file
os.remove(self.tmp_path) os.remove(self.tmp_path)
def getNewUUID(self):
uuid = INVALID_UUID
while uuid == INVALID_UUID:
uuid = os.urandom(16)
self.uuid = uuid
return uuid
def checkNoPacketSent(self, conn):
self.assertEquals(len(conn.mockGetNamedCalls('notify')), 0)
self.assertEquals(len(conn.mockGetNamedCalls('answer')), 0)
self.assertEquals(len(conn.mockGetNamedCalls('ask')), 0)
def test_01_getNextPartitionTableID(self): def test_01_getNextPartitionTableID(self):
# must raise as we don"t have one # must raise as we don"t have one
self.assertEqual(self.app.lptid, INVALID_PTID) self.assertEqual(self.app.lptid, INVALID_PTID)
...@@ -166,16 +155,8 @@ server: 127.0.0.1:10023 ...@@ -166,16 +155,8 @@ server: 127.0.0.1:10023
self.app.broadcastNodeInformation(c_node) self.app.broadcastNodeInformation(c_node)
# check conn # check conn
self.checkNoPacketSent(client_conn) self.checkNoPacketSent(client_conn)
self.assertEquals(len(master_conn.mockGetNamedCalls("notify")), 1) self.checkNotifyNodeInformation(master_conn)
call = master_conn.mockGetNamedCalls("notify")[0] self.checkNotifyNodeInformation(storage_conn)
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEqual(packet.getType(), NOTIFY_NODE_INFORMATION)
self.assertEquals(len(storage_conn.mockGetNamedCalls("notify")), 1)
call = storage_conn.mockGetNamedCalls("notify")[0]
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEqual(packet.getType(), NOTIFY_NODE_INFORMATION)
# address defined and client type # address defined and client type
master_conn = Mock({"getUUID" : master_uuid}) master_conn = Mock({"getUUID" : master_uuid})
...@@ -186,16 +167,8 @@ server: 127.0.0.1:10023 ...@@ -186,16 +167,8 @@ server: 127.0.0.1:10023
self.app.broadcastNodeInformation(c_node) self.app.broadcastNodeInformation(c_node)
# check conn # check conn
self.checkNoPacketSent(client_conn) self.checkNoPacketSent(client_conn)
self.assertEquals(len(master_conn.mockGetNamedCalls("notify")), 1) self.checkNotifyNodeInformation(master_conn)
call = master_conn.mockGetNamedCalls("notify")[0] self.checkNotifyNodeInformation(storage_conn)
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEqual(packet.getType(), NOTIFY_NODE_INFORMATION)
self.assertEquals(len(storage_conn.mockGetNamedCalls("notify")), 1)
call = storage_conn.mockGetNamedCalls("notify")[0]
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEqual(packet.getType(), NOTIFY_NODE_INFORMATION)
# address defined and storage type # address defined and storage type
master_conn = Mock({"getUUID" : master_uuid}) master_conn = Mock({"getUUID" : master_uuid})
...@@ -205,21 +178,9 @@ server: 127.0.0.1:10023 ...@@ -205,21 +178,9 @@ server: 127.0.0.1:10023
s_node = StorageNode(uuid = self.getNewUUID(), server=("127.0.0.1", 1351)) s_node = StorageNode(uuid = self.getNewUUID(), server=("127.0.0.1", 1351))
self.app.broadcastNodeInformation(s_node) self.app.broadcastNodeInformation(s_node)
# check conn # check conn
self.assertEquals(len(client_conn.mockGetNamedCalls("notify")), 1) self.checkNotifyNodeInformation(client_conn)
call = client_conn.mockGetNamedCalls("notify")[0] self.checkNotifyNodeInformation(master_conn)
packet = call.getParam(0) self.checkNotifyNodeInformation(storage_conn)
self.assertTrue(isinstance(packet, Packet))
self.assertEqual(packet.getType(), NOTIFY_NODE_INFORMATION)
self.assertEquals(len(master_conn.mockGetNamedCalls("notify")), 1)
call = master_conn.mockGetNamedCalls("notify")[0]
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEqual(packet.getType(), NOTIFY_NODE_INFORMATION)
self.assertEquals(len(storage_conn.mockGetNamedCalls("notify")), 1)
call = storage_conn.mockGetNamedCalls("notify")[0]
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEqual(packet.getType(), NOTIFY_NODE_INFORMATION)
if __name__ == '__main__': if __name__ == '__main__':
......
...@@ -163,7 +163,7 @@ server: 127.0.0.1:10023 ...@@ -163,7 +163,7 @@ server: 127.0.0.1:10023
ip_address=ip, ip_address=ip,
port=port, port=port,
name=self.app.name,) name=self.app.name,)
self.checkAcceptNodeIdentification(conn, packet) self.checkAcceptNodeIdentification(conn, answered_packet=packet)
return uuid return uuid
# Method to test the kind of packet returned in answer # Method to test the kind of packet returned in answer
...@@ -521,7 +521,7 @@ server: 127.0.0.1:10023 ...@@ -521,7 +521,7 @@ server: 127.0.0.1:10023
self.assertEqual(len(self.app.nm.getMasterNodeList()), 1) self.assertEqual(len(self.app.nm.getMasterNodeList()), 1)
self.assertEqual(node.getUUID(), uuid) self.assertEqual(node.getUUID(), uuid)
self.assertEqual(node.getState(), RUNNING_STATE) self.assertEqual(node.getState(), RUNNING_STATE)
self.checkAcceptNodeIdentification(conn, packet) self.checkAcceptNodeIdentification(conn, answered_packet=packet)
# unknown node # unknown node
conn = Mock({"_addPacket" : None, "abort" : None, "expectMessage" : None, conn = Mock({"_addPacket" : None, "abort" : None, "expectMessage" : None,
"isServerConnection" : True}) "isServerConnection" : True})
...@@ -537,7 +537,7 @@ server: 127.0.0.1:10023 ...@@ -537,7 +537,7 @@ server: 127.0.0.1:10023
port=self.master_port+1, port=self.master_port+1,
name=self.app.name,) name=self.app.name,)
self.assertEqual(len(self.app.nm.getMasterNodeList()), 2) self.assertEqual(len(self.app.nm.getMasterNodeList()), 2)
self.checkAcceptNodeIdentification(conn, packet) self.checkAcceptNodeIdentification(conn, answered_packet=packet)
self.assertEqual(len(self.app.unconnected_master_node_set), 2) self.assertEqual(len(self.app.unconnected_master_node_set), 2)
self.assertEqual(len(self.app.negotiating_master_node_set), 0) self.assertEqual(len(self.app.negotiating_master_node_set), 0)
# broken node # broken node
......
...@@ -130,7 +130,7 @@ server: 127.0.0.1:10023 ...@@ -130,7 +130,7 @@ server: 127.0.0.1:10023
# test alien cluster # test alien cluster
conn = Mock({"_addPacket" : None, "abort" : None, "expectMessage" : None}) conn = Mock({"_addPacket" : None, "abort" : None, "expectMessage" : None})
self.service.handleRequestNodeIdentification(conn, packet, *args) self.service.handleRequestNodeIdentification(conn, packet, *args)
self.checkAcceptNodeIdentification(conn, packet) self.checkAcceptNodeIdentification(conn, answered_packet=packet)
return uuid return uuid
# Tests # Tests
...@@ -156,7 +156,7 @@ server: 127.0.0.1:10023 ...@@ -156,7 +156,7 @@ server: 127.0.0.1:10023
ip_address='127.0.0.1', ip_address='127.0.0.1',
port=self.storage_port, port=self.storage_port,
name=self.app.name,) name=self.app.name,)
self.checkAcceptNodeIdentification(conn, packet) self.checkAcceptNodeIdentification(conn, answered_packet=packet)
self.assertEquals(len(self.app.nm.getStorageNodeList()), 1) self.assertEquals(len(self.app.nm.getStorageNodeList()), 1)
sn = self.app.nm.getStorageNodeList()[0] sn = self.app.nm.getStorageNodeList()[0]
self.assertEquals(sn.getServer(), ('127.0.0.1', self.storage_port)) self.assertEquals(sn.getServer(), ('127.0.0.1', self.storage_port))
...@@ -174,7 +174,7 @@ server: 127.0.0.1:10023 ...@@ -174,7 +174,7 @@ server: 127.0.0.1:10023
ip_address='127.0.0.1', ip_address='127.0.0.1',
port=self.storage_port, port=self.storage_port,
name=self.app.name,) name=self.app.name,)
self.checkAcceptNodeIdentification(conn, packet) self.checkAcceptNodeIdentification(conn, answered_packet=packet)
sn = self.app.nm.getStorageNodeList()[0] sn = self.app.nm.getStorageNodeList()[0]
self.assertEquals(sn.getServer(), ('127.0.0.1', self.storage_port)) self.assertEquals(sn.getServer(), ('127.0.0.1', self.storage_port))
self.assertEquals(sn.getUUID(), uuid) self.assertEquals(sn.getUUID(), uuid)
...@@ -220,7 +220,7 @@ server: 127.0.0.1:10023 ...@@ -220,7 +220,7 @@ server: 127.0.0.1:10023
ip_address='127.0.0.1', ip_address='127.0.0.1',
port=self.storage_port, port=self.storage_port,
name=self.app.name,) name=self.app.name,)
self.checkAcceptNodeIdentification(conn, packet) self.checkAcceptNodeIdentification(conn, answered_packet=packet)
self.assertEquals(len(self.app.nm.getStorageNodeList()), 1) self.assertEquals(len(self.app.nm.getStorageNodeList()), 1)
sn = self.app.nm.getStorageNodeList()[0] sn = self.app.nm.getStorageNodeList()[0]
self.assertEquals(sn.getServer(), ('127.0.0.1', self.storage_port)) self.assertEquals(sn.getServer(), ('127.0.0.1', self.storage_port))
...@@ -241,7 +241,7 @@ server: 127.0.0.1:10023 ...@@ -241,7 +241,7 @@ server: 127.0.0.1:10023
ip_address='127.0.0.2', ip_address='127.0.0.2',
port=10022, port=10022,
name=self.app.name,) name=self.app.name,)
self.checkAcceptNodeIdentification(conn, packet) self.checkAcceptNodeIdentification(conn, answered_packet=packet)
call = conn.mockGetNamedCalls('answer')[0] call = conn.mockGetNamedCalls('answer')[0]
new_uuid = call.getParam(0)._body[-16:] new_uuid = call.getParam(0)._body[-16:]
self.assertNotEquals(uuid, new_uuid) self.assertNotEquals(uuid, new_uuid)
...@@ -296,11 +296,11 @@ server: 127.0.0.1:10023 ...@@ -296,11 +296,11 @@ server: 127.0.0.1:10023
"getAddress" : ("127.0.0.1", self.storage_port)}) "getAddress" : ("127.0.0.1", self.storage_port)})
service.handleAskPrimaryMaster(conn, packet) service.handleAskPrimaryMaster(conn, packet)
self.assertEquals(len(conn.mockGetNamedCalls("abort")), 0) self.assertEquals(len(conn.mockGetNamedCalls("abort")), 0)
self.checkAnswerPrimaryMaster(conn, packet) self.checkAnswerPrimaryMaster(conn, answered_packet=packet)
self.checkNotifyNodeInformation(conn, 0) self.checkNotifyNodeInformation(conn, packet_number=0)
self.checkSendPartitionTable(conn, 1) self.checkSendPartitionTable(conn, packet_number=1)
self.checkSendPartitionTable(conn, 2) self.checkSendPartitionTable(conn, packet_number=2)
self.checkStartOperation(conn, 3) self.checkStartOperation(conn, packet_number=3)
# Same but identify as a client node, must not get start operation message # Same but identify as a client node, must not get start operation message
uuid = self.identifyToMasterNode(node_type=CLIENT_NODE_TYPE, port=11021) uuid = self.identifyToMasterNode(node_type=CLIENT_NODE_TYPE, port=11021)
...@@ -310,10 +310,10 @@ server: 127.0.0.1:10023 ...@@ -310,10 +310,10 @@ server: 127.0.0.1:10023
"getUUID" : uuid, "getAddress" : ("127.0.0.1", 11021)}) "getUUID" : uuid, "getAddress" : ("127.0.0.1", 11021)})
service.handleAskPrimaryMaster(conn, packet) service.handleAskPrimaryMaster(conn, packet)
self.assertEquals(len(conn.mockGetNamedCalls("abort")), 0) self.assertEquals(len(conn.mockGetNamedCalls("abort")), 0)
self.checkAnswerPrimaryMaster(conn, packet) self.checkAnswerPrimaryMaster(conn, answered_packet=packet)
self.checkNotifyNodeInformation(conn, 0) self.checkNotifyNodeInformation(conn, packet_number=0)
self.checkSendPartitionTable(conn, 1) self.checkSendPartitionTable(conn, packet_number=1)
self.checkSendPartitionTable(conn, 2) self.checkSendPartitionTable(conn, packet_number=2)
def test_03_handleAnnouncePrimaryMaster(self): def test_03_handleAnnouncePrimaryMaster(self):
service = self.service service = self.service
...@@ -675,7 +675,7 @@ server: 127.0.0.1:10023 ...@@ -675,7 +675,7 @@ server: 127.0.0.1:10023
tid = self.app.ltid tid = self.app.ltid
oid = self.app.loid oid = self.app.loid
service.handleAskLastIDs(conn, packet) service.handleAskLastIDs(conn, packet)
packet = self.checkAnswerLastIDs(conn, packet) packet = self.checkAnswerLastIDs(conn, answered_packet=packet)
loid, ltid, lptid = protocol._decodeAnswerLastIDs(packet._body) loid, ltid, lptid = protocol._decodeAnswerLastIDs(packet._body)
self.assertEqual(loid, oid) self.assertEqual(loid, oid)
self.assertEqual(ltid, tid) self.assertEqual(ltid, tid)
...@@ -695,7 +695,7 @@ server: 127.0.0.1:10023 ...@@ -695,7 +695,7 @@ server: 127.0.0.1:10023
conn = Mock({"getUUID" : uuid, conn = Mock({"getUUID" : uuid,
"getAddress" : ("127.0.0.1", self.storage_port)}) "getAddress" : ("127.0.0.1", self.storage_port)})
service.handleAskUnfinishedTransactions(conn, packet) service.handleAskUnfinishedTransactions(conn, packet)
packet = self.checkAnswerUnfinishedTransactions(conn, packet) packet = self.checkAnswerUnfinishedTransactions(conn, answered_packet=packet)
tid_list = protocol._decodeAnswerUnfinishedTransactions(packet._body)[0] tid_list = protocol._decodeAnswerUnfinishedTransactions(packet._body)[0]
self.assertEqual(len(tid_list), 0) self.assertEqual(len(tid_list), 0)
# create some transaction # create some transaction
...@@ -709,7 +709,7 @@ server: 127.0.0.1:10023 ...@@ -709,7 +709,7 @@ server: 127.0.0.1:10023
conn = Mock({"getUUID" : uuid, conn = Mock({"getUUID" : uuid,
"getAddress" : ("127.0.0.1", self.storage_port)}) "getAddress" : ("127.0.0.1", self.storage_port)})
service.handleAskUnfinishedTransactions(conn, packet) service.handleAskUnfinishedTransactions(conn, packet)
packet = self.checkAnswerUnfinishedTransactions(conn, packet) packet = self.checkAnswerUnfinishedTransactions(conn, answered_packet=packet)
tid_list = protocol._decodeAnswerUnfinishedTransactions(packet._body)[0] tid_list = protocol._decodeAnswerUnfinishedTransactions(packet._body)[0]
self.assertEqual(len(tid_list), 3) self.assertEqual(len(tid_list), 3)
......
...@@ -104,12 +104,6 @@ server: 127.0.0.1:10020 ...@@ -104,12 +104,6 @@ server: 127.0.0.1:10020
def getLastUUID(self): def getLastUUID(self):
return self.uuid return self.uuid
# Method to test the kind of packet returned in answer
def checkCalledRequestNodeIdentification(self, conn, packet_number=0):
""" Check Request Node Identification has been send"""
self.assertEquals(len(conn.mockGetNamedCalls("abort")), 0)
self.checkAskPacket(conn, protocol.REQUEST_NODE_IDENTIFICATION)
# Tests # Tests
def test_01_connectionCompleted(self): def test_01_connectionCompleted(self):
# trying mn is None -> RuntimeError # trying mn is None -> RuntimeError
...@@ -121,7 +115,7 @@ server: 127.0.0.1:10020 ...@@ -121,7 +115,7 @@ server: 127.0.0.1:10020
# request identification # request identification
self.app.trying_master_node = self.trying_master_node self.app.trying_master_node = self.trying_master_node
self.bootstrap.connectionCompleted(conn) self.bootstrap.connectionCompleted(conn)
self.checkCalledRequestNodeIdentification(conn) self.checkRequestNodeIdentification(conn)
def test_02_connectionFailed(self): def test_02_connectionFailed(self):
# trying mn is None -> RuntimeError # trying mn is None -> RuntimeError
...@@ -220,25 +214,29 @@ server: 127.0.0.1:10020 ...@@ -220,25 +214,29 @@ server: 127.0.0.1:10020
self.checkNoPacketSent(conn) self.checkNoPacketSent(conn)
def test_07_handleNotReady(self): def test_07_handleNotReady(self):
# the primary is not ready
conn = Mock({ conn = Mock({
"isServerConnection": False, "isServerConnection": False,
"getAddress" : ("127.0.0.1", self.master_port), "getAddress" : ("127.0.0.1", self.master_port),
}) })
# the primary is not ready
self.app.trying_master_node = self.trying_master_node self.app.trying_master_node = self.trying_master_node
self.app.trying_master_node = self.trying_master_node self.app.trying_master_node = self.trying_master_node
self.bootstrap.handleNotReady(conn, None, None) self.bootstrap.handleNotReady(conn, None, None)
self.assertEquals(self.app.primary_master_node, None) self.assertEquals(self.app.primary_master_node, None)
self.assertEquals(self.app.trying_master_node, None) self.assertEquals(self.app.trying_master_node, None)
self.assertEquals(len(conn.mockGetNamedCalls("close")), 1) self.checkClosed(conn)
# another master is not ready # another master is not ready
conn = Mock({
"isServerConnection": False,
"getAddress" : ("127.0.0.1", self.master_port),
})
self.app.trying_master_node = self.trying_master_node self.app.trying_master_node = self.trying_master_node
master_node = MasterNode() master_node = MasterNode()
self.app.primary_master_node = master_node self.app.primary_master_node = master_node
self.bootstrap.handleNotReady(conn, None, None) self.bootstrap.handleNotReady(conn, None, None)
self.assertEquals(self.app.primary_master_node, master_node) self.assertEquals(self.app.primary_master_node, master_node)
self.assertEquals(self.app.trying_master_node, None) self.assertEquals(self.app.trying_master_node, None)
self.assertEquals(len(conn.mockGetNamedCalls("close")), 2) self.checkClosed(conn)
self.checkNoPacketSent(conn) self.checkNoPacketSent(conn)
def test_08_handleRequestNodeIdentification1(self): def test_08_handleRequestNodeIdentification1(self):
...@@ -256,7 +254,7 @@ server: 127.0.0.1:10020 ...@@ -256,7 +254,7 @@ server: 127.0.0.1:10020
node_type=MASTER_NODE_TYPE, node_type=MASTER_NODE_TYPE,
ip_address='127.0.0.1', ip_address='127.0.0.1',
name='',) name='',)
self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 0) self.checkNoUUIDSet(conn)
def test_08_handleRequestNodeIdentification2(self): def test_08_handleRequestNodeIdentification2(self):
# not a master node -> rejected # not a master node -> rejected
...@@ -272,7 +270,7 @@ server: 127.0.0.1:10020 ...@@ -272,7 +270,7 @@ server: 127.0.0.1:10020
node_type=STORAGE_NODE_TYPE, node_type=STORAGE_NODE_TYPE,
ip_address='127.0.0.1', ip_address='127.0.0.1',
name=self.app.name,) name=self.app.name,)
self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 0) self.checkNoUUIDSet(conn)
def test_08_handleRequestNodeIdentification3(self): def test_08_handleRequestNodeIdentification3(self):
# bad app name -> rejected # bad app name -> rejected
...@@ -288,7 +286,7 @@ server: 127.0.0.1:10020 ...@@ -288,7 +286,7 @@ server: 127.0.0.1:10020
node_type=MASTER_NODE_TYPE, node_type=MASTER_NODE_TYPE,
ip_address='127.0.0.1', ip_address='127.0.0.1',
name='INVALID_NAME',) name='INVALID_NAME',)
self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 0) self.checkNoUUIDSet(conn)
def test_08_handleRequestNodeIdentification4(self): def test_08_handleRequestNodeIdentification4(self):
# new master # new master
...@@ -309,17 +307,9 @@ server: 127.0.0.1:10020 ...@@ -309,17 +307,9 @@ server: 127.0.0.1:10020
ip_address='192.168.1.1', ip_address='192.168.1.1',
name=self.app.name,) name=self.app.name,)
self.assertEquals(len(self.app.nm.getNodeList()), count + 1) self.assertEquals(len(self.app.nm.getNodeList()), count + 1)
# check packet self.checkAcceptNodeIdentification(conn, answered_packet=packet, decode=True)
self.assertEquals(len(conn.mockGetNamedCalls("answer")), 1) self.checkUUIDSet(conn, uuid)
call = conn.mockGetNamedCalls("answer")[0] self.checkAborted(conn)
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), ACCEPT_NODE_IDENTIFICATION)
# check connection uuid
self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 1)
call = conn.mockGetNamedCalls("setUUID")[0]
self.assertEquals(call.getParam(0), uuid)
self.assertEquals(len(conn.mockGetNamedCalls("abort")), 1)
def test_08_handleRequestNodeIdentification5(self): def test_08_handleRequestNodeIdentification5(self):
# broken node -> rejected # broken node -> rejected
...@@ -339,7 +329,7 @@ server: 127.0.0.1:10020 ...@@ -339,7 +329,7 @@ server: 127.0.0.1:10020
node_type=MASTER_NODE_TYPE, node_type=MASTER_NODE_TYPE,
ip_address='127.0.0.1', ip_address='127.0.0.1',
name=self.app.name,) name=self.app.name,)
self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 0) self.checkNoUUIDSet(conn)
def test_08_handleRequestNodeIdentification6(self): def test_08_handleRequestNodeIdentification6(self):
# master node is already known # master node is already known
...@@ -360,18 +350,9 @@ server: 127.0.0.1:10020 ...@@ -360,18 +350,9 @@ server: 127.0.0.1:10020
name=self.app.name) name=self.app.name)
master = self.app.nm.getNodeByServer(('127.0.0.1', self.master_port)) master = self.app.nm.getNodeByServer(('127.0.0.1', self.master_port))
self.assertEquals(master.getUUID(), uuid) self.assertEquals(master.getUUID(), uuid)
self.assertEquals(len(conn.mockGetNamedCalls("abort")), 1) self.checkAcceptNodeIdentification(conn, answered_packet=packet, decode=True)
self.assertEquals(len(conn.mockGetNamedCalls("expectMessage")), 0) self.checkUUIDSet(conn, uuid)
# packet self.checkAborted(conn)
self.assertEquals(len(conn.mockGetNamedCalls("answer")), 1)
call = conn.mockGetNamedCalls("answer")[0]
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), ACCEPT_NODE_IDENTIFICATION)
# connection uuid
self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 1)
call = conn.mockGetNamedCalls("setUUID")[0]
self.assertEquals(call.getParam(0), uuid)
def test_09_handleAcceptNodeIdentification1(self): def test_09_handleAcceptNodeIdentification1(self):
# server socket connection -> rejected # server socket connection -> rejected
...@@ -412,7 +393,7 @@ server: 127.0.0.1:10020 ...@@ -412,7 +393,7 @@ server: 127.0.0.1:10020
num_replicas=self.app.num_replicas, num_replicas=self.app.num_replicas,
your_uuid=self.getNewUUID()) your_uuid=self.getNewUUID())
self.assertTrue(server not in self.app.nm.server_dict) self.assertTrue(server not in self.app.nm.server_dict)
self.assertEquals(len(conn.mockGetNamedCalls("close")), 1) self.checkClosed(conn)
def test_09_handleAcceptNodeIdentification3(self): def test_09_handleAcceptNodeIdentification3(self):
# bad address -> rejected # bad address -> rejected
...@@ -432,7 +413,7 @@ server: 127.0.0.1:10020 ...@@ -432,7 +413,7 @@ server: 127.0.0.1:10020
your_uuid=self.getNewUUID()) your_uuid=self.getNewUUID())
server = ('127.0.0.1', self.master_port) server = ('127.0.0.1', self.master_port)
self.assertTrue(server not in self.app.nm.server_dict) self.assertTrue(server not in self.app.nm.server_dict)
self.assertEquals(len(conn.mockGetNamedCalls("close")), 1) self.checkClosed(conn)
def test_09_handleAcceptNodeIdentification4(self): def test_09_handleAcceptNodeIdentification4(self):
# bad number of replicas/partitions # bad number of replicas/partitions
...@@ -459,9 +440,8 @@ server: 127.0.0.1:10020 ...@@ -459,9 +440,8 @@ server: 127.0.0.1:10020
num_partitions=self.app.num_partitions + 2, num_partitions=self.app.num_partitions + 2,
num_replicas=self.app.num_replicas, num_replicas=self.app.num_replicas,
**args) **args)
self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 0) self.checkNoUUIDSet(conn)
self.checkNoPacketSent(conn) self.checkNoPacketSent(conn)
self.assertEquals(len(conn.mockGetNamedCalls("expectMessage")), 0)
# create a new partition table # create a new partition table
self.bootstrap.handleAcceptNodeIdentification( self.bootstrap.handleAcceptNodeIdentification(
num_partitions=self.app.num_partitions, num_partitions=self.app.num_partitions,
...@@ -472,8 +452,8 @@ server: 127.0.0.1:10020 ...@@ -472,8 +452,8 @@ server: 127.0.0.1:10020
self.assertEqual(self.app.num_partitions, self.app.dm.getNumPartitions()) self.assertEqual(self.app.num_partitions, self.app.dm.getNumPartitions())
self.assertTrue(isinstance(self.app.pt, PartitionTable)) self.assertTrue(isinstance(self.app.pt, PartitionTable))
self.assertEquals(self.app.ptid, self.app.dm.getPTID()) self.assertEquals(self.app.ptid, self.app.dm.getPTID())
self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 1) self.checkUUIDSet(conn, uuid)
self.checkAskPacket(conn, protocol.ASK_PRIMARY_MASTER) self.checkAskPrimaryMaster(conn)
def test_09_handleAcceptNodeIdentification5(self): def test_09_handleAcceptNodeIdentification5(self):
# no errors # no errors
...@@ -503,15 +483,12 @@ server: 127.0.0.1:10020 ...@@ -503,15 +483,12 @@ server: 127.0.0.1:10020
self.assertEqual(self.app.num_partitions, self.app.dm.getNumPartitions()) self.assertEqual(self.app.num_partitions, self.app.dm.getNumPartitions())
self.assertTrue(isinstance(self.app.pt, PartitionTable)) self.assertTrue(isinstance(self.app.pt, PartitionTable))
self.assertEquals(self.app.ptid, self.app.dm.getPTID()) self.assertEquals(self.app.ptid, self.app.dm.getPTID())
self.checkAskPrimaryMaster(conn)
# uuid # uuid
self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 1) self.checkUUIDSet(conn, uuid)
call = conn.mockGetNamedCalls("setUUID")[0]
self.assertEquals(call.getParam(0), uuid)
self.assertEquals(self.app.trying_master_node.getUUID(), uuid) self.assertEquals(self.app.trying_master_node.getUUID(), uuid)
self.assertEquals(self.app.uuid, self.app.dm.getUUID()) self.assertEquals(self.app.uuid, self.app.dm.getUUID())
self.assertEquals(self.app.uuid, your_uuid) self.assertEquals(self.app.uuid, your_uuid)
# packet
self.checkAskPacket(conn, ASK_PRIMARY_MASTER)
def test_10_handleAnswerPrimaryMaster01(self): def test_10_handleAnswerPrimaryMaster01(self):
# server connection rejected # server connection rejected
...@@ -554,8 +531,8 @@ server: 127.0.0.1:10020 ...@@ -554,8 +531,8 @@ server: 127.0.0.1:10020
self.assertTrue(isinstance(n, MasterNode)) self.assertTrue(isinstance(n, MasterNode))
self.assertEquals(n.getUUID(), new_master[2]) self.assertEquals(n.getUUID(), new_master[2])
self.assertEquals(len(conn.mockGetNamedCalls('setHandler')), 0) self.assertEquals(len(conn.mockGetNamedCalls('setHandler')), 0)
self.assertEquals(len(conn.mockGetNamedCalls('close')), 0)
self.checkNoPacketSent(conn) self.checkNoPacketSent(conn)
self.checkNotClosed(conn)
def test_10_handleAnswerPrimaryMaster03(self): def test_10_handleAnswerPrimaryMaster03(self):
# invalid primary master uuid -> close connection # invalid primary master uuid -> close connection
...@@ -574,8 +551,8 @@ server: 127.0.0.1:10020 ...@@ -574,8 +551,8 @@ server: 127.0.0.1:10020
self.assertEquals(self.app.primary_master_node, None) self.assertEquals(self.app.primary_master_node, None)
self.assertEquals(self.app.trying_master_node, None) self.assertEquals(self.app.trying_master_node, None)
self.assertEquals(len(conn.mockGetNamedCalls('setHandler')), 0) self.assertEquals(len(conn.mockGetNamedCalls('setHandler')), 0)
self.assertEquals(len(conn.mockGetNamedCalls('close')), 1)
self.checkNoPacketSent(conn) self.checkNoPacketSent(conn)
self.checkClosed(conn)
def test_10_handleAnswerPrimaryMaster04(self): def test_10_handleAnswerPrimaryMaster04(self):
# trying_master_node is not pmn -> close connection # trying_master_node is not pmn -> close connection
...@@ -595,9 +572,9 @@ server: 127.0.0.1:10020 ...@@ -595,9 +572,9 @@ server: 127.0.0.1:10020
) )
self.assertEquals(self.app.primary_master_node, pmn) self.assertEquals(self.app.primary_master_node, pmn)
self.assertEquals(len(conn.mockGetNamedCalls('setHandler')), 0) self.assertEquals(len(conn.mockGetNamedCalls('setHandler')), 0)
self.assertEquals(len(conn.mockGetNamedCalls('close')), 1)
self.assertEquals(self.app.trying_master_node, None) self.assertEquals(self.app.trying_master_node, None)
self.checkNoPacketSent(conn) self.checkNoPacketSent(conn)
self.checkClosed(conn)
def test_10_handleAnswerPrimaryMaster05(self): def test_10_handleAnswerPrimaryMaster05(self):
# trying_master_node is pmn -> set verification handler # trying_master_node is pmn -> set verification handler
...@@ -619,9 +596,9 @@ server: 127.0.0.1:10020 ...@@ -619,9 +596,9 @@ server: 127.0.0.1:10020
self.assertEquals(len(conn.mockGetNamedCalls('setHandler')), 1) self.assertEquals(len(conn.mockGetNamedCalls('setHandler')), 1)
call = conn.mockGetNamedCalls('setHandler')[0] call = conn.mockGetNamedCalls('setHandler')[0]
self.assertTrue(isinstance(call.getParam(0), VerificationEventHandler)) self.assertTrue(isinstance(call.getParam(0), VerificationEventHandler))
self.assertEquals(len(conn.mockGetNamedCalls('close')), 0)
self.assertEquals(self.app.trying_master_node, pmn) self.assertEquals(self.app.trying_master_node, pmn)
self.checkNoPacketSent(conn) self.checkNoPacketSent(conn)
self.checkNotClosed(conn)
def test_10_handleAnswerPrimaryMaster06(self): def test_10_handleAnswerPrimaryMaster06(self):
# primary_uuid not known -> nothing happen # primary_uuid not known -> nothing happen
...@@ -640,8 +617,8 @@ server: 127.0.0.1:10020 ...@@ -640,8 +617,8 @@ server: 127.0.0.1:10020
self.assertEquals(self.app.primary_master_node, None) self.assertEquals(self.app.primary_master_node, None)
self.assertEquals(self.app.trying_master_node, None) self.assertEquals(self.app.trying_master_node, None)
self.assertEquals(len(conn.mockGetNamedCalls('setHandler')), 0) self.assertEquals(len(conn.mockGetNamedCalls('setHandler')), 0)
self.assertEquals(len(conn.mockGetNamedCalls('close')), 0)
self.checkNoPacketSent(conn) self.checkNoPacketSent(conn)
self.checkNotClosed(conn)
if __name__ == "__main__": if __name__ == "__main__":
unittest.main() unittest.main()
......
...@@ -39,14 +39,6 @@ NEO_SQL_DATABASE = 'test_storage_neo1' ...@@ -39,14 +39,6 @@ NEO_SQL_DATABASE = 'test_storage_neo1'
class StorageOperationTests(NeoTestBase): class StorageOperationTests(NeoTestBase):
# TODO: move this check to base class and rename as checkAnswerPacket
def checkPacket(self, conn, packet_type=ERROR):
self.assertEquals(len(conn.mockGetNamedCalls("answer")), 1)
call = conn.mockGetNamedCalls("answer")[0]
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), packet_type)
def checkHandleUnexpectedPacket(self, _call, _msg_type, _listening=True, **kwargs): def checkHandleUnexpectedPacket(self, _call, _msg_type, _listening=True, **kwargs):
conn = Mock({ conn = Mock({
"getAddress" : ("127.0.0.1", self.master_port), "getAddress" : ("127.0.0.1", self.master_port),
...@@ -387,13 +379,9 @@ server: 127.0.0.1:10020 ...@@ -387,13 +379,9 @@ server: 127.0.0.1:10020
n = self.app.nm.getNodeByServer(('192.168.1.1', self.master_port)) n = self.app.nm.getNodeByServer(('192.168.1.1', self.master_port))
self.assertNotEquals(n, None) self.assertNotEquals(n, None)
self.assertEquals(n.getUUID(), uuid) self.assertEquals(n.getUUID(), uuid)
self.checkPacket(conn, packet_type=ACCEPT_NODE_IDENTIFICATION) self.checkAcceptNodeIdentification(conn)
# uuid self.checkUUIDSet(conn, uuid)
self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 1) self.checkAborted(conn)
call = conn.mockGetNamedCalls("setUUID")[0]
self.assertEquals(call.getParam(0), uuid)
# abort
self.assertEquals(len(conn.mockGetNamedCalls('abort')), 1)
def test_09_handleRequestNodeIdentification6(self): def test_09_handleRequestNodeIdentification6(self):
# not new & accepted # not new & accepted
...@@ -416,14 +404,10 @@ server: 127.0.0.1:10020 ...@@ -416,14 +404,10 @@ server: 127.0.0.1:10020
name=self.app.name,) name=self.app.name,)
# no new node # no new node
self.assertEquals(len(self.app.nm.getNodeList()), count) self.assertEquals(len(self.app.nm.getNodeList()), count)
self.checkPacket(conn, packet_type=ACCEPT_NODE_IDENTIFICATION)
# uuid
self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 1)
call = conn.mockGetNamedCalls("setUUID")[0]
self.assertEquals(call.getParam(0), self.uuid)
self.assertEquals(mn.getUUID(), self.uuid) self.assertEquals(mn.getUUID(), self.uuid)
# abort self.checkAcceptNodeIdentification(conn)
self.assertEquals(len(conn.mockGetNamedCalls('abort')), 0) self.checkUUIDSet(conn, uuid)
self.checkNotAborted(conn)
def test_10_handleAcceptNodeIdentification1(self): def test_10_handleAcceptNodeIdentification1(self):
# client connection not implemented # client connection not implemented
...@@ -605,7 +589,7 @@ server: 127.0.0.1:10020 ...@@ -605,7 +589,7 @@ server: 127.0.0.1:10020
conn = Mock({ }) conn = Mock({ })
packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION) packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION)
self.operation.handleAskTransactionInformation(conn, packet, INVALID_TID) self.operation.handleAskTransactionInformation(conn, packet, INVALID_TID)
self.checkPacket(conn, packet_type=ERROR) self.checkErrorPacket(conn)
def test_18_handleAskTransactionInformation2(self): def test_18_handleAskTransactionInformation2(self):
# answer # answer
...@@ -614,7 +598,7 @@ server: 127.0.0.1:10020 ...@@ -614,7 +598,7 @@ server: 127.0.0.1:10020
dm = Mock({ "getTransaction": (INVALID_TID, 'user', 'desc', '', ), }) dm = Mock({ "getTransaction": (INVALID_TID, 'user', 'desc', '', ), })
self.app.dm = dm self.app.dm = dm
self.operation.handleAskTransactionInformation(conn, packet, INVALID_TID) self.operation.handleAskTransactionInformation(conn, packet, INVALID_TID)
self.checkPacket(conn, packet_type=ANSWER_TRANSACTION_INFORMATION) self.checkAnswerTransactionInformation(conn)
def test_19_handleAskObjectPresent(self): def test_19_handleAskObjectPresent(self):
# unexpected packet # unexpected packet
...@@ -663,12 +647,12 @@ server: 127.0.0.1:10020 ...@@ -663,12 +647,12 @@ server: 127.0.0.1:10020
self.assertEquals(self.app.load_lock_dict[0], INVALID_TID) self.assertEquals(self.app.load_lock_dict[0], INVALID_TID)
calls = self.app.dm.mockGetNamedCalls('storeTransaction') calls = self.app.dm.mockGetNamedCalls('storeTransaction')
self.assertEquals(len(calls), 1) self.assertEquals(len(calls), 1)
self.checkPacket(conn, packet_type=NOTIFY_INFORMATION_LOCKED) self.checkNotifyInformationLocked(conn, answered_packet=packet)
# transaction not in transaction_dict -> KeyError # transaction not in transaction_dict -> KeyError
transaction = Mock({ 'getObjectList': ((0, ), ), }) transaction = Mock({ 'getObjectList': ((0, ), ), })
conn = Mock({ 'isServerConnection': False, }) conn = Mock({ 'isServerConnection': False, })
self.operation.handleLockInformation(conn, packet, '\x01' * 8) self.operation.handleLockInformation(conn, packet, '\x01' * 8)
self.checkPacket(conn, packet_type=NOTIFY_INFORMATION_LOCKED) self.checkNotifyInformationLocked(conn, answered_packet=packet)
def test_23_handleUnlockInformation1(self): def test_23_handleUnlockInformation1(self):
# reject server connection # reject server connection
...@@ -701,7 +685,7 @@ server: 127.0.0.1:10020 ...@@ -701,7 +685,7 @@ server: 127.0.0.1:10020
transaction = Mock({ 'getObjectList': ((0, ), ), }) transaction = Mock({ 'getObjectList': ((0, ), ), })
conn = Mock({ 'isServerConnection': False, }) conn = Mock({ 'isServerConnection': False, })
self.operation.handleLockInformation(conn, packet, '\x01' * 8) self.operation.handleLockInformation(conn, packet, '\x01' * 8)
self.checkPacket(conn, packet_type=NOTIFY_INFORMATION_LOCKED) self.checkNotifyInformationLocked(conn, answered_packet=packet)
def test_24_handleAskObject1(self): def test_24_handleAskObject1(self):
# delayed response # delayed response
...@@ -734,7 +718,7 @@ server: 127.0.0.1:10020 ...@@ -734,7 +718,7 @@ server: 127.0.0.1:10020
self.assertEquals(calls[0].getParam(0), INVALID_OID) self.assertEquals(calls[0].getParam(0), INVALID_OID)
self.assertEquals(calls[0].getParam(1), None) self.assertEquals(calls[0].getParam(1), None)
self.assertEquals(calls[0].getParam(2), None) self.assertEquals(calls[0].getParam(2), None)
self.checkPacket(conn, packet_type=ERROR) self.checkErrorPacket(conn)
def test_24_handleAskObject3(self): def test_24_handleAskObject3(self):
# object found => answer # object found => answer
...@@ -747,7 +731,7 @@ server: 127.0.0.1:10020 ...@@ -747,7 +731,7 @@ server: 127.0.0.1:10020
serial=INVALID_SERIAL, serial=INVALID_SERIAL,
tid=INVALID_TID) tid=INVALID_TID)
self.assertEquals(len(self.app.event_queue), 0) self.assertEquals(len(self.app.event_queue), 0)
self.checkPacket(conn, packet_type=ANSWER_OBJECT) self.checkAnswerObject(conn)
def test_25_handleAskTIDs1(self): def test_25_handleAskTIDs1(self):
# invalid offsets => error # invalid offsets => error
...@@ -773,7 +757,7 @@ server: 127.0.0.1:10020 ...@@ -773,7 +757,7 @@ server: 127.0.0.1:10020
self.assertEquals(calls[0].getParam(1), 1) self.assertEquals(calls[0].getParam(1), 1)
self.assertEquals(calls[0].getParam(2), 1) self.assertEquals(calls[0].getParam(2), 1)
self.assertEquals(calls[0].getParam(3), [1, ]) self.assertEquals(calls[0].getParam(3), [1, ])
self.checkPacket(conn, packet_type=ANSWER_TIDS) self.checkAnswerTids(conn)
def test_25_handleAskTIDs3(self): def test_25_handleAskTIDs3(self):
# invalid partition => answer usable partitions # invalid partition => answer usable partitions
...@@ -791,7 +775,7 @@ server: 127.0.0.1:10020 ...@@ -791,7 +775,7 @@ server: 127.0.0.1:10020
self.assertEquals(calls[0].getParam(1), 1) self.assertEquals(calls[0].getParam(1), 1)
self.assertEquals(calls[0].getParam(2), 1) self.assertEquals(calls[0].getParam(2), 1)
self.assertEquals(calls[0].getParam(3), [0, ]) self.assertEquals(calls[0].getParam(3), [0, ])
self.checkPacket(conn, packet_type=ANSWER_TIDS) self.checkAnswerTids(conn)
def test_26_handleAskObjectHistory1(self): def test_26_handleAskObjectHistory1(self):
# invalid offsets => error # invalid offsets => error
...@@ -808,12 +792,12 @@ server: 127.0.0.1:10020 ...@@ -808,12 +792,12 @@ server: 127.0.0.1:10020
conn = Mock({}) conn = Mock({})
self.app.dm = Mock({'getObjectHistory': None}) self.app.dm = Mock({'getObjectHistory': None})
self.operation.handleAskObjectHistory(conn, packet, INVALID_OID, 1, 2) self.operation.handleAskObjectHistory(conn, packet, INVALID_OID, 1, 2)
self.checkPacket(conn, packet_type=ANSWER_OBJECT_HISTORY) self.checkAnswerObjectHistory(conn)
# second case: not empty history # second case: not empty history
conn = Mock({}) conn = Mock({})
self.app.dm = Mock({'getObjectHistory': [('', 0, ), ]}) self.app.dm = Mock({'getObjectHistory': [('', 0, ), ]})
self.operation.handleAskObjectHistory(conn, packet, INVALID_OID, 1, 2) self.operation.handleAskObjectHistory(conn, packet, INVALID_OID, 1, 2)
self.checkPacket(conn, packet_type=ANSWER_OBJECT_HISTORY) self.checkAnswerObjectHistory(conn)
def test_27_handleAskStoreTransaction1(self): def test_27_handleAskStoreTransaction1(self):
# no uuid => abort # no uuid => abort
...@@ -840,7 +824,7 @@ server: 127.0.0.1:10020 ...@@ -840,7 +824,7 @@ server: 127.0.0.1:10020
self.assertNotEquals(t, None) self.assertNotEquals(t, None)
self.assertTrue(isinstance(t, TransactionInformation)) self.assertTrue(isinstance(t, TransactionInformation))
self.assertEquals(t.getTransaction(), ((), '', '', '')) self.assertEquals(t.getTransaction(), ((), '', '', ''))
self.checkPacket(conn, packet_type=ANSWER_STORE_TRANSACTION) self.checkAnswerStoreTransaction(conn)
def test_28_handleAskStoreObject1(self): def test_28_handleAskStoreObject1(self):
# no uuid => abort # no uuid => abort
...@@ -892,7 +876,7 @@ server: 127.0.0.1:10020 ...@@ -892,7 +876,7 @@ server: 127.0.0.1:10020
self.app.store_lock_dict[INVALID_OID] = tid2 self.app.store_lock_dict[INVALID_OID] = tid2
self.operation.handleAskStoreObject(conn, packet, INVALID_OID, self.operation.handleAskStoreObject(conn, packet, INVALID_OID,
INVALID_SERIAL, 0, 0, '', tid1) INVALID_SERIAL, 0, 0, '', tid1)
self.checkPacket(conn, packet_type=ANSWER_STORE_OBJECT) self.checkAnswerStoreObject(conn)
self.assertEquals(self.app.store_lock_dict[INVALID_OID], tid2) self.assertEquals(self.app.store_lock_dict[INVALID_OID], tid2)
# conflicting # conflicting
packet = conn.mockGetNamedCalls('answer')[0].getParam(0) packet = conn.mockGetNamedCalls('answer')[0].getParam(0)
...@@ -906,7 +890,7 @@ server: 127.0.0.1:10020 ...@@ -906,7 +890,7 @@ server: 127.0.0.1:10020
self.assertEquals(self.app.store_lock_dict.get(INVALID_OID, None), None) self.assertEquals(self.app.store_lock_dict.get(INVALID_OID, None), None)
self.operation.handleAskStoreObject(conn, packet, INVALID_OID, self.operation.handleAskStoreObject(conn, packet, INVALID_OID,
INVALID_SERIAL, 0, 0, '', INVALID_TID) INVALID_SERIAL, 0, 0, '', INVALID_TID)
self.checkPacket(conn, packet_type=ANSWER_STORE_OBJECT) self.checkAnswerStoreObject(conn)
self.assertEquals(self.app.store_lock_dict.get(INVALID_OID, None), None) self.assertEquals(self.app.store_lock_dict.get(INVALID_OID, None), None)
# conflicting # conflicting
packet = conn.mockGetNamedCalls('answer')[0].getParam(0) packet = conn.mockGetNamedCalls('answer')[0].getParam(0)
...@@ -923,9 +907,8 @@ server: 127.0.0.1:10020 ...@@ -923,9 +907,8 @@ server: 127.0.0.1:10020
self.assertEquals(len(t.getObjectList()), 1) self.assertEquals(len(t.getObjectList()), 1)
object = t.getObjectList()[0] object = t.getObjectList()[0]
self.assertEquals(object, (INVALID_OID, 0, 0, '')) self.assertEquals(object, (INVALID_OID, 0, 0, ''))
self.checkPacket(conn, packet_type=ANSWER_STORE_OBJECT)
# no conflict # no conflict
packet = conn.mockGetNamedCalls('answer')[0].getParam(0) packet = self.checkAnswerStoreObject(conn)
self.assertFalse(unpack('!B8s8s', packet._body)[0]) self.assertFalse(unpack('!B8s8s', packet._body)[0])
def test_29_handleAbortTransaction(self): def test_29_handleAbortTransaction(self):
...@@ -1026,7 +1009,7 @@ server: 127.0.0.1:10020 ...@@ -1026,7 +1009,7 @@ server: 127.0.0.1:10020
self.assertEquals(calls[0].getParam(1), 1) self.assertEquals(calls[0].getParam(1), 1)
self.assertEquals(calls[0].getParam(2), 1) self.assertEquals(calls[0].getParam(2), 1)
self.assertEquals(calls[0].getParam(3), [1, ]) self.assertEquals(calls[0].getParam(3), [1, ])
self.checkPacket(conn, packet_type=ANSWER_OIDS) self.checkAnswerOids(conn)
def test_25_handleAskOIDs3(self): def test_25_handleAskOIDs3(self):
# invalid partition => answer usable partitions # invalid partition => answer usable partitions
...@@ -1044,7 +1027,7 @@ server: 127.0.0.1:10020 ...@@ -1044,7 +1027,7 @@ server: 127.0.0.1:10020
self.assertEquals(calls[0].getParam(1), 1) self.assertEquals(calls[0].getParam(1), 1)
self.assertEquals(calls[0].getParam(2), 1) self.assertEquals(calls[0].getParam(2), 1)
self.assertEquals(calls[0].getParam(3), [0, ]) self.assertEquals(calls[0].getParam(3), [0, ])
self.checkPacket(conn, packet_type=ANSWER_OIDS) self.checkAnswerOids(conn)
if __name__ == "__main__": if __name__ == "__main__":
......
...@@ -229,12 +229,8 @@ server: 127.0.0.1:10020 ...@@ -229,12 +229,8 @@ server: 127.0.0.1:10020
node = self.app.nm.getNodeByServer(conn.getAddress()) node = self.app.nm.getNodeByServer(conn.getAddress())
self.assertEqual(node.getUUID(), uuid) self.assertEqual(node.getUUID(), uuid)
self.assertEqual(node.getState(), RUNNING_STATE) self.assertEqual(node.getState(), RUNNING_STATE)
self.assertEquals(len(conn.mockGetNamedCalls("answer")), 1) self.checkAcceptNodeIdentification(conn)
call = conn.mockGetNamedCalls("answer")[0] self.checkAborted(conn)
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), ACCEPT_NODE_IDENTIFICATION)
self.assertEquals(len(conn.mockGetNamedCalls("abort")), 1)
# notify a node declared as broken # notify a node declared as broken
conn = Mock({"getUUID" : uuid, conn = Mock({"getUUID" : uuid,
...@@ -262,13 +258,8 @@ server: 127.0.0.1:10020 ...@@ -262,13 +258,8 @@ server: 127.0.0.1:10020
node = self.app.nm.getNodeByServer(conn.getAddress()) node = self.app.nm.getNodeByServer(conn.getAddress())
self.assertEqual(node.getUUID(), uuid) self.assertEqual(node.getUUID(), uuid)
self.assertEqual(node.getState(), RUNNING_STATE) self.assertEqual(node.getState(), RUNNING_STATE)
self.assertEquals(len(conn.mockGetNamedCalls("answer")), 1) self.checkAcceptNodeIdentification(conn)
call = conn.mockGetNamedCalls("answer")[0] self.checkAborted(conn)
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), ACCEPT_NODE_IDENTIFICATION)
self.assertEquals(len(conn.mockGetNamedCalls("abort")), 1)
def test_06_handleAcceptNodeIdentification(self): def test_06_handleAcceptNodeIdentification(self):
uuid = self.getNewUUID() uuid = self.getNewUUID()
...@@ -318,11 +309,7 @@ server: 127.0.0.1:10020 ...@@ -318,11 +309,7 @@ server: 127.0.0.1:10020
"getAddress" : ("127.0.0.1", self.client_port), "getAddress" : ("127.0.0.1", self.client_port),
"isServerConnection" : False}) "isServerConnection" : False})
self.verification.handleAskLastIDs(conn, packet) self.verification.handleAskLastIDs(conn, packet)
call = conn.mockGetNamedCalls("answer")[0] oid, tid, ptid = self.checkAnswerLastIDs(conn, decode=True)
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), ANSWER_LAST_IDS)
oid, tid, ptid = packet.decode()
self.assertEqual(oid, INVALID_OID) self.assertEqual(oid, INVALID_OID)
self.assertEqual(tid, INVALID_TID) self.assertEqual(tid, INVALID_TID)
self.assertEqual(ptid, self.app.ptid) self.assertEqual(ptid, self.app.ptid)
...@@ -353,11 +340,8 @@ server: 127.0.0.1:10020 ...@@ -353,11 +340,8 @@ server: 127.0.0.1:10020
checksum, value) values (0, 4, 0, 0, '')""") checksum, value) values (0, 4, 0, 0, '')""")
self.app.dm.commit() self.app.dm.commit()
self.verification.handleAskLastIDs(conn, packet) self.verification.handleAskLastIDs(conn, packet)
call = conn.mockGetNamedCalls("answer")[0] self.checkAnswerLastIDs(conn)
packet = call.getParam(0) oid, tid, ptid = self.checkAnswerLastIDs(conn, decode=True)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), ANSWER_LAST_IDS)
oid, tid, ptid = packet.decode()
self.assertEqual(u64(oid), 5) self.assertEqual(u64(oid), 5)
self.assertEqual(u64(tid), 4) self.assertEqual(u64(tid), 4)
self.assertEqual(ptid, self.app.ptid) self.assertEqual(ptid, self.app.ptid)
...@@ -379,11 +363,7 @@ server: 127.0.0.1:10020 ...@@ -379,11 +363,7 @@ server: 127.0.0.1:10020
"getAddress" : ("127.0.0.1", self.client_port), "getAddress" : ("127.0.0.1", self.client_port),
"isServerConnection" : False}) "isServerConnection" : False})
self.verification.handleAskPartitionTable(conn, packet, [1,]) self.verification.handleAskPartitionTable(conn, packet, [1,])
call = conn.mockGetNamedCalls("answer")[0] ptid, row_list = self.checkAnswerPartitionTable(conn, decode=True)
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), ANSWER_PARTITION_TABLE)
ptid, row_list = packet.decode()
self.assertEqual(len(row_list), 1) self.assertEqual(len(row_list), 1)
offset, rows = row_list[0] offset, rows = row_list[0]
self.assertEqual(offset, 1) self.assertEqual(offset, 1)
...@@ -397,11 +377,7 @@ server: 127.0.0.1:10020 ...@@ -397,11 +377,7 @@ server: 127.0.0.1:10020
"getAddress" : ("127.0.0.1", self.client_port), "getAddress" : ("127.0.0.1", self.client_port),
"isServerConnection" : False}) "isServerConnection" : False})
self.verification.handleAskPartitionTable(conn, packet, [1,]) self.verification.handleAskPartitionTable(conn, packet, [1,])
call = conn.mockGetNamedCalls("answer")[0] ptid, row_list = self.checkAnswerPartitionTable(conn, decode=True)
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), ANSWER_PARTITION_TABLE)
ptid, row_list = packet.decode()
self.assertEqual(len(row_list), 1) self.assertEqual(len(row_list), 1)
offset, rows = row_list[0] offset, rows = row_list[0]
self.assertEqual(offset, 1) self.assertEqual(offset, 1)
...@@ -527,11 +503,7 @@ server: 127.0.0.1:10020 ...@@ -527,11 +503,7 @@ server: 127.0.0.1:10020
'isServerConnection': False}) 'isServerConnection': False})
packet = Packet(msg_type=ASK_UNFINISHED_TRANSACTIONS) packet = Packet(msg_type=ASK_UNFINISHED_TRANSACTIONS)
self.verification.handleAskUnfinishedTransactions(conn, packet) self.verification.handleAskUnfinishedTransactions(conn, packet)
call = conn.mockGetNamedCalls("answer")[0] (tid_list, ) = self.checkAnswerUnfinishedTransactions(conn, decode=True)
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), ANSWER_UNFINISHED_TRANSACTIONS)
tid_list = packet.decode()[0]
self.assertEqual(len(tid_list), 0) self.assertEqual(len(tid_list), 0)
# client connection with some data # client connection with some data
...@@ -543,11 +515,7 @@ server: 127.0.0.1:10020 ...@@ -543,11 +515,7 @@ server: 127.0.0.1:10020
'isServerConnection': False}) 'isServerConnection': False})
packet = Packet(msg_type=ASK_UNFINISHED_TRANSACTIONS) packet = Packet(msg_type=ASK_UNFINISHED_TRANSACTIONS)
self.verification.handleAskUnfinishedTransactions(conn, packet) self.verification.handleAskUnfinishedTransactions(conn, packet)
call = conn.mockGetNamedCalls("answer")[0] (tid_list, ) = self.checkAnswerUnfinishedTransactions(conn, decode=True)
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), ANSWER_UNFINISHED_TRANSACTIONS)
tid_list = packet.decode()[0]
self.assertEqual(len(tid_list), 1) self.assertEqual(len(tid_list), 1)
self.assertEqual(u64(tid_list[0]), 4) self.assertEqual(u64(tid_list[0]), 4)
...@@ -557,22 +525,14 @@ server: 127.0.0.1:10020 ...@@ -557,22 +525,14 @@ server: 127.0.0.1:10020
'isServerConnection': True }) 'isServerConnection': True })
packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION) packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION)
self.verification.handleAskTransactionInformation(conn, packet, p64(1)) self.verification.handleAskTransactionInformation(conn, packet, p64(1))
call = conn.mockGetNamedCalls("answer")[0] code, message = self.checkErrorPacket(conn, decode=True)
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), ERROR)
code, message = packet.decode()
self.assertEqual(code, TID_NOT_FOUND_CODE) self.assertEqual(code, TID_NOT_FOUND_CODE)
# ask from client conn with no data # ask from client conn with no data
conn = Mock({ "getAddress" : ("127.0.0.1", self.master_port), conn = Mock({ "getAddress" : ("127.0.0.1", self.master_port),
'isServerConnection': False }) 'isServerConnection': False })
packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION) packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION)
self.verification.handleAskTransactionInformation(conn, packet, p64(1)) self.verification.handleAskTransactionInformation(conn, packet, p64(1))
call = conn.mockGetNamedCalls("answer")[0] code, message = self.checkErrorPacket(conn, decode=True)
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), ERROR)
code, message = packet.decode()
self.assertEqual(code, TID_NOT_FOUND_CODE) self.assertEqual(code, TID_NOT_FOUND_CODE)
# input some tmp data and ask from client, must find both transaction # input some tmp data and ask from client, must find both transaction
...@@ -587,11 +547,7 @@ server: 127.0.0.1:10020 ...@@ -587,11 +547,7 @@ server: 127.0.0.1:10020
'isServerConnection': False }) 'isServerConnection': False })
packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION) packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION)
self.verification.handleAskTransactionInformation(conn, packet, p64(1)) self.verification.handleAskTransactionInformation(conn, packet, p64(1))
call = conn.mockGetNamedCalls("answer")[0] tid, user, desc, ext, oid_list = self.checkAnswerTransactionInformation(conn, decode=True)
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), ANSWER_TRANSACTION_INFORMATION)
tid, user, desc, ext, oid_list = packet.decode()
self.assertEqual(u64(tid), 1) self.assertEqual(u64(tid), 1)
self.assertEqual(user, 'u2') self.assertEqual(user, 'u2')
self.assertEqual(desc, 'd2') self.assertEqual(desc, 'd2')
...@@ -603,11 +559,7 @@ server: 127.0.0.1:10020 ...@@ -603,11 +559,7 @@ server: 127.0.0.1:10020
'isServerConnection': False }) 'isServerConnection': False })
packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION) packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION)
self.verification.handleAskTransactionInformation(conn, packet, p64(3)) self.verification.handleAskTransactionInformation(conn, packet, p64(3))
call = conn.mockGetNamedCalls("answer")[0] tid, user, desc, ext, oid_list = self.checkAnswerTransactionInformation(conn, decode=True)
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), ANSWER_TRANSACTION_INFORMATION)
tid, user, desc, ext, oid_list = packet.decode()
self.assertEqual(u64(tid), 3) self.assertEqual(u64(tid), 3)
self.assertEqual(user, 'u1') self.assertEqual(user, 'u1')
self.assertEqual(desc, 'd1') self.assertEqual(desc, 'd1')
...@@ -621,11 +573,7 @@ server: 127.0.0.1:10020 ...@@ -621,11 +573,7 @@ server: 127.0.0.1:10020
# find the one in trans # find the one in trans
packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION) packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION)
self.verification.handleAskTransactionInformation(conn, packet, p64(1)) self.verification.handleAskTransactionInformation(conn, packet, p64(1))
call = conn.mockGetNamedCalls("answer")[0] tid, user, desc, ext, oid_list = self.checkAnswerTransactionInformation(conn, decode=True)
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), ANSWER_TRANSACTION_INFORMATION)
tid, user, desc, ext, oid_list = packet.decode()
self.assertEqual(u64(tid), 1) self.assertEqual(u64(tid), 1)
self.assertEqual(user, 'u2') self.assertEqual(user, 'u2')
self.assertEqual(desc, 'd2') self.assertEqual(desc, 'd2')
...@@ -637,11 +585,7 @@ server: 127.0.0.1:10020 ...@@ -637,11 +585,7 @@ server: 127.0.0.1:10020
'isServerConnection': True }) 'isServerConnection': True })
packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION) packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION)
self.verification.handleAskTransactionInformation(conn, packet, p64(3)) self.verification.handleAskTransactionInformation(conn, packet, p64(3))
call = conn.mockGetNamedCalls("answer")[0] code, message = self.checkErrorPacket(conn, decode=True)
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), ERROR)
code, message = packet.decode()
self.assertEqual(code, TID_NOT_FOUND_CODE) self.assertEqual(code, TID_NOT_FOUND_CODE)
def test_15_handleAskObjectPresent(self): def test_15_handleAskObjectPresent(self):
...@@ -655,11 +599,7 @@ server: 127.0.0.1:10020 ...@@ -655,11 +599,7 @@ server: 127.0.0.1:10020
'isServerConnection': False}) 'isServerConnection': False})
packet = Packet(msg_type=ASK_OBJECT_PRESENT) packet = Packet(msg_type=ASK_OBJECT_PRESENT)
self.verification.handleAskObjectPresent(conn, packet, p64(1), p64(2)) self.verification.handleAskObjectPresent(conn, packet, p64(1), p64(2))
call = conn.mockGetNamedCalls("answer")[0] code, message = self.checkErrorPacket(conn, decode=True)
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), ERROR)
code, message = packet.decode()
self.assertEqual(code, OID_NOT_FOUND_CODE) self.assertEqual(code, OID_NOT_FOUND_CODE)
# client connection with some data # client connection with some data
...@@ -671,11 +611,7 @@ server: 127.0.0.1:10020 ...@@ -671,11 +611,7 @@ server: 127.0.0.1:10020
'isServerConnection': False}) 'isServerConnection': False})
packet = Packet(msg_type=ASK_OBJECT_PRESENT) packet = Packet(msg_type=ASK_OBJECT_PRESENT)
self.verification.handleAskObjectPresent(conn, packet, p64(1), p64(2)) self.verification.handleAskObjectPresent(conn, packet, p64(1), p64(2))
call = conn.mockGetNamedCalls("answer")[0] oid, tid = self.checkAnswerObjectPresent(conn, decode=True)
packet = call.getParam(0)
self.assertTrue(isinstance(packet, Packet))
self.assertEquals(packet.getType(), ANSWER_OBJECT_PRESENT)
oid, tid = packet.decode()
self.assertEqual(u64(tid), 2) self.assertEqual(u64(tid), 2)
self.assertEqual(u64(oid), 1) self.assertEqual(u64(oid), 1)
......
...@@ -22,7 +22,7 @@ from neo import protocol ...@@ -22,7 +22,7 @@ from neo import protocol
class NeoTestBase(unittest.TestCase): class NeoTestBase(unittest.TestCase):
""" Base class for neo tests, implements common checks """ """ Base class for neo tests, implements common checks """
# XXX: according to changes with namespaced UUIDs, it whould be better to # XXX: according to changes with namespaced UUIDs, it would be better to
# implement get<NodeType>UUID() methods # implement get<NodeType>UUID() methods
def getNewUUID(self): def getNewUUID(self):
""" Return a valid UUID """ """ Return a valid UUID """
...@@ -59,25 +59,65 @@ class NeoTestBase(unittest.TestCase): ...@@ -59,25 +59,65 @@ class NeoTestBase(unittest.TestCase):
""" Check if the NotReadyError exception wxas raised """ """ Check if the NotReadyError exception wxas raised """
self.assertRaises(protocol.NotReadyError, method, *args, **kwargs) self.assertRaises(protocol.NotReadyError, method, *args, **kwargs)
def checkAborted(self, conn):
""" Ensure the connection was aborted """
self.assertEquals(len(conn.mockGetNamedCalls('abort')), 1)
def checkNotAborted(self, conn):
""" Ensure the connection was not aborted """
self.assertEquals(len(conn.mockGetNamedCalls('abort')), 0)
def checkClosed(self, conn):
""" Ensure the connection was closed """
self.assertEquals(len(conn.mockGetNamedCalls('close')), 1)
def checkNotClosed(self, conn):
""" Ensure the connection was not closed """
self.assertEquals(len(conn.mockGetNamedCalls('close')), 0)
def checkNoPacketSent(self, conn): def checkNoPacketSent(self, conn):
# no packet should be sent """ check if no packet were sent """
self.assertEquals(len(conn.mockGetNamedCalls('notify')), 0) self.assertEquals(len(conn.mockGetNamedCalls('notify')), 0)
self.assertEquals(len(conn.mockGetNamedCalls('answer')), 0) self.assertEquals(len(conn.mockGetNamedCalls('answer')), 0)
self.assertEquals(len(conn.mockGetNamedCalls('ask')), 0) self.assertEquals(len(conn.mockGetNamedCalls('ask')), 0)
def checkNoUUIDSet(self, conn):
""" ensure no UUID was set on the connection """
self.assertEquals(len(conn.mockGetNamedCalls('setUUID')), 0)
def checkUUIDSet(self, conn, uuid=None):
""" ensure no UUID was set on the connection """
calls = conn.mockGetNamedCalls('setUUID')
self.assertEquals(len(calls), 1)
if uuid is not None:
self.assertEquals(calls[0].getParam(0), uuid)
# in check(Ask|Answer|Notify)Packet we return the packet so it can be used # in check(Ask|Answer|Notify)Packet we return the packet so it can be used
# in tests if more accurates checks are required # in tests if more accurates checks are required
def checkAskPacket(self, conn, packet_type): def checkErrorPacket(self, conn, decode=False):
""" Check if an error packet was answered """
calls = conn.mockGetNamedCalls("answer")
self.assertEquals(len(calls), 1)
packet = calls[0].getParam(0)
self.assertTrue(isinstance(packet, protocol.Packet))
self.assertEquals(packet.getType(), protocol.ERROR)
if decode:
return protocol.decode_table[packet.getType()](packet._body)
return packet
def checkAskPacket(self, conn, packet_type, decode=False):
""" Check if an ask-packet with the right type is sent """ """ Check if an ask-packet with the right type is sent """
calls = conn.mockGetNamedCalls('ask') calls = conn.mockGetNamedCalls('ask')
self.assertEquals(len(calls), 1) self.assertEquals(len(calls), 1)
packet = calls[0].getParam(0) packet = calls[0].getParam(0)
self.assertTrue(isinstance(packet, protocol.Packet)) self.assertTrue(isinstance(packet, protocol.Packet))
self.assertEquals(packet.getType(), packet_type) self.assertEquals(packet.getType(), packet_type)
if decode:
return protocol.decode_table[packet.getType()](packet._body)
return packet return packet
def checkAnswerPacket(self, conn, packet_type, answered_packet=None): def checkAnswerPacket(self, conn, packet_type, answered_packet=None, decode=False):
""" Check if an answer-packet with the right type is sent """ """ Check if an answer-packet with the right type is sent """
calls = conn.mockGetNamedCalls('answer') calls = conn.mockGetNamedCalls('answer')
self.assertEquals(len(calls), 1) self.assertEquals(len(calls), 1)
...@@ -88,61 +128,92 @@ class NeoTestBase(unittest.TestCase): ...@@ -88,61 +128,92 @@ class NeoTestBase(unittest.TestCase):
a_packet = calls[0].getParam(1) a_packet = calls[0].getParam(1)
self.assertEquals(a_packet, answered_packet) self.assertEquals(a_packet, answered_packet)
self.assertEquals(a_packet.getId(), answered_packet.getId()) self.assertEquals(a_packet.getId(), answered_packet.getId())
if decode:
return protocol.decode_table[packet.getType()](packet._body)
return packet return packet
def checkNotifyPacket(self, conn, packet_type, packet_number=0): def checkNotifyPacket(self, conn, packet_type, packet_number=0, decode=False):
""" Check if a notify-packet with the right type is sent """ """ Check if a notify-packet with the right type is sent """
calls = conn.mockGetNamedCalls('notify') calls = conn.mockGetNamedCalls('notify')
self.assertTrue(len(calls) > packet_number) self.assertTrue(len(calls) > packet_number)
packet = calls[packet_number].getParam(0) packet = calls[packet_number].getParam(0)
self.assertTrue(isinstance(packet, protocol.Packet)) self.assertTrue(isinstance(packet, protocol.Packet))
self.assertEquals(packet.getType(), packet_type) self.assertEquals(packet.getType(), packet_type)
if decode:
return protocol.decode_table[packet.getType()](packet._body)
return packet return packet
def checkNotifyNodeInformation(self, conn, packet_number=0): def checkNotifyNodeInformation(self, conn, **kw):
""" Check Notify Node Information message has been send""" return self.checkNotifyPacket(conn, protocol.NOTIFY_NODE_INFORMATION, **kw)
return self.checkNotifyPacket(conn, protocol.NOTIFY_NODE_INFORMATION,
packet_number) def checkSendPartitionTable(self, conn, **kw):
return self.checkNotifyPacket(conn, protocol.SEND_PARTITION_TABLE, **kw)
def checkSendPartitionTable(self, conn, packet_number=0):
""" Check partition table has been send""" def checkStartOperation(self, conn, **kw):
return self.checkNotifyPacket(conn, protocol.SEND_PARTITION_TABLE, return self.checkNotifyPacket(conn, protocol.START_OPERATION, **kw)
packet_number)
def checkNotifyTransactionFinished(self, conn, **kw):
def checkStartOperation(self, conn, packet_number=0): return self.checkNotifyPacket(conn, protocol.NOTIFY_TRANSACTION_FINISHED, **kw)
""" Check start operation message has been send"""
return self.checkNotifyPacket(conn, protocol.START_OPERATION, def checkNotifyInformationLocked(self, conn, **kw):
packet_number) return self.checkAnswerPacket(conn, protocol.NOTIFY_INFORMATION_LOCKED, **kw)
def checkNotifyTransactionFinished(self, conn, packet_number=0): def checkLockInformation(self, conn, **kw):
""" Check notifyTransactionFinished message has been send""" return self.checkAskPacket(conn, protocol.LOCK_INFORMATION, **kw)
return self.checkNotifyPacket(conn, protocol.NOTIFY_TRANSACTION_FINISHED,
packet_number) def checkUnlockInformation(self, conn, **kw):
return self.checkAskPacket(conn, protocol.UNLOCK_INFORMATION, **kw)
def checkLockInformation(self, conn):
""" Check lockInformation message has been send""" def checkRequestNodeIdentification(self, conn, **kw):
return self.checkAskPacket(conn, protocol.LOCK_INFORMATION) return self.checkAskPacket(conn, protocol.REQUEST_NODE_IDENTIFICATION, **kw)
def checkUnlockInformation(self, conn): def checkAskPrimaryMaster(self, conn, **kw):
""" Check unlockInformation message has been send""" return self.checkAskPacket(conn, protocol.ASK_PRIMARY_MASTER)
return self.checkAskPacket(conn, protocol.UNLOCK_INFORMATION)
def checkAskUnfinishedTransactions(self, conn, **kw):
def checkAcceptNodeIdentification(self, conn, answered_packet=None): return self.checkAskPacket(conn, protocol.ASK_UNFINISHED_TRANSACTIONS)
""" Check Accept Node Identification has been answered """
return self.checkAnswerPacket(conn, protocol.ACCEPT_NODE_IDENTIFICATION, def checkAskTransactionInformation(self, conn, **kw):
answered_packet) return self.checkAskPacket(conn, protocol.ASK_TRANSACTION_INFORMATION, **kw)
def checkAnswerPrimaryMaster(self, conn, answered_packet=None): def checkAskObjectPresent(self, conn, **kw):
""" Check Answer primaty master message has been send""" return self.checkAskPacket(conn, protocol.ASK_OBJECT_PRESENT, **kw)
return self.checkAnswerPacket(conn, protocol.ANSWER_PRIMARY_MASTER,
answered_packet) def checkAcceptNodeIdentification(self, conn, **kw):
return self.checkAnswerPacket(conn, protocol.ACCEPT_NODE_IDENTIFICATION, **kw)
def checkAnswerLastIDs(self, conn, packet_number=0):
""" Check answerLastIDs message has been send""" def checkAnswerPrimaryMaster(self, conn, **kw):
return self.checkAnswerPacket(conn, protocol.ANSWER_LAST_IDS) return self.checkAnswerPacket(conn, protocol.ANSWER_PRIMARY_MASTER, **kw)
def checkAnswerUnfinishedTransactions(self, conn, packet_number=0): def checkAnswerLastIDs(self, conn, **kw):
""" Check answerUnfinishedTransactions message has been send""" return self.checkAnswerPacket(conn, protocol.ANSWER_LAST_IDS, **kw)
return self.checkAnswerPacket(conn,
protocol.ANSWER_UNFINISHED_TRANSACTIONS) def checkAnswerUnfinishedTransactions(self, conn, **kw):
return self.checkAnswerPacket(conn, protocol.ANSWER_UNFINISHED_TRANSACTIONS, **kw)
def checkAnswerObject(self, conn, **kw):
return self.checkAnswerPacket(conn, protocol.ANSWER_OBJECT, **kw)
def checkAnswerTransactionInformation(self, conn, **kw):
return self.checkAnswerPacket(conn, protocol.ANSWER_TRANSACTION_INFORMATION, **kw)
def checkAnswerTids(self, conn, **kw):
return self.checkAnswerPacket(conn, protocol.ANSWER_TIDS, **kw)
def checkAnswerObjectHistory(self, conn, **kw):
return self.checkAnswerPacket(conn, protocol.ANSWER_OBJECT_HISTORY, **kw)
def checkAnswerStoreTransaction(self, conn, **kw):
return self.checkAnswerPacket(conn, protocol.ANSWER_STORE_TRANSACTION, **kw)
def checkAnswerStoreObject(self, conn, **kw):
return self.checkAnswerPacket(conn, protocol.ANSWER_STORE_OBJECT, **kw)
def checkAnswerOids(self, conn, **kw):
return self.checkAnswerPacket(conn, protocol.ANSWER_OIDS, **kw)
def checkAnswerPartitionTable(self, conn, **kw):
return self.checkAnswerPacket(conn, protocol.ANSWER_PARTITION_TABLE, **kw)
def checkAnswerObjectPresent(self, conn, **kw):
return self.checkAnswerPacket(conn, protocol.ANSWER_OBJECT_PRESENT, **kw)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment