(CommandList children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalOr left: (BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Number "$1"))}) right: (LogicalOr left: (BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Number "$2"))}) right: (BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Number "$3"))}) ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NAME) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(basename)} {(DQ ($ VSub_Number "$0"))})] ) left_token: <Left_CommandSub "$("> spids: [72 78] ) } spids: [71] ) ] spids: [71] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobEqual left: {(DQ ($ VSub_Name "$NAME"))} right: {(nodescp)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} { (DQ ("Usage: ") ($ VSub_Number "$0") (" 'environment' 'nodename|IP address' 'from' 'to'") ) } ) ] spids: [-1 96] ) ] else_action: [ (C {(echo)} { (DQ ("Usage: ") ($ VSub_Number "$0") (" 'environment' 'nodename|IP address' 'command' (sudo)") ) } ) ] spids: [109 121] ) (C {(exit)}) ] spids: [-1 68] ) ] spids: [-1 126] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_z child: { (CommandSubPart command_list: (CommandList children:[(C {(which)} {(sshpass)})]) left_token: <Left_Backtick "`"> spids: [135 139] ) } ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} { (DQ ( "Error: sshpass required for this tool. You should be able to 'sudo apt-get install sshpass' to get it" ) ) } ) (C {(exit)}) ] spids: [-1 144] ) ] spids: [-1 156] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ENVIRONMENT) op: Equal rhs: {($ VSub_Number "$1")} spids: [159] ) ] spids: [159] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:IP) op:Equal rhs:{($ VSub_Number "$2")} spids:[162])] spids: [162] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMMAND) op: Equal rhs: {($ VSub_Number "$3")} spids: [165] ) ] spids: [165] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KNIFESTAT) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [ {(knife)} {(data)} {(bag)} {(show)} {(configs)} {($ VSub_Name "$ENVIRONMENT")} ] redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[186])] ) (C {(grep)} {(ERROR)}) ] negated: False ) ] ) left_token: <Left_Backtick "`"> spids: [173 194] ) } spids: [172] ) ] spids: [172] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Name "$KNIFESTAT"))}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("knife error ") ($ VSub_Name "$KNIFESTAT") (" when showing the config"))}) (C {(exit)}) ] spids: [-1 211] ) ] spids: [-1 225] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PASSWD) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(knife)} {(data)} {(bag)} {(show)} {(configs)} {($ VSub_Name "$ENVIRONMENT")}) (C {(grep)} {(DQ ("cobbler-root-password:"))}) (C {(awk)} {(SQ <" {print $2}">)}) ] negated: False ) ] ) left_token: <Left_Backtick "`"> spids: [232 260] ) } spids: [231] ) ] spids: [231] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Name "$PASSWD"))})) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(DQ ("Failed to retrieve 'cobbler-root-password'"))}) (C {(exit)})] spids: [-1 275] ) ] spids: [-1 287] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (CommandSubPart command_list: (CommandList children: [(C {(basename)} {(DQ ($ VSub_Number "$0"))})] ) left_token: <Left_CommandSub "$("> spids: [314 320] ) } right: {(nssh)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:SSH1COMMON) op:Equal rhs:{(DQ )} spids:[332])] spids: [332] ) ] spids: [-1 329] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SSHCOMMON) op: Equal rhs: { (DQ ( "-q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o VerifyHostKeyDNS=no" ) ) } spids: [339] ) ] spids: [339] ) ] spids: [336 344] ) (FuncDef name: apply_command body: (BraceGroup children: [ (C {(DQ ($ VSub_At "$@"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RES) op: Equal rhs: {($ VSub_QMark "$?")} spids: [359] ) ] spids: [359] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_ne left: {(DQ ($ VSub_Name "$RES"))} right: {(0)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("Executing '") ($ VSub_At "$@") ("' failed"))}) (C {(exit)} {($ VSub_Name "$RES")}) ] spids: [-1 378] ) ] spids: [-1 395] ) ] spids: [351] ) spids: [347 350] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (CommandSubPart command_list: (CommandList children: [(C {(basename)} {(DQ ($ VSub_Number "$0"))})] ) left_token: <Left_CommandSub "$("> spids: [404 410] ) } right: {(nodescp)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SCPCMD) op: Equal rhs: {(DQ ("scp ") ($ VSub_Name "$SSHCOMMON"))} spids: [422] ) ] spids: [422] ) (C {(apply_command)} {(sshpass)} {(-p)} {($ VSub_Name "$PASSWD")} {($ VSub_Name "$SCPCMD")} {(-p)} {(DQ ($ VSub_Number "$3"))} {(DQ ("ubuntu@") ($ VSub_Number "$2") (":") ($ VSub_Number "$4"))} ) ] spids: [-1 419] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SSHCMD) op: Equal rhs: {(DQ ("ssh ") ($ VSub_Name "$SSHCOMMON"))} spids: [464] ) ] spids: [464] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Number "$4"))} right: {(sudo)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(apply_command)} {(sshpass)} {(-p)} {($ VSub_Name "$PASSWD")} {($ VSub_Name "$SSHCMD")} {(-t)} {(ubuntu) (Lit_Other "@") ($ VSub_Name "$IP")} {(DQ ("echo ") ($ VSub_Name "$PASSWD") (" | sudo -S ") ($ VSub_Name "$COMMAND"))} ) ] spids: [-1 487] ) ] else_action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$COMMAND"))} right: {(-)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("You might need this : cobbler_root = ") ($ VSub_Name "$PASSWD"))}) (C {(apply_command)} {(sshpass)} {(-p)} {($ VSub_Name "$PASSWD")} {($ VSub_Name "$SSHCMD")} {(-t)} {(ubuntu) (Lit_Other "@") ($ VSub_Name "$IP")} ) ] spids: [-1 541] ) ] else_action: [ (C {(apply_command)} {(sshpass)} {(-p)} {($ VSub_Name "$PASSWD")} {($ VSub_Name "$SSHCMD")} {(-t)} {(ubuntu) (Lit_Other "@") ($ VSub_Name "$IP")} {(DQ ($ VSub_Name "$COMMAND"))} ) ] spids: [569 593] ) ] spids: [518 596] ) ] spids: [452 598] ) ] )