(CommandList
  children: [
    (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: [45 53]
              ) (/../../..)
            }
          spids: [44]
        )
      ]
      spids: [44]
    )
    (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/test/kubemark/common/util.sh))})
    (FuncDef
      name: run-gcloud-compute-with-retries
      body: 
        (BraceGroup
          children: [(C {(run-cmd-with-retries)} {(gcloud)} {(compute)} {(DQ ($ VSub_At '$@'))})]
          spids: [80]
        )
      spids: [76 79]
    )
    (FuncDef
      name: create-master-instance-with-resources
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:GCLOUD_COMMON_ARGS)
                  op: Equal
                  rhs: {(DQ ('--project ') (${ VSub_Name PROJECT) (' --zone ') (${ VSub_Name ZONE))}
                  spids: [103]
                )
              ]
              spids: [103]
            )
            (C {(run-gcloud-compute-with-retries)} {(disks)} {(create)} 
              {(DQ (${ VSub_Name MASTER_NAME) (-pd))} {(${ VSub_Name GCLOUD_COMMON_ARGS)} {(--type)} {(DQ (${ VSub_Name MASTER_DISK_TYPE))} {(--size)} 
              {(DQ (${ VSub_Name MASTER_DISK_SIZE))}
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name EVENT_PD>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(false)})
                                spids: [164 168]
                              )
                            )
                          } {(Lit_Other '=') (Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(run-gcloud-compute-with-retries)} {(disks)} {(create)} 
                      {(DQ (${ VSub_Name MASTER_NAME) (-event-pd))} {(${ VSub_Name GCLOUD_COMMON_ARGS)} {(--type)} {(DQ (${ VSub_Name MASTER_DISK_TYPE))} {(--size)} 
                      {(DQ (${ VSub_Name MASTER_DISK_SIZE))}
                    )
                  ]
                  spids: [16777215 181]
                )
              ]
              spids: [16777215 224]
            )
            (C {(run-gcloud-compute-with-retries)} {(addresses)} {(create)} 
              {(DQ (${ VSub_Name MASTER_NAME) (-ip))} {(--project)} {(DQ (${ VSub_Name PROJECT))} {(--region)} {(DQ (${ VSub_Name REGION))} {(-q)}
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:MASTER_IP)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(gcloud)} {(compute)} {(addresses)} {(describe)} 
                                {(DQ (${ VSub_Name MASTER_NAME) (-ip))} {(--project)} {(DQ (${ VSub_Name PROJECT))} {(--region)} {(DQ (${ VSub_Name REGION))} {(-q)} 
                                {(--format) (Lit_Other '=') (SQ <'value(address)'>)}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [268 309]
                      )
                    }
                  spids: [267]
                )
              ]
              spids: [267]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DEFAULT_GCI_PROJECT)
                  op: Equal
                  rhs: {(google-containers)}
                  spids: [317]
                )
              ]
              spids: [317]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(DQ (${ VSub_Name GCI_VERSION))}
                              right: {(DQ (cos)) (Lit_Other '*')}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DEFAULT_GCI_PROJECT)
                          op: Equal
                          rhs: {(cos-cloud)}
                          spids: [344]
                        )
                      ]
                      spids: [344]
                    )
                  ]
                  spids: [16777215 341]
                )
              ]
              spids: [16777215 348]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:MASTER_IMAGE_PROJECT)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name KUBE_GCE_MASTER_PROJECT>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: {(${ VSub_Name DEFAULT_GCI_PROJECT)}
                          )
                        spids: [352 358]
                      )
                    }
                  spids: [351]
                )
              ]
              spids: [351]
            )
            (C {(run-gcloud-compute-with-retries)} {(instances)} {(create)} 
              {(DQ (${ VSub_Name MASTER_NAME))} {(${ VSub_Name GCLOUD_COMMON_ARGS)} {(--address)} {(DQ (${ VSub_Name MASTER_IP))} {(--machine-type)} 
              {(DQ (${ VSub_Name MASTER_SIZE))} {(--image-project) (Lit_Other '=') (DQ (${ VSub_Name MASTER_IMAGE_PROJECT))} {(--image)} 
              {(DQ (${ VSub_Name MASTER_IMAGE))} {(--tags)} {(DQ (${ VSub_Name MASTER_TAG))} {(--subnet)} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name SUBNETWORK>
                    suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(${ VSub_Name NETWORK)})
                    spids: [435 441]
                  )
                )
              } {(--scopes)} {(DQ ('storage-ro,logging-write'))} {(--boot-disk-size)} 
              {(DQ (${ VSub_Name MASTER_ROOT_DISK_SIZE))} {(--disk)} 
              {
                (DQ ('name=') (${ VSub_Name MASTER_NAME) 
                  ('-pd,device-name=master-pd,mode=rw,boot=no,auto-delete=no')
                )
              }
            )
            (C {(run-gcloud-compute-with-retries)} {(instances)} {(add-metadata)} 
              {(DQ (${ VSub_Name MASTER_NAME))} {(${ VSub_Name GCLOUD_COMMON_ARGS)} {(--metadata-from-file)} 
              {(startup-script) (Lit_Other '=') 
                (DQ (${ VSub_Name KUBE_ROOT) (/test/kubemark/resources/start-kubemark-master.sh))
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name EVENT_PD>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(false)})
                                spids: [515 519]
                              )
                            )
                          } {(Lit_Other '=') (Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ('Attaching ') (${ VSub_Name MASTER_NAME) ('-event-pd to ') 
                          (${ VSub_Name MASTER_NAME)
                        )
                      }
                    )
                    (C {(run-gcloud-compute-with-retries)} {(instances)} {(attach-disk)} 
                      {(DQ (${ VSub_Name MASTER_NAME))} {(${ VSub_Name GCLOUD_COMMON_ARGS)} {(--disk)} {(DQ (${ VSub_Name MASTER_NAME) (-event-pd))} 
                      {(--device-name) (Lit_Other '=') (DQ (master-event-pd))}
                    )
                  ]
                  spids: [16777215 532]
                )
              ]
              spids: [16777215 587]
            )
            (C {(run-gcloud-compute-with-retries)} {(firewall-rules)} {(create)} 
              {(DQ (${ VSub_Name MASTER_NAME) (-https))} {(--project)} {(DQ (${ VSub_Name PROJECT))} {(--network)} {(DQ (${ VSub_Name NETWORK))} 
              {(--source-ranges)} {(DQ (0.0.0.0/0))} {(--target-tags)} {(DQ (${ VSub_Name MASTER_TAG))} {(--allow)} {(DQ ('tcp:443'))}
            )
          ]
          spids: [100]
        )
      spids: [96 99]
    )
    (FuncDef
      name: execute-cmd-on-master-with-retries
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [
                {(run-gcloud-compute-with-retries)}
                {(ssh)}
                {(DQ (${ VSub_Name MASTER_NAME))}
                {(--zone) (Lit_Other '=') (DQ (${ VSub_Name ZONE))}
                {(--project) (Lit_Other '=') (DQ (${ VSub_Name PROJECT))}
                {(--command) (Lit_Other '=') (DQ ($ VSub_Number '$1'))}
              ]
              more_env: [
                (env_pair
                  name: RETRIES
                  val: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Number 2>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(1)})
                          spids: [671 675]
                        )
                      )
                    }
                  spids: [669]
                )
              ]
            )
          ]
          spids: [666]
        )
      spids: [660 665]
    )
    (FuncDef
      name: copy-files
      body: 
        (BraceGroup
          children: [
            (C {(run-gcloud-compute-with-retries)} {(scp)} {(--recurse)} 
              {(--zone) (Lit_Other '=') (DQ (${ VSub_Name ZONE))} {(--project) (Lit_Other '=') (DQ (${ VSub_Name PROJECT))} {($ VSub_At '$@')}
            )
          ]
          spids: [719]
        )
      spids: [713 718]
    )
    (FuncDef
      name: delete-master-instance-and-resources
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:GCLOUD_COMMON_ARGS)
                  op: Equal
                  rhs: 
                    {
                      (DQ ('--project ') (${ VSub_Name PROJECT) (' --zone ') (${ VSub_Name ZONE) 
                        (' --quiet')
                      )
                    }
                  spids: [756]
                )
              ]
              spids: [756]
            )
            (AndOr
              children: [
                (C {(gcloud)} {(compute)} {(instances)} {(delete)} {(DQ (${ VSub_Name MASTER_NAME))} 
                  {(${ VSub_Name GCLOUD_COMMON_ARGS)}
                )
                (C {(true)})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (C {(gcloud)} {(compute)} {(disks)} {(delete)} {(DQ (${ VSub_Name MASTER_NAME) (-pd))} 
                  {(${ VSub_Name GCLOUD_COMMON_ARGS)}
                )
                (C {(true)})
              ]
              op_id: Op_DPipe
            )
            (Sentence
              child: 
                (C {(gcloud)} {(compute)} {(disks)} {(delete)} 
                  {(DQ (${ VSub_Name MASTER_NAME) (-event-pd))} {(${ VSub_Name GCLOUD_COMMON_ARGS)}
                )
              terminator: <Op_Amp '&'>
            )
            (AndOr
              children: [
                (SimpleCommand
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [848]
                    )
                  ]
                )
                (C {(true)})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (C {(gcloud)} {(compute)} {(addresses)} {(delete)} {(DQ (${ VSub_Name MASTER_NAME) (-ip))} 
                  {(--project)} {(DQ (${ VSub_Name PROJECT))} {(--region)} {(DQ (${ VSub_Name REGION))} {(--quiet)}
                )
                (C {(true)})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (C {(gcloud)} {(compute)} {(firewall-rules)} {(delete)} 
                  {(DQ (${ VSub_Name MASTER_NAME) (-https))} {(--project)} {(DQ (${ VSub_Name PROJECT))} {(--quiet)}
                )
                (C {(true)})
              ]
              op_id: Op_DPipe
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name SEPARATE_EVENT_MACHINE>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(false)})
                                spids: [946 950]
                              )
                            )
                          } {(Lit_Other '=') (Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (AndOr
                      children: [
                        (C {(gcloud)} {(compute)} {(instances)} {(delete)} 
                          {(DQ (${ VSub_Name EVENT_STORE_NAME))} {(${ VSub_Name GCLOUD_COMMON_ARGS)}
                        )
                        (C {(true)})
                      ]
                      op_id: Op_DPipe
                    )
                    (AndOr
                      children: [
                        (C {(gcloud)} {(compute)} {(disks)} {(delete)} 
                          {(DQ (${ VSub_Name EVENT_STORE_NAME) (-pd))} {(${ VSub_Name GCLOUD_COMMON_ARGS)}
                        )
                        (C {(true)})
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  spids: [16777215 963]
                )
              ]
              spids: [16777215 1019]
            )
          ]
          spids: [753]
        )
      spids: [749 752]
    )
  ]
)