(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: [74 82]
              ) (/../..)
            }
          spids: [73]
        )
      ]
      spids: [73]
    )
    (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/federation/cluster/common.sh))})
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:REPORT_DIR)
          op: Equal
          rhs: 
            {
              (DQ 
                (BracedVarSub
                  token: <VSub_Number 1>
                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(_artifacts)})
                  spids: [99 103]
                )
              )
            }
          spids: [97]
        )
      ]
      spids: [95]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:OUTPUT_DIR)
          op: Equal
          rhs: {(DQ (${ VSub_Name REPORT_DIR) (/federation))}
          spids: [106]
        )
      ]
      spids: [106]
    )
    (FuncDef
      name: dump_federation_pod_logs
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: [-r]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:federation_pod_names_string)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(kubectl)} {(get)} {(pods)} {(-l)} {(SQ <'app=federated-cluster'>)} 
                                  {(--namespace) (Lit_Other '=') (${ VSub_Name FEDERATION_NAMESPACE)} {(-o)} {(name)}
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [133 155]
                        )
                      )
                    }
                  spids: [131]
                )
              ]
              spids: [127]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_z
                              child: {(DQ (${ VSub_Name federation_pod_names_string))}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return>)]
                  spids: [16777215 174]
                )
              ]
              spids: [16777215 180]
            )
            (Assignment
              keyword: Assign_Local
              flags: [-r]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:federation_pod_names)
                  op: Equal
                  rhs: {(ArrayLiteralPart words:[{(${ VSub_Name federation_pod_names_string)}])}
                  spids: [188]
                )
              ]
              spids: [184]
            )
            (ForEach
              iter_name: pod_name
              iter_words: [
                {
                  (BracedVarSub
                    token: <VSub_Name federation_pod_names>
                    bracket_op: (WholeArray op_id:Lit_At)
                    spids: [202 207]
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: {(DQ (${ VSub_Name pod_name))}
                                      right: {(Lit_Other '*') (apiserver) (Lit_Other '*')}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(dump_apiserver_pod_logs)} {(DQ (${ VSub_Name pod_name))})
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          spids: [16777215 236]
                        )
                      ]
                      spids: [16777215 251]
                    )
                    (SimpleCommand
                      words: [
                        {(kubectl)}
                        {(logs)}
                        {(DQ (${ VSub_Name pod_name))}
                        {(--namespace) (Lit_Other '=') (DQ (${ VSub_Name FEDERATION_NAMESPACE))}
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: 
                            {
                              (DQ (${ VSub_Name OUTPUT_DIR) (/) 
                                (BracedVarSub
                                  token: <VSub_Name pod_name>
                                  suffix_op: 
                                    (StringUnary
                                      op_id: VOp1_Pound
                                      arg_word: {(pods) (Lit_Slash /)}
                                    )
                                  spids: [281 286]
                                ) (.log)
                              )
                            }
                          spids: [275]
                        )
                      ]
                    )
                  ]
                  spids: [210 291]
                )
              spids: [201 208]
            )
          ]
          spids: [124]
        )
      spids: [118 123]
    )
    (FuncDef
      name: dump_apiserver_pod_logs
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: [-r]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:apiserver_pod_containers)
                  op: Equal
                  rhs: {(ArrayLiteralPart words:[{(apiserver)} {(etcd)}])}
                  spids: [318]
                )
              ]
              spids: [314]
            )
            (ForEach
              iter_name: container
              iter_words: [
                {
                  (BracedVarSub
                    token: <VSub_Name apiserver_pod_containers>
                    bracket_op: (WholeArray op_id:Lit_At)
                    spids: [332 337]
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (SimpleCommand
                      words: [
                        {(kubectl)}
                        {(logs)}
                        {(DQ (${ VSub_Number 1))}
                        {(-c)}
                        {(DQ (${ VSub_Name container))}
                        {(--namespace) (Lit_Other '=') (DQ (${ VSub_Name FEDERATION_NAMESPACE))}
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: 
                            {
                              (DQ (${ VSub_Name OUTPUT_DIR) (/) 
                                (BracedVarSub
                                  token: <VSub_Number 1>
                                  suffix_op: 
                                    (StringUnary
                                      op_id: VOp1_Pound
                                      arg_word: {(pods) (Lit_Slash /)}
                                    )
                                  spids: [377 382]
                                ) (-) (${ VSub_Name container) (.log)
                              )
                            }
                          spids: [371]
                        )
                      ]
                    )
                  ]
                  spids: [340 391]
                )
              spids: [331 338]
            )
          ]
          spids: [311]
        )
      spids: [305 310]
    )
    (FuncDef
      name: dump_dns_pod_logs
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: [-r]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dns_pod_names_string)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(kubectl)} {(get)} {(pods)} {(-l)} {(SQ <'k8s-app=kube-dns'>)} 
                                  {(--namespace) (Lit_Other '=') (kube-system)} {(-o)} {(name)}
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [420 440]
                        )
                      )
                    }
                  spids: [418]
                )
              ]
              spids: [414]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_z
                              child: {(DQ (${ VSub_Name dns_pod_names_string))}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return>)]
                  spids: [16777215 459]
                )
              ]
              spids: [16777215 465]
            )
            (Assignment
              keyword: Assign_Local
              flags: [-r]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dns_pod_names)
                  op: Equal
                  rhs: {(ArrayLiteralPart words:[{(${ VSub_Name dns_pod_names_string)}])}
                  spids: [473]
                )
              ]
              spids: [469]
            )
            (Assignment
              keyword: Assign_Local
              flags: [-r]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dns_pod_containers)
                  op: Equal
                  rhs: {(ArrayLiteralPart words:[{(kubedns)} {(dnsmasq)} {(sidecar)}])}
                  spids: [485]
                )
              ]
              spids: [481]
            )
            (ForEach
              iter_name: pod_name
              iter_words: [
                {
                  (BracedVarSub
                    token: <VSub_Name dns_pod_names>
                    bracket_op: (WholeArray op_id:Lit_At)
                    spids: [502 507]
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (ForEach
                      iter_name: container
                      iter_words: [
                        {
                          (BracedVarSub
                            token: <VSub_Name dns_pod_containers>
                            bracket_op: (WholeArray op_id:Lit_At)
                            spids: [527 532]
                          )
                        }
                      ]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (SimpleCommand
                              words: [
                                {(kubectl)}
                                {(logs)}
                                {(DQ (${ VSub_Name pod_name))}
                                {(-c)}
                                {(DQ (${ VSub_Name container))}
                                {(--namespace) (Lit_Other '=') (kube-system)}
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: 
                                    {
                                      (DQ (${ VSub_Name OUTPUT_DIR) (/) 
                                        (BracedVarSub
                                          token: <VSub_Name pod_name>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VOp1_Pound
                                              arg_word: {(pods) (Lit_Slash /)}
                                            )
                                          spids: [568 573]
                                        ) (-) (${ VSub_Name container) (.log)
                                      )
                                    }
                                  spids: [562]
                                )
                              ]
                            )
                          ]
                          spids: [535 582]
                        )
                      spids: [526 533]
                    )
                  ]
                  spids: [510 585]
                )
              spids: [501 508]
            )
          ]
          spids: [411]
        )
      spids: [405 410]
    )
    (C {(echo)} {(DQ ('Dumping Federation and DNS pod logs to ') (${ VSub_Name REPORT_DIR))})
    (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name OUTPUT_DIR))})
    (C {(dump_federation_pod_logs)})
    (C {(dump_dns_pod_logs)})
  ]
)