def test_subscribe_set(self): cluster1 = dany.Cluster(cluster_id=1, name="test_cluster", comment="woot") node1 = dany.Node(node_id=1, comment="this is node 1", conninfo={ "host": data_dir, "port": pg_port, "dbname": "slony1" }) node2 = dany.Node(node_id=2, comment="this is node 2", conninfo={ "host": data_dir, "port": pg_port, "dbname": "slony2", }) nodes = [node1, node2] set1 = dany.Set(set_id=1) dan = dany.Dan(cluster=cluster1, nodes=nodes) dan.init_cluster(node1) dan.store_node(node=node2, event_node=node1) conninfo = "host={0} port={1} dbname=slony1".format(data_dir, pg_port) dan.store_path(server=node1, client=node2, conninfo=conninfo, connretry=10) dan.create_set(set1, origin=node1) table1 = dany.Table(table_id=1, comment="this is a table!", schema="public", name="foo") tables = [table1] dan.set_add_table(set1, tables) dan.subscribe_set(set1, node1, node2) # Verify subscription shows as registered in slony1 with psycopg2.connect(host=data_dir, port=pg_port, dbname="slony1") as conn: conn.autocommit = True with conn.cursor() as cur: cur.execute("set search_path = _test_cluster") self._check_subscription_exists(cur, set1, node1, node2)
def test_create_set(self): cluster1 = dany.Cluster(cluster_id=1, name="test_cluster", comment="woot") node1 = dany.Node(node_id=1, comment="this is node 1", conninfo={ "host": data_dir, "port": pg_port, "dbname": "slony1" }) nodes = [node1] set1 = dany.Set(set_id=1) dan = dany.Dan(cluster=cluster1, nodes=nodes) dan.init_cluster(node1) dan.create_set(set1, origin=node1) # Verify set shows as registered in slony1 with psycopg2.connect(host=data_dir, port=pg_port, dbname="slony1") as conn: conn.autocommit = True with conn.cursor() as cur: cur.execute("set search_path = _test_cluster") self._check_set_exists(cur, set1, node1)
def test_store_node(self): cluster1 = dany.Cluster(cluster_id=1, name="test_cluster", comment="woot") node1 = dany.Node(node_id=1, comment="this is node 1", conninfo={ "host": data_dir, "port": pg_port, "dbname": "slony1" }) node2 = dany.Node(node_id=2, comment="this is node 2", conninfo={ "host": data_dir, "port": pg_port, "dbname": "slony2", }) nodes = [node1, node2] dan = dany.Dan(cluster=cluster1, nodes=nodes) dan.init_cluster(node1) dan.store_node(node=node2, event_node=node1) # Verify both nodes show as registered in slony1 with psycopg2.connect(host=data_dir, port=pg_port, dbname="slony1") as conn: conn.autocommit = True with conn.cursor() as cur: cur.execute("set search_path = _test_cluster") self._check_node_exists(cur, node1) self._check_node_exists(cur, node2) # Verify both nodes show as registered in slony2 with psycopg2.connect(host=data_dir, port=pg_port, dbname="slony2") as conn: conn.autocommit = True with conn.cursor() as cur: cur.execute("set search_path = _test_cluster") self._check_node_exists(cur, node1) self._check_node_exists(cur, node2)
#!/usr/bin/env python import dany cluster1 = dany.Cluster(cluster_id=1, name="test_cluster", comment="woot") node1 = dany.Node(node_id=1, comment="this is node 1", conninfo="dbname=slony hostname=node1.test") node2 = dany.Node(node_id=2, comment="this is node 2", conninfo={ "db": "slony", "hostname": "node2.test" }) nodes = [node1, node2] table1 = dany.Table(table_id=1, comment="this is a table!", key="uk1", schema="public", name="foo") table2 = dany.Table(table_id=2, comment="this is another table!", name="bar") tables = [table1, table2] set1 = dany.Set(set_id=1)