(CommandList children: [ (C {(source)} {(./virtualbox_env.sh)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(BoolUnary op_id:BoolUnary_f child:{(./vbox_override.sh)})) terminator: <Op_Semi ";"> ) ] action: [(C {(source)} {(./vbox_override.sh)})] spids: [-1 29] ) ] spids: [-1 36] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalOr left: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$OSTYPE"))} right: {(msys)} ) right: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$OSTYPE"))} right: {(cygwin)} ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:WIN) op:Equal rhs:{(TRUE)} spids:[67])] spids: [67] ) ] spids: [-1 64] ) ] spids: [-1 70] ) (C {(set)} {(-x)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(BoolUnary op_id:BoolUnary_f child:{(./proxy_setup.sh)})) terminator: <Op_Semi ";"> ) ] action: [(C {(.)} {(./proxy_setup.sh)})] spids: [-1 89] ) ] spids: [-1 96] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Name "$CURL"))})) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(DQ ("CURL is not defined"))}) (C {(exit)})] spids: [-1 111] ) ] spids: [-1 123] ) (C {(export)} {(Lit_VarLike "BOOTSTRAP_APT_MIRROR=") (BracedVarSub token: <VSub_Name BOOTSTRAP_APT_MIRROR> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{}) spids: [135 138] ) } ) (C {(export)} {(Lit_VarLike "BOOTSTRAP_VM_MEM=") (BracedVarSub token: <VSub_Name BOOTSTRAP_VM_MEM> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(2048)}) spids: [143 147] ) } ) (C {(export)} {(Lit_VarLike "BOOTSTRAP_VM_CPUS=") (BracedVarSub token: <VSub_Name BOOTSTRAP_VM_CPUS> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(1)}) spids: [152 156] ) } ) (C {(export)} {(Lit_VarLike "BOOTSTRAP_VM_DRIVE_SIZE=") (BracedVarSub token: <VSub_Name BOOTSTRAP_VM_DRIVE_SIZE> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(20480)}) spids: [161 165] ) } ) (C {(export)} {(Lit_VarLike "CLUSTER_VM_MEM=") (BracedVarSub token: <VSub_Name CLUSTER_VM_MEM> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(2560)}) spids: [170 174] ) } ) (C {(export)} {(Lit_VarLike "CLUSTER_VM_CPUS=") (BracedVarSub token: <VSub_Name CLUSTER_VM_CPUS> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(2)}) spids: [179 183] ) } ) (C {(export)} {(Lit_VarLike "CLUSTER_VM_DRIVE_SIZE=") (BracedVarSub token: <VSub_Name CLUSTER_VM_DRIVE_SIZE> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(20480)}) spids: [188 192] ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BASE_DIR) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(dirname)} { (BracedVarSub token: <VSub_Name BASH_SOURCE> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [199 204] ) } ) ] ) left_token: <Left_Backtick "`"> spids: [196 205] ) } spids: [195] ) ] spids: [195] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VBOX_DIR) op: Equal rhs: {(DQ ($ VSub_Name "$BASE_DIR") (/vbox))} spids: [207] ) ] spids: [207] ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:P) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Sentence child: (C {(cd)} {($ VSub_Name "$VBOX_DIR")}) terminator: <Op_Semi ";"> ) (C {(/bin/pwd)}) ] ) left_token: <Left_CommandSub "$("> spids: [215 223] ) ) } spids: [213] ) ] spids: [213] ) (C {(exit)}) ] op_id: Op_DPipe ) (FuncDef name: vbm_import body: (BraceGroup children: [ (Assignment keyword: Assign_Local flags: ["'-r'"] pairs: [ (assign_pair lhs: (LhsName name:image_name) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [245] ) ] spids: [241] ) (Assignment keyword: Assign_Local flags: ["'-r'"] pairs: [ (assign_pair lhs: (LhsName name:vm_name) op: Equal rhs: {(DQ ($ VSub_Number "$2"))} spids: [255] ) ] spids: [251] ) (C {(shift)} {(2)}) (C {(DQ ($ VSub_Name "$VBM"))} {(import)} {(DQ ($ VSub_Name "$image_name"))} {(--vsys)} {(0)} {(--vmname)} {(DQ ($ VSub_Name "$vm_name"))} {(DQ ($ VSub_At "$@"))} ) ] spids: [238] ) spids: [234 237] ) (FuncDef name: download_VM_files body: (BraceGroup children: [ (C {(pushd)} {($ VSub_Name "$P")}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ROM) op: Equal rhs: {(gpxe-1.0.1-80861004.rom)} spids: [319] ) ] spids: [319] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CACHEDIR) op: Equal rhs: {(TildeSubPart prefix:"") (/bcpc-cache)} spids: [323] ) ] spids: [323] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id:BoolUnary_f child:{($ VSub_Name "$ROM")}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_f child: {($ VSub_Name "$CACHEDIR") (/) ($ VSub_Name "$ROM")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(cp)} {($ VSub_Name "$CACHEDIR") (/) ($ VSub_Name "$ROM")} {(.)}) ] spids: [-1 358] ) ] else_action: [ (C {($ VSub_Name "$CURL")} {(-o)} {(gpxe-1.0.1-80861004.rom)} { (DQ ( "http://rom-o-matic.net/gpxe/gpxe-1.0.1/contrib/rom-o-matic/build.php" ) ) } {(-H)} {(DQ ("Origin: http://rom-o-matic.net"))} {(-H)} {(DQ ("Host: rom-o-matic.net"))} {(-H)} {(DQ ("Content-Type: application/x-www-form-urlencoded"))} {(-H)} {(DQ ("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"))} {(-H)} { (DQ ( "Referer: http://rom-o-matic.net/gpxe/gpxe-1.0.1/contrib/rom-o-matic/build.php" ) ) } {(-H)} {(DQ ("Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3"))} {(--data)} { (DQ ( "version=1.0.1&use_flags=1&ofmt=ROM+binary+%28flashable%29+image+%28.rom%29&nic=all-drivers&pci_vendor_code=8086&pci_device_code=1004&PRODUCT_NAME=&PRODUCT_SHORT_NAME=gPXE&CONSOLE_PCBIOS=on&BANNER_TIMEOUT=20&NET_PROTO_IPV4=on&COMCONSOLE=0x3F8&COMSPEED=115200&COMDATA=8&COMPARITY=0&COMSTOP=1&DOWNLOAD_PROTO_TFTP=on&DNS_RESOLVER=on&NMB_RESOLVER=off&IMAGE_ELF=on&IMAGE_NBI=on&IMAGE_MULTIBOOT=on&IMAGE_PXE=on&IMAGE_SCRIPT=on&IMAGE_BZIMAGE=on&IMAGE_COMBOOT=on&AUTOBOOT_CMD=on&NVO_CMD=on&CONFIG_CMD=on&IFMGMT_CMD=on&IWMGMT_CMD=on&ROUTE_CMD=on&IMAGE_CMD=on&DHCP_CMD=on&SANBOOT_CMD=on&LOGIN_CMD=on&embedded_script=&A=Get+Image" ) ) } ) ] spids: [370 428] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalAnd left: (BoolUnary op_id: BoolUnary_d child: {($ VSub_Name "$CACHEDIR")} ) right: (LogicalNot child: (BoolUnary op_id: BoolUnary_f child: {($ VSub_Name "$CACHEDIR") (/) ($ VSub_Name "$ROM")} ) ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(cp)} {($ VSub_Name "$ROM")} {($ VSub_Name "$CACHEDIR") (/) ($ VSub_Name "$ROM")} ) ] spids: [-1 452] ) ] spids: [-1 464] ) ] spids: [-1 342] ) ] spids: [-1 467] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ISO) op: Equal rhs: {(ubuntu-14.04-mini.iso)} spids: [471] ) ] spids: [471] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id:BoolUnary_f child:{($ VSub_Name "$ISO")}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_f child: {($ VSub_Name "$CACHEDIR") (/) ($ VSub_Name "$ISO")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(cp)} {($ VSub_Name "$CACHEDIR") (/) ($ VSub_Name "$ISO")} {(.)}) ] spids: [-1 509] ) ] else_action: [ (C {($ VSub_Name "$CURL")} {(-o)} {($ VSub_Name "$ISO")} {(http) (Lit_Other ":") ( //archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-amd64/current/images/netboot/mini.iso ) } ) ] spids: [521 539] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalAnd left: (BoolUnary op_id: BoolUnary_d child: {($ VSub_Name "$CACHEDIR")} ) right: (LogicalNot child: (BoolUnary op_id: BoolUnary_f child: {($ VSub_Name "$CACHEDIR") (/) ($ VSub_Name "$ISO")} ) ) ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(cp)} {($ VSub_Name "$ISO")} {($ VSub_Name "$CACHEDIR")})] spids: [-1 563] ) ] spids: [-1 573] ) ] spids: [-1 493] ) ] spids: [-1 576] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BOX) op: Equal rhs: {(SQ <trusty-server-cloudimg-amd64-vagrant-disk1.box>)} spids: [580] ) ] spids: [580] ) (If arms: [ (if_arm cond: [ (Sentence child: (SimpleCommand words: [{(hash)} {(vagrant)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [597] ) ] ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("Vagrant detected - downloading Vagrant box for bcpc-bootstrap VM"))} ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id:BoolUnary_f child:{($ VSub_Name "$BOX")}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_f child: {($ VSub_Name "$CACHEDIR") (/) ($ VSub_Name "$BOX")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(cp)} {($ VSub_Name "$CACHEDIR") (/) ($ VSub_Name "$BOX")} {(.)}) ] spids: [-1 642] ) ] else_action: [ (C {($ VSub_Name "$CURL")} {(-o)} {($ VSub_Name "$BOX")} {(http) (Lit_Other ":") (//cloud-images.ubuntu.com/vagrant/trusty/current/) ($ VSub_Name "$BOX") } ) ] spids: [654 669] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalAnd left: (BoolUnary op_id: BoolUnary_d child: {($ VSub_Name "$CACHEDIR")} ) right: (LogicalNot child: (BoolUnary op_id: BoolUnary_f child: {($ VSub_Name "$CACHEDIR") (/) ($ VSub_Name "$BOX") } ) ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(cp)} {($ VSub_Name "$BOX")} {($ VSub_Name "$CACHEDIR")}) ] spids: [-1 693] ) ] spids: [-1 703] ) ] spids: [-1 626] ) ] spids: [-1 706] ) ] spids: [-1 603] ) ] spids: [-1 709] ) (C {(popd)}) ] spids: [310] ) spids: [306 309] ) (FuncDef name: remove_DHCPservers body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:network_name) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{}) spids: [749 752] ) } spids: [748] ) ] spids: [746] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Name "$network_name"))}) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:vms) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {($ VSub_Name "$VBM")} {(list)} {(vms)}) (C {(sed)} {(SQ <"s/^.*{\\([0-9a-f-]*\\)}/\\1/">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [778 790] ) } spids: [777] ) ] spids: [775] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:vm_networks) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (ForEach iter_name: vm iter_words: [{($ VSub_Name "$vms")}] do_arg_iter: False body: (DoGroup children: [ (Sentence child: (Pipeline children: [ (C {($ VSub_Name "$VBM")} {(showvminfo)} {(--details)} {(--machinereadable)} {($ VSub_Name "$vm")} ) (C {(grep)} {(-i)} {(SQ <"^hostonlyadapter[2-9]=">)} ) (C {(sed)} {(-e)} {(SQ <"s/^.*=//">)} {(-e)} {(SQ <"s/\"//g">)} ) ] negated: False ) terminator: <Op_Semi ";"> ) ] spids: [810 857] ) spids: [806 808] ) (C {(sort)} {(-u)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [800 864] ) } spids: [799] ) ] spids: [797] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:existing_nets_reg_ex) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(sed)} {(-e)} {(SQ <"s/^/^/">)} {(-e)} {(SQ <"/$/$/">)} {(-e)} {(SQ <"s/ /$|^/g">)} ] redirects: [ (Redir op_id: Redir_TLess fd: -1 arg_word: {(DQ ($ VSub_Name "$vm_networks"))} spids: [899] ) ] ) ] ) left_token: <Left_CommandSub "$("> spids: [878 904] ) } spids: [877] ) ] spids: [875] ) (Pipeline children: [ (C {($ VSub_Name "$VBM")} {(list)} {(dhcpservers)}) (C {(grep)} {(-E)} { (DQ ("^NetworkName:") (EscapedLiteralPart token:<Lit_EscapedChar "\\s">) ("+HostInterfaceNetworking") ) } ) (C {(awk)} {(SQ <"{print $2}">)}) (While cond: [ (Sentence child: (C {(read)} {(-r)} {(network_name)}) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (AndOr children: [ (DBracket expr: (BoolUnary op_id: BoolUnary_n child: {($ VSub_Name "$existing_nets_reg_ex")} ) ) (AndOr children: [ (Pipeline children: [ (SimpleCommand words: [ {(egrep)} {(-q)} {($ VSub_Name "$existing_nets_reg_ex")} ] redirects: [ (Redir op_id: Redir_TLess fd: -1 arg_word: {($ VSub_Name "$network_name")} spids: [967] ) ] ) ] negated: True ) (ControlFlow token: <ControlFlow_Continue continue> ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (C {(remove_DHCPservers)} {($ VSub_Name "$network_name")}) ] spids: [946 981] ) ) ] negated: False ) ] spids: [-1 768] ) ] else_action: [ (AndOr children: [ (C {($ VSub_Name "$VBM")} {(dhcpserver)} {(remove)} {(--netname)} {(DQ ($ VSub_Name "$network_name"))} ) (AndOr children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:return) op: Equal rhs: {(0)} spids: [1003] ) ] spids: [1001] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:return) op: Equal rhs: {($ VSub_QMark "$?")} spids: [1010] ) ] spids: [1008] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) (ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_Name "$return")} ) ] spids: [984 1019] ) ] spids: [743] ) spids: [739 742] ) (FuncDef name: create_bootstrap_VM body: (BraceGroup children: [ (C {(pushd)} {($ VSub_Name "$P")}) (C {(remove_DHCPservers)}) (If arms: [ (if_arm cond: [ (Sentence child: (SimpleCommand words: [{(hash)} {(vagrant)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [1059] ) ] ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("Vagrant detected - using Vagrant to initialize bcpc-bootstrap VM"))} ) (C {(cp)} {(../Vagrantfile)} {(.)}) (C {(vagrant)} {(up)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:keyfile) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(vagrant)} {(ssh-config)} {(bootstrap)}) (C {(awk)} { (SQ < "/Host bootstrap/,/^$/{ if ($0 ~ /^ +IdentityFile/) print $2}" > ) } ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1089 1103] ) ) } spids: [1087] ) ] spids: [1087] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_f child: {(DQ ($ VSub_Name "$keyfile"))} ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(cp)} {(DQ ($ VSub_Name "$keyfile"))} {(insecure_private_key)})] spids: [-1 1120] ) ] spids: [-1 1132] ) ] spids: [-1 1065] ) ] else_action: [ (C {(echo)} {(DQ ("Vagrant not detected - using raw VirtualBox for bcpc-bootstrap"))}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Name "$WIN"))}) ) terminator: <Op_Semi ";"> ) ] action: [ (ForEach iter_name: i iter_words: [{(0)} {(1)} {(2)} {(3)} {(4)} {(5)} {(6)} {(7)} {(8)} {(9)}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id: BoolUnary_z child: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {($ VSub_Name "$VBM")} {(list)} {(hostonlyifs)} ) (C {(grep)} {(vboxnet) ($ VSub_Name "$i") } ) (C {(cut)} {(-f2)} {(-d) (DQ (" "))} ) ] negated: False ) ] ) left_token: <Left_Backtick "`"> spids: [1203 1227] ) } ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (AndOr children: [ (C {($ VSub_Name "$VBM")} {(hostonlyif)} {(remove)} {(vboxnet) ($ VSub_Name "$i")} ) (C {(true)}) ] op_id: Op_DPipe ) ] spids: [-1 1232] ) ] spids: [-1 1249] ) ] spids: [1192 1252] ) spids: [1170 1190] ) ] spids: [-1 1158] ) ] else_action: [ (ForEach iter_name: i iter_words: [{(10)} {(9)} {(8)} {(7)} {(6)} {(5)} {(4)} {(3)} {(2)} {(1)}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id:BoolBinary_gt left:{(i)} right:{(1)}) ) terminator: <Op_Semi ";"> ) ] action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IF) op: Equal rhs: { (DQ ("VirtualBox Host-Only Ethernet Adapter #") ($ VSub_Name "$i") ) } spids: [1317] ) ] spids: [1317] ) terminator: <Op_Semi ";"> ) ] spids: [-1 1314] ) ] else_action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IF) op: Equal rhs: {(DQ ("VirtualBox Host-Only Ethernet Adapter"))} spids: [1328] ) ] spids: [1328] ) terminator: <Op_Semi ";"> ) ] spids: [1325 1335] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id: BoolUnary_z child: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {($ VSub_Name "$VBM")} {(list)} {(hostonlyifs)} ) (C {(grep)} {(DQ ($ VSub_Name "$IF"))}) ] negated: False ) ] ) left_token: <Left_Backtick "`"> spids: [1346 1360] ) } ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {($ VSub_Name "$VBM")} {(hostonlyif)} {(remove)} {(DQ ($ VSub_Name "$IF"))} ) ] spids: [-1 1365] ) ] spids: [-1 1379] ) ] spids: [1298 1382] ) spids: [1276 1296] ) ] spids: [1256 1385] ) (C {($ VSub_Name "$VBM")} {(hostonlyif)} {(create)}) (C {($ VSub_Name "$VBM")} {(hostonlyif)} {(create)}) (C {($ VSub_Name "$VBM")} {(hostonlyif)} {(create)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Name "$WIN"))}) ) terminator: <Op_Semi ";"> ) ] action: [ (AndOr children: [(C {(remove_DHCPservers)} {(vboxnet0)}) (C {(true)})] op_id: Op_DPipe ) (AndOr children: [(C {(remove_DHCPservers)} {(vboxnet1)}) (C {(true)})] op_id: Op_DPipe ) (AndOr children: [(C {(remove_DHCPservers)} {(vboxnet2)}) (C {(true)})] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VBN0) op: Equal rhs: {(vboxnet0)} spids: [1468] ) ] spids: [1468] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VBN1) op: Equal rhs: {(vboxnet1)} spids: [1472] ) ] spids: [1472] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VBN2) op: Equal rhs: {(vboxnet2)} spids: [1476] ) ] spids: [1476] ) ] spids: [-1 1426] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VBN0) op: Equal rhs: {(DQ ("VirtualBox Host-Only Ethernet Adapter"))} spids: [1487] ) ] spids: [1487] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VBN1) op: Equal rhs: {(DQ ("VirtualBox Host-Only Ethernet Adapter #2"))} spids: [1493] ) ] spids: [1493] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VBN2) op: Equal rhs: {(DQ ("VirtualBox Host-Only Ethernet Adapter #3"))} spids: [1499] ) ] spids: [1499] ) ] spids: [1480 1505] ) (C {($ VSub_Name "$VBM")} {(hostonlyif)} {(ipconfig)} {(DQ ($ VSub_Name "$VBN0"))} {(--ip)} {(10.0.100.2)} {(--netmask)} {(255.255.255.0)} ) (C {($ VSub_Name "$VBM")} {(hostonlyif)} {(ipconfig)} {(DQ ($ VSub_Name "$VBN1"))} {(--ip)} {(172.16.100.2)} {(--netmask)} {(255.255.255.0)} ) (C {($ VSub_Name "$VBM")} {(hostonlyif)} {(ipconfig)} {(DQ ($ VSub_Name "$VBN2"))} {(--ip)} {(192.168.100.2)} {(--netmask)} {(255.255.255.0)} ) (ForEach iter_name: vm iter_words: [{(bcpc-bootstrap)}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {($ VSub_Name "$VBM")} {(list)} {(vms)}) (C {(grep)} { (DQ ("^") (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) (${ VSub_Name vm) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ) } ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ARCHIVED_BOOTSTRAP) op: Equal rhs: { ( ../images/build/virtualbox/bcpc-bootstrap/packer-bcpc-bootstrap_ubuntu-14.04.2-amd64.ova ) } spids: [1632] ) ] spids: [1632] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalAnd left: (BoolUnary op_id: BoolUnary_n child: {(DQ ($ VSub_Name "$ARCHIVED_BOOTSTRAP"))} ) right: (BoolUnary op_id: BoolUnary_f child: {(DQ ($ VSub_Name "$ARCHIVED_BOOTSTRAP"))} ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(vbm_import)} {(DQ ($ VSub_Name "$ARCHIVED_BOOTSTRAP"))} {(bcpc-bootstrap)} ) ] spids: [-1 1658] ) ] else_action: [ (C {(exit)}) (C {($ VSub_Name "$VBM")} {(createvm)} {(--name)} {($ VSub_Name "$vm")} {(--ostype)} {(Ubuntu_64)} {(--basefolder)} {($ VSub_Name "$P")} {(--register)} ) (C {($ VSub_Name "$VBM")} {(modifyvm)} {($ VSub_Name "$vm")} {(--memory)} {($ VSub_Name "$BOOTSTRAP_VM_MEM")} ) (C {($ VSub_Name "$VBM")} {(modifyvm)} {($ VSub_Name "$vm")} {(--cpus)} {($ VSub_Name "$BOOTSTRAP_VM_CPUS")} ) (C {($ VSub_Name "$VBM")} {(modifyvm)} {($ VSub_Name "$vm")} {(--vram)} {(16)} ) (C {($ VSub_Name "$VBM")} {(storagectl)} {($ VSub_Name "$vm")} {(--name)} {(DQ ("SATA Controller"))} {(--add)} {(sata)} ) (C {($ VSub_Name "$VBM")} {(storagectl)} {($ VSub_Name "$vm")} {(--name)} {(DQ ("IDE Controller"))} {(--add)} {(ide)} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:port) op: Equal rhs: {(0)} spids: [1765] ) ] spids: [1765] ) (ForEach iter_name: disk iter_words: [{(a)}] do_arg_iter: False body: (DoGroup children: [ (C {($ VSub_Name "$VBM")} {(createhd)} {(--filename)} {($ VSub_Name "$P") (/) ($ VSub_Name "$vm") (/) ($ VSub_Name "$vm") (-) ($ VSub_Name "$disk") (.vdi) } {(--size)} {($ VSub_Name "$BOOTSTRAP_VM_DRIVE_SIZE")} ) (C {($ VSub_Name "$VBM")} {(storageattach)} {($ VSub_Name "$vm")} {(--storagectl)} {(DQ ("SATA Controller"))} {(--device)} {(0)} {(--port)} {($ VSub_Name "$port")} {(--type)} {(hdd)} {(--medium)} {($ VSub_Name "$P") (/) ($ VSub_Name "$vm") (/) ($ VSub_Name "$vm") (-) ($ VSub_Name "$disk") (.vdi) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:port) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:port) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1838 1843] ) } spids: [1837] ) ] spids: [1837] ) ] spids: [1778 1846] ) spids: [1774 1776] ) (C {($ VSub_Name "$VBM")} {(storageattach)} {($ VSub_Name "$vm")} {(--storagectl)} {(DQ ("IDE Controller"))} {(--device)} {(0)} {(--port)} {(0)} {(--type)} {(dvddrive)} {(--medium)} {($ VSub_Name "$ISO")} ) (C {($ VSub_Name "$VBM")} {(modifyvm)} {($ VSub_Name "$vm")} {(--boot1)} {(disk)} ) ] spids: [1670 1893] ) (C {($ VSub_Name "$VBM")} {(modifyvm)} {($ VSub_Name "$vm")} {(--nic1)} {(nat)} ) (C {($ VSub_Name "$VBM")} {(modifyvm)} {($ VSub_Name "$vm")} {(--nic2)} {(hostonly)} {(--hostonlyadapter2)} {(DQ ($ VSub_Name "$VBN0"))} ) (C {($ VSub_Name "$VBM")} {(modifyvm)} {($ VSub_Name "$vm")} {(--nic3)} {(hostonly)} {(--hostonlyadapter3)} {(DQ ($ VSub_Name "$VBN1"))} ) (C {($ VSub_Name "$VBM")} {(modifyvm)} {($ VSub_Name "$vm")} {(--nic4)} {(hostonly)} {(--hostonlyadapter4)} {(DQ ($ VSub_Name "$VBN2"))} ) ] spids: [-1 1612] ) ] spids: [-1 1962] ) ] spids: [1580 1965] ) spids: [1576 1578] ) ] spids: [1135 1968] ) (C {(popd)}) ] spids: [1040] ) spids: [1036 1039] ) (FuncDef name: create_cluster_VMs body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:oifs) op: Equal rhs: {(DQ ($ VSub_Name "$IFS"))} spids: [1996] ) ] spids: [1996] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(SQ <Lit_EscapedChar "\\n">)} spids: [2002] ) ] spids: [2002] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:bootstrap_interfaces) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {($ VSub_Name "$VBM")} {(showvminfo)} {(bcpc-bootstrap)} {(--machinereadable)} ) (C {(egrep)} {(SQ <"^hostonlyadapter[0-9]=">)}) (C {(sort)}) (C {(sed)} {(-e)} {(SQ <"s/.*=//">)} {(-e)} {(SQ <"s/\"//g">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [2010 2041] ) } ] ) } spids: [2008] ) ] spids: [2008] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(DQ ($ VSub_Name "$oifs"))} spids: [2045] ) ] spids: [2045] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VBN0) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name bootstrap_interfaces> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [2053 2058] ) ) } spids: [2051] ) ] spids: [2051] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VBN1) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name bootstrap_interfaces> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [2064 2069] ) ) } spids: [2062] ) ] spids: [2062] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VBN2) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name bootstrap_interfaces> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 2)})) spids: [2075 2080] ) ) } spids: [2073] ) ] spids: [2073] ) (ForEach iter_name: vm iter_words: [{(bcpc-vm1)} {(bcpc-vm2)} {(bcpc-vm3)}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {($ VSub_Name "$VBM")} {(list)} {(vms)}) (C {(grep)} { (DQ ("^") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (${ VSub_Name vm) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ) } ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (C {($ VSub_Name "$VBM")} {(createvm)} {(--name)} {($ VSub_Name "$vm")} {(--ostype)} {(Ubuntu_64)} {(--basefolder)} {($ VSub_Name "$P")} {(--register)} ) (C {($ VSub_Name "$VBM")} {(modifyvm)} {($ VSub_Name "$vm")} {(--memory)} {($ VSub_Name "$CLUSTER_VM_MEM")} ) (C {($ VSub_Name "$VBM")} {(modifyvm)} {($ VSub_Name "$vm")} {(--cpus)} {($ VSub_Name "$CLUSTER_VM_CPUS")} ) (C {($ VSub_Name "$VBM")} {(modifyvm)} {($ VSub_Name "$vm")} {(--vram)} {(16)}) (C {($ VSub_Name "$VBM")} {(storagectl)} {($ VSub_Name "$vm")} {(--name)} {(DQ ("SATA Controller"))} {(--add)} {(sata)} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:port) op: Equal rhs: {(0)} spids: [2210] ) ] spids: [2210] ) (ForEach iter_name: disk iter_words: [{(a)} {(b)} {(c)} {(d)} {(e)}] do_arg_iter: False body: (DoGroup children: [ (C {($ VSub_Name "$VBM")} {(createhd)} {(--filename)} {($ VSub_Name "$P") (/) ($ VSub_Name "$vm") (/) ($ VSub_Name "$vm") (-) ($ VSub_Name "$disk") (.vdi) } {(--size)} {($ VSub_Name "$CLUSTER_VM_DRIVE_SIZE")} ) (C {($ VSub_Name "$VBM")} {(storageattach)} {($ VSub_Name "$vm")} {(--storagectl)} {(DQ ("SATA Controller"))} {(--device)} {(0)} {(--port)} {($ VSub_Name "$port")} {(--type)} {(hdd)} {(--medium)} {($ VSub_Name "$P") (/) ($ VSub_Name "$vm") (/) ($ VSub_Name "$vm") (-) ($ VSub_Name "$disk") (.vdi)} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:port) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:port) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2291 2296] ) } spids: [2290] ) ] spids: [2290] ) ] spids: [2231 2299] ) spids: [2219 2229] ) (C {($ VSub_Name "$VBM")} {(modifyvm)} {($ VSub_Name "$vm")} {(--nic1)} {(hostonly)} {(--hostonlyadapter1)} {(DQ ($ VSub_Name "$VBN0"))} {(--nictype1)} {(82543GC)} ) (C {($ VSub_Name "$VBM")} {(setextradata)} {($ VSub_Name "$vm")} {(VBoxInternal/Devices/pcbios/0/Config/LanBootRom)} {($ VSub_Name "$P") (/gpxe-1.0.1-80861004.rom)} ) (C {($ VSub_Name "$VBM")} {(modifyvm)} {($ VSub_Name "$vm")} {(--nic2)} {(hostonly)} {(--hostonlyadapter2)} {(DQ ($ VSub_Name "$VBN1"))} ) (C {($ VSub_Name "$VBM")} {(modifyvm)} {($ VSub_Name "$vm")} {(--nic3)} {(hostonly)} {(--hostonlyadapter3)} {(DQ ($ VSub_Name "$VBN2"))} ) (C {($ VSub_Name "$VBM")} {(modifyvm)} {($ VSub_Name "$vm")} {(--largepages)} {(on)} {(--vtxvpid)} {(on)} {(--hwvirtex)} {(on)} {(--nestedpaging)} {(on)} {(--ioapic)} {(off)} ) ] spids: [-1 2134] ) ] spids: [-1 2405] ) ] spids: [2102 2408] ) spids: [2094 2100] ) ] spids: [1989] ) spids: [1985 1988] ) (FuncDef name: install_cluster body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:environment) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(Test-Laptop)}) spids: [2420 2424] ) } spids: [2419] ) ] spids: [2419] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ip) op: Equal rhs: { (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(10.0.100.3)}) spids: [2427 2431] ) } spids: [2426] ) ] spids: [2426] ) (If arms: [ (if_arm cond: [ (Sentence child: (SimpleCommand words: [{(hash)} {(vagrant)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [2444] ) ] ) terminator: <Op_Semi ";"> ) ] action: [ (AndOr children: [ (C {(vagrant)} {(ssh)} {(-c)} { (DQ ( "test -f /etc/default/grub.ucf-dist && sudo mv /etc/default/grub.ucf-dist /etc/default/grub" ) ) } ) (C {(true)}) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-n)} {(DQ ($ VSub_Name "$http_proxy"))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(vagrant)} {(ssh)} {(-c)} { (DQ ( "grep -z '^Acquire::http::Proxy ' /etc/apt/apt.conf" ) ) } ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (C {(vagrant)} {(ssh)} {(-c)} { (DQ ("echo 'Acquire::http::Proxy ") (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) ($ VSub_Name "$http_proxy") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (";' | sudo tee -a /etc/apt/apt.conf") ) } ) ] spids: [-1 2519] ) ] spids: [-1 2537] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PROXY_INFO_SH) op: Equal rhs: {(DQ (/home/vagrant/proxy_info.sh))} spids: [2545] ) ] spids: [2545] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(vagrant)} {(ssh)} {(-c)} {(DQ ("test -f ") ($ VSub_Name "$PROXY_INFO_SH"))} ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (C {(vagrant)} {(ssh)} {(-c)} { (DQ ("echo -e 'export http_proxy=") ($ VSub_Name "$http_proxy") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ("export https_proxy=") ($ VSub_Name "$https_proxy") ("' | sudo tee -a ") ($ VSub_Name "$PROXY_INFO_SH") ) } ) ] spids: [-1 2567] ) ] spids: [-1 2587] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CURLRC) op: Equal rhs: {(DQ (/home/vagrant/.curlrc))} spids: [2590] ) ] spids: [2590] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(vagrant)} {(ssh)} {(-c)} {(DQ ("test -f ") ($ VSub_Name "$CURLRC"))} ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (C {(vagrant)} {(ssh)} {(-c)} { (DQ ("echo -e 'proxy = ") ($ VSub_Name "$http_proxy") ("' | sudo tee -a ") ($ VSub_Name "$CURLRC") ) } ) ] spids: [-1 2612] ) ] spids: [-1 2629] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GITCONFIG) op: Equal rhs: {(DQ (/home/vagrant/.gitconfig))} spids: [2632] ) ] spids: [2632] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(vagrant)} {(ssh)} {(-c)} {(DQ ("test -f ") ($ VSub_Name "$GITCONFIG"))} ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (C {(vagrant)} {(ssh)} {(-c)} { (DQ ("echo -e '[http]") (EscapedLiteralPart token: <Lit_EscapedChar "\\n"> ) ("proxy = ") ($ VSub_Name "$http_proxy") ("' | sudo tee -a ") ($ VSub_Name "$GITCONFIG") ) } ) ] spids: [-1 2654] ) ] spids: [-1 2673] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CUSTOM_BASE) op: Equal rhs: {(DQ (custom))} spids: [2685] ) ] spids: [2685] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CUSTOM_CA_DIR) op: Equal rhs: {(DQ (/usr/share/ca-certificates/) ($ VSub_Name "$CUSTOM_BASE"))} spids: [2691] ) ] spids: [2691] ) (ForEach iter_name: CERT iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(ls)} {(-1)} {($ VSub_Name "$BASE_DIR") (/cacerts)}) ] ) left_token: <Left_CommandSub "$("> spids: [2704 2711] ) } ] do_arg_iter: False body: (DoGroup children: [ (C {(vagrant)} {(ssh)} {(-c)} {(DQ ("sudo mkdir -p ") ($ VSub_Name "$CUSTOM_CA_DIR"))} ) (C {(vagrant)} {(ssh)} {(-c)} { (DQ ("if [[ ! -f ") ($ VSub_Name "$CUSTOM_CA_DIR") (/) ($ VSub_Name "$CERT") (" ]]; then sudo cp /chef-bcpc-host/cacerts/") ($ VSub_Name "$CERT") (" ") ($ VSub_Name "$CUSTOM_CA_DIR") (/) ($ VSub_Name "$CERT") ("; fi") ) } ) (C {(vagrant)} {(ssh)} {(-c)} { (DQ ("echo ") ($ VSub_Name "$CUSTOM_BASE") (/) ($ VSub_Name "$CERT") (" | sudo tee -a /etc/ca-certificates.conf") ) } ) ] spids: [2714 2765] ) spids: [2703 2712] ) (C {(vagrant)} {(ssh)} {(-c)} {(DQ ("sudo /usr/sbin/update-ca-certificates"))}) ] spids: [-1 2501] ) ] spids: [-1 2779] ) (C {(echo)} {(DQ ("Bootstrap complete - setting up Chef server"))}) (C {(echo)} {(DQ ("N.B. This may take approximately 30-45 minutes to complete."))}) (C {(./bootstrap_chef.sh)} {(--vagrant-remote)} {($ VSub_Name "$ip")} {($ VSub_Name "$environment")} ) (C {(./enroll_cobbler.sh)}) ] spids: [-1 2450] ) ] else_action: [(C {(./non_vagrant_boot.sh)})] spids: [2808 2814] ) ] spids: [2417] ) spids: [2413 2416] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (DQ (BracedVarSub token: <VSub_Name BASH_SOURCE> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [2827 2832] ) ) } right: {(DQ (${ VSub_Number 0))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(download_VM_files)}) (C {(create_bootstrap_VM)}) (C {(create_cluster_VMs)}) (C {(install_cluster)} {($ VSub_Star "$*")}) ] spids: [-1 2846] ) ] spids: [-1 2862] ) ] )