(command.CommandList children: [ (C {(Id.KW_Set set)} {(-o)} {(errexit)}) (C {(Id.KW_Set set)} {(-o)} {(nounset)}) (C {(Id.KW_Set set)} {(-o)} {(pipefail)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ZONE) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:ZONE span_id:85) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } spids: [83] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REGION) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:ZONE span_id:91) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{('-*')}) ) } spids: [89] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INSTANCE_PREFIX) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:KUBE_GCE_INSTANCE_PREFIX span_id:98) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: { (braced_var_sub token: (Token id:Id.VSub_Name val:CLUSTER_NAME span_id:101) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ) } spids: [96] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:KUBE_GCE_NETWORK span_id:108) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: { (braced_var_sub token: (Token id:Id.VSub_Name val:KUBE_GKE_NETWORK span_id:111) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ) } spids: [106] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:KUBERNETES_PROVIDER span_id:126) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } right: {(DQ (gke))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:138) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INSTANCE_PREFIX) op: assign_op.Equal rhs: {(DQ (gke-) (${ Id.VSub_Name CLUSTER_NAME))} spids: [143] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INSTANCE_PREFIX) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:INSTANCE_PREFIX span_id:159) suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) length: (arith_expr.ArithWord w:{(Id.Lit_Digits 26)}) ) ) ) } spids: [156] ) ] ) ] spids: [120 140] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GREP_REGEX) op: assign_op.Equal rhs: {(DQ )} spids: [176] ) ] ) (command.ShFunction name: gcloud-compute-list body: (command.BraceGroup children: [ (C {(local)} {(-r)} {(Id.Lit_VarLike 'resource=') ($ Id.VSub_Number '$1')}) (C {(local)} {(-r)} {(Id.Lit_VarLike 'filter=') (braced_var_sub token: (Token id:Id.VSub_Number val:2 span_id:203) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) (C {(echo)} {(-e)} { (DQ (Id.Lit_Other '\\') (n) (Id.Lit_Other '\\') ('n[ ') (${ Id.VSub_Name resource) (' ]')) } ) (C {(local)} {(Id.Lit_VarLike 'attempt=') (1)}) (C {(local)} {(Id.Lit_VarLike 'result=') (DQ )}) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:237) cond: [ (command.Sentence child: (C {(true)}) terminator: (Token id:Id.Op_Semi val:';' span_id:240) ) ] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 248 ) command_list: (command.CommandList children: [ (C {(gcloud)} {(compute)} {(${ Id.VSub_Name resource)} {(list)} {(--project) (Id.Lit_Equals '=') (${ Id.VSub_Name PROJECT)} { (braced_var_sub token: (Token id: Id.VSub_Name val: filter span_id: 266 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: {('--filter=') (DQ ($ Id.VSub_DollarName '$filter')) } ) ) } { (braced_var_sub token: (Token id: Id.VSub_At val: '@' span_id: 275 ) suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w: {(Id.Lit_Digits 3)} ) ) ) } ) ] ) ) } spids: [247] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:280) ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ (${ Id.VSub_Name GREP_REGEX))} ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:300) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 306 ) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name result))} ) (C {(grep)} {(DQ (${ Id.VSub_Name GREP_REGEX))} ) ] negated: F ) (C {(true)}) ] ) ] ) ) } spids: [305] ) ] ) ] spids: [285 302] ) ] ) (C {(echo)} {(DQ (${ Id.VSub_Name result))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:343) ) ] spids: [245 282] ) ] ) (command.Simple words: [ {(echo)} {(-e)} { (DQ ('Attempt ') (${ Id.VSub_Name attempt) (' failed to list ') (${ Id.VSub_Name resource) ('. Retrying.') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:365) fd: -1 arg_word: {(2)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:attempt) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$attempt')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) } spids: [369] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.Op_Great left: {(${ Id.VSub_Name attempt)} right: {(5)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:391) ) ] action: [ (command.Simple words: [ {(echo)} {(-e)} {(DQ ('List ') (${ Id.VSub_Name resource) (' failed!'))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:408) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:412) arg_word: {(2)} ) ] spids: [378 393] ) ] ) (C {(sleep)} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.ArithWord w:{(Id.Lit_Digits 5)}) right: (arith_expr.ArithWord w:{(${ Id.VSub_Name attempt)}) ) ) } ) ] ) ) ] ) ) (C {(echo)} {(DQ ('Project: ') (${ Id.VSub_Name PROJECT))}) (C {(echo)} {(DQ ('Region: ') (${ Id.VSub_Name REGION))}) (C {(echo)} {(DQ ('Zone: ') (${ Id.VSub_Name ZONE))}) (C {(echo)} { (DQ ('Instance prefix: ') (braced_var_sub token: (Token id:Id.VSub_Name val:INSTANCE_PREFIX span_id:469) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) (C {(echo)} {(DQ ('Network: ') (${ Id.VSub_Name NETWORK))}) (C {(echo)} { (DQ ('Provider: ') (braced_var_sub token: (Token id:Id.VSub_Name val:KUBERNETES_PROVIDER span_id:488) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) (C {(gcloud-compute-list)} {(instance-templates)} {(DQ ("name ~ '") (${ Id.VSub_Name INSTANCE_PREFIX) (".*'"))} ) (C {(gcloud-compute-list)} {(instance-groups)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:ZONE span_id:518) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: {(DQ ('zone:(') (${ Id.VSub_Name ZONE) (') AND '))} ) ) ("name ~ '") (${ Id.VSub_Name INSTANCE_PREFIX) (".*'") ) } ) (C {(gcloud-compute-list)} {(instances)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:ZONE span_id:541) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: {(DQ ('zone:(') (${ Id.VSub_Name ZONE) (') AND '))} ) ) ("name ~ '") (${ Id.VSub_Name INSTANCE_PREFIX) (".*'") ) } ) (C {(gcloud-compute-list)} {(disks)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:ZONE span_id:568) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: {(DQ ('zone:(') (${ Id.VSub_Name ZONE) (') AND '))} ) ) ("name ~ '") (${ Id.VSub_Name INSTANCE_PREFIX) (".*'") ) } ) (C {(gcloud-compute-list)} {(addresses)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:REGION span_id:598) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: {(DQ ('region=(') (${ Id.VSub_Name REGION) (') AND '))} ) ) ("name ~ 'a.*|") (${ Id.VSub_Name INSTANCE_PREFIX) (".*'") ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GREP_REGEX) op: assign_op.Equal rhs: { (DQ ('^NAME') (Id.Lit_Other '\\') ('|^[^ ]') (Id.Lit_Other '\\') ('+[ ]') (Id.Lit_Other '\\') ('+') (Id.Lit_Other '\\') ('(default') (Id.Lit_Other '\\') ('|') (${ Id.VSub_Name NETWORK) (Id.Lit_Other '\\') (') ') ) } spids: [621] ) ] ) (C {(gcloud-compute-list)} {(routes)} {(DQ ("name ~ 'default.*|") (${ Id.VSub_Name INSTANCE_PREFIX) (".*'"))} ) (C {(gcloud-compute-list)} {(firewall-rules)} {(DQ ("name ~ 'default.*|k8s-fw.*|") (${ Id.VSub_Name INSTANCE_PREFIX) (".*'"))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GREP_REGEX) op: assign_op.Equal rhs: {(DQ )} spids: [665] ) ] ) (C {(gcloud-compute-list)} {(forwarding-rules)} { (braced_var_sub token: (Token id:Id.VSub_Name val:REGION span_id:674) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: {(DQ ('region=(') (${ Id.VSub_Name REGION) (')'))} ) ) } ) (C {(gcloud-compute-list)} {(target-pools)} { (braced_var_sub token: (Token id:Id.VSub_Name val:REGION span_id:690) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: {(DQ ('region=(') (${ Id.VSub_Name REGION) (')'))} ) ) } ) ] )