(List (= scope= flags=0 words=[] bindings=[('script_root', {[ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub BASH_SOURCE]]})]})]) (Com {[LIT_CHARS source]} {[VarSub script_root] [LIT_CHARS /env.sh]} ) (= scope= flags=0 words=[] bindings=[('cells', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub CELLS]}) (Com {[LIT_CHARS tr]} {[SQ ]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('num_cells', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub cells]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -w]}) )]})]) (FunctionDef update_spinner_value [] (List (= scope= flags=0 words=[] bindings=[('spinner', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('cur_spinner', {[VarSub spinner transform_ops=[Slice {A Atom NODE_ARITH_WORD {[ArithSub {A2 AS_OP_PERCENT {A Atom NODE_ARITH_WORD {[VarSub 1]}} {A Atom NODE_ARITH_WORD {[VarSub spinner transform_ops=[(#len)]]}}}]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}]]})]) ) ) (FunctionDef wait_for_running_tasks [] (List (= scope= flags=0 words=[] bindings=[('task_name', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('num_tasks', {[VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('counter', {[LIT_CHARS 0]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Waiting for "][VarSub num_tasks][LIT_CHARS "x "][VarSub task_name][LIT_CHARS " to enter state Running"]]} ) (While (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub counter]} {[LIT_CHARS -lt]} {[VarSub MAX_TASK_WAIT_RETRIES]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('num_running', {[ComSub (Pipeline (Com {[VarSub KUBECTL]} {[LIT_CHARS get]} {[LIT_CHARS pods]}) (Com {[LIT_CHARS grep]} {[LIT_OTHER "^"] [VarSub task_name]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS Running]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]})]) (Com {[LIT_CHARS echo]} {[LIT_CHARS -en]} {[DQ [\ LIT_ESCAPED_CHAR "\\r"][VarSub task_name][LIT_CHARS ": "][VarSub num_running][LIT_CHARS " out of "][VarSub num_tasks][LIT_CHARS " in state Running..."]]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub num_running]} {[LIT_CHARS -eq]} {[VarSub num_tasks]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS Complete]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) ) (Com {[LIT_CHARS update_spinner_value]} {[VarSub counter]} ) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[VarSub cur_spinner]} ) (Com {[LIT_CHARS let]} {[LIT_VAR_LIKE "counter="] [LIT_CHARS counter] [LIT_OTHER "+"] [LIT_CHARS 1] =} ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS echo]} {[LIT_CHARS Timed]} {[LIT_CHARS out]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS -1]} ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub GOPATH]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: GOPATH undefined, can't obtain vtctlclient"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]} ) ) ) (= scope= flags=1 words=[] bindings=[('KUBECTL', {[SQ ]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Downloading and installing vtctlclient..."]]} ) (Com {[LIT_CHARS go]} {[LIT_CHARS get]} {[LIT_CHARS -u]} {[LIT_CHARS github.com/youtube/vitess/go/cmd/vtctlclient]} ) (= scope= flags=0 words=[] bindings=[('num_shards', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub SHARDS]}) (Com {[LIT_CHARS tr]} {[DQ [LIT_CHARS ","]]} {[DQ [LIT_CHARS " "]]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -w]}) )]})]) (= scope= flags=0 words=[] bindings=[('total_tablet_count', {[ArithSub {A2 AS_OP_STAR {A2 AS_OP_STAR {A Atom NODE_ARITH_WORD {[VarSub num_shards]}} {A Atom NODE_ARITH_WORD {[VarSub TABLETS_PER_SHARD]}}} {A Atom NODE_ARITH_WORD {[VarSub num_cells]}}}]})]) (= scope= flags=0 words=[] bindings=[('vtgate_count', {[VarSub VTGATE_COUNT]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub vtgate_count]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('vtgate_count', {[ArithSub {A3 AS_OP_QMARK {A2 AS_OP_GREAT {A2 AS_OP_SLASH {A Atom NODE_ARITH_WORD {[VarSub total_tablet_count]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 4]}}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 3]}}} {A2 AS_OP_SLASH {A Atom NODE_ARITH_WORD {[VarSub total_tablet_count]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 4]}}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 3]}}}]})]) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "****************************"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "*Creating vitess cluster:"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "* Shards: "][VarSub SHARDS]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "* Tablets per shard: "][VarSub TABLETS_PER_SHARD]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "* Rdonly per shard: "][VarSub RDONLY_COUNT]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "* VTGate count: "][VarSub vtgate_count]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "* Cells: "][VarSub cells]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "****************************"]]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS ./etcd-up.sh]} more_env=[('CELLS', {[VarSub CELLS]})] ) ) (Com {[LIT_CHARS wait_for_running_tasks]} {[LIT_CHARS etcd-global]} {[LIT_CHARS 3]} ) (For cell [{[VarSub cells]}]) (Com {[LIT_CHARS wait_for_running_tasks]} {[LIT_CHARS etcd-] [VarSub cell]} {[LIT_CHARS 3]} ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS ./vtctld-up.sh]} ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS ./vttablet-up.sh]} more_env=[('CELLS', {[VarSub CELLS]})] ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS ./vtgate-up.sh]} ) ) (Com {[LIT_CHARS wait_for_running_tasks]} {[LIT_CHARS vtctld]} {[LIT_CHARS 1]} ) (Com {[LIT_CHARS wait_for_running_tasks]} {[LIT_CHARS vttablet]} {[VarSub total_tablet_count]} ) (Com {[LIT_CHARS wait_for_running_tasks]} {[LIT_CHARS vtgate]} {[VarSub vtgate_count]} ) (= scope= flags=0 words=[] bindings=[('vtctld_port', {[LIT_CHARS 30001]})]) (= scope= flags=0 words=[] bindings=[('vtctld_ip', {[ComSub (Pipeline (Com {[LIT_CHARS kubectl]} {[LIT_CHARS get]} {[LIT_CHARS -o]} {[LIT_CHARS yaml]} {[LIT_CHARS nodes]}) (Com {[LIT_CHARS grep]} {[SQ ]} {[LIT_CHARS -B]} {[LIT_CHARS 1]}) (Com {[LIT_CHARS head]} {[LIT_CHARS -1]}) (Com {[LIT_CHARS awk]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('vtctl_server', {[DQ [VarSub vtctld_ip][LIT_CHARS ":"][VarSub vtctld_port]]})]) (= scope= flags=0 words=[] bindings=[('kvtctl', {[DQ [VarSub GOPATH][LIT_CHARS "/bin/vtctlclient -server "][VarSub vtctl_server]]})]) (Com {[LIT_CHARS echo]} {[LIT_CHARS Waiting]} {[LIT_CHARS for]} {[LIT_CHARS tablets]} {[LIT_CHARS to]} {[LIT_CHARS be]} {[LIT_CHARS visible]} {[LIT_CHARS in]} {[LIT_CHARS the]} {[LIT_CHARS topology]} ) (= scope= flags=0 words=[] bindings=[('counter', {[LIT_CHARS 0]})]) (While (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub counter]} {[LIT_CHARS -lt]} {[VarSub MAX_VTTABLET_TOPO_WAIT_RETRIES]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('num_tablets', {[LIT_CHARS 0]})]) (For cell [{[VarSub cells]}]) (= scope= flags=0 words=[] bindings=[('num_tablets', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub num_tablets]}} {A Atom NODE_ARITH_WORD {[ComSub (Pipeline (Com {[VarSub kvtctl]} {[LIT_CHARS ListAllTablets]} {[VarSub cell]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]}}}]})]) ) (Com {[LIT_CHARS echo]} {[LIT_CHARS -en]} {[DQ [\ LIT_ESCAPED_CHAR "\\r"][VarSub num_tablets][LIT_CHARS " out of "][VarSub total_tablet_count][LIT_CHARS " in topology..."]]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub num_tablets]} {[LIT_CHARS -eq]} {[VarSub total_tablet_count]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS Complete]} ) (Com {[LIT_CHARS break]} ) ) ) (Com {[LIT_CHARS update_spinner_value]} {[VarSub counter]} ) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[VarSub cur_spinner]} ) (Com {[LIT_CHARS let]} {[LIT_VAR_LIKE "counter="] [LIT_CHARS counter] [LIT_OTHER "+"] [LIT_CHARS 1] =} ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 1]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub counter]} {[LIT_CHARS -eq]} {[VarSub MAX_VTTABLET_TOPO_WAIT_RETRIES]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS echo]} {[LIT_CHARS Timed]} {[LIT_CHARS out]} ) ) ) ) (= scope= flags=0 words=[] bindings=[('split_shard_count', {[VarSub num_shards]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub split_shard_count]} {[LIT_CHARS -eq]} {[LIT_CHARS 1]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('split_shard_count', {[LIT_CHARS 0]})]) ) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[LIT_CHARS Setting]} {[LIT_CHARS Keyspace]} {[LIT_CHARS Sharding]} {[LIT_CHARS Info...]} ) (Com {[VarSub kvtctl]} {[LIT_CHARS SetKeyspaceShardingInfo]} {[LIT_CHARS -force]} {[LIT_CHARS -split_shard_count]} {[VarSub split_shard_count]} {[LIT_CHARS test_keyspace]} {[LIT_CHARS keyspace_id]} {[LIT_CHARS uint64]} ) (Com {[LIT_CHARS echo]} {[LIT_CHARS Done]} ) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[LIT_CHARS Rebuilding]} {[LIT_CHARS Keyspace]} {[LIT_CHARS Graph...]} ) (Com {[VarSub kvtctl]} {[LIT_CHARS RebuildKeyspaceGraph]} {[LIT_CHARS test_keyspace]} ) (Com {[LIT_CHARS echo]} {[LIT_CHARS Done]} ) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[LIT_CHARS Reparenting...]} ) (= scope= flags=0 words=[] bindings=[('shard_num', {[LIT_CHARS 1]})]) (For shard [{[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub SHARDS]}) (Com {[LIT_CHARS tr]} {[DQ [LIT_CHARS ","]]} {[DQ [LIT_CHARS " "]]}) )]}]) (List (Com {[VarSub kvtctl]} {[LIT_CHARS InitShardMaster]} {[LIT_CHARS -force]} {[LIT_CHARS test_keyspace/] [VarSub shard]} {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub cells]}) (Com {[LIT_CHARS awk]} {[SQ ]}) )] [LIT_CHARS -0000000] [VarSub shard_num] [LIT_CHARS 00]} ) (Com {[LIT_CHARS let]} {[LIT_VAR_LIKE "shard_num="] [LIT_CHARS shard_num] [LIT_OTHER "+"] [LIT_CHARS 1] =} ) ) ) (Com {[LIT_CHARS echo]} {[LIT_CHARS Done]} ) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[LIT_CHARS Applying]} {[LIT_CHARS Schema...]} ) (Com {[VarSub kvtctl]} {[LIT_CHARS ApplySchema]} {[LIT_CHARS -sql]} {[DQ [ComSub (Com {[LIT_CHARS cat]} {[LIT_CHARS create_test_table.sql]})]]} {[LIT_CHARS test_keyspace]} ) (Com {[LIT_CHARS echo]} {[LIT_CHARS Done]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "****************************"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "* Complete!"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "* Use the following line to make an alias to kvtctl:"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "* alias kvtctl='"][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "GOPATH/bin/vtctlclient -server "][VarSub vtctl_server][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "* See the vtctld UI at: http://"][VarSub vtctld_ip][LIT_CHARS ":30000"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "****************************"]]} ) )