func RegisterShardedDrivers() { // default topo server ts := topo.GetServer() db.Register("vtdb", &sDriver{ts, false}) db.Register("vtdb-streaming", &sDriver{ts, true}) // forced zk topo server zconn := zk.NewMetaConn(false) zkts := zktopo.NewServer(zconn) db.Register("vtdb-zk", &sDriver{zkts, false}) db.Register("vtdb-zk-streaming", &sDriver{zkts, true}) // forced zkocc topo server zkoccconn := zk.NewMetaConn(true) zktsro := zktopo.NewServer(zkoccconn) db.Register("vtdb-zkocc", &sDriver{zktsro, false}) db.Register("vtdb-zkocc-streaming", &sDriver{zktsro, true}) }
func newFakeTeeServer(t *testing.T) topo.Server { cells := []string{"test", "global"} // global has to be last zconn1 := fakezk.NewConn() zconn2 := fakezk.NewConn() for _, cell := range cells { if _, err := zk.CreateRecursive(zconn1, fmt.Sprintf("/zk/%v/vt", cell), "", 0, zookeeper.WorldACL(zookeeper.PERM_ALL)); err != nil { t.Fatalf("cannot init ZooKeeper: %v", err) } if _, err := zk.CreateRecursive(zconn2, fmt.Sprintf("/zk/%v/vt", cell), "", 0, zookeeper.WorldACL(zookeeper.PERM_ALL)); err != nil { t.Fatalf("cannot init ZooKeeper: %v", err) } } s1 := fakeServer{Server: zktopo.NewServer(zconn1), localCells: cells[:len(cells)-1]} s2 := fakeServer{Server: zktopo.NewServer(zconn2), localCells: cells[:len(cells)-1]} return NewTee(s1, s2, false) }
func createSetup(t *testing.T) (topo.Server, topo.Server) { fromConn := fakezk.NewConn() fromTS := zktopo.NewServer(fromConn) toConn := fakezk.NewConn() toTS := zktopo.NewServer(toConn) for _, zkPath := range []string{"/zk/test_cell/vt", "/zk/global/vt"} { if _, err := zk.CreateRecursive(fromConn, zkPath, "", 0, zookeeper.WorldACL(zookeeper.PERM_ALL)); err != nil { t.Fatalf("cannot init fromTS: %v", err) } } // create a keyspace and a couple tablets if err := fromTS.CreateKeyspace("test_keyspace", &topo.Keyspace{}); err != nil { t.Fatalf("cannot create keyspace: %v", err) } if err := fromTS.CreateShard("test_keyspace", "0", &topo.Shard{Cells: []string{"test_cell"}}); err != nil { t.Fatalf("cannot create shard: %v", err) } if err := topo.CreateTablet(fromTS, &topo.Tablet{ Alias: topo.TabletAlias{ Cell: "test_cell", Uid: 123, }, Hostname: "masterhost", Parent: topo.TabletAlias{}, IPAddr: "1.2.3.4", Portmap: map[string]int{ "vt": 8101, "vts": 8102, "mysql": 3306, }, Keyspace: "test_keyspace", Shard: "0", Type: topo.TYPE_MASTER, State: topo.STATE_READ_WRITE, DbNameOverride: "", KeyRange: key.KeyRange{}, }); err != nil { t.Fatalf("cannot create master tablet: %v", err) } if err := topo.CreateTablet(fromTS, &topo.Tablet{ Alias: topo.TabletAlias{ Cell: "test_cell", Uid: 234, }, IPAddr: "2.3.4.5", Portmap: map[string]int{ "vt": 8101, "vts": 8102, "mysql": 3306, }, Hostname: "slavehost", Parent: topo.TabletAlias{ Cell: "test_cell", Uid: 123, }, Keyspace: "test_keyspace", Shard: "0", Type: topo.TYPE_REPLICA, State: topo.STATE_READ_ONLY, DbNameOverride: "", KeyRange: key.KeyRange{}, }); err != nil { t.Fatalf("cannot create slave tablet: %v", err) } os.Setenv("ZK_CLIENT_CONFIG", testfiles.Locate("topo_helpers_test_zk_client.json")) cells, err := fromTS.GetKnownCells() if err != nil { t.Fatalf("fromTS.GetKnownCells: %v", err) } log.Infof("Cells: %v", cells) return fromTS, toTS }
func init() { if *fakezkConfig != "" { topo.RegisterServer("fakezk", zktopo.NewServer(fakezk.NewConnFromFile(*fakezkConfig))) } }
func init() { zkoccconn := zk.NewMetaConn(true) topo.RegisterServer("zkocc", zktopo.NewServer(zkoccconn)) }