(List (Com {[LIT_CHARS source]} {[LIT_CHARS ./virtualbox_env.sh]}) (If (DBracket {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[DQ [VarSub OSTYPE]]} {[LIT_CHARS msys]}} {B2 BINARY_STRING_EQUAL {[DQ [VarSub OSTYPE]]} {[LIT_CHARS cygwin]}}}) (= scope= flags=0 words=[] bindings=[('WIN', {[LIT_CHARS TRUE]})]) ) (Com {[LIT_CHARS set]} {[LIT_CHARS -x]}) (If (DBracket {B1 UNARY_FILE_f {[LIT_CHARS ./proxy_setup.sh]}}) (Com {[LIT_CHARS .]} {[LIT_CHARS ./proxy_setup.sh]}) ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub CURL]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "CURL is not defined"]]}) (Com {[LIT_CHARS exit]}) ) ) (= scope= flags=1 words=[] bindings=[('BOOTSTRAP_VM_MEM', {[LIT_CHARS 1536]})]) (= scope= flags=1 words=[] bindings=[('BOOTSTRAP_VM_CPUs', {[LIT_CHARS 1]})]) (= scope= flags=0 words=[] bindings=[('CLUSTER_VM_MEM', {[LIT_CHARS 2560]})]) (= scope= flags=0 words=[] bindings=[('CLUSTER_VM_CPUs', {[LIT_CHARS 2]})]) (= scope= flags=0 words=[] bindings=[('CLUSTER_VM_DRIVE_SIZE', {[LIT_CHARS 20480]})]) (= scope= flags=0 words=[] bindings=[('VBOX_DIR', {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[VarSub BASH_SOURCE bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})]})][LIT_CHARS /vbox]]})]) (= scope= flags=0 words=[] bindings=[('P', {[ComSub (Com {[LIT_CHARS python]} {[LIT_CHARS -c]} {[DQ [LIT_CHARS "import os.path; print os.path.abspath("][\ LIT_ESCAPED_CHAR "\\\""][VarSub VBOX_DIR][LIT_CHARS /][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ")"]]})]})]) (FunctionDef download_VM_files [] (List (Com {[LIT_CHARS pushd]} {[VarSub P]}) (= scope= flags=0 words=[] bindings=[('ROM', {[LIT_CHARS gpxe-1.0.1-80861004.rom]})]) (= scope= flags=0 words=[] bindings=[('CACHEDIR', {[TildeSub ''] [LIT_CHARS /bcpc-cache]})]) (If (DBracket {B! {B1 UNARY_FILE_f {[VarSub ROM]}}}) (List (If (DBracket {B1 UNARY_FILE_f {[VarSub CACHEDIR] [LIT_CHARS /] [VarSub ROM]}}) (Com {[LIT_CHARS cp]} {[VarSub CACHEDIR] [LIT_CHARS /] [VarSub ROM]} {[LIT_CHARS .]}) (ElseTrue) (Com {[VarSub CURL]} {[LIT_CHARS -o]} {[LIT_CHARS gpxe-1.0.1-80861004.rom]} {[DQ [LIT_CHARS "http://rom-o-matic.net/gpxe/gpxe-1.0.1/contrib/rom-o-matic/build.php"]]} {[LIT_CHARS -H]} {[DQ [LIT_CHARS "Origin: http://rom-o-matic.net"]]} {[LIT_CHARS -H]} {[DQ [LIT_CHARS "Host: rom-o-matic.net"]]} {[LIT_CHARS -H]} {[DQ [LIT_CHARS "Content-Type: application/x-www-form-urlencoded"]]} {[LIT_CHARS -H]} {[DQ [LIT_CHARS "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"]]} {[LIT_CHARS -H]} {[DQ [LIT_CHARS "Referer: http://rom-o-matic.net/gpxe/gpxe-1.0.1/contrib/rom-o-matic/build.php"]]} {[LIT_CHARS -H]} {[DQ [LIT_CHARS "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3"]]} {[LIT_CHARS --data]} {[DQ [LIT_CHARS "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"]]}) ) (If (DBracket {B? LOGICAL_BINARY_AND {B1 UNARY_FILE_d {[VarSub CACHEDIR]}} {B! {B1 UNARY_FILE_f {[VarSub CACHEDIR] [LIT_CHARS /] [VarSub ROM]}}}}) (Com {[LIT_CHARS cp]} {[VarSub ROM]} {[VarSub CACHEDIR] [LIT_CHARS /] [VarSub ROM]}) ) ) ) (= scope= flags=0 words=[] bindings=[('ISO', {[LIT_CHARS ubuntu-12.04-mini.iso]})]) (If (DBracket {B! {B1 UNARY_FILE_f {[VarSub ISO]}}}) (List (If (DBracket {B1 UNARY_FILE_f {[VarSub CACHEDIR] [LIT_CHARS /] [VarSub ISO]}}) (Com {[LIT_CHARS cp]} {[VarSub CACHEDIR] [LIT_CHARS /] [VarSub ISO]} {[LIT_CHARS .]}) (ElseTrue) (Com {[VarSub CURL]} {[LIT_CHARS -o]} {[VarSub ISO]} {[LIT_CHARS http] [LIT_OTHER ":"] [LIT_CHARS //archive.ubuntu.com/ubuntu/dists/precise-updates/main/installer-amd64/current/images/raring-netboot/mini.iso]}) ) (If (DBracket {B? LOGICAL_BINARY_AND {B1 UNARY_FILE_d {[VarSub CACHEDIR]}} {B! {B1 UNARY_FILE_f {[VarSub CACHEDIR] [LIT_CHARS /] [VarSub ISO]}}}}) (Com {[LIT_CHARS cp]} {[VarSub ISO]} {[VarSub CACHEDIR]}) ) ) ) (= scope= flags=0 words=[] bindings=[('BOX', {[SQ ]})]) (If (Com {[LIT_CHARS hash]} {[LIT_CHARS vagrant]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Vagrant detected - downloading Vagrant box for bcpc-bootstrap VM"]]}) (If (DBracket {B! {B1 UNARY_FILE_f {[VarSub BOX]}}}) (List (If (DBracket {B1 UNARY_FILE_f {[VarSub CACHEDIR] [LIT_CHARS /] [VarSub BOX]}}) (Com {[LIT_CHARS cp]} {[VarSub CACHEDIR] [LIT_CHARS /] [VarSub BOX]} {[LIT_CHARS .]}) (ElseTrue) (Com {[VarSub CURL]} {[LIT_CHARS -o]} {[LIT_CHARS precise-server-cloudimg-amd64-vagrant-disk1.box]} {[LIT_CHARS http] [LIT_OTHER ":"] [LIT_CHARS //cloud-images.ubuntu.com/vagrant/precise/current/precise-server-cloudimg-amd64-vagrant-disk1.box]}) ) (If (DBracket {B? LOGICAL_BINARY_AND {B1 UNARY_FILE_d {[VarSub CACHEDIR]}} {B! {B1 UNARY_FILE_f {[VarSub CACHEDIR] [LIT_CHARS /] [VarSub BOX]}}}}) (Com {[LIT_CHARS cp]} {[VarSub BOX]} {[VarSub CACHEDIR]}) ) ) ) ) ) (Com {[LIT_CHARS popd]}) ) ) (FunctionDef remove_DHCPservers [] (List (= scope= flags=0 words=[] bindings=[('network_name', {[VarSub 1 test_op=VS_TEST_HYPHEN {}]})]) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub network_name]]}}) (List (= scope= flags=0 words=[] bindings=[('vms', {[ComSub (Pipeline (Com {[VarSub VBM]} {[LIT_CHARS list]} {[LIT_CHARS vms]}) (Com {[LIT_CHARS sed]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('vm_networks', {[ComSub (Pipeline (For vm [{[VarSub vms]}]) (Pipeline (Com {[VarSub VBM]} {[LIT_CHARS showvminfo]} {[LIT_CHARS --details]} {[LIT_CHARS --machinereadable]} {[VarSub vm]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -i]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]}) ) ) (Com {[LIT_CHARS sort]} {[LIT_CHARS -u]}) )]})]) (= scope= flags=0 words=[] bindings=[('existing_nets_reg_ex', {[ComSub (Com redirects=[(HereWordRedirectNode here_word={[DQ [VarSub vm_networks]]} 0)]{[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]})]})]) (Pipeline (Com {[VarSub VBM]} {[LIT_CHARS list]} {[LIT_CHARS dhcpservers]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -E]} {[DQ [LIT_CHARS "^NetworkName:"][\ LIT_ESCAPED_CHAR "\\s"][LIT_CHARS "+HostInterfaceNetworking"]]}) (Com {[LIT_CHARS sed]} {[SQ ]}) (While (Com {[LIT_CHARS read]} {[LIT_CHARS -r]} {[LIT_CHARS network_name]}) (List (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_n {[VarSub existing_nets_reg_ex]}}) (AndOr OP_AND_IF (Pipeline! (Com {[LIT_CHARS egrep]} {[LIT_CHARS -q]} {[VarSub existing_nets_reg_ex]} < (HereWordRedirectNode here_word={[VarSub network_name]} 0), > ) ) (Com {[LIT_CHARS continue]}) ) ) (Com {[LIT_CHARS remove_DHCPservers]} {[VarSub network_name]}) ) ) ) ) (ElseTrue) (List (AndOr OP_AND_IF (Com {[VarSub VBM]} {[LIT_CHARS dhcpserver]} {[LIT_CHARS remove]} {[LIT_CHARS --ifname]} {[DQ [VarSub network_name]]}) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('return', {[LIT_CHARS 0]})]) (= scope= flags=0 words=[] bindings=[('return', {[VarSub ?]})]) ) ) (Com {[LIT_CHARS return]} {[VarSub return]}) ) ) ) ) (FunctionDef create_bootstrap_VM [] (List (Com {[LIT_CHARS pushd]} {[VarSub P]}) (Com {[LIT_CHARS remove_DHCPservers]}) (If (Com {[LIT_CHARS hash]} {[LIT_CHARS vagrant]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Vagrant detected - using Vagrant to initialize bcpc-bootstrap VM"]]}) (Com {[LIT_CHARS cp]} {[LIT_CHARS ../Vagrantfile]} {[LIT_CHARS .]}) (If (DBracket {B! {B1 UNARY_FILE_f {[LIT_CHARS insecure_private_key]}}}) (List (Com {[LIT_CHARS vagrant]} {[LIT_CHARS status]}) (Com {[LIT_CHARS cp]} {[VarSub HOME] [LIT_CHARS /.vagrant.d/insecure_private_key]} {[LIT_CHARS .]}) ) ) (Com {[LIT_CHARS vagrant]} {[LIT_CHARS up]}) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Vagrant not detected - using raw VirtualBox for bcpc-bootstrap"]]}) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub WIN]]}}) (For i [{[LIT_CHARS 0]}, {[LIT_CHARS 1]}, {[LIT_CHARS 2]}, {[LIT_CHARS 3]}, {[LIT_CHARS 4]}, {[LIT_CHARS 5]}, {[LIT_CHARS 6]}, {[LIT_CHARS 7]}, {[LIT_CHARS 8]}, {[LIT_CHARS 9]}]) (If (DBracket {B! {B1 UNARY_STRING_z {[ComSub (Pipeline (Com {[VarSub VBM]} {[LIT_CHARS list]} {[LIT_CHARS hostonlyifs]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS vboxnet] [VarSub i]}) (Com {[LIT_CHARS cut]} {[LIT_CHARS -f2]} {[LIT_CHARS -d] [DQ [LIT_CHARS " "]]}) )]}}}) (AndOr OP_OR_IF (Com {[VarSub VBM]} {[LIT_CHARS hostonlyif]} {[LIT_CHARS remove]} {[LIT_CHARS vboxnet] [VarSub i]}) (Com {[LIT_CHARS true]}) ) ) ) (ElseTrue) (For i [{[LIT_CHARS 10]}, {[LIT_CHARS 9]}, {[LIT_CHARS 8]}, {[LIT_CHARS 7]}, {[LIT_CHARS 6]}, {[LIT_CHARS 5]}, {[LIT_CHARS 4]}, {[LIT_CHARS 3]}, {[LIT_CHARS 2]}, {[LIT_CHARS 1]}]) (List (If (DBracket {B2 BINARY_INT_GT {[LIT_CHARS i]} {[LIT_CHARS 1]}}) (= scope= flags=0 words=[] bindings=[('IF', {[DQ [LIT_CHARS "VirtualBox Host-Only Ethernet Adapter #"][VarSub i]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('IF', {[DQ [LIT_CHARS "VirtualBox Host-Only Ethernet Adapter"]]})]) ) (If (DBracket {B! {B1 UNARY_STRING_z {[ComSub (Pipeline (Com {[VarSub VBM]} {[LIT_CHARS list]} {[LIT_CHARS hostonlyifs]}) (Com {[LIT_CHARS grep]} {[DQ [VarSub IF]]}) )]}}}) (Com {[VarSub VBM]} {[LIT_CHARS hostonlyif]} {[LIT_CHARS remove]} {[DQ [VarSub IF]]}) ) ) ) ) (Com {[VarSub VBM]} {[LIT_CHARS hostonlyif]} {[LIT_CHARS create]}) (Com {[VarSub VBM]} {[LIT_CHARS hostonlyif]} {[LIT_CHARS create]}) (Com {[VarSub VBM]} {[LIT_CHARS hostonlyif]} {[LIT_CHARS create]}) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub WIN]]}}) (List (AndOr OP_OR_IF (Com {[LIT_CHARS remove_DHCPservers]} {[LIT_CHARS vboxnet0]}) (Com {[LIT_CHARS true]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS remove_DHCPservers]} {[LIT_CHARS vboxnet1]}) (Com {[LIT_CHARS true]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS remove_DHCPservers]} {[LIT_CHARS vboxnet2]}) (Com {[LIT_CHARS true]}) ) (= scope= flags=0 words=[] bindings=[('VBN0', {[LIT_CHARS vboxnet0]})]) (= scope= flags=0 words=[] bindings=[('VBN1', {[LIT_CHARS vboxnet1]})]) (= scope= flags=0 words=[] bindings=[('VBN2', {[LIT_CHARS vboxnet2]})]) ) (ElseTrue) (List (= scope= flags=0 words=[] bindings=[('VBN0', {[DQ [LIT_CHARS "VirtualBox Host-Only Ethernet Adapter"]]})]) (= scope= flags=0 words=[] bindings=[('VBN1', {[DQ [LIT_CHARS "VirtualBox Host-Only Ethernet Adapter #2"]]})]) (= scope= flags=0 words=[] bindings=[('VBN2', {[DQ [LIT_CHARS "VirtualBox Host-Only Ethernet Adapter #3"]]})]) ) ) (Com {[VarSub VBM]} {[LIT_CHARS hostonlyif]} {[LIT_CHARS ipconfig]} {[DQ [VarSub VBN0]]} {[LIT_CHARS --ip]} {[LIT_CHARS 10.0.100.2]} {[LIT_CHARS --netmask]} {[LIT_CHARS 255.255.255.0]}) (Com {[VarSub VBM]} {[LIT_CHARS hostonlyif]} {[LIT_CHARS ipconfig]} {[DQ [VarSub VBN1]]} {[LIT_CHARS --ip]} {[LIT_CHARS 172.16.100.2]} {[LIT_CHARS --netmask]} {[LIT_CHARS 255.255.255.0]}) (Com {[VarSub VBM]} {[LIT_CHARS hostonlyif]} {[LIT_CHARS ipconfig]} {[DQ [VarSub VBN2]]} {[LIT_CHARS --ip]} {[LIT_CHARS 192.168.100.2]} {[LIT_CHARS --netmask]} {[LIT_CHARS 255.255.255.0]}) (For vm [{[LIT_CHARS bcpc-bootstrap]}]) (If (Pipeline! (Com {[VarSub VBM]} {[LIT_CHARS list]} {[LIT_CHARS vms]}) (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS "^"][\ LIT_ESCAPED_CHAR "\\\""][VarSub vm][\ LIT_ESCAPED_CHAR "\\\""]]}) ) (List (Com {[VarSub VBM]} {[LIT_CHARS createvm]} {[LIT_CHARS --name]} {[VarSub vm]} {[LIT_CHARS --ostype]} {[LIT_CHARS Ubuntu_64]} {[LIT_CHARS --basefolder]} {[VarSub P]} {[LIT_CHARS --register]}) (Com {[VarSub VBM]} {[LIT_CHARS modifyvm]} {[VarSub vm]} {[LIT_CHARS --memory]} {[VarSub BOOTSTRAP_VM_MEM]}) (Com {[VarSub VBM]} {[LIT_CHARS modifyvm]} {[VarSub vm]} {[LIT_CHARS --cpus]} {[VarSub BOOTSTRAP_VM_CPUs]}) (Com {[VarSub VBM]} {[LIT_CHARS storagectl]} {[VarSub vm]} {[LIT_CHARS --name]} {[DQ [LIT_CHARS "SATA Controller"]]} {[LIT_CHARS --add]} {[LIT_CHARS sata]}) (Com {[VarSub VBM]} {[LIT_CHARS storagectl]} {[VarSub vm]} {[LIT_CHARS --name]} {[DQ [LIT_CHARS "IDE Controller"]]} {[LIT_CHARS --add]} {[LIT_CHARS ide]}) (= scope= flags=0 words=[] bindings=[('port', {[LIT_CHARS 0]})]) (For disk [{[LIT_CHARS a]}]) (List (Com {[VarSub VBM]} {[LIT_CHARS createhd]} {[LIT_CHARS --filename]} {[VarSub P] [LIT_CHARS /] [VarSub vm] [LIT_CHARS /] [VarSub vm] [LIT_CHARS -] [VarSub disk] [LIT_CHARS .vdi]} {[LIT_CHARS --size]} {[VarSub BOOTSTRAP_VM_DRIVE_SIZE test_op=VS_TEST_HYPHEN {[LIT_CHARS 20480]}]}) (Com {[VarSub VBM]} {[LIT_CHARS storageattach]} {[VarSub vm]} {[LIT_CHARS --storagectl]} {[DQ [LIT_CHARS "SATA Controller"]]} {[LIT_CHARS --device]} {[LIT_CHARS 0]} {[LIT_CHARS --port]} {[VarSub port]} {[LIT_CHARS --type]} {[LIT_CHARS hdd]} {[LIT_CHARS --medium]} {[VarSub P] [LIT_CHARS /] [VarSub vm] [LIT_CHARS /] [VarSub vm] [LIT_CHARS -] [VarSub disk] [LIT_CHARS .vdi]}) (= scope= flags=0 words=[] bindings=[('port', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub port]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) ) ) (Com {[VarSub VBM]} {[LIT_CHARS modifyvm]} {[VarSub vm]} {[LIT_CHARS --nic1]} {[LIT_CHARS nat]}) (Com {[VarSub VBM]} {[LIT_CHARS modifyvm]} {[VarSub vm]} {[LIT_CHARS --nic2]} {[LIT_CHARS hostonly]} {[LIT_CHARS --hostonlyadapter2]} {[DQ [VarSub VBN0]]}) (Com {[VarSub VBM]} {[LIT_CHARS modifyvm]} {[VarSub vm]} {[LIT_CHARS --nic3]} {[LIT_CHARS hostonly]} {[LIT_CHARS --hostonlyadapter3]} {[DQ [VarSub VBN1]]}) (Com {[VarSub VBM]} {[LIT_CHARS modifyvm]} {[VarSub vm]} {[LIT_CHARS --nic4]} {[LIT_CHARS hostonly]} {[LIT_CHARS --hostonlyadapter4]} {[DQ [VarSub VBN2]]}) (Com {[VarSub VBM]} {[LIT_CHARS storageattach]} {[VarSub vm]} {[LIT_CHARS --storagectl]} {[DQ [LIT_CHARS "IDE Controller"]]} {[LIT_CHARS --device]} {[LIT_CHARS 0]} {[LIT_CHARS --port]} {[LIT_CHARS 0]} {[LIT_CHARS --type]} {[LIT_CHARS dvddrive]} {[LIT_CHARS --medium]} {[LIT_CHARS ubuntu-12.04-mini.iso]}) (Com {[VarSub VBM]} {[LIT_CHARS modifyvm]} {[VarSub vm]} {[LIT_CHARS --boot1]} {[LIT_CHARS disk]}) ) ) ) ) ) (Com {[LIT_CHARS popd]}) ) ) (FunctionDef create_cluster_VMs [] (List (= scope= flags=0 words=[] bindings=[('oifs', {[DQ [VarSub IFS]]})]) (= scope= flags=0 words=[] bindings=[('IFS', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('bootstrap_interfaces', {[Array {[ComSub (Pipeline (Com {[VarSub VBM]} {[LIT_CHARS showvminfo]} {[LIT_CHARS bcpc-bootstrap]} {[LIT_CHARS --machinereadable]}) (Com {[LIT_CHARS egrep]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]}) )]}]})]) (= scope= flags=0 words=[] bindings=[('IFS', {[DQ [VarSub oifs]]})]) (= scope= flags=0 words=[] bindings=[('VBN0', {[DQ [VarSub bootstrap_interfaces bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})]]})]) (= scope= flags=0 words=[] bindings=[('VBN1', {[DQ [VarSub bootstrap_interfaces bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}})]]})]) (= scope= flags=0 words=[] bindings=[('VBN2', {[DQ [VarSub bootstrap_interfaces bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}})]]})]) (For vm [{[LIT_CHARS bcpc-vm1]}, {[LIT_CHARS bcpc-vm2]}, {[LIT_CHARS bcpc-vm3]}]) (If (Pipeline! (Com {[VarSub VBM]} {[LIT_CHARS list]} {[LIT_CHARS vms]}) (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS "^"][\ LIT_ESCAPED_CHAR "\\\""][VarSub vm][\ LIT_ESCAPED_CHAR "\\\""]]}) ) (List (Com {[VarSub VBM]} {[LIT_CHARS createvm]} {[LIT_CHARS --name]} {[VarSub vm]} {[LIT_CHARS --ostype]} {[LIT_CHARS Ubuntu_64]} {[LIT_CHARS --basefolder]} {[VarSub P]} {[LIT_CHARS --register]}) (Com {[VarSub VBM]} {[LIT_CHARS modifyvm]} {[VarSub vm]} {[LIT_CHARS --memory]} {[VarSub CLUSTER_VM_MEM]}) (Com {[VarSub VBM]} {[LIT_CHARS modifyvm]} {[VarSub vm]} {[LIT_CHARS --cpus]} {[VarSub CLUSTER_VM_CPUs]}) (Com {[VarSub VBM]} {[LIT_CHARS storagectl]} {[VarSub vm]} {[LIT_CHARS --name]} {[DQ [LIT_CHARS "SATA Controller"]]} {[LIT_CHARS --add]} {[LIT_CHARS sata]}) (= scope= flags=0 words=[] bindings=[('port', {[LIT_CHARS 0]})]) (For disk [{[LIT_CHARS a]}, {[LIT_CHARS b]}, {[LIT_CHARS c]}, {[LIT_CHARS d]}, {[LIT_CHARS e]}]) (List (Com {[VarSub VBM]} {[LIT_CHARS createhd]} {[LIT_CHARS --filename]} {[VarSub P] [LIT_CHARS /] [VarSub vm] [LIT_CHARS /] [VarSub vm] [LIT_CHARS -] [VarSub disk] [LIT_CHARS .vdi]} {[LIT_CHARS --size]} {[VarSub CLUSTER_VM_DRIVE_SIZE]}) (Com {[VarSub VBM]} {[LIT_CHARS storageattach]} {[VarSub vm]} {[LIT_CHARS --storagectl]} {[DQ [LIT_CHARS "SATA Controller"]]} {[LIT_CHARS --device]} {[LIT_CHARS 0]} {[LIT_CHARS --port]} {[VarSub port]} {[LIT_CHARS --type]} {[LIT_CHARS hdd]} {[LIT_CHARS --medium]} {[VarSub P] [LIT_CHARS /] [VarSub vm] [LIT_CHARS /] [VarSub vm] [LIT_CHARS -] [VarSub disk] [LIT_CHARS .vdi]}) (= scope= flags=0 words=[] bindings=[('port', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub port]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) ) ) (Com {[VarSub VBM]} {[LIT_CHARS modifyvm]} {[VarSub vm]} {[LIT_CHARS --nic1]} {[LIT_CHARS hostonly]} {[LIT_CHARS --hostonlyadapter1]} {[DQ [VarSub VBN0]]} {[LIT_CHARS --nictype1]} {[LIT_CHARS 82543GC]}) (Com {[VarSub VBM]} {[LIT_CHARS setextradata]} {[VarSub vm]} {[LIT_CHARS VBoxInternal/Devices/pcbios/0/Config/LanBootRom]} {[VarSub P] [LIT_CHARS /gpxe-1.0.1-80861004.rom]}) (Com {[VarSub VBM]} {[LIT_CHARS modifyvm]} {[VarSub vm]} {[LIT_CHARS --nic2]} {[LIT_CHARS hostonly]} {[LIT_CHARS --hostonlyadapter2]} {[DQ [VarSub VBN1]]}) (Com {[VarSub VBM]} {[LIT_CHARS modifyvm]} {[VarSub vm]} {[LIT_CHARS --nic3]} {[LIT_CHARS hostonly]} {[LIT_CHARS --hostonlyadapter3]} {[DQ [VarSub VBN2]]}) (Com {[VarSub VBM]} {[LIT_CHARS modifyvm]} {[VarSub vm]} {[LIT_CHARS --largepages]} {[LIT_CHARS on]} {[LIT_CHARS --vtxvpid]} {[LIT_CHARS on]} {[LIT_CHARS --hwvirtex]} {[LIT_CHARS on]} {[LIT_CHARS --nestedpaging]} {[LIT_CHARS on]} {[LIT_CHARS --ioapic]} {[LIT_CHARS on]}) ) ) ) ) ) (FunctionDef install_cluster [] (List (= scope= flags=0 words=[] bindings=[('environment', {[VarSub 1 test_op=VS_TEST_HYPHEN {[LIT_CHARS Test-Laptop]}]})]) (= scope= flags=0 words=[] bindings=[('ip', {[VarSub 2 test_op=VS_TEST_HYPHEN {[LIT_CHARS 10.0.100.3]}]})]) (If (Com {[LIT_CHARS hash]} {[LIT_CHARS vagrant]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (List (Com {[LIT_CHARS pushd]} {[VarSub P]}) (AndOr OP_OR_IF (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[LIT_CHARS -c]} {[DQ [LIT_CHARS "test -f /etc/default/grub.ucf-dist && sudo mv /etc/default/grub.ucf-dist /etc/default/grub"]]}) (Com {[LIT_CHARS true]}) ) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -n]} {[DQ [VarSub http_proxy]]} {[LIT_OTHER "]"]}) (If (Pipeline! (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[LIT_CHARS -c]} {[DQ [LIT_CHARS "grep -z Acquire::http::Proxy /etc/apt/apt.conf"]]}) ) (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[LIT_CHARS -c]} {[DQ [LIT_CHARS "echo 'Acquire::http::Proxy "][\ LIT_ESCAPED_CHAR "\\\""][VarSub http_proxy][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ";' | sudo tee -a /etc/apt/apt.conf"]]}) ) ) (Com {[LIT_CHARS popd]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Bootstrap complete - setting up Chef server"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "N.B. This may take approximately 30-45 minutes to complete."]]}) (Com {[LIT_CHARS ./bootstrap_chef.sh]} {[LIT_CHARS --vagrant-remote]} {[VarSub ip]} {[VarSub environment]}) (Com {[LIT_CHARS ./enroll_cobbler.sh]}) ) (ElseTrue) (Com {[LIT_CHARS ./non_vagrant_boot.sh]}) ) ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub BASH_SOURCE bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})]]} {[DQ [VarSub 0]]}}) (List (Com {[LIT_CHARS download_VM_files]}) (Com {[LIT_CHARS create_bootstrap_VM]}) (Com {[LIT_CHARS create_cluster_VMs]}) (Com {[LIT_CHARS install_cluster]} {[VarSub *]}) ) ) )