(command.CommandList
  children: [
    (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 NUM_NODES))}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'NUM_NODES='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'NUM_NODES='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NUM_NODES='> name:NUM_NODES)
                  op: assign_op.Equal
                  rhs: {<3>}
                )
              ]
              redirects: []
            )
          ]
          spids: [69 82]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      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 '['>}
                        {
                          (DQ 
                            (BracedVarSub
                              left: <Id.Left_DollarBrace '${'>
                              token: <Id.VSub_Number 1>
                              var_name: 1
                              suffix_op: 
                                (suffix_op.Slice
                                  begin: {<Id.Lit_Digits 0>}
                                  length: {<Id.Lit_Digits 1>}
                                )
                              right: <Id.Arith_RBrace _>
                            )
                          )
                        }
                        {<Id.Lit_Equals '='>}
                        {(SQ <->)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {<-->} {<mysqld>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [91 114]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      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 '['>}
                        {(DQ ($ Id.VSub_Number 1))}
                        {<Id.Lit_Equals '='>}
                        {(SQ <mysqld>)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'DATADIR='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'DATADIR='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATADIR='> name:DATADIR)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Pipeline
                              children: [
                                (command.Simple
                                  blame_tok: <Id.Left_DoubleQuote '"'>
                                  more_env: []
                                  words: [{(DQ ($ Id.VSub_At '@'))} {<--verbose>} {<--help>}]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Great '2>'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <awk>
                                  more_env: []
                                  words: [{<awk>} {(SQ <'$1 == "datadir" { print $2; exit }'>)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_Pipe _>]
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              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.KW_Bang '!'>}
                                {<-d>}
                                {(DQ ($ Id.VSub_DollarName DATADIR) <'/mysql'>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (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 MYSQL_ROOT_PASSWORD))}
                                        {<-a>}
                                        {<-z>}
                                        {(DQ ($ Id.VSub_DollarName MYSQL_ALLOW_EMPTY_PASSWORD))}
                                        {<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>}
                                {
                                  (SQ 
                                    <
'error: database is uninitialized and MYSQL_ROOT_PASSWORD not set'
                                    >
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {(SQ <'  Did you forget to add -e MYSQL_ROOT_PASSWORD=... ?'>)}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [215 236]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(SQ <'Running mysql_install_db ...'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <mysql_install_db>
                      more_env: []
                      words: [
                        {<mysql_install_db>}
                        {<--datadir> <Id.Lit_Equals '='> (DQ ($ Id.VSub_DollarName DATADIR))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(SQ <'Finished mysql_install_db'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'tempSqlFile='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'tempSqlFile='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'tempSqlFile='>
                              name: tempSqlFile
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <'/tmp/mysql-first-time.sql'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <cat>
                      more_env: []
                      words: [{<cat>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName tempSqlFile))}
                        )
                        (Redir
                          op: <Id.Redir_DLessDash '<<-'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<EOSQL>}
                              here_end_tok: <Id.Undefined_Tok ''>
                              stdin_parts: [
                                <'DELETE FROM mysql.user ;\n'>
                                <'CREATE USER \'root\'@\'%\' IDENTIFIED BY \''>
                                (${ Id.VSub_Name MYSQL_ROOT_PASSWORD)
                                <'\' ;\n'>
                                <'GRANT ALL ON *.* TO \'root\'@\'%\' WITH GRANT OPTION ;\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                    (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 '['>}
                                        {(DQ ($ Id.VSub_DollarName MYSQL_DATABASE))}
                                        {<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 <'CREATE DATABASE IF NOT EXISTS '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\`'>
                                      ch: '`'
                                    ) ($ Id.VSub_DollarName MYSQL_DATABASE) 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\`'>
                                      ch: '`'
                                    ) <' ;'>
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {(DQ ($ Id.VSub_DollarName tempSqlFile))}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          spids: [334 345]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      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 '['>}
                                        {(DQ ($ Id.VSub_DollarName MYSQL_USER))}
                                        {<-a>}
                                        {(DQ ($ Id.VSub_DollarName MYSQL_PASSWORD))}
                                        {<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 <'CREATE USER \''> ($ Id.VSub_DollarName MYSQL_USER) 
                                    <'\'@\'%\' IDENTIFIED BY \''> ($ Id.VSub_DollarName MYSQL_PASSWORD) <'\' ;'>
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {(DQ ($ Id.VSub_DollarName tempSqlFile))}
                                )
                              ]
                              do_fork: T
                            )
                            (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 '['>}
                                                {(DQ ($ Id.VSub_DollarName MYSQL_DATABASE))}
                                                {<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 <'GRANT ALL ON '> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\`'>
                                              ch: '`'
                                            ) ($ Id.VSub_DollarName MYSQL_DATABASE) 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\`'>
                                              ch: '`'
                                            ) <'.* TO \''> ($ Id.VSub_DollarName MYSQL_USER) <'\'@\'%\' ;'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {(DQ ($ Id.VSub_DollarName tempSqlFile))}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  spids: [409 420]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [370 387]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      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 '['>}
                                        {<-n>}
                                        {(DQ ($ Id.VSub_DollarName GALERA_CLUSTER))}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'WSREP_SST_USER='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'WSREP_SST_USER='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'WSREP_SST_USER='>
                                      name: WSREP_SST_USER
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name WSREP_SST_USER>
                                        var_name: WSREP_SST_USER
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VTest_ColonHyphen _>
                                            arg_word: {(DQ <sst>)}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              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 '['>}
                                                {<-z>}
                                                {(DQ ($ Id.VSub_DollarName WSREP_SST_PASSWORD))}
                                                {<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>}
                                        {
                                          (SQ 
                                            <
'error: Galera cluster is enabled and WSREP_SST_PASSWORD is not set'
                                            >
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (SQ 
                                            <'  Did you forget to add -e WSREP_SST__PASSWORD=... ?'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [483 496]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ <'CREATE USER \''> (${ Id.VSub_Name WSREP_SST_USER) 
                                    <'\'@\'localhost\' IDENTIFIED BY \''> (${ Id.VSub_Name WSREP_SST_PASSWORD) <'\';'>
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {(DQ ($ Id.VSub_DollarName tempSqlFile))}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ <'GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO \''> 
                                    (${ Id.VSub_Name WSREP_SST_USER) <'\'@\'localhost\';'>
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {(DQ ($ Id.VSub_DollarName tempSqlFile))}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          spids: [453 466]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(SQ <'FLUSH PRIVILEGES ;'>)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName tempSqlFile))}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [
                        {<set>}
                        {<-->}
                        {(DQ ($ Id.VSub_At '@'))}
                        {<--init-file> <Id.Lit_Equals '='> (DQ ($ Id.VSub_DollarName tempSqlFile))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [192 208]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <chown>
              more_env: []
              words: [
                {<chown>}
                {<-R>}
                {<mysql> <Id.Lit_Colon ':'> <mysql>}
                {(DQ ($ Id.VSub_DollarName DATADIR))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          spids: [133 150]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      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 '['>}
                        {<-n>}
                        {(DQ ($ Id.VSub_DollarName GALERA_CLUSTER))}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'WSREP_SST_USER='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'WSREP_SST_USER='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WSREP_SST_USER='> name:WSREP_SST_USER)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name WSREP_SST_USER>
                        var_name: WSREP_SST_USER
                        suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{(DQ <sst>)})
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              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 '['>}
                                {<-z>}
                                {(DQ ($ Id.VSub_DollarName WSREP_SST_PASSWORD))}
                                {<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>}
                        {(SQ <'error: database is uninitialized and WSREP_SST_PASSWORD not set'>)}
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(SQ <'  Did you forget to add -e WSREP_SST_PASSWORD=xxx ?'>)}]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [663 676]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <sed>
              more_env: []
              words: [
                {<sed>}
                {<-i>}
                {<-e>}
                {
                  (DQ <'s|^wsrep_sst_auth=sstuser:changethis|wsrep_sst_auth='> 
                    (${ Id.VSub_Name WSREP_SST_USER) <':'> (${ Id.VSub_Name WSREP_SST_PASSWORD) <'|'>
                  )
                }
                {<'/etc/mysql/conf.d/cluster.cnf'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'WSREP_NODE_ADDRESS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'WSREP_NODE_ADDRESS='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'WSREP_NODE_ADDRESS='>
                      name: WSREP_NODE_ADDRESS
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <ip>
                                more_env: []
                                words: [{<ip>} {<addr>} {<show>}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <grep>
                                more_env: []
                                words: [{<grep>} {<-E>} {(SQ <'^[ ]*inet'>)}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <grep>
                                more_env: []
                                words: [{<grep>} {<-m1>} {<global>}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <awk>
                                more_env: []
                                words: [{<awk>} {(SQ <'{ print $2 }'>)}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <sed>
                                more_env: []
                                words: [{<sed>} {<-e>} {(SQ <'s/\\/.*//'>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              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 '['>}
                                {<-n>}
                                {(DQ ($ Id.VSub_DollarName WSREP_NODE_ADDRESS))}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <sed>
                      more_env: []
                      words: [
                        {<sed>}
                        {<-i>}
                        {<-e>}
                        {
                          (DQ <'s|^wsrep_node_address=.*'> <Id.Lit_Dollar '$'> <'|wsrep_node_address='> 
                            (${ Id.VSub_Name WSREP_NODE_ADDRESS) <'|'>
                          )
                        }
                        {<'/etc/mysql/conf.d/cluster.cnf'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [788 801]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              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 '['>}
                                {<-z>}
                                {(DQ ($ Id.VSub_DollarName WSREP_CLUSTER_ADDRESS))}
                                {<-o>}
                                {(DQ ($ Id.VSub_DollarName WSREP_CLUSTER_ADDRESS))}
                                {<Id.Lit_Equals '='> <Id.Lit_Equals '='>}
                                {(DQ <'gcomm://'>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (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 WSREP_CLUSTER_ADDRESS))}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'WSREP_CLUSTER_ADDRESS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'WSREP_CLUSTER_ADDRESS='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'WSREP_CLUSTER_ADDRESS='>
                                      name: WSREP_CLUSTER_ADDRESS
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <'gcomm://'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [873 886]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [NUM]
                      iterable: 
                        (for_iter.Words
                          words: [
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <seq>
                                    more_env: []
                                    words: [{<seq>} {<1>} {($ Id.VSub_DollarName NUM_NODES)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          ]
                        )
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'NODE_SERVICE_HOST='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'NODE_SERVICE_HOST='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'NODE_SERVICE_HOST='>
                                      name: NODE_SERVICE_HOST
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <PXC_NODE> (${ Id.VSub_Name NUM) <_SERVICE_HOST>)}
                                )
                              ]
                              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 '['>}
                                                {<-n>}
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      left: <Id.Left_DollarBrace '${'>
                                                      token: <Id.VSub_Name NODE_SERVICE_HOST>
                                                      var_name: NODE_SERVICE_HOST
                                                      prefix_op: <Id.VSub_Bang '!'>
                                                      right: <Id.Right_DollarBrace '}'>
                                                    )
                                                  )
                                                }
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (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 '['>}
                                                        {
                                                          (CommandSub
                                                            left_token: <Id.Left_DollarParen '$('>
                                                            child: 
                                                              (command.Simple
                                                                blame_tok: <expr>
                                                                more_env: []
                                                                words: [
                                                                  {<expr>}
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName HOSTNAME)
                                                                    )
                                                                  }
                                                                  {<Id.Lit_Colon ':'>}
                                                                  {
                                                                    (DQ <pxc-node> 
                                                                      (${ Id.VSub_Name NUM)
                                                                    )
                                                                  }
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            right: <Id.Eof_RParen _>
                                                          )
                                                        }
                                                        {<-eq>}
                                                        {<0>}
                                                        {<Id.Lit_RBracket ']'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (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 
WSREP_CLUSTER_ADDRESS
                                                                  )
                                                                }
                                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                                {(DQ <'gcomm://'>)}
                                                                {<Id.Lit_RBracket ']'>}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'WSREP_CLUSTER_ADDRESS='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: 
                                                            <Id.Lit_VarLike 'WSREP_CLUSTER_ADDRESS='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'WSREP_CLUSTER_ADDRESS='
                                                                >
                                                              name: WSREP_CLUSTER_ADDRESS
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                (${ Id.VSub_Name 
WSREP_CLUSTER_ADDRESS
                                                                ) <','>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [997 1013]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              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 '['>}
                                                                {<-n>}
                                                                {(DQ (${ Id.VSub_Name USE_IP))}
                                                                {<Id.Lit_RBracket ']'>}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'WSREP_CLUSTER_ADDRESS='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: 
                                                            <Id.Lit_VarLike 'WSREP_CLUSTER_ADDRESS='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 
'WSREP_CLUSTER_ADDRESS='
                                                                >
                                                              name: WSREP_CLUSTER_ADDRESS
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                (${ Id.VSub_Name 
WSREP_CLUSTER_ADDRESS
                                                                )
                                                              ) 
                                                              (BracedVarSub
                                                                left: <Id.Left_DollarBrace '${'>
                                                                token: 
                                                                  <Id.VSub_Name NODE_SERVICE_HOST>
                                                                var_name: NODE_SERVICE_HOST
                                                                prefix_op: <Id.VSub_Bang '!'>
                                                                right: <Id.Right_DollarBrace '}'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [1036 1051]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'WSREP_CLUSTER_ADDRESS='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'WSREP_CLUSTER_ADDRESS='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: 
                                                            <Id.Lit_VarLike 'WSREP_CLUSTER_ADDRESS='>
                                                          name: WSREP_CLUSTER_ADDRESS
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ (${ Id.VSub_Name WSREP_CLUSTER_ADDRESS) 
                                                            <pxc-node> (${ Id.VSub_Name NUM)
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [962 990]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [939 955]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  spids: [832 858]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              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 '['>}
                                {<-n>}
                                {(DQ ($ Id.VSub_DollarName WSREP_CLUSTER_ADDRESS))}
                                {<-a>}
                                {(DQ ($ Id.VSub_DollarName WSREP_CLUSTER_ADDRESS))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {(DQ <'gcomm://'>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <sed>
                      more_env: []
                      words: [
                        {<sed>}
                        {<-i>}
                        {<-e>}
                        {
                          (DQ <'s|^wsrep_cluster_address=gcomm://|wsrep_cluster_address='> 
                            (${ Id.VSub_Name WSREP_CLUSTER_ADDRESS) <'|'>
                          )
                        }
                        {<'/etc/mysql/conf.d/cluster.cnf'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1113 1139]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [633 646]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <sed>
      more_env: []
      words: [
        {<sed>}
        {<-i>}
        {<-e>}
        {
          (DQ <'s/^server'> <Id.Lit_BadBackslash '\\'> <'-id=.*'> <Id.Lit_Dollar '$'> <'/server-id='> 
            (${ Id.VSub_Name RANDOM) <'/'>
          )
        }
        {<'/etc/mysql/my.cnf'>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <exec>
      more_env: []
      words: [{<exec>} {(DQ ($ Id.VSub_At '@'))}]
      redirects: []
      do_fork: T
    )
  ]
)