(List (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub NUM_NODES]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('NUM_NODES', {[LIT_CHARS 3]})]) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub 1 transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}]]]} {[LIT_DBRACKET_LIKE "="]} {[SQ ]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS set]} {[LIT_CHARS --]} {[LIT_CHARS mysqld]} {[DQ [VarSub @]]} ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub 1]]} {[LIT_DBRACKET_LIKE "="]} {[SQ ]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('DATADIR', {[DQ [ComSub (Pipeline (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[DQ [VarSub @]]} {[LIT_CHARS --verbose]} {[LIT_CHARS --help]}) (Com {[LIT_CHARS awk]} {[SQ ]}) )]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -d]} {[DQ [VarSub DATADIR][LIT_CHARS /mysql]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub MYSQL_ROOT_PASSWORD]]} {[LIT_CHARS -a]} {[LIT_CHARS -z]} {[DQ [VarSub MYSQL_ALLOW_EMPTY_PASSWORD]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[SQ ]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS mysql_install_db]} {[LIT_CHARS --datadir] [LIT_DBRACKET_LIKE "="] [DQ [VarSub DATADIR]]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (= scope= flags=0 words=[] bindings=[('tempSqlFile', {[SQ ]})]) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub tempSqlFile]]} "> 1), (HereDocRedirectNode here_end='EOSQL' do_expansion=True body_word={[DQ [LIT_CHARS "DELETE FROM mysql.user ;\n"][LIT_CHARS "CREATE USER 'root'@'%' IDENTIFIED BY '"][VarSub MYSQL_ROOT_PASSWORD][LIT_CHARS "' ;\n"][LIT_CHARS "GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION ;\n"]]} 0), > ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub MYSQL_DATABASE]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "CREATE DATABASE IF NOT EXISTS "][\ LIT_ESCAPED_CHAR "\\`"][VarSub MYSQL_DATABASE][\ LIT_ESCAPED_CHAR "\\`"][LIT_CHARS " ;"]]} < (FilenameRedirectNode filename={[DQ [VarSub tempSqlFile]]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub MYSQL_USER]]} {[LIT_CHARS -a]} {[DQ [VarSub MYSQL_PASSWORD]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "CREATE USER '"][VarSub MYSQL_USER][LIT_CHARS "'@'%' IDENTIFIED BY '"][VarSub MYSQL_PASSWORD][LIT_CHARS "' ;"]]} < (FilenameRedirectNode filename={[DQ [VarSub tempSqlFile]]} >"> 1), > ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub MYSQL_DATABASE]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "GRANT ALL ON "][\ LIT_ESCAPED_CHAR "\\`"][VarSub MYSQL_DATABASE][\ LIT_ESCAPED_CHAR "\\`"][LIT_CHARS ".* TO '"][VarSub MYSQL_USER][LIT_CHARS "'@'%' ;"]]} < (FilenameRedirectNode filename={[DQ [VarSub tempSqlFile]]} >"> 1), > ) ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub GALERA_CLUSTER]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('WSREP_SST_USER', {[VarSub WSREP_SST_USER test_op=VS_TEST_COLON_HYPHEN {[DQ [LIT_CHARS sst]]}]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub WSREP_SST_PASSWORD]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[SQ ]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "CREATE USER '"][VarSub WSREP_SST_USER][LIT_CHARS "'@'localhost' IDENTIFIED BY '"][VarSub WSREP_SST_PASSWORD][LIT_CHARS "';"]]} < (FilenameRedirectNode filename={[DQ [VarSub tempSqlFile]]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO '"][VarSub WSREP_SST_USER][LIT_CHARS "'@'localhost';"]]} < (FilenameRedirectNode filename={[DQ [VarSub tempSqlFile]]} >"> 1), > ) ) ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[DQ [VarSub tempSqlFile]]} >"> 1), > ) (Com {[LIT_CHARS set]} {[LIT_CHARS --]} {[DQ [VarSub @]]} {[LIT_CHARS --init-file] [LIT_DBRACKET_LIKE "="] [DQ [VarSub tempSqlFile]]} ) ) ) (Com {[LIT_CHARS chown]} {[LIT_CHARS -R]} {[LIT_CHARS mysql] [LIT_OTHER ":"] [LIT_CHARS mysql]} {[DQ [VarSub DATADIR]]} ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub GALERA_CLUSTER]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('WSREP_SST_USER', {[VarSub WSREP_SST_USER test_op=VS_TEST_COLON_HYPHEN {[DQ [LIT_CHARS sst]]}]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub WSREP_SST_PASSWORD]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[SQ ]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s|^wsrep_sst_auth=sstuser:changethis|wsrep_sst_auth="][VarSub WSREP_SST_USER][LIT_CHARS ":"][VarSub WSREP_SST_PASSWORD][LIT_CHARS "|"]]} {[LIT_CHARS /etc/mysql/conf.d/cluster.cnf]} ) (= scope= flags=0 words=[] bindings=[('WSREP_NODE_ADDRESS', {[ComSub (Pipeline (Com {[LIT_CHARS ip]} {[LIT_CHARS addr]} {[LIT_CHARS show]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -E]} {[SQ ]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -m1]} {[LIT_CHARS global]}) (Com {[LIT_CHARS awk]} {[SQ ]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]}) )]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub WSREP_NODE_ADDRESS]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s|^wsrep_node_address=.*"][LIT_OTHER "$"][LIT_CHARS "|wsrep_node_address="][VarSub WSREP_NODE_ADDRESS][LIT_CHARS "|"]]} {[LIT_CHARS /etc/mysql/conf.d/cluster.cnf]} ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub WSREP_CLUSTER_ADDRESS]]} {[LIT_CHARS -o]} {[DQ [VarSub WSREP_CLUSTER_ADDRESS]]} {[LIT_DBRACKET_LIKE "=="]} {[DQ [LIT_CHARS "gcomm://"]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub WSREP_CLUSTER_ADDRESS]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('WSREP_CLUSTER_ADDRESS', {[DQ [LIT_CHARS "gcomm://"]]})]) ) (For NUM [{[ComSub (Com {[LIT_CHARS seq]} {[LIT_CHARS 1]} {[VarSub NUM_NODES]})]}]) (List (= scope= flags=0 words=[] bindings=[('NODE_SERVICE_HOST', {[DQ [LIT_CHARS PXC_NODE][VarSub NUM][LIT_CHARS _SERVICE_HOST]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub NODE_SERVICE_HOST transform_ops=[(!ref)]]]} {[LIT_DBRACKET_LIKE "]"]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[ComSub (Com {[LIT_CHARS expr]} {[DQ [VarSub HOSTNAME]]} {[LIT_OTHER ":"]} {[DQ [LIT_CHARS pxc-node][VarSub NUM]]})]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (List (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub WSREP_CLUSTER_ADDRESS]} {[LIT_NEQUAL "!="]} {[DQ [LIT_CHARS "gcomm://"]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('WSREP_CLUSTER_ADDRESS', {[DQ [VarSub WSREP_CLUSTER_ADDRESS][LIT_CHARS ","]]})]) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub USE_IP]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('WSREP_CLUSTER_ADDRESS', {[DQ [VarSub WSREP_CLUSTER_ADDRESS]] [VarSub NODE_SERVICE_HOST transform_ops=[(!ref)]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('WSREP_CLUSTER_ADDRESS', {[DQ [VarSub WSREP_CLUSTER_ADDRESS][LIT_CHARS pxc-node][VarSub NUM]]})]) ) ) ) ) ) ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub WSREP_CLUSTER_ADDRESS]]} {[LIT_CHARS -a]} {[DQ [VarSub WSREP_CLUSTER_ADDRESS]]} {[LIT_NEQUAL "!="]} {[DQ [LIT_CHARS "gcomm://"]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s|^wsrep_cluster_address=gcomm://|wsrep_cluster_address="][VarSub WSREP_CLUSTER_ADDRESS][LIT_CHARS "|"]]} {[LIT_CHARS /etc/mysql/conf.d/cluster.cnf]} ) ) ) ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/^server"][\ LIT_ESCAPED_CHAR "\\-"][LIT_CHARS "id=.*"][LIT_OTHER "$"][LIT_CHARS "/server-id="][VarSub RANDOM][LIT_CHARS /]]} {[LIT_CHARS /etc/mysql/my.cnf]} ) (Com {[LIT_CHARS exec]} {[DQ [VarSub @]]} ) )