Exemple #1
0
    def __post_init__(self):
        """override"""

        p2p_addr = f"{self.p2p_host}:{self.p2p_port}"
        self.p2p_addr = p2p_addr
        client_addr = f"{self.host}:{self.port}"

        self.node = nde.Node(p2p_addr=p2p_addr,
                             client_addr=client_addr,
                             name=self.node_name)

        self._client_server = server.ClientServer(
            addr=(self.host, self.port),
            node=self.node,
            max_connections=self.max_connections,
        )

        self._peer_server = server.PeerServer(addr=(self.p2p_host,
                                                    self.p2p_port),
                                              node=self.node)

        self._threads = [
            Thread(target=self._start_client_server,
                   daemon=True,
                   name="ClientServerThread"),
            Thread(target=self._start_peer_server,
                   daemon=True,
                   name="PeerServerThread"),
            Thread(target=self._start_membership,
                   daemon=True,
                   name="MembershipThread"),
        ]
Exemple #2
0
def test_parse_put():
    parser = jql.JQL(node=nde.Node())
    statement = "put hello world;"
    _, txn = parser.call(statement)

    assert txn
    assert txn.writes[b"hello"].value == b"world"
Exemple #3
0
def test_parse_transaction_with_read():
    parser = jql.JQL(node=nde.Node())
    statement = "begin\nput a b\nget a\nend;"
    _, txn1 = parser.call(statement)

    assert txn1
    assert txn1.writes[b"a"].value == b"b"
    assert b"a" not in txn1.reads
Exemple #4
0
def test_parse_transaction():
    parser = jql.JQL(node=nde.Node())
    statement = "begin\nput a b\nput c d\nend;"
    _, txn1 = parser.call(statement)

    assert txn1
    assert txn1.writes[b"a"].value == b"b"
    assert txn1.writes[b"c"].value == b"d"
Exemple #5
0
def test_parse_get():
    node = nde.Node()
    parser = jql.JQL(node)
    database = node.store
    database.put(b"hello", b"world")
    statement = "get hello;"
    val, txn1 = parser.call(statement)

    assert not txn1
    assert val == "world"
Exemple #6
0
def test_routing():
    name = "3"
    addr = "0.0.0.3"
    node = nde.Node(name=name, p2p_addr=addr)
    membership = mbr.Membership(node_name=name, node_addr=addr)
    membership.add_peer("1", "0.0.0.1")
    router = rte.Router(membership=membership, node=node)
    req = rte.BatchRequest()
    req.requests.append(rte.PutRequest(key=b"/2/a", value=b"1"))

    router.request(req)