(CommandList
  children: [
    (C {(set)} {(-e)})
    (C {(.)} {($ VSub_Name "$REPO_ROOT") (/bootstrap/shared/shared_functions.sh)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:REQUIRED_VARS)
          op: Equal
          rhs: {(ArrayLiteralPart words:[{(BOOTSTRAP_CHEF_ENV)}{(REPO_ROOT)}])}
          spids: [17]
        )
      ]
      spids: [17]
    )
    (C {(check_for_envvars)} 
      {
        (BracedVarSub
          token: <VSub_Name REQUIRED_VARS>
          bracket_op: (WholeArray op_id:Lit_At)
          spids: [28 33]
        )
      }
    )
    (C {(cd)} {($ VSub_Name "$REPO_ROOT") (/bootstrap/vagrant_scripts)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KNIFE)
          op: Equal
          rhs: {(/opt/opscode/embedded/bin/knife)}
          spids: [42]
        )
      ]
      spids: [42]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DATA_BAG)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(vagrant)} {(ssh)} {(vm-bootstrap)} {(-c)} 
                        {
                          (DQ ($ VSub_Name "$KNIFE") (" data bag show configs ") 
                            ($ VSub_Name "$BOOTSTRAP_CHEF_ENV") (" -F yaml")
                          )
                        }
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [49 64]
              )
            }
          spids: [48]
        )
      ]
      spids: [48]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:MANAGEMENT_VIP)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(vagrant)} {(ssh)} {(vm-bootstrap)} {(-c)} 
                        {
                          (DQ ($ VSub_Name "$KNIFE") (" environment show ") 
                            ($ VSub_Name "$BOOTSTRAP_CHEF_ENV") (" -a override_attributes.bcpc.management.vip | tail -n +2 | awk '{ print ") 
                            (EscapedLiteralPart
                              token: <Lit_EscapedChar "\\$">
                            ) ("2 }'")
                          )
                        }
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [70 87]
              )
            }
          spids: [69]
        )
      ]
      spids: [69]
    )
    (FuncDef
      name: extract_value
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (C {(echo)} {(DQ ($ VSub_Name "$DATA_BAG"))})
                (C {(grep)} {(DQ ($ VSub_Number "$1") (":"))})
                (C {(awk)} {(SQ <"{ print $2 }">)})
                (C {(tr)} {(-d)} {(SQ <"\\r\\n">)})
              ]
              negated: False
            )
          ]
          spids: [100]
        )
      spids: [96 99]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ROOT_PASSWORD)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(extract_value)} {(SQ <cobbler-root-password>)})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [143 149]
              )
            }
          spids: [142]
        )
      ]
      spids: [142]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:MYSQL_ROOT_PASSWORD)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(extract_value)} {(SQ <mysql-root-password>)})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [152 158]
              )
            }
          spids: [151]
        )
      ]
      spids: [151]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:RABBITMQ_USER)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(extract_value)} {(SQ <rabbitmq-user>)})])
                left_token: <Left_CommandSub "$(">
                spids: [161 167]
              )
            }
          spids: [160]
        )
      ]
      spids: [160]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:RABBITMQ_PASSWORD)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(extract_value)} {(SQ <rabbitmq-password>)})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [170 176]
              )
            }
          spids: [169]
        )
      ]
      spids: [169]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:HAPROXY_USER)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(extract_value)} {(SQ <haproxy-stats-user>)})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [179 185]
              )
            }
          spids: [178]
        )
      ]
      spids: [178]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:HAPROXY_PASSWORD)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(extract_value)} {(SQ <haproxy-stats-password>)})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [188 194]
              )
            }
          spids: [187]
        )
      ]
      spids: [187]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KEYSTONE_ADMIN_USER)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(extract_value)} {(SQ <keystone-admin-user>)})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [197 203]
              )
            }
          spids: [196]
        )
      ]
      spids: [196]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KEYSTONE_ADMIN_PASSWORD)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(extract_value)} {(SQ <keystone-admin-password>)})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [206 212]
              )
            }
          spids: [205]
        )
      ]
      spids: [205]
    )
    (C {(echo)} {(DQ (------------------------------------------------------------))})
    (C {(echo)} {(DQ ("Everything looks like it's been installed successfully!"))})
    (C {(echo)})
    (C {(echo)} {(DQ ("Access the BCPC landing page at https://") ($ VSub_Name "$MANAGEMENT_VIP"))})
    (C {(echo)} {(DQ ("Use these users and passwords to access the different resources:"))})
    (C {(echo)})
    (C {(echo)} 
      {
        (DQ ("Horizon: ") ($ VSub_Name "$KEYSTONE_ADMIN_USER") (" / ") 
          ($ VSub_Name "$KEYSTONE_ADMIN_PASSWORD")
        )
      }
    )
    (C {(echo)} 
      {(DQ ("HAProxy: ") ($ VSub_Name "$HAPROXY_USER") (" / ") ($ VSub_Name "$HAPROXY_PASSWORD"))}
    )
    (C {(echo)} 
      {(DQ ("RabbitMQ: ") ($ VSub_Name "$RABBITMQ_USER") (" / ") ($ VSub_Name "$RABBITMQ_PASSWORD"))}
    )
    (C {(echo)})
    (C {(echo)} {(DQ ("Here are a few additional passwords:"))})
    (C {(echo)} {(DQ ("System root password: ") ($ VSub_Name "$ROOT_PASSWORD"))})
    (C {(echo)} {(DQ ("MySQL root password: ") ($ VSub_Name "$MYSQL_ROOT_PASSWORD"))})
    (C {(echo)})
    (C {(echo)} {(DQ ("Thanks for using BCPC!"))})
  ]
)