(CommandList children: [ (FuncDef name: launchmaster body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id:BoolUnary_e child:{(/redis-master-data)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ("Redis master data doesn't exist, data won't be persistent!"))}) (C {(mkdir)} {(/redis-master-data)}) ] spids: [16777215 66] ) ] spids: [16777215 81] ) (C {(redis-server)} {(/redis-master/redis.conf)} {(--protected-mode)} {(no)}) ] spids: [50] ) spids: [44 49] ) (FuncDef name: launchsentinel body: (BraceGroup children: [ (While cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:master) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(redis-cli)} {(-h)} {(${ VSub_Name REDIS_SENTINEL_SERVICE_HOST)} {(-p)} {(${ VSub_Name REDIS_SENTINEL_SERVICE_PORT)} {(--csv)} {(SENTINEL)} {(get-master-addr-by-name)} {(mymaster)} ) (C {(tr)} {(SQ <','>)} {(SQ <' '>)}) (C {(cut)} {(-d) (SQ <' '>)} {(-f1)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [113 158] ) } spids: [112] ) ] spids: [112] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name master)}) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:master) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name master> suffix_op: (PatSub pat: {(EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)} do_all: True do_prefix: False do_suffix: False ) spids: [179 184] ) ) } spids: [177] ) ] spids: [177] ) ] spids: [16777215 174] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:master) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(hostname)} {(-i)})]) left_token: <Left_CommandSub '$('> spids: [192 196] ) } spids: [191] ) ] spids: [191] ) ] spids: [188 199] ) (C {(redis-cli)} {(-h)} {(${ VSub_Name master)} {(INFO)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_QMark '$?'))} right: {(DQ (0))} ) ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [16777215 231] ) ] spids: [16777215 237] ) (C {(echo)} {(DQ ('Connecting to master failed. Waiting...'))}) (C {(sleep)} {(10)}) ] spids: [109 252] ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sentinel_conf) op: Equal rhs: {(sentinel.conf)} spids: [256] ) ] spids: [256] ) (SimpleCommand words: [{(echo)} {(DQ ('sentinel monitor mymaster ') (${ VSub_Name master) (' 6379 2'))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(${ VSub_Name sentinel_conf)} spids: [271] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ('sentinel down-after-milliseconds mymaster 60000'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {(${ VSub_Name sentinel_conf)} spids: [284] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ('sentinel failover-timeout mymaster 180000'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {(${ VSub_Name sentinel_conf)} spids: [297] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ('sentinel parallel-syncs mymaster 1'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {(${ VSub_Name sentinel_conf)} spids: [310] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ('bind 0.0.0.0'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {(${ VSub_Name sentinel_conf)} spids: [323] ) ] ) (C {(redis-sentinel)} {(${ VSub_Name sentinel_conf)} {(--protected-mode)} {(no)}) ] spids: [101] ) spids: [95 100] ) (FuncDef name: launchslave body: (BraceGroup children: [ (While cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:master) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(redis-cli)} {(-h)} {(${ VSub_Name REDIS_SENTINEL_SERVICE_HOST)} {(-p)} {(${ VSub_Name REDIS_SENTINEL_SERVICE_PORT)} {(--csv)} {(SENTINEL)} {(get-master-addr-by-name)} {(mymaster)} ) (C {(tr)} {(SQ <','>)} {(SQ <' '>)}) (C {(cut)} {(-d) (SQ <' '>)} {(-f1)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [362 407] ) } spids: [361] ) ] spids: [361] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name master)}) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:master) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name master> suffix_op: (PatSub pat: {(EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)} do_all: True do_prefix: False do_suffix: False ) spids: [428 433] ) ) } spids: [426] ) ] spids: [426] ) ] spids: [16777215 423] ) ] else_action: [ (C {(echo)} {(DQ ('Failed to find master.'))}) (C {(sleep)} {(60)}) (C {(exit)} {(1)}) ] spids: [437 457] ) (C {(redis-cli)} {(-h)} {(${ VSub_Name master)} {(INFO)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_QMark '$?'))} right: {(DQ (0))} ) ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [16777215 489] ) ] spids: [16777215 495] ) (C {(echo)} {(DQ ('Connecting to master failed. Waiting...'))}) (C {(sleep)} {(10)}) ] spids: [358 510] ) ) (C {(sed)} {(-i)} {(DQ ('s/%master-ip%/') (${ VSub_Name master) (/))} {(/redis-slave/redis.conf)} ) (C {(sed)} {(-i)} {(DQ ('s/%master-port%/6379/'))} {(/redis-slave/redis.conf)}) (C {(redis-server)} {(/redis-slave/redis.conf)} {(--protected-mode)} {(no)}) ] spids: [350] ) spids: [344 349] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name MASTER))} right: {(DQ (true))} ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(launchmaster)}) (C {(exit)} {(0)})] spids: [16777215 569] ) ] spids: [16777215 579] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name SENTINEL))} right: {(DQ (true))} ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(launchsentinel)}) (C {(exit)} {(0)})] spids: [16777215 601] ) ] spids: [16777215 611] ) (C {(launchslave)}) ] )