(CommandList children: [ (C {(set)} {(-o)} {(errexit)}) (C {(set)} {(-o)} {(nounset)}) (C {(set)} {(-o)} {(pipefail)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_ROOT) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ (${ VSub_Name BASH_SOURCE))})] ) left_token: <Left_CommandSub "$("> spids: [80 88] ) (/..) } spids: [79] ) ] spids: [79] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-f)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/env.sh))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [(C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/env.sh))})] spids: [-1 108] ) ] spids: [-1 120] ) (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/hack/lib/util.sh))}) (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/kube-util.sh))}) (FuncDef name: kubectl_retry body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:tries) op:Equal rhs:{(3)} spids:[154])] spids: [154] ) (While cond: [ (Sentence child: (Pipeline children: [ (C {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(DQ ($ VSub_At "$@"))}) ] negated: True ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tries) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:tries) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [178 183] ) } spids: [177] ) ] spids: [177] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_le left: {(${ VSub_Name tries)} right: {(0)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [ {(echo)} {(DQ ("('kubectl ") ($ VSub_At "$@") ("' failed, giving up)"))} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: -1 arg_word: {(2)} spids: [212] ) ] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [-1 201] ) ] spids: [-1 221] ) (SimpleCommand words: [ {(echo)} {(DQ ("(kubectl failed, will retry ") (${ VSub_Name tries) (" times)"))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[234])] ) (C {(sleep)} {(1)}) ] spids: [174 243] ) ) ] spids: [151] ) spids: [145 150] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ALLOWED_NOTREADY_NODES) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name ALLOWED_NOTREADY_NODES> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(0)}) spids: [250 254] ) ) } spids: [248] ) ] spids: [248] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CLUSTER_READY_ADDITIONAL_TIME_SECONDS) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name CLUSTER_READY_ADDITIONAL_TIME_SECONDS> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(30)}) spids: [259 263] ) ) } spids: [257] ) ] spids: [257] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:EXPECTED_NUM_NODES) op: Equal rhs: {(DQ (${ VSub_Name NUM_NODES))} spids: [267] ) ] spids: [267] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (DQ (BracedVarSub token: <VSub_Name KUBERNETES_PROVIDER> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [280 283] ) ) } right: {(DQ (gce))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} { (DQ ("Validating gce cluster, MULTIZONE=") (BracedVarSub token: <VSub_Name MULTIZONE> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [302 305] ) ) } ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (DQ (BracedVarSub token: <VSub_Name MULTIZONE> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [318 321] ) ) } right: {(DQ (true))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:EXPECTED_NUM_NODES) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(gcloud)} {(-q)} {(compute)} {(instances)} {(list)} {(--project) (Lit_Other "=") (DQ (${ VSub_Name PROJECT))} {(--format) (Lit_Other "=") (Lit_Other "[") (no-heading) (Lit_Other "]")} {(--filter) (Lit_Other "=") (DQ ("name ~ '") (${ VSub_Name NODE_INSTANCE_PREFIX) (".*' AND zone:(") (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(gcloud)} {(-q)} {(compute)} {(zones)} {(list)} {(--project) (Lit_Other "=") (DQ (${ VSub_Name PROJECT))} {(--filter) (Lit_Other "=") (Lit_VarLike "region=") (${ VSub_Name REGION) } {(--format) (Lit_Other "=") (csv) (Lit_Other "[") (no-heading) (Lit_Other "]") (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) (name) (EscapedLiteralPart token: <Lit_EscapedChar "\\)"> ) } ) (C {(tr)} { (DQ (EscapedLiteralPart token: <Lit_EscapedChar "\\n"> ) ) } {(DQ (","))} ) (C {(sed)} {(DQ ("s/,") (Lit_Other "$") (//))} ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [372 429] ) (")") ) } ) (C {(wc)} {(-l)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [337 438] ) } spids: [336] ) ] spids: [336] ) (C {(echo)} { (DQ ("Computing number of nodes, NODE_INSTANCE_PREFIX=") (${ VSub_Name NODE_INSTANCE_PREFIX) (", REGION=") (${ VSub_Name REGION) (", EXPECTED_NUM_NODES=") (${ VSub_Name EXPECTED_NUM_NODES) ) } ) ] spids: [-1 333] ) ] spids: [-1 459] ) ] spids: [-1 295] ) ] spids: [-1 461] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (DQ (BracedVarSub token: <VSub_Name REGISTER_MASTER_KUBELET> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [469 472] ) ) } right: {(DQ (true))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (DQ (BracedVarSub token: <VSub_Name KUBERNETES_PROVIDER> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [492 495] ) ) } right: {(DQ (gce))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NUM_MASTERS) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(get-master-replicas-count)})] ) left_token: <Left_CommandSub "$("> spids: [511 513] ) } spids: [510] ) ] spids: [510] ) ] spids: [-1 507] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:NUM_MASTERS) op:Equal rhs:{(1)} spids:[519])] spids: [519] ) ] spids: [516 523] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:EXPECTED_NUM_NODES) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:EXPECTED_NUM_NODES) right: (ArithVarRef name:NUM_MASTERS) ) spids: [527 532] ) } spids: [526] ) ] spids: [526] ) ] spids: [-1 484] ) ] spids: [-1 534] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REQUIRED_NUM_NODES) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:EXPECTED_NUM_NODES) right: (ArithVarRef name:ALLOWED_NOTREADY_NODES) ) spids: [538 545] ) } spids: [537] ) ] spids: [537] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:return_value) op:Equal rhs:{(0)} spids:[550])] spids: [550] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:attempt) op:Equal rhs:{(0)} spids:[553])] spids: [553] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PAUSE_BETWEEN_ITERATIONS_SECONDS) op: Equal rhs: {(15)} spids: [559] ) ] spids: [559] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:MAX_ATTEMPTS) op:Equal rhs:{(100)} spids:[562])] spids: [562] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ADDITIONAL_ITERATIONS) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Slash left: (ArithBinary op_id: Arith_Minus left: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:CLUSTER_READY_ADDITIONAL_TIME_SECONDS) right: (ArithVarRef name:PAUSE_BETWEEN_ITERATIONS_SECONDS) ) right: (ArithWord w:{(Lit_Digits 1)}) ) right: (ArithVarRef name:PAUSE_BETWEEN_ITERATIONS_SECONDS) ) spids: [566 581] ) } spids: [565] ) ] spids: [565] ) (While cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ";">)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_gt left: {(${ VSub_Name attempt)} right: {(0)} ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(sleep)} {(15)})] spids: [-1 610] ) ] spids: [-1 618] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:attempt) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:attempt) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [622 627] ) } spids: [621] ) ] spids: [621] ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:node) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(kubectl_retry)} {(get)} {(nodes)})] ) left_token: <Left_CommandSub "$("> spids: [680 686] ) } spids: [679] ) ] spids: [679] ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:res) op: Equal rhs: {(DQ ($ VSub_QMark "$?"))} spids: [690] ) ] spids: [690] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:res) op: Equal rhs: {(DQ ($ VSub_QMark "$?"))} spids: [697] ) ] spids: [697] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ (${ VSub_Name res))} {(-ne)} {(DQ (0))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_gt left: {(DQ (${ VSub_Name attempt))} right: { (DQ (BracedVarSub token: <VSub_Name last_run> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_Name "$MAX_ATTEMPTS")} ) spids: [738 742] ) ) } ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(-e)} { (DQ (${ VSub_Name color_red) (" Failed to get nodes.") (${ VSub_Name color_norm) ) } ) (C {(exit)} {(1)}) ] spids: [-1 748] ) ] else_action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [771 777] ) ] spids: [-1 722] ) ] spids: [-1 780] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:found) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name node))}) (C {(wc)} {(-l)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [785 799] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [784 805] ) } spids: [783] ) ] spids: [783] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ready) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name node))}) (C {(grep)} {(-v)} {(DQ (NotReady))}) (C {(wc)} {(-l)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [810 835] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [809 841] ) } spids: [808] ) ] spids: [808] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{(DQ (${ VSub_Name found))}) right: (ArithWord w:{(DQ (${ VSub_Name EXPECTED_NUM_NODES))}) ) ) (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{(DQ (${ VSub_Name ready))}) right: (ArithWord w:{(DQ (${ VSub_Name EXPECTED_NUM_NODES))}) ) ) ] op_id: Op_DAmp ) terminator: <Op_Semi ";"> ) ] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [-1 887] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Great left: (ArithWord w:{(DQ (${ VSub_Name found))}) right: (ArithWord w:{(DQ (${ VSub_Name EXPECTED_NUM_NODES))}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (DQ (BracedVarSub token: <VSub_Name KUBE_USE_EXISTING_MASTER> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [923 926] ) ) } right: {(DQ (true))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(-e)} { (DQ (${ VSub_Name color_red) ("Found ") (${ VSub_Name found) (" nodes, but expected ") (${ VSub_Name EXPECTED_NUM_NODES) (". Your cluster may not behave correctly.") (${ VSub_Name color_norm) ) } ) ] spids: [-1 938] ) ] spids: [-1 964] ) (ControlFlow token:<ControlFlow_Break break>) ] spids: [893 915] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Great left: (ArithWord w:{(DQ (${ VSub_Name ready))}) right: (ArithWord w:{(DQ (${ VSub_Name EXPECTED_NUM_NODES))}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(-e)} { (DQ (${ VSub_Name color_red) ("Found ") (${ VSub_Name ready) (" ready nodes, but expected ") (${ VSub_Name EXPECTED_NUM_NODES) (". Your cluster may not behave correctly.") (${ VSub_Name color_norm) ) } ) (ControlFlow token:<ControlFlow_Break break>) ] spids: [970 991] ) ] else_action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_le left: {(DQ (${ VSub_Name REQUIRED_NUM_NODES))} right: {(DQ (${ VSub_Name ready))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(-e)} { (DQ (${ VSub_Name color_green) ("Found ") (${ VSub_Name REQUIRED_NUM_NODES) (" Nodes, allowing additional ") (${ VSub_Name ADDITIONAL_ITERATIONS) (" iterations for other Nodes to join.") (${ VSub_Name color_norm) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:last_run) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name last_run> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:attempt) right: (ArithVarRef name: ADDITIONAL_ITERATIONS ) ) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1075 1086] ) } ) spids: [1072 1087] ) ) } spids: [1070] ) ] spids: [1070] ) ] spids: [-1 1044] ) ] spids: [-1 1091] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_gt left: {(DQ (${ VSub_Name attempt))} right: { (DQ (BracedVarSub token: <VSub_Name last_run> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_Name "$MAX_ATTEMPTS")} ) spids: [1107 1111] ) ) } ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(-e)} { (DQ (${ VSub_Name color_yellow) ("Detected ") (${ VSub_Name ready) (" ready nodes, found ") (${ VSub_Name found) (" nodes out of expected ") (${ VSub_Name EXPECTED_NUM_NODES) (". Your cluster may not be fully functional.") (${ VSub_Name color_norm) ) } ) (C {(kubectl_retry)} {(get)} {(nodes)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_gt left: {(DQ (${ VSub_Name REQUIRED_NUM_NODES))} right: {(DQ (${ VSub_Name ready))} ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(exit)} {(1)})] spids: [-1 1175] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:return_value) op: Equal rhs: {(2)} spids: [1186] ) ] spids: [1186] ) (ControlFlow token:<ControlFlow_Break break>) ] spids: [1183 1193] ) ] spids: [-1 1117] ) ] else_action: [ (C {(echo)} {(-e)} { (DQ (${ VSub_Name color_yellow) ("Waiting for ") (${ VSub_Name EXPECTED_NUM_NODES) (" ready nodes. ") (${ VSub_Name ready) (" ready nodes, ") (${ VSub_Name found) (" registered. Retrying.") (${ VSub_Name color_norm) ) } ) ] spids: [1196 1226] ) ] spids: [1020 1229] ) ] spids: [588 1231] ) ) (C {(echo)} {(DQ ("Found ") (${ VSub_Name found) (" node(s)."))}) (C {(kubectl_retry)} {(get)} {(nodes)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:attempt) op:Equal rhs:{(0)} spids:[1250])] spids: [1250] ) (While cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ";">)] body: (DoGroup children: [ (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cs_status) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(kubectl_retry)} {(get)} {(componentstatuses)} {(-o)} {(template)} {(--template) (Lit_Other "=") (SQ < "{{range .items}}{{with index .conditions 0}}{{.type}}:{{.status}}{{end}}{{\"\\n\"}}{{end}}" > ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [1282 1298] ) } spids: [1281] ) ] spids: [1281] ) (C {(true)}) ] op_id: Op_DPipe ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:componentstatuses) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name cs_status))}) (C {(grep)} {(-c)} {(SQ <"Healthy:">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1306 1324] ) } spids: [1305] ) ] spids: [1305] ) (C {(true)}) ] op_id: Op_DPipe ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:healthy) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name cs_status))}) (C {(grep)} {(-c)} {(SQ <"Healthy:True">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1332 1350] ) } spids: [1331] ) ] spids: [1331] ) (C {(true)}) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (DParen child: (ArithBinary op_id: Arith_Great left: (ArithVarRef name:componentstatuses) right: (ArithVarRef name:healthy) ) ) (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithVarRef name:componentstatuses) right: (ArithWord w:{(Lit_Digits 0)}) ) ) ] op_id: Op_DPipe ) terminator: <Op_Semi ";"> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:attempt) right: (ArithWord w:{(Lit_Digits 5)}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(-e)} { (DQ (${ VSub_Name color_yellow) ("Cluster not working yet.") (${ VSub_Name color_norm) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:attempt) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:attempt) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1415 1420] ) } spids: [1414] ) ] spids: [1414] ) (C {(sleep)} {(30)}) ] spids: [-1 1396] ) ] else_action: [ (C {(echo)} {(-e)} { (DQ (" ") (${ VSub_Name color_yellow) ("Validate output:") (${ VSub_Name color_norm) ) } ) (C {(kubectl_retry)} {(get)} {(cs)}) (C {(echo)} {(-e)} { (DQ (${ VSub_Name color_red) ( "Validation returned one or more failed components. Cluster is probably broken." ) (${ VSub_Name color_norm) ) } ) (C {(exit)} {(1)}) ] spids: [1428 1474] ) ] spids: [-1 1381] ) ] else_action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [1477 1483] ) ] spids: [1258 1485] ) ) (C {(echo)} {(DQ ("Validate output:"))}) (AndOr children:[(C {(kubectl_retry)} {(get)} {(cs)})(C {(true)})] op_id:Op_DPipe) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ (${ VSub_Name return_value))} {(Lit_Other "=") (Lit_Other "=")} {(DQ (0))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(-e)} { (DQ (${ VSub_Name color_green) ("Cluster validation succeeded") (${ VSub_Name color_norm) ) } ) ] spids: [-1 1524] ) ] else_action: [ (C {(echo)} {(-e)} { (DQ (${ VSub_Name color_yellow) ( "Cluster validation encountered some problems, but cluster should be in working order" ) (${ VSub_Name color_norm) ) } ) ] spids: [1541 1558] ) (C {(exit)} {(DQ (${ VSub_Name return_value))}) ] )