(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:IP) op:Equal rhs:{(DQ ($ VSub_Number "$1"))} spids:[15])]
      spids: [15]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ENVIRONMENT)
          op: Equal
          rhs: {(DQ ($ VSub_Number "$2"))}
          spids: [20]
        )
      ]
      spids: [20]
    )
    (C {(echo)} {(DQ ("initial configuration of ") ($ VSub_Name "$IP"))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SCPCMD)
          op: Equal
          rhs: {(DQ ("./nodescp    ") ($ VSub_Name "$ENVIRONMENT") (" ") ($ VSub_Name "$IP"))}
          spids: [33]
        )
      ]
      spids: [33]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SSHCMD)
          op: Equal
          rhs: {(DQ ("./nodessh.sh ") ($ VSub_Name "$ENVIRONMENT") (" ") ($ VSub_Name "$IP"))}
          spids: [41]
        )
      ]
      spids: [41]
    )
    (C {(echo)} {(DQ ("Checking for Chef ..."))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:CHEF)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {($ VSub_Name "$SSHCMD")} {(DQ ("which chef-client || true"))})]
                  )
                left_token: <Left_Backtick "`">
                spids: [58 64]
              )
            }
          spids: [57]
        )
      ]
      spids: [57]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (DBracket expr:(BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Name "$CHEF"))}))
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} {(DQ ("copy files..."))})
            (C {($ VSub_Name "$SCPCMD")} {(zap-ceph-disks.sh)} {(/home/ubuntu)})
            (C {($ VSub_Name "$SCPCMD")} {(cookbooks/bcpc/files/default/bins/chef-client.deb)} 
              {(/home/ubuntu)}
            )
            (C {($ VSub_Name "$SCPCMD")} {(install-chef.sh)} {(/home/ubuntu)})
            (C {($ VSub_Name "$SCPCMD")} {(finish-worker.sh)} {(/home/ubuntu)})
            (C {($ VSub_Name "$SCPCMD")} {(finish-head.sh)} {(/home/ubuntu)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [
                                            (Sentence
                                              child: 
                                                (SimpleCommand
                                                  words: [{(source)} {(proxy_setup.sh)}]
                                                  redirects: [
                                                    (Redir
                                                      op_id: Redir_Great
                                                      fd: -1
                                                      arg_word: {(/dev/null)}
                                                      spids: [139]
                                                    )
                                                  ]
                                                )
                                              terminator: <Op_Semi ";">
                                            )
                                            (C {(echo)} {($ VSub_Name "$PROXY")})
                                          ]
                                        )
                                      left_token: <Left_CommandSub "$(">
                                      spids: [134 146]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:PROXY)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Sentence
                                        child: 
                                          (SimpleCommand
                                            words: [{(source)} {(proxy_setup.sh)}]
                                            redirects: [
                                              (Redir
                                                op_id: Redir_Great
                                                fd: -1
                                                arg_word: {(/dev/null)}
                                                spids: [161]
                                              )
                                            ]
                                          )
                                        terminator: <Op_Semi ";">
                                      )
                                      (C {(echo)} {($ VSub_Name "$PROXY")})
                                    ]
                                  )
                                left_token: <Left_CommandSub "$(">
                                spids: [156 168]
                              )
                            }
                          spids: [155]
                        )
                      ]
                      spids: [155]
                    )
                    (C {(echo)} {(DQ ("setting up .wgetrc's to ") ($ VSub_Name "$PROXY"))})
                    (C {($ VSub_Name "$SSHCMD")} 
                      {
                        (DQ ("echo ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                          ("http_proxy = http://") ($ VSub_Name "$PROXY") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" > .wgetrc")
                        )
                      }
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(DQ ($ VSub_Name "$APTPROXY"))}
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (SimpleCommand
                              words: [
                                {(echo)}
                                {
                                  (DQ ("Acquire::http::Proxy ") 
                                    (EscapedLiteralPart
                                      token: <Lit_EscapedChar "\\\"">
                                    ) ("http://") (${ VSub_Name APTPROXY) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (";")
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: -1
                                  arg_word: {(/tmp/apt.conf)}
                                  spids: [225]
                                )
                              ]
                            )
                            (C {($ VSub_Name "$SCPCMD")} {(/tmp/apt.conf)} {(/tmp)})
                            (C {($ VSub_Name "$SSHCMD")} {(DQ ("mv /tmp/apt.conf /etc/apt/apt.conf"))} 
                              {(sudo)}
                            )
                          ]
                          spids: [-1 209]
                        )
                      ]
                      spids: [-1 246]
                    )
                  ]
                  spids: [-1 152]
                )
              ]
              spids: [-1 249]
            )
            (C {(echo)} {(DQ ("setup chef"))})
            (C {($ VSub_Name "$SSHCMD")} {(DQ (/home/ubuntu/install-chef.sh))} {(sudo)})
          ]
          spids: [-1 80]
        )
      ]
      else_action: [(C {(echo)} {(DQ ("Chef is installed as ") ($ VSub_Name "$CHEF"))})]
      spids: [268 278]
    )
    (C {(echo)} {(DQ ("zap disks"))})
    (C {($ VSub_Name "$SSHCMD")} {(DQ (/home/ubuntu/zap-ceph-disks.sh))} {(sudo)})
    (C {(echo)} {(DQ ("temporarily adjust system time to avoid time skew related failures"))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GOODDATE)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(date)})])
                left_token: <Left_Backtick "`">
                spids: [303 305]
              )
            }
          spids: [302]
        )
      ]
      spids: [302]
    )
    (C {($ VSub_Name "$SSHCMD")} {(DQ ("date -s '") ($ VSub_Name "$GOODDATE") ("'"))} {(sudo)})
    (C {(echo)} {(DQ (done.))})
  ]
)