// This file contains the vttest topology configuration structures. // // The protobuf message "VTTestTopology" specifies the Vitess and // database configuration of the "vttest" test component which can be // used in end-to-end tests to test an application against an actual // Vitess and MySQL server. // // To start a "vttest" instance, pass the "VTTestTopology" message, // encoded in the protobuf compact text format, to // py/vttest/run_local_database.py which in turn will send it to the // Vitess test binary called "vtcombo". // // To encode a "VTTestTopology" message in the protobuf compact text // format, create the protobuf in your test's native language first // and then use the protobuf library to encode it as text. // For an example in Python, see: test/vttest_sample_test.py // In go, see: go/vt/vttest/local_cluster_test.go // // Sample encoded proto configurations would be as follow. Note there are // multiple encoding options, see the proto documentation for more info // (first and last quote not included in the encoding): // - single keyspace named test_keyspace with one shard '0': // 'keyspaces: > ' // - two keyspaces, one with two shards, the other one with a redirect: // 'keyspaces { name: "test_keyspace" shards { name: "-80" } shards { name: "80-" } } keyspaces { name: "redirect" served_from: "test_keyspace" }' syntax = "proto3"; package vttest; // Shard describes a single shard in a keyspace. message Shard { // name has to be unique in a keyspace. For unsharded keyspaces, it // should be '0'. For sharded keyspace, it should be derived from // the keyrange, like '-80' or '40-80'. string name = 1; // db_name_override is the mysql db name for this shard. Has to be // globally unique. If not specified, we will by default use // 'vt__'. string db_name_override = 2; } // Keyspace describes a single keyspace. message Keyspace { // name has to be unique in a VTTestTopology. string name = 1; // shards inside this keyspace. Ignored if redirect is set. repeated Shard shards = 2; // sharding_column_name for this keyspace. Used for v2 calls, but not for v3. string sharding_column_name = 3; // sharding_column_type for this keyspace. Used for v2 calls, but not for v3. string sharding_column_type = 4; // redirects all traffic to another keyspace. If set, shards is ignored. string served_from = 5; // number of replica tablets to instantiate. This includes the master tablet. int32 replica_count = 6; // number of rdonly tablets to instantiate. int32 rdonly_count = 7; } // VTTestTopology describes the keyspaces in the topology. message VTTestTopology { // all keyspaces in the topology. repeated Keyspace keyspaces = 1; // list of cells the keyspaces reside in. Vtgate is started in only the first cell. repeated string cells = 2; }