(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: [-1 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: [-1 79] ) ] else_action: [ (C {(echo)} {(DQ ("Usage: VIP not specified and more than one environment file found"))}) (C {(exit)}) ] spids: [88 101] ) ] spids: [-1 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:-1 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: [-1 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: [-1 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: [-1 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: [-1 448] ) ] spids: [-1 477] ) ] spids: [409 480] ) redirects: [ (Redir op_id: Redir_Less fd: -1 arg_word: {(cluster.txt)} spids: [482] ) ] ) ] spids: [370 487] ) ] spids: [-1 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:-1 arg_word:{(/tmp/vips.txt)} spids:[505])] ) (C {(rm)} {(/tmp/vips.txt)}) ] )