(CommandList children: [ (C {(set)} {(-eu)}) (ForEach iter_name: CMD iter_words: [{(VBoxManage)} {(git)} {(pcregrep)}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (SimpleCommand words: [{(which)} {($ VSub_Name "$CMD")}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [64] ) ] ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [ {(echo)} {(DQ ("Could not find ") ($ VSub_Name "$CMD") (" on PATH, exiting."))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[79])] ) (C {(exit)} {(1)}) ] spids: [-1 68] ) ] spids: [-1 88] ) ] spids: [53 90] ) spids: [45 51] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REPO_ROOT) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(git)} {(rev-parse)} {(--show-toplevel)})]) left_token: <Left_CommandSub "$("> spids: [97 103] ) } spids: [96] ) ] spids: [96] ) (C {(source)} {($ VSub_Name "$REPO_ROOT") (/bootstrap/config/bootstrap_config.sh.defaults)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CONFIG_OVERRIDES) op: Equal rhs: {($ VSub_Name "$REPO_ROOT") (/bootstrap/config/bootstrap_config.sh.overrides)} spids: [114] ) ] spids: [114] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_f child:{($ VSub_Name "$CONFIG_OVERRIDES")}) ) terminator: <Op_Semi ";"> ) ] action: [(C {(source)} {($ VSub_Name "$CONFIG_OVERRIDES")})] spids: [-1 130] ) ] spids: [-1 137] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (CommandSubPart command_list: (CommandList children:[(C {(uname)})]) left_token: <Left_CommandSub "$("> spids: [147 149] ) } right: {(DQ (Darwin))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:SED) op:Equal rhs:{(DQ ("sed -E"))} spids:[163])] spids: [163] ) ] spids: [-1 160] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:SED) op:Equal rhs:{(DQ ("sed -r"))} spids:[171])] spids: [171] ) ] spids: [168 176] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DMF_SET) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(VBoxManage)} {(list)} {(systemproperties)}) (C {(grep)} {(SQ <"^Default machine folder:">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [179 193] ) } spids: [178] ) ] spids: [178] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OLD_DMF_PATH) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name "$DMF_SET"))}) (C {($ VSub_Name "$SED")} {(SQ <"s/^Default machine folder:[[:space:]]+(.+)$/\\1/">)} ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [196 210] ) } spids: [195] ) ] spids: [195] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DMF_PATH) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name ANSIBLE_VM_DIR> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_Name "$OLD_DMF_PATH")} ) spids: [214 218] ) ) } spids: [212] ) ] spids: [212] ) (C {($ VSub_Name "$REPO_ROOT") (/bootstrap/ansible_scripts/scripts/vbox_clean.sh)}) (AndOr children: [(C {(VBoxManage)} {(hostonlyif)} {(remove)} {(vboxnet0)}) (C {(true)})] op_id: Op_DAmp ) (AndOr children: [(C {(VBoxManage)} {(hostonlyif)} {(remove)} {(vboxnet1)}) (C {(true)})] op_id: Op_DAmp ) (AndOr children: [(C {(VBoxManage)} {(hostonlyif)} {(remove)} {(vboxnet2)}) (C {(true)})] op_id: Op_DAmp ) (C {(VBoxManage)} {(hostonlyif)} {(create)}) (C {(VBoxManage)} {(hostonlyif)} {(ipconfig)} {(vboxnet0)} {(--ip)} {(10.0.100.2)} {(--netmask)} {(255.255.255.0)} ) (C {(VBoxManage)} {(hostonlyif)} {(create)}) (C {(VBoxManage)} {(hostonlyif)} {(ipconfig)} {(vboxnet1)} {(--ip)} {(172.16.100.2)} {(--netmask)} {(255.255.255.0)} ) (C {(VBoxManage)} {(hostonlyif)} {(create)}) (C {(VBoxManage)} {(hostonlyif)} {(ipconfig)} {(vboxnet2)} {(--ip)} {(192.168.100.2)} {(--netmask)} {(255.255.255.0)} ) (AndOr children: [(C {(VBoxManage)} {(dhcpserver)} {(remove)} {(--ifname)} {(vboxnet0)}) (C {(true)})] op_id: Op_DAmp ) (AndOr children: [(C {(VBoxManage)} {(dhcpserver)} {(remove)} {(--ifname)} {(vboxnet1)}) (C {(true)})] op_id: Op_DAmp ) (AndOr children: [(C {(VBoxManage)} {(dhcpserver)} {(remove)} {(--ifname)} {(vboxnet2)}) (C {(true)})] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VMS) op: Equal rhs: {(DQ ("ansible-bcpc-vm1 ansible-bcpc-vm2 ansible-bcpc-vm3"))} spids: [384] ) ] spids: [384] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {($ VSub_Name "$MONITORING_NODES")} {(-gt)} {(0)} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(1)} spids:[405])] spids: [405] ) (While cond: [ (Sentence child: (C {(Lit_Other "[")} {($ VSub_Name "$i")} {(-le)} {($ VSub_Name "$MONITORING_NODES")} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MON_VM) op: Equal rhs: { (DQ (ansible-bcpc-vm) (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(3)} {(Lit_Other "+")} {($ VSub_Name "$i")}) ] ) left_token: <Left_Backtick "`"> spids: [428 436] ) ) } spids: [425] ) ] spids: [425] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VMS) op: Equal rhs: {(DQ ($ VSub_Name "$VMS") (" ") ($ VSub_Name "$MON_VM"))} spids: [440] ) ] spids: [440] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:i) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {($ VSub_Name "$i")} {(Lit_Other "+")} {(1)}) ] ) left_token: <Left_Backtick "`"> spids: [449 457] ) } spids: [448] ) ] spids: [448] ) ] spids: [422 460] ) ) ] spids: [-1 402] ) ] spids: [-1 462] ) (C {(echo)} {(DQ ("Creating bootstrap VM"))}) (C {(VBoxManage)} {(createvm)} {(--basefolder)} {(DQ ($ VSub_Name "$DMF_PATH"))} {(--name)} {(ansible-bcpc-bootstrap)} {(--register)} ) (C {(VBoxManage)} {(modifyvm)} {(ansible-bcpc-bootstrap)} {(--ostype)} {(Ubuntu_64)}) (C {(VBoxManage)} {(modifyvm)} {(ansible-bcpc-bootstrap)} {(--memory)} {($ VSub_Name "$BOOTSTRAP_VM_MEM")} ) (C {(VBoxManage)} {(modifyvm)} {(ansible-bcpc-bootstrap)} {(--cpus)} {($ VSub_Name "$BOOTSTRAP_VM_CPUS")} ) (C {(VBoxManage)} {(modifyvm)} {(ansible-bcpc-bootstrap)} {(--nic1)} {(nat)}) (C {(VBoxManage)} {(modifyvm)} {(ansible-bcpc-bootstrap)} {(--nictype1)} {(82543GC)}) (C {(VBoxManage)} {(modifyvm)} {(ansible-bcpc-bootstrap)} {(--nic2)} {(hostonly)}) (C {(VBoxManage)} {(modifyvm)} {(ansible-bcpc-bootstrap)} {(--nictype2)} {(82543GC)}) (C {(VBoxManage)} {(modifyvm)} {(ansible-bcpc-bootstrap)} {(--hostonlyadapter2)} {(vboxnet0)}) (C {(VBoxManage)} {(modifyvm)} {(ansible-bcpc-bootstrap)} {(--nic3)} {(hostonly)}) (C {(VBoxManage)} {(modifyvm)} {(ansible-bcpc-bootstrap)} {(--nictype3)} {(82543GC)}) (C {(VBoxManage)} {(modifyvm)} {(ansible-bcpc-bootstrap)} {(--hostonlyadapter3)} {(vboxnet1)}) (C {(VBoxManage)} {(modifyvm)} {(ansible-bcpc-bootstrap)} {(--nic4)} {(hostonly)}) (C {(VBoxManage)} {(modifyvm)} {(ansible-bcpc-bootstrap)} {(--nictype4)} {(82543GC)}) (C {(VBoxManage)} {(modifyvm)} {(ansible-bcpc-bootstrap)} {(--hostonlyadapter4)} {(vboxnet2)}) (C {(VBoxManage)} {(storagectl)} {(ansible-bcpc-bootstrap)} {(--name)} {(DQ (SATA))} {(--add)} {(sata)} {(--portcount)} {(3)} {(--hostiocache)} {(on)} ) (C {(VBoxManage)} {(createhd)} {(--filename)} {(DQ ($ VSub_Name "$DMF_PATH") (/ansible-bcpc-bootstrap/ansible-bcpc-bootstrap-sda.vdi))} {(--size)} {($ VSub_Name "$BOOTSTRAP_VM_DRIVE_SIZE")} ) (C {(VBoxManage)} {(storageattach)} {(ansible-bcpc-bootstrap)} {(--storagectl)} {(DQ (SATA))} {(--device)} {(0)} {(--port)} {(0)} {(--type)} {(hdd)} {(--medium)} {(DQ ($ VSub_Name "$DMF_PATH") (/ansible-bcpc-bootstrap/ansible-bcpc-bootstrap-sda.vdi))} ) (C {(VBoxManage)} {(createhd)} {(--filename)} {(DQ ($ VSub_Name "$DMF_PATH") (/ansible-bcpc-bootstrap/ansible-bcpc-bootstrap-sdb.vdi))} {(--size)} {(8192)} ) (C {(VBoxManage)} {(storageattach)} {(ansible-bcpc-bootstrap)} {(--storagectl)} {(DQ (SATA))} {(--device)} {(0)} {(--port)} {(1)} {(--type)} {(hdd)} {(--medium)} {(DQ ($ VSub_Name "$DMF_PATH") (/ansible-bcpc-bootstrap/ansible-bcpc-bootstrap-sdb.vdi))} ) (C {(VBoxManage)} {(createhd)} {(--filename)} {(DQ ($ VSub_Name "$DMF_PATH") (/ansible-bcpc-bootstrap/ansible-bcpc-bootstrap-sdc.vdi))} {(--size)} {($ VSub_Name "$BOOTSTRAP_VM_DRIVE_SIZE")} ) (C {(VBoxManage)} {(storageattach)} {(ansible-bcpc-bootstrap)} {(--storagectl)} {(DQ (SATA))} {(--device)} {(0)} {(--port)} {(2)} {(--type)} {(hdd)} {(--medium)} {(DQ ($ VSub_Name "$DMF_PATH") (/ansible-bcpc-bootstrap/ansible-bcpc-bootstrap-sdc.vdi))} ) (C {(VBoxManage)} {(storagectl)} {(ansible-bcpc-bootstrap)} {(--name)} {(DQ (IDE))} {(--add)} {(ide)}) (C {(VBoxManage)} {(storageattach)} {(ansible-bcpc-bootstrap)} {(--storagectl)} {(DQ (IDE))} {(--device)} {(0)} {(--port)} {(0)} {(--type)} {(dvddrive)} {(--medium)} {(emptydrive)} ) (C {(VBoxManage)} {(modifyvm)} {(ansible-bcpc-bootstrap)} {(--boot1)} {(dvd)}) (ForEach iter_name: VM iter_words: [{($ VSub_Name "$VMS")}] do_arg_iter: False body: (DoGroup children: [ (C {(echo)} {(DQ ("Creating cluster VM ") ($ VSub_Name "$VM"))}) (C {(VBoxManage)} {(createvm)} {(--basefolder)} {(DQ ($ VSub_Name "$DMF_PATH"))} {(--name)} {($ VSub_Name "$VM")} {(--register)} ) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--ostype)} {(Ubuntu_64)}) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--memory)} {($ VSub_Name "$CLUSTER_VM_MEM")} ) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--cpus)} {($ VSub_Name "$CLUSTER_VM_CPUS")} ) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--nic1)} {(hostonly)}) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--nictype1)} {(82543GC)}) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--hostonlyadapter1)} {(vboxnet0)}) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--nic2)} {(hostonly)}) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--nictype2)} {(82543GC)}) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--hostonlyadapter2)} {(vboxnet1)}) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--nic3)} {(hostonly)}) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--nictype3)} {(82543GC)}) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--hostonlyadapter3)} {(vboxnet2)}) (C {(VBoxManage)} {(storagectl)} {($ VSub_Name "$VM")} {(--name)} {(DQ (SATA))} {(--add)} {(sata)} {(--portcount)} {(5)} {(--hostiocache)} {(on)} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:PORT) op:Equal rhs:{(0)} spids:[1054])] spids: [1054] ) (ForEach iter_name: DISK iter_words: [{(a)} {(b)} {(c)} {(d)} {(e)}] do_arg_iter: False body: (DoGroup children: [ (C {(VBoxManage)} {(createhd)} {(--filename)} { (DQ ($ VSub_Name "$DMF_PATH") (/) ($ VSub_Name "$VM") (/) ($ VSub_Name "$VM") (-sd) ($ VSub_Name "$DISK") (.vdi) ) } {(--size)} {($ VSub_Name "$CLUSTER_VM_DRIVE_SIZE")} ) (C {(VBoxManage)} {(storageattach)} {($ VSub_Name "$VM")} {(--storagectl)} {(DQ (SATA))} {(--device)} {(0)} {(--port)} {($ VSub_Name "$PORT")} {(--type)} {(hdd)} {(--medium)} { (DQ ($ VSub_Name "$DMF_PATH") (/) ($ VSub_Name "$VM") (/) ($ VSub_Name "$VM") (-sd) ($ 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: [1139 1144] ) } spids: [1138] ) ] spids: [1138] ) ] spids: [1075 1147] ) spids: [1063 1073] ) (C {(VBoxManage)} {(setextradata)} {($ VSub_Name "$VM")} {(VBoxInternal/Devices/pcbios/0/Config/LanBootRom)} {(DQ ($ VSub_Name "$BOOTSTRAP_CACHE_DIR") (/gpxe-1.0.1-80861004.rom))} ) ] spids: [868 1168] ) spids: [864 866] ) (ForEach iter_name: VM iter_words: [{(ansible-bcpc-bootstrap)} {($ VSub_Name "$VMS")}] do_arg_iter: False body: (DoGroup children: [ (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--vram)} {(16)}) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--largepages)} {(on)}) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--nestedpaging)} {(on)}) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--vtxvpid)} {(on)}) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--hwvirtex)} {(on)}) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--ioapic)} {(on)}) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--uart1)} {(0x3F8)} {(4)}) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--uart2)} {(0x2F8)} {(3)}) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--uartmode1)} {(disconnected)}) (C {(VBoxManage)} {(modifyvm)} {($ VSub_Name "$VM")} {(--uartmode2)} {(disconnected)}) ] spids: [1185 1301] ) spids: [1179 1183] ) (FuncDef name: get_node_role body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number "$1")} right: {(SQ <ansible-bcpc-bootstrap>)} ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(SQ <bootstrap>)})] spids: [-1 1329] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number "$1")} right: {(SQ <ansible-bcpc-vm1>)} ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(SQ <head>)})] spids: [1339 1354] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number "$1")} right: {(SQ <ansible-bcpc-vm2>)} ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(SQ <work>)})] spids: [1364 1379] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number "$1")} right: {(DQ (ansible-bcpc-vm3))} ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(SQ <work-ephemeral>)})] spids: [1389 1404] ) ] else_action: [(C {(echo)} {(SQ <reserved>)})] spids: [1414 1424] ) ] spids: [1311] ) spids: [1307 1310] ) (FuncDef name: get_node_ip body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number "$1")} right: {(SQ <ansible-bcpc-bootstrap>)} ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(SQ <10.0.100.3>)})] spids: [-1 1451] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number "$1")} right: {(SQ <ansible-bcpc-vm1>)} ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(SQ <10.0.100.11>)})] spids: [1461 1476] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number "$1")} right: {(SQ <ansible-bcpc-vm2>)} ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(SQ <10.0.100.12>)})] spids: [1486 1501] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number "$1")} right: {(DQ (ansible-bcpc-vm3))} ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(SQ <10.0.100.13>)})] spids: [1511 1526] ) ] else_action: [(C {(echo)} {(SQ <169.254.1.1>)})] spids: [1536 1546] ) ] spids: [1433] ) spids: [1429 1432] ) (C {(echo)} {(DQ (-------------------------------------------))}) (C {(echo)} {(DQ ("Generated below is a sample cluster.yml file"))}) (C {(echo)} {(DQ ("Sample cluster.yml file:"))}) (C {(echo)}) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: {(DQ ("---\n") ("cluster_name: Test-Laptop-Ansible\n") ("nodes:\n"))} do_expansion: True here_end: YAML_HEAD was_filled: True spids: [1576] ) ] ) (ForEach iter_name: VM iter_words: [{(ansible-bcpc-bootstrap)} {($ VSub_Name "$VMS")}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MAC_ADDRESS) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(VBoxManage)} {(showvminfo)} {(--machinereadable)} {($ VSub_Name "$VM")} ) (C {(pcregrep)} {(-o1)} {(-M)} { (SQ < "^hostonlyadapter\\d=\"vboxnet0\"$\\n*^macaddress\\d=\"(.+)\"" > ) } ) (C {($ VSub_Name "$SED")} {(SQ <"s/^(..)(..)(..)(..)(..)(..)$/\\1:\\2:\\3:\\4:\\5:\\6/">)} ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1598 1626] ) } spids: [1597] ) ] spids: [1597] ) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ (" ") ($ VSub_Name "$VM") (":\n") (" domain: bcpc.example.com\n") (" hardware_type: Virtual\n") (" ip_address: ") (CommandSubPart command_list: (CommandList children: [(C {(get_node_ip)} {($ VSub_Name "$VM")})] ) left_token: <Left_CommandSub "$("> spids: [1641 1645] ) ("\n") (" ipmi_address:\n") (" mac_address: ") ($ VSub_Name "$MAC_ADDRESS") ("\n") (" role: ") (CommandSubPart command_list: (CommandList children: [(C {(get_node_role)} {($ VSub_Name "$VM")})] ) left_token: <Left_CommandSub "$("> spids: [1652 1656] ) ("\n") ) } do_expansion: True here_end: EoF was_filled: True spids: [1631] ) ] ) ] spids: [1594 1658] ) spids: [1588 1592] ) ] )