(command.CommandList
  children: [
    (command.Simple blame_tok:<set> more_env:[] words:[{<set>} {<-e>}] redirects:[] do_fork:T)
    (command.ShAssignment
      left: <Id.Lit_VarLike 'KUBE_ROOT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'KUBE_ROOT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KUBE_ROOT='> name:KUBE_ROOT)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <dirname>
                    more_env: []
                    words: [{<dirname>} {(DQ (${ Id.VSub_Name BASH_SOURCE))}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              ) <'/../..'>
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <readonly>
      more_env: []
      words: [
        {<readonly>}
        {<Id.Lit_VarLike 'ROOT='> 
          (CommandSub
            left_token: <Id.Left_DollarParen '$('>
            child: 
              (command.Simple
                blame_tok: <dirname>
                more_env: []
                words: [{<dirname>} {(DQ (${ Id.VSub_Name BASH_SOURCE))}]
                redirects: []
                do_fork: T
              )
            right: <Id.Eof_RParen _>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <source>
      more_env: []
      words: [
        {<source>}
        {
          (DQ (${ Id.VSub_Name ROOT) <'/'> 
            (BracedVarSub
              left: <Id.Left_DollarBrace '${'>
              token: <Id.VSub_Name KUBE_CONFIG_FILE>
              var_name: KUBE_CONFIG_FILE
              suffix_op: 
                (suffix_op.Unary
                  op: <Id.VTest_ColonHyphen _>
                  arg_word: {(DQ <config-default.sh>)}
                )
              right: <Id.Right_DollarBrace '}'>
            )
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <source>
      more_env: []
      words: [{<source>} {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/common.sh'>)}]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {($ Id.VSub_DollarName CREATE_IMAGE)}
                        {<Id.Lit_Equals '='>}
                        {<true>}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <source>
              more_env: []
              words: [{<source>} {(DQ (${ Id.VSub_Name ROOT) <'/config-image.sh'>)}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [112 125]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <verify-prereqs>
      name: verify-prereqs
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [client]
              iterable: (for_iter.Words words:[{<swift>} {<glance>} {<nova>} {<heat>} {<openstack>}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <which>
                                      more_env: []
                                      words: [{<which>} {($ Id.VSub_DollarName client)}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/dev/null'>}
                                        )
                                        (Redir
                                          op: <Id.Redir_GreatAnd '2>&'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {<1>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ (${ Id.VSub_Name client) <' client installed'>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [176 189]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ (${ Id.VSub_Name client) <' client does not exist'>)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {
                              (DQ <'Please install '> (${ Id.VSub_Name client) <' client, and retry.'>)
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {
                              (DQ <'Documentation for installing '> (${ Id.VSub_Name client) 
                                <' can be found at'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {
                              (DQ 
                                <
'http://docs.openstack.org/user-guide/common/cli-install-openstack-command-line-clients.html'
                                >
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Exit exit>
                          arg_word: {<1>}
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <kube-up>
      name: kube-up
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'kube-up for provider '> (${ Id.VSub_Name KUBERNETES_PROVIDER))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <create-stack>
              more_env: []
              words: [{<create-stack>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <validate-cluster>
      name: validate-cluster
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          left: <Id.Op_DLeftParen _>
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_GreatEqual
                              left: 
                                (arith_expr.UnaryAssign
                                  op_id: Id.Arith_DMinus
                                  child: {($ Id.VSub_DollarName STACK_CREATE_TIMEOUT)}
                                )
                              right: {<Id.Lit_Digits 0>}
                            )
                          right: <Id.Op_DRightParen _>
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <local>
                      more_env: []
                      words: [
                        {<local>}
                        {<Id.Lit_VarLike 'status='> 
                          (CommandSub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <openstack>
                                    more_env: []
                                    words: [
                                      {<openstack>}
                                      {<stack>}
                                      {<show>}
                                      {(DQ (${ Id.VSub_Name STACK_NAME))}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <awk>
                                    more_env: []
                                    words: [{<awk>} {(SQ <'$2=="stack_status" {print $4}'>)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Eof_RParen _>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName status)})
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'Cluster status '> (${ Id.VSub_Name status))}]
                              redirects: []
                              do_fork: T
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {($ Id.VSub_DollarName status)}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ <CREATE_COMPLETE>)}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <configure-kubectl>
                                      more_env: []
                                      words: [{<configure-kubectl>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [383 398]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {($ Id.VSub_DollarName status)}
                                                {<Id.Lit_Equals '='>}
                                                {(DQ <CREATE_FAILED>)}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ 
                                            <
'Cluster not created. Please check stack logs to find the problem'
                                            >
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [407 422]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [361 370]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {(DQ <'Cluster not created. Please verify if process started correctly'>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Break break>
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <sleep>
                      more_env: []
                      words: [{<sleep>} {<60>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <create-stack>
      name: create-stack
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'[INFO] Execute commands to create Kubernetes cluster'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <source>
              more_env: []
              words: [{<source>} {(DQ (${ Id.VSub_Name ROOT) <'/openrc-swift.sh'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <upload-resources>
              more_env: []
              words: [{<upload-resources>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <source>
              more_env: []
              words: [{<source>} {(DQ (${ Id.VSub_Name ROOT) <'/openrc-default.sh'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <create-glance-image>
              more_env: []
              words: [{<create-glance-image>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add-keypair>
              more_env: []
              words: [{<add-keypair>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <run-heat-script>
              more_env: []
              words: [{<run-heat-script>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <upload-resources>
      name: upload-resources
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <swift>
              more_env: []
              words: [
                {<swift>}
                {<post>}
                {(${ Id.VSub_Name SWIFT_OBJECT_STORE)}
                {<--read-acl>}
                {(SQ <'.r:*,.rlistings'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'locations='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'locations='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'locations='> name:locations)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (ShArrayLiteral
                        left: <Id.Op_LParen _>
                        words: [
                          {
                            (DQ (${ Id.VSub_Name ROOT) <'/../../_output/release-tars/'> 
                              (${ Id.VSub_Name KUBERNETES_RELEASE_TAR)
                            )
                          }
                          {
                            (DQ (${ Id.VSub_Name ROOT) <'/../../server/'> 
                              (${ Id.VSub_Name KUBERNETES_RELEASE_TAR)
                            )
                          }
                        ]
                        right: <Id.Right_ShArrayLiteral _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'RELEASE_TAR_LOCATION='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'RELEASE_TAR_LOCATION='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'RELEASE_TAR_LOCATION='>
                      name: RELEASE_TAR_LOCATION
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Subshell
                                left: <Id.Op_LParen _>
                                child: 
                                  (command.AndOr
                                    children: [
                                      (command.Simple
                                        blame_tok: <ls>
                                        more_env: []
                                        words: [
                                          {<ls>}
                                          {<-t>}
                                          {
                                            (DQ 
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name locations>
                                                var_name: locations
                                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            )
                                          }
                                        ]
                                        redirects: [
                                          (Redir
                                            op: <Id.Redir_Great '2>'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<'/dev/null'>}
                                          )
                                        ]
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <true>
                                        more_env: []
                                        words: [{<true>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_DPipe _>]
                                  )
                                right: <Id.Right_Subshell _>
                                redirects: []
                              )
                              (command.Simple
                                blame_tok: <head>
                                more_env: []
                                words: [{<head>} {<-1>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'RELEASE_TAR_PATH='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'RELEASE_TAR_PATH='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'RELEASE_TAR_PATH='>
                      name: RELEASE_TAR_PATH
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <dirname>
                            more_env: []
                            words: [{<dirname>} {(${ Id.VSub_Name RELEASE_TAR_LOCATION)}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'[INFO] Uploading '> (${ Id.VSub_Name KUBERNETES_RELEASE_TAR))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <swift>
              more_env: []
              words: [
                {<swift>}
                {<upload>}
                {(${ Id.VSub_Name SWIFT_OBJECT_STORE)}
                {(${ Id.VSub_Name RELEASE_TAR_PATH) <'/'> (${ Id.VSub_Name KUBERNETES_RELEASE_TAR)}
                {<--object-name>}
                {<kubernetes-server.tar.gz>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'[INFO] Uploading kubernetes-salt.tar.gz'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <swift>
              more_env: []
              words: [
                {<swift>}
                {<upload>}
                {(${ Id.VSub_Name SWIFT_OBJECT_STORE)}
                {(${ Id.VSub_Name RELEASE_TAR_PATH) <'/kubernetes-salt.tar.gz'>}
                {<--object-name>}
                {<kubernetes-salt.tar.gz>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <add-keypair>
      name: add-keypair
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'status='> 
                  (CommandSub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (command.Simple
                        blame_tok: <nova>
                        more_env: []
                        words: [{<nova>} {<keypair-show>} {(${ Id.VSub_Name KUBERNETES_KEYPAIR_NAME)}]
                        redirects: []
                        do_fork: T
                      )
                    right: <Id.Eof_RParen _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.LogicalNot
                                  child: (bool_expr.WordTest w:{($ Id.VSub_DollarName status)})
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <nova>
                      more_env: []
                      words: [
                        {<nova>}
                        {<keypair-add>}
                        {(${ Id.VSub_Name KUBERNETES_KEYPAIR_NAME)}
                        {<--pub-key>}
                        {(${ Id.VSub_Name CLIENT_PUBLIC_KEY_PATH)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'[INFO] Key pair created'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [760 771]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ <'[INFO] Key pair already exists'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <create-glance-image>
      name: create-glance-image
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {(${ Id.VSub_Name CREATE_IMAGE)}
                                  right: {(DQ <true>)}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <local>
                      more_env: []
                      words: [
                        {<local>}
                        {<Id.Lit_VarLike 'image_status='> 
                          (CommandSub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <openstack>
                                    more_env: []
                                    words: [
                                      {<openstack>}
                                      {<image>}
                                      {<show>}
                                      {(${ Id.VSub_Name OPENSTACK_IMAGE_NAME)}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <awk>
                                    more_env: []
                                    words: [{<awk>} {(SQ <'$2=="id" {print $4}'>)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Eof_RParen _>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: 
                                        (bool_expr.LogicalNot
                                          child: 
                                            (bool_expr.WordTest
                                              w: {($ Id.VSub_DollarName image_status)}
                                            )
                                        )
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              left: <Id.KW_DLeftBracket '[['>
                                              expr: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobDEqual
                                                  left: {(DQ (${ Id.VSub_Name DOWNLOAD_IMAGE))}
                                                  right: {(DQ <true>)}
                                                )
                                              right: <Id.Lit_DRightBracket ']]'>
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <mkdir>
                                      more_env: []
                                      words: [{<mkdir>} {<-p>} {(${ Id.VSub_Name IMAGE_PATH)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <curl>
                                      more_env: []
                                      words: [
                                        {<curl>}
                                        {<-L>}
                                        {(${ Id.VSub_Name IMAGE_URL_PATH) <'/'> 
                                          (${ Id.VSub_Name IMAGE_FILE)
                                        }
                                        {<-o>}
                                        {(${ Id.VSub_Name IMAGE_PATH) <'/'> 
                                          (${ Id.VSub_Name IMAGE_FILE)
                                        }
                                        {<-z>}
                                        {(${ Id.VSub_Name IMAGE_PATH) <'/'> 
                                          (${ Id.VSub_Name IMAGE_FILE)
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [897 916]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {(DQ <'[INFO] Create image '> (${ Id.VSub_Name OPENSTACK_IMAGE_NAME))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <glance>
                              more_env: []
                              words: [
                                {<glance>}
                                {<image-create>}
                                {<--name>}
                                {(${ Id.VSub_Name OPENSTACK_IMAGE_NAME)}
                                {<--disk-format>}
                                {(${ Id.VSub_Name IMAGE_FORMAT)}
                                {<--container-format>}
                                {(${ Id.VSub_Name CONTAINER_FORMAT)}
                                {<--file>}
                                {(${ Id.VSub_Name IMAGE_PATH) <'/'> (${ Id.VSub_Name IMAGE_FILE)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [883 894]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {
                              (DQ <'[INFO] Image '> (${ Id.VSub_Name OPENSTACK_IMAGE_NAME) 
                                <' already exists'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [838 855]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <run-heat-script>
      name: run-heat-script
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'stack_status='> 
                  (CommandSub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (command.Simple
                        blame_tok: <openstack>
                        more_env: []
                        words: [{<openstack>} {<stack>} {<show>} {(${ Id.VSub_Name STACK_NAME)}]
                        redirects: []
                        do_fork: T
                      )
                    right: <Id.Eof_RParen _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {($ Id.VSub_DollarName SWIFT_SERVER_URL)}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <local>
                      more_env: []
                      words: [{<local>} {<Id.Lit_VarLike 'rgx='> (DQ )}]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ ($ Id.VSub_DollarName OS_IDENTITY_API_VERSION))}
                                        {<Id.Lit_Equals '='>}
                                        {(DQ <3>)}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'rgx='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'rgx='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rgx='> name:rgx)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'public: (.+)'> <Id.Lit_Dollar '$'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1131 1148]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'rgx='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'rgx='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rgx='> name:rgx)
                              op: assign_op.Equal
                              rhs: {(DQ <'publicURL: (.+)'> <Id.Lit_Dollar '$'>)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'SWIFT_SERVER_URL='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'SWIFT_SERVER_URL='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'SWIFT_SERVER_URL='>
                              name: SWIFT_SERVER_URL
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <openstack>
                                        more_env: []
                                        words: [
                                          {<openstack>}
                                          {<catalog>}
                                          {<show>}
                                          {<object-store>}
                                          {<--format>}
                                          {<value>}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <egrep>
                                        more_env: []
                                        words: [{<egrep>} {<-o>} {(DQ ($ Id.VSub_DollarName rgx))}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <cut>
                                        more_env: []
                                        words: [{<cut>} {<-d> (DQ <' '>)} {<-f2>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <head>
                                        more_env: []
                                        words: [{<head>} {<-n>} {<1>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [1110 1121]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'swift_repo_url='> 
                  (DQ (${ Id.VSub_Name SWIFT_SERVER_URL) <'/'> (${ Id.VSub_Name SWIFT_OBJECT_STORE))
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {($ Id.VSub_DollarName CREATE_IMAGE)}
                                {<Id.Lit_Equals '='>}
                                {<true>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'[INFO] Retrieve new image ID'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IMAGE_ID='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IMAGE_ID='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IMAGE_ID='> name:IMAGE_ID)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <openstack>
                                        more_env: []
                                        words: [
                                          {<openstack>}
                                          {<image>}
                                          {<show>}
                                          {(${ Id.VSub_Name OPENSTACK_IMAGE_NAME)}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <awk>
                                        more_env: []
                                        words: [{<awk>} {(SQ <'$2=="id" {print $4}'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'[INFO] Image Id '> (${ Id.VSub_Name IMAGE_ID))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1234 1247]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.LogicalNot
                                  child: (bool_expr.WordTest w:{($ Id.VSub_DollarName stack_status)})
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'[INFO] Create stack '> (${ Id.VSub_Name STACK_NAME))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Subshell
                      left: <Id.Op_LParen _>
                      child: 
                        (command.CommandList
                          children: [
                            (command.Simple
                              blame_tok: <cd>
                              more_env: []
                              words: [{<cd>} {(${ Id.VSub_Name ROOT) <'/kubernetes-heat'>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <openstack>
                              more_env: []
                              words: [
                                {<openstack>}
                                {<stack>}
                                {<create>}
                                {<--timeout>}
                                {<60>}
                                {<--parameter>}
                                {<Id.Lit_VarLike 'external_network='> 
                                  (${ Id.VSub_Name EXTERNAL_NETWORK)
                                }
                                {<--parameter>}
                                {<Id.Lit_VarLike 'lbaas_version='> (${ Id.VSub_Name LBAAS_VERSION)}
                                {<--parameter>}
                                {<Id.Lit_VarLike 'fixed_network_cidr='> 
                                  (${ Id.VSub_Name FIXED_NETWORK_CIDR)
                                }
                                {<--parameter>}
                                {<Id.Lit_VarLike 'ssh_key_name='> 
                                  (${ Id.VSub_Name KUBERNETES_KEYPAIR_NAME)
                                }
                                {<--parameter>}
                                {<Id.Lit_VarLike 'server_image='> (${ Id.VSub_Name IMAGE_ID)}
                                {<--parameter>}
                                {<Id.Lit_VarLike 'master_flavor='> (${ Id.VSub_Name MASTER_FLAVOR)}
                                {<--parameter>}
                                {<Id.Lit_VarLike 'minion_flavor='> (${ Id.VSub_Name MINION_FLAVOR)}
                                {<--parameter>}
                                {<Id.Lit_VarLike 'number_of_minions='> 
                                  (${ Id.VSub_Name NUMBER_OF_MINIONS)
                                }
                                {<--parameter>}
                                {<Id.Lit_VarLike 'max_number_of_minions='> 
                                  (${ Id.VSub_Name MAX_NUMBER_OF_MINIONS)
                                }
                                {<--parameter>}
                                {<Id.Lit_VarLike 'dns_nameserver='> (${ Id.VSub_Name DNS_SERVER)}
                                {<--parameter>}
                                {<Id.Lit_VarLike 'kubernetes_salt_url='> 
                                  (${ Id.VSub_Name swift_repo_url) <'/kubernetes-salt.tar.gz'>
                                }
                                {<--parameter>}
                                {<Id.Lit_VarLike 'kubernetes_server_url='> 
                                  (${ Id.VSub_Name swift_repo_url) <'/kubernetes-server.tar.gz'>
                                }
                                {<--parameter>}
                                {<Id.Lit_VarLike 'os_auth_url='> (${ Id.VSub_Name OS_AUTH_URL)}
                                {<--parameter>}
                                {<Id.Lit_VarLike 'os_username='> (${ Id.VSub_Name OS_USERNAME)}
                                {<--parameter>}
                                {<Id.Lit_VarLike 'os_password='> (${ Id.VSub_Name OS_PASSWORD)}
                                {<--parameter>}
                                {<Id.Lit_VarLike 'os_region_name='> (${ Id.VSub_Name OS_REGION_NAME)}
                                {<--parameter>}
                                {<Id.Lit_VarLike 'os_tenant_name='> (${ Id.VSub_Name OS_TENANT_NAME)}
                                {<--parameter>}
                                {<Id.Lit_VarLike 'os_user_domain_name='> 
                                  (${ Id.VSub_Name OS_USER_DOMAIN_NAME)
                                }
                                {<--parameter>}
                                {<Id.Lit_VarLike 'enable_proxy='> (${ Id.VSub_Name ENABLE_PROXY)}
                                {<--parameter>}
                                {<Id.Lit_VarLike 'ftp_proxy='> (DQ (${ Id.VSub_Name FTP_PROXY))}
                                {<--parameter>}
                                {<Id.Lit_VarLike 'http_proxy='> (DQ (${ Id.VSub_Name HTTP_PROXY))}
                                {<--parameter>}
                                {<Id.Lit_VarLike 'https_proxy='> (DQ (${ Id.VSub_Name HTTPS_PROXY))}
                                {<--parameter>}
                                {<Id.Lit_VarLike 'socks_proxy='> (DQ (${ Id.VSub_Name SOCKS_PROXY))}
                                {<--parameter>}
                                {<Id.Lit_VarLike 'no_proxy='> (DQ (${ Id.VSub_Name NO_PROXY))}
                                {<--parameter>}
                                {<Id.Lit_VarLike 'assign_floating_ip='> 
                                  (DQ (${ Id.VSub_Name ASSIGN_FLOATING_IP))
                                }
                                {<--template>}
                                {<kubecluster.yaml>}
                                {(${ Id.VSub_Name STACK_NAME)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                        )
                      right: <Id.Right_Subshell _>
                      redirects: []
                    )
                  ]
                  spids: [1293 1304]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {(DQ <'[INFO] Stack '> (${ Id.VSub_Name STACK_NAME) <' already exists'>)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <openstack>
                  more_env: []
                  words: [{<openstack>} {<stack>} {<show>} {(${ Id.VSub_Name STACK_NAME)}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <configure-kubectl>
      name: configure-kubectl
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [
                {<export>}
                {<Id.Lit_VarLike 'KUBE_MASTER_IP='> 
                  (CommandSub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (command.Pipeline
                        children: [
                          (command.Simple
                            blame_tok: <nova>
                            more_env: []
                            words: [{<nova>} {<show>} {(DQ (${ Id.VSub_Name STACK_NAME)) <-master>}]
                            redirects: []
                            do_fork: T
                          )
                          (command.Simple
                            blame_tok: <awk>
                            more_env: []
                            words: [{<awk>} {(SQ <'$3=="network" {print $6}'>)}]
                            redirects: []
                            do_fork: T
                          )
                        ]
                        ops: [<Id.Op_Pipe _>]
                      )
                    right: <Id.Eof_RParen _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [
                {<export>}
                {<Id.Lit_VarLike 'CONTEXT='> (DQ <openstack-> (${ Id.VSub_Name STACK_NAME))}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'KUBE_BEARER_TOKEN='> (DQ <TokenKubelet>)}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name ENABLE_PROXY>
                                          var_name: ENABLE_PROXY
                                          suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty))
                                          right: <Id.Right_DollarBrace '}'>
                                        )
                                      )
                                    }
                                  right: {(DQ <true>)}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(SQ <'export NO_PROXY=$NO_PROXY,'>) (DQ (${ Id.VSub_Name KUBE_MASTER_IP))}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/tmp/kube-proxy-env'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(SQ <'export no_proxy=$NO_PROXY,'>) (DQ (${ Id.VSub_Name KUBE_MASTER_IP))}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/tmp/kube-proxy-env'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <.>
                      more_env: []
                      words: [{<.>} {<'/tmp/kube-proxy-env'>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1690 1710]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <create-kubeconfig>
              more_env: []
              words: [{<create-kubeconfig>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <kube-down>
      name: kube-down
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <source>
              more_env: []
              words: [{<source>} {(DQ (${ Id.VSub_Name ROOT) <'/openrc-default.sh'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <openstack>
              more_env: []
              words: [{<openstack>} {<stack>} {<delete>} {(${ Id.VSub_Name STACK_NAME)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <prepare-e2e>
      name: prepare-e2e
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'TODO: prepare-e2e'>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <test-build-release>
      name: test-build-release
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'test-build-release() '>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <detect-master>
      name: detect-master
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <source>
              more_env: []
              words: [
                {<source>}
                {
                  (DQ (${ Id.VSub_Name ROOT) <'/'> 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name KUBE_CONFIG_FILE>
                      var_name: KUBE_CONFIG_FILE
                      suffix_op: 
                        (suffix_op.Unary
                          op: <Id.VTest_ColonHyphen _>
                          arg_word: {(DQ <config-default.sh>)}
                        )
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <source>
              more_env: []
              words: [{<source>} {(DQ (${ Id.VSub_Name ROOT) <'/openrc-default.sh'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [
                {<export>}
                {<Id.Lit_VarLike 'KUBE_MASTER_IP='> 
                  (CommandSub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (command.Pipeline
                        children: [
                          (command.Simple
                            blame_tok: <nova>
                            more_env: []
                            words: [{<nova>} {<show>} {(DQ (${ Id.VSub_Name STACK_NAME)) <-master>}]
                            redirects: []
                            do_fork: T
                          )
                          (command.Simple
                            blame_tok: <awk>
                            more_env: []
                            words: [{<awk>} {(SQ <'$3=="network" {print $6}'>)}]
                            redirects: []
                            do_fork: T
                          )
                        ]
                        ops: [<Id.Op_Pipe _>]
                      )
                    right: <Id.Eof_RParen _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'KUBE_MASTER_IP: '> (${ Id.VSub_Name KUBE_MASTER_IP))}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
  ]
)