(CommandList children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Number '$1'))})) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(BoolUnary op_id:BoolUnary_d child:{(environments)})) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ENVIRONMENTS) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(ls)} {(-lt)} {(environments/) (Lit_Other '*') (.json)}) (C {(wc)} {(-l)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [34 48] ) } spids: [33] ) ] spids: [33] ) ] spids: [16777215 30] ) ] else_action: [ (C {(echo)} {(DQ ("Usage: VIP not specified and can't find environment directory"))}) (C {(exit)}) ] spids: [51 64] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$ENVIRONMENTS')}) right: (ArithWord w:{(Lit_Digits 1)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VIPFILE) op: Equal rhs: {(environments/) (Lit_Other '*') (.json)} spids: [82] ) ] spids: [82] ) ] spids: [16777215 79] ) ] else_action: [ (C {(echo)} {(DQ ('Usage: VIP not specified and more than one environment file found'))}) (C {(exit)}) ] spids: [88 101] ) ] spids: [16777215 16] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VIPFILE) op: Equal rhs: {(environments/) (DQ ($ VSub_Number '$1')) (.json)} spids: [106] ) ] spids: [106] ) ] spids: [103 113] ) (Pipeline children: [ (C {(grep)} {(-i)} {(vip)} {($ VSub_Name '$VIPFILE')}) (SimpleCommand words: [{(tr)} {(-d)} {(SQ <':'>)}] redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(/tmp/vips.txt)} spids:[132])] ) ] negated: False ) (While cond: [(Sentence child:(C {(read)} {(V)} {(IPADDRESS)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VIP) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name '$IPADDRESS')}) (C {(tr)} {(-d)} {(EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)}) (C {(tr)} {(-d)} {(Lit_Comma ',')}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [149 169] ) } spids: [148] ) ] spids: [148] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id: BoolUnary_z child: { (CommandSubPart command_list: (CommandList children: [(C {(which)} {(fping)})] ) left_token: <Left_Backtick '`'> spids: [180 184] ) } ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:UP) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(fping)} {(-aq)} {(DQ ($ VSub_Name '$VIP'))}) (C {(awk)} {(SQ <'{print $1}'>)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [197 213] ) } spids: [196] ) ] spids: [196] ) ] spids: [16777215 189] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:UP) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(ping)} {(-c1)} {(DQ ($ VSub_Name '$VIP'))}) (C {(grep)} {(ttl)}) (C {(awk)} {(SQ <'{print $4}'>)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [220 242] ) } spids: [219] ) ] spids: [219] ) ] spids: [216 245] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Name '$UP'))}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:MAC) op:Equal rhs:{(DQ )} spids:[266])] spids: [266] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:HOST) op:Equal rhs:{(DQ )} spids:[271])] spids: [271] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MAC) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(arp)} {(-n)} {($ VSub_Name '$VIP')}) (C {(grep)} {(ether)}) (C {(awk)} {(SQ <'{print $3}'>)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [281 301] ) } spids: [280] ) ] spids: [280] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Name '$MAC')}) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('arp lookup of ') ($ VSub_Name '$VIP') (' failed'))}) ] spids: [16777215 315] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:HOST) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(grep)} {(-i)} {(DQ ($ VSub_Name '$MAC'))} {(cluster.txt)}) ] ) left_token: <Left_Backtick '`'> spids: [331 341] ) } spids: [330] ) ] spids: [330] ) ] spids: [327 344] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_n child:{($ VSub_Name '$HOST')}) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ($ VSub_Name '$VIP') (' is currently on : ') ($ VSub_Name '$HOST')) } ) ] spids: [16777215 358] ) ] else_action: [ (C {(echo)} {(DQ ('Searching for ') ($ VSub_Name '$VIP') (' host by host'))}) (While cond: [ (Sentence child: (C {(read)} {(HOST)} {(MAC)} {(IP)} {(IP2)} {(DOMAIN)} {(ROLE)} {(OVERRIDE)}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MATCH) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(./nodessh.sh)} {($ VSub_Number '$1')} {($ VSub_Name '$IP')} {(DQ ('ip a | grep ') (${ VSub_Name VIP))} ) ] ) left_token: <Left_Backtick '`'> spids: [413 426] ) } spids: [412] ) ] spids: [412] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalAnd left: (BoolUnary op_id: BoolUnary_n child: {($ VSub_Name '$MATCH')} ) right: (BoolBinary op_id: BoolBinary_EqualTilde left: {($ VSub_Name '$MATCH')} right: {(inet)} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:HOST) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(grep)} {(-i)} {(DQ ($ VSub_Name '$HOST'))} {(cluster.txt)} ) ] ) left_token: <Left_Backtick '`'> spids: [452 462] ) } spids: [451] ) ] spids: [451] ) (C {(echo)} { (DQ ($ VSub_Name '$VIP') (' is currently on : ') ($ VSub_Name '$HOST') ) } ) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [16777215 448] ) ] spids: [16777215 477] ) ] spids: [409 480] ) redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(cluster.txt)} spids: [482] ) ] ) ] spids: [370 487] ) ] spids: [16777215 263] ) ] else_action: [(C {(echo)} {(DQ ($ VSub_Name '$VIP') (' appears to be down'))})] spids: [490 501] ) ] spids: [145 503] ) redirects: [(Redir op_id:Redir_Less fd:16777215 arg_word:{(/tmp/vips.txt)} spids:[505])] ) (C {(rm)} {(/tmp/vips.txt)}) ] )