(command.CommandList children: [ (command.ShAssignment left: <Id.Lit_VarLike 'script_root='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'script_root='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'script_root='> name:script_root) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <dirname> more_env: [] words: [{<dirname>} {(DQ (${ Id.VSub_Name BASH_SOURCE))}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Simple blame_tok: <source> more_env: [] words: [{<source>} {($ Id.VSub_DollarName script_root) <'/env.sh'>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'cells='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cells='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cells='> name:cells) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName CELLS)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {(SQ <','>)} {(SQ <' '>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'num_cells='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'num_cells='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'num_cells='> name:num_cells) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName cells)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <wc> more_env: [] words: [{<wc>} {<-w>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <update_spinner_value> name: update_spinner_value body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'spinner='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'spinner='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'spinner='> name:spinner) op: assign_op.Equal rhs: {(SQ <'-\\|/'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'cur_spinner='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cur_spinner='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cur_spinner='> name:cur_spinner) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name spinner> var_name: spinner suffix_op: (suffix_op.Slice begin: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Percent left: {($ Id.VSub_Number 1)} right: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name spinner> var_name: spinner prefix_op: <Id.VSub_Pound '#'> right: <Id.Right_DollarBrace '}'> ) } ) right: <Id.Right_DollarDParen _> ) } length: {<Id.Lit_Digits 1>} ) right: <Id.Arith_RBrace _> ) } ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <wait_for_running_tasks> name: wait_for_running_tasks body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'task_name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'task_name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'task_name='> name:task_name) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'num_tasks='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'num_tasks='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'num_tasks='> name:num_tasks) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'counter='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'counter='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'counter='> name:counter) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'Waiting for '> (${ Id.VSub_Name num_tasks) <'x '> ($ Id.VSub_DollarName task_name) <' to enter state Running'> ) } ] redirects: [] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName counter)} {<-lt>} {($ Id.VSub_DollarName MAX_TASK_WAIT_RETRIES)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'num_running='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'num_running='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'num_running='> name: num_running ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$KUBECTL'> more_env: [] words: [{($ Id.VSub_DollarName KUBECTL)} {<get>} {<pods>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [ {<grep>} {<Id.Lit_Other '^'> ($ Id.VSub_DollarName task_name)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<Running>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <wc> more_env: [] words: [{<wc>} {<-l>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<-en>} { (DQ <Id.Lit_BadBackslash '\\'> <r> ($ Id.VSub_DollarName task_name) <': '> ($ Id.VSub_DollarName num_running) <' out of '> ($ Id.VSub_DollarName num_tasks) <' in state Running...'> ) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName num_running)} {<-eq>} {($ Id.VSub_DollarName num_tasks)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<Complete>}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [290 303] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <update_spinner_value> more_env: [] words: [{<update_spinner_value>} {($ Id.VSub_DollarName counter)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<-n>} {($ Id.VSub_DollarName cur_spinner)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <let> more_env: [] words: [{<let>} {<Id.Lit_VarLike 'counter='> <counter> <Id.Lit_Other '+'> <1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sleep> more_env: [] words: [{<sleep>} {<1>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<Timed>} {<out>}] redirects: [] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<-1>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName GOPATH))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'ERROR: GOPATH undefined, can\'t obtain vtctlclient'>)}] redirects: [] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<-1>}) ] spids: [361 374] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'KUBECTL='> (SQ <kubectl>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Downloading and installing vtctlclient...'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <go> more_env: [] words: [{<go>} {<get>} {<-u>} {<'github.com/youtube/vitess/go/cmd/vtctlclient'>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'num_shards='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'num_shards='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'num_shards='> name:num_shards) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName SHARDS)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {(DQ <','>)} {(DQ <' '>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <wc> more_env: [] words: [{<wc>} {<-w>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'total_tablet_count='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'total_tablet_count='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'total_tablet_count='> name:total_tablet_count) op: assign_op.Equal rhs: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName num_shards)} right: {($ Id.VSub_DollarName TABLETS_PER_SHARD)} ) right: {($ Id.VSub_DollarName num_cells)} ) right: <Id.Right_DollarDParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'vtgate_count='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'vtgate_count='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'vtgate_count='> name:vtgate_count) op: assign_op.Equal rhs: {($ Id.VSub_DollarName VTGATE_COUNT)} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName vtgate_count)} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'vtgate_count='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'vtgate_count='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'vtgate_count='> name:vtgate_count) op: assign_op.Equal rhs: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.TernaryOp cond: (arith_expr.Binary op_id: Id.Arith_Great left: (arith_expr.Binary op_id: Id.Arith_Slash left: {($ Id.VSub_DollarName total_tablet_count)} right: {<Id.Lit_Digits 4>} ) right: {<Id.Lit_Digits 3>} ) true_expr: (arith_expr.Binary op_id: Id.Arith_Slash left: {($ Id.VSub_DollarName total_tablet_count)} right: {<Id.Lit_Digits 4>} ) false_expr: {<Id.Lit_Digits 3>} ) right: <Id.Right_DollarDParen _> ) } ) ] redirects: [] ) ] spids: [453 466] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'****************************'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'*Creating vitess cluster:'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'* Shards: '> ($ Id.VSub_DollarName SHARDS))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'* Tablets per shard: '> ($ Id.VSub_DollarName TABLETS_PER_SHARD))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'* Rdonly per shard: '> ($ Id.VSub_DollarName RDONLY_COUNT))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'* VTGate count: '> ($ Id.VSub_DollarName vtgate_count))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'* Cells: '> ($ Id.VSub_DollarName cells))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'****************************'>)}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(SQ <'Running etcd-up.sh'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'./etcd-up.sh'> more_env: [ (EnvPair left: <Id.Lit_VarLike 'CELLS='> name: CELLS val: {($ Id.VSub_DollarName CELLS)} ) ] words: [{<'./etcd-up.sh'>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <wait_for_running_tasks> more_env: [] words: [{<wait_for_running_tasks>} {<etcd-global>} {<3>}] redirects: [] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [cell] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName cells)}]) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <wait_for_running_tasks> more_env: [] words: [{<wait_for_running_tasks>} {<etcd-> ($ Id.VSub_DollarName cell)} {<3>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(SQ <'Running vtctld-up.sh'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'./vtctld-up.sh'> more_env: [] words: [{<'./vtctld-up.sh'>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.AndOr children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(SQ <'Running vttablet-up.sh'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'./vttablet-up.sh'> more_env: [ (EnvPair left: <Id.Lit_VarLike 'CELLS='> name: CELLS val: {($ Id.VSub_DollarName CELLS)} ) ] words: [{<'./vttablet-up.sh'>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.AndOr children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(SQ <'Running vtgate-up.sh'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'./vtgate-up.sh'> more_env: [] words: [{<'./vtgate-up.sh'>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <wait_for_running_tasks> more_env: [] words: [{<wait_for_running_tasks>} {<vtctld>} {<1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <wait_for_running_tasks> more_env: [] words: [{<wait_for_running_tasks>} {<vttablet>} {($ Id.VSub_DollarName total_tablet_count)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <wait_for_running_tasks> more_env: [] words: [{<wait_for_running_tasks>} {<vtgate>} {($ Id.VSub_DollarName vtgate_count)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'vtctld_port='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'vtctld_port='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'vtctld_port='> name:vtctld_port) op: assign_op.Equal rhs: {<30001>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'vtctld_ip='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'vtctld_ip='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'vtctld_ip='> name:vtctld_ip) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <kubectl> more_env: [] words: [{<kubectl>} {<get>} {<-o>} {<yaml>} {<nodes>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {(SQ <'type: ExternalIP'>)} {<-B>} {<1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <head> more_env: [] words: [{<head>} {<-1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {(SQ <'{print $NF}'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'vtctl_server='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'vtctl_server='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'vtctl_server='> name:vtctl_server) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName vtctld_ip) <':'> ($ Id.VSub_DollarName vtctld_port))} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'kvtctl='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'kvtctl='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'kvtctl='> name:kvtctl) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName GOPATH) <'/bin/vtctlclient -server '> ($ Id.VSub_DollarName vtctl_server) ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<Waiting>} {<Id.KW_For for>} {<tablets>} {<to>} {<be>} {<visible>} {<Id.KW_In in>} {<the>} {<topology>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'counter='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'counter='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'counter='> name:counter) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName counter)} {<-lt>} {($ Id.VSub_DollarName MAX_VTTABLET_TOPO_WAIT_RETRIES)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'num_tablets='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'num_tablets='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'num_tablets='> name:num_tablets) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [cell] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName cells)}]) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'num_tablets='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'num_tablets='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'num_tablets='> name: num_tablets ) op: assign_op.Equal rhs: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName num_tablets)} right: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$kvtctl'> more_env: [] words: [ {($ Id.VSub_DollarName kvtctl)} {<ListAllTablets>} {($ Id.VSub_DollarName cell)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <wc> more_env: [] words: [{<wc>} {<-l>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) right: <Id.Right_DollarDParen _> ) } ) ] redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<-en>} { (DQ <Id.Lit_BadBackslash '\\'> <r> ($ Id.VSub_DollarName num_tablets) <' out of '> ($ Id.VSub_DollarName total_tablet_count) <' in topology...'> ) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName num_tablets)} {<-eq>} {($ Id.VSub_DollarName total_tablet_count)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<Complete>}] redirects: [] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Break break>) ] spids: [790 803] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <update_spinner_value> more_env: [] words: [{<update_spinner_value>} {($ Id.VSub_DollarName counter)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<-n>} {($ Id.VSub_DollarName cur_spinner)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <let> more_env: [] words: [{<let>} {<Id.Lit_VarLike 'counter='> <counter> <Id.Lit_Other '+'> <1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sleep> more_env: [] words: [{<sleep>} {<1>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName counter)} {<-eq>} {($ Id.VSub_DollarName MAX_VTTABLET_TOPO_WAIT_RETRIES)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<Timed>} {<out>}] redirects: [] do_fork: T ) ] spids: [842 855] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'split_shard_count='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'split_shard_count='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'split_shard_count='> name:split_shard_count) op: assign_op.Equal rhs: {($ Id.VSub_DollarName num_shards)} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName split_shard_count)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'split_shard_count='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'split_shard_count='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'split_shard_count='> name: split_shard_count ) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) ] spids: [876 889] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<-n>} {<Setting>} {<Keyspace>} {<Sharding>} {<Info...>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.VSub_DollarName '$kvtctl'> more_env: [] words: [ {($ Id.VSub_DollarName kvtctl)} {<SetKeyspaceShardingInfo>} {<-force>} {<-split_shard_count>} {($ Id.VSub_DollarName split_shard_count)} {<test_keyspace>} {<keyspace_id>} {<uint64>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<Done>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<-n>} {<Rebuilding>} {<Keyspace>} {<Graph...>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.VSub_DollarName '$kvtctl'> more_env: [] words: [{($ Id.VSub_DollarName kvtctl)} {<RebuildKeyspaceGraph>} {<test_keyspace>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<Done>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<-n>} {<Reparenting...>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'shard_num='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'shard_num='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'shard_num='> name:shard_num) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [shard] iterable: (for_iter.Words words: [ { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName SHARDS)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {(DQ <','>)} {(DQ <' '>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ] ) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$kvtctl'> more_env: [] words: [ {($ Id.VSub_DollarName kvtctl)} {<InitShardMaster>} {<-force>} {<'test_keyspace/'> ($ Id.VSub_DollarName shard)} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName cells)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {(SQ <'{print $1}'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) <-0000000> (${ Id.VSub_Name shard_num) <00> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <let> more_env: [] words: [{<let>} {<Id.Lit_VarLike 'shard_num='> <shard_num> <Id.Lit_Other '+'> <1>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<Done>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<-n>} {<Applying>} {<Schema...>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.VSub_DollarName '$kvtctl'> more_env: [] words: [ {($ Id.VSub_DollarName kvtctl)} {<ApplySchema>} {<-sql>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {<create_test_table.sql>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } {<test_keyspace>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<Done>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'****************************'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'* Complete!'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'* Use the following line to make an alias to kvtctl:'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'* alias kvtctl=\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'GOPATH/bin/vtctlclient -server '> ($ Id.VSub_DollarName vtctl_server) <'\''> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'* See the vtctld UI at: http://'> (${ Id.VSub_Name vtctld_ip) <':30000'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'****************************'>)}] redirects: [] do_fork: T ) ] )