(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_ROOT) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ (${ VSub_Name BASH_SOURCE))})] ) left_token: <Left_CommandSub "$("> spids: [49 57] ) (/../..) } spids: [48] ) ] spids: [48] ) (C {(source)} { (DQ (${ VSub_Name KUBE_ROOT) (/cluster/vagrant/) (BracedVarSub token: <VSub_Name KUBE_CONFIG_FILE> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(DQ (config-default.sh))}) spids: [67 73] ) ) } ) (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/common.sh))}) (FuncDef name: detect-master body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_MASTER_IP) op: Equal rhs: {($ VSub_Name "$MASTER_IP")} spids: [96] ) ] spids: [96] ) (SimpleCommand words: [{(echo)} {(DQ ("KUBE_MASTER_IP: ") (${ VSub_Name KUBE_MASTER_IP))}] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[109])] ) ] spids: [93] ) spids: [86 92] ) (FuncDef name: detect-nodes body: (BraceGroup children: [ (SimpleCommand words: [{(echo)} {(DQ ("Nodes already detected"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[131])] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_NODE_IP_ADDRESSES) op: Equal rhs: { (ArrayLiteralPart words: [ { (DQ (BracedVarSub token: <VSub_Name NODE_IPS> bracket_op: (WholeArray op_id:Lit_At) spids: [138 143] ) ) } ] ) } spids: [135] ) ] spids: [135] ) ] spids: [122] ) spids: [118 121] ) (FuncDef name: verify-prereqs body: (BraceGroup children: [ (ForEach iter_name: x iter_words: [{(vagrant)}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (SimpleCommand words: [{(which)} {(DQ ($ VSub_Name "$x"))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [185] ) ] ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} { (DQ ("Can't find ") ($ VSub_Name "$x") (" in PATH, please fix and retry.") ) } ) (C {(exit)} {(1)}) ] spids: [-1 189] ) ] spids: [-1 206] ) ] spids: [172 209] ) spids: [168 170] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:vagrant_plugins) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(vagrant)} {(plugin)} {(list)}) (C {(sed)} {(SQ <"-es% .*$%%">)} {(SQ <"-es% *% %g">)}) (C {(tr)} {(SQ <" ">)} {(SQ <Lit_EscapedChar "\\n">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [216 246] ) } spids: [215] ) ] spids: [213] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:providers) op: Equal rhs: { (ArrayLiteralPart words: [ {(SQ )} {(vmware_fusion)} {(vagrant-vmware-fusion)} {(SQ )} {(vmware_workstation)} {(vagrant-vmware-workstation)} {(prlctl)} {(parallels)} {(vagrant-parallels)} {(VBoxManage)} {(virtualbox)} {(SQ )} {(virsh)} {(libvirt)} {(vagrant-libvirt)} {(SQ )} {(vsphere)} {(vagrant-vsphere)} ] ) } spids: [251] ) ] spids: [249] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:provider_found) op: Equal rhs: {(SQ )} spids: [326] ) ] spids: [324] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:provider_bin) op:Equal spids:[333])] spids: [331] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:provider_name) op:Equal spids:[338])] spids: [336] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:provider_plugin_re) op:Equal spids:[343])] spids: [341] ) (While cond: [ (Sentence child: (C {(Lit_Other "[")} { (DQ (BracedVarSub token: <VSub_Name providers> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [352 358] ) ) } {(-gt)} {(0)} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:provider_bin) op: Equal rhs: { (BracedVarSub token: <VSub_Name providers> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [372 377] ) } spids: [371] ) ] spids: [371] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:provider_name) op: Equal rhs: { (BracedVarSub token: <VSub_Name providers> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [381 386] ) } spids: [380] ) ] spids: [380] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:provider_plugin_re) op: Equal rhs: { (BracedVarSub token: <VSub_Name providers> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 2)})) spids: [390 395] ) } spids: [389] ) ] spids: [389] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:providers) op: Equal rhs: { (ArrayLiteralPart words: [ { (DQ (BracedVarSub token: <VSub_Name providers> bracket_op: (WholeArray op_id:Lit_At) suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 3)})) spids: [401 408] ) ) } ] ) } spids: [398] ) ] spids: [398] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (C {(Lit_Other "[")} {(-n)} { (DQ (BracedVarSub token: <VSub_Name VAGRANT_DEFAULT_PROVIDER> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [425 428] ) ) } {(Lit_Other "]")} ) (C {(Lit_Other "[")} {(DQ (${ VSub_Name VAGRANT_DEFAULT_PROVIDER))} {(KW_Bang "!") (Lit_Other "=")} {(DQ (${ VSub_Name provider_name))} {(Lit_Other "]")} ) ] op_id: Op_DAmp ) terminator: <Op_Semi ";"> ) ] action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [-1 457] ) ] spids: [-1 463] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (Subshell child: (AndOr children: [ (C {(Lit_Other "[")} {(-z)} {(DQ (${ VSub_Name provider_bin))} {(Lit_Other "]")} ) (SimpleCommand words: [{(which)} {(DQ (${ VSub_Name provider_bin))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [494] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [497] ) ] ) ] op_id: Op_DPipe ) spids: [469 499] ) (Subshell child: (AndOr children: [ (C {(Lit_Other "[")} {(-z)} {(DQ (${ VSub_Name provider_plugin_re))} {(Lit_Other "]")} ) (C {(Lit_Other "[")} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name vagrant_plugins))} ) (C {(grep)} {(-E)} { (DQ ("^") (${ VSub_Name provider_plugin_re) (Lit_Other "$") ) } ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [527 549] ) ) } {(Lit_Other "]")} ) ] op_id: Op_DPipe ) spids: [505 553] ) ] op_id: Op_DAmp ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:provider_found) op: Equal rhs: {(DQ (${ VSub_Name provider_name))} spids: [559] ) ] spids: [559] ) (ControlFlow token:<ControlFlow_Break break>) ] spids: [-1 556] ) ] spids: [-1 574] ) ] spids: [368 577] ) ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-z)} {(DQ (${ VSub_Name provider_found))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-n)} { (DQ (BracedVarSub token: <VSub_Name VAGRANT_DEFAULT_PROVIDER> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [606 609] ) ) } {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} { (DQ ("Can't find the necessary components for the ") (${ VSub_Name VAGRANT_DEFAULT_PROVIDER) (" vagrant provider.") ) } ) (C {(echo)} {(DQ ("Possible reasons could be: "))}) (C {(echo)} {(-e)} { (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\t">) ("- vmrun utility is not in your path") ) } ) (C {(echo)} {(-e)} { (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\t">) ("- Vagrant plugin was not found.") ) } ) (C {(echo)} {(-e)} { (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\t">) ("- VAGRANT_DEFAULT_PROVIDER is set, but not found.") ) } ) (C {(echo)} {(DQ ("Please fix and retry."))}) ] spids: [-1 615] ) ] else_action: [ (C {(echo)} { (DQ ( "Can't find the necessary components for any viable vagrant providers (e.g., virtualbox), please fix and retry." ) ) } ) ] spids: [673 683] ) (C {(exit)} {(1)}) ] spids: [-1 596] ) ] spids: [-1 692] ) (C {(export)} {(Lit_VarLike "VAGRANT_CWD=") (DQ (${ VSub_Name KUBE_ROOT))}) (C {(export)} {(Lit_VarLike "USING_KUBE_SCRIPTS=") (true)}) ] spids: [160] ) spids: [156 159] ) (FuncDef name: create-provision-scripts body: (BraceGroup children: [ (C {(kube) (Lit_Other ":") (Lit_Other ":") (util) (Lit_Other ":") (Lit_Other ":") (ensure-temp-dir) } ) (Subshell child: (CommandList children: [ (C {(echo)} {(DQ ("#! /bin/bash"))}) (C {(echo-kube-env)}) (C {(echo)} {(DQ ("NODE_IP='") (${ VSub_Name MASTER_IP) ("'"))}) (C {(echo)} {(DQ ("CONTAINER_ADDR='") (${ VSub_Name MASTER_CONTAINER_ADDR) ("'"))}) (C {(echo)} {(DQ ("CONTAINER_NETMASK='") (${ VSub_Name MASTER_CONTAINER_NETMASK) ("'"))} ) (C {(awk)} {(SQ <"!/^#/">)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/vagrant/provision-utils.sh))} ) (C {(awk)} {(SQ <"!/^#/">)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/vagrant/provision-network-master.sh))} ) (C {(awk)} {(SQ <"!/^#/">)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/vagrant/provision-master.sh))} ) ] ) redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ (${ VSub_Name KUBE_TEMP) (/master-start.sh))} spids: [833] ) ] spids: [743 831] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name NODE_NAMES> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [855 861] ) } ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (Subshell child: (CommandList children: [ (C {(echo)} {(DQ ("#! /bin/bash"))}) (C {(echo-kube-env)}) (C {(echo)} { (DQ ("NODE_NAME=(") (BracedVarSub token: <VSub_Name NODE_NAMES> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [890 895] ) (")") ) } ) (C {(echo)} { (DQ ("NODE_IP='") (BracedVarSub token: <VSub_Name NODE_IPS> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [904 909] ) ("'") ) } ) (C {(echo)} {(DQ ("NODE_ID='") ($ VSub_Name "$i") ("'"))}) (C {(echo)} { (DQ ("CONTAINER_ADDR='") (BracedVarSub token: <VSub_Name NODE_CONTAINER_ADDRS> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [927 932] ) ("'") ) } ) (C {(echo)} { (DQ ("CONTAINER_NETMASK='") (BracedVarSub token: <VSub_Name NODE_CONTAINER_NETMASKS> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [941 946] ) ("'") ) } ) (C {(awk)} {(SQ <"!/^#/">)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/vagrant/provision-utils.sh))} ) (C {(awk)} {(SQ <"!/^#/">)} { (DQ (${ VSub_Name KUBE_ROOT) (/cluster/vagrant/provision-network-node.sh) ) } ) (C {(awk)} {(SQ <"!/^#/">)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/vagrant/provision-node.sh))} ) ] ) redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ (${ VSub_Name KUBE_TEMP) (/node-start-) (${ VSub_Name i) (.sh))} spids: [995] ) ] spids: [873 993] ) ] spids: [870 1009] ) ) ] spids: [730] ) spids: [726 729] ) (FuncDef name: echo-kube-env body: (BraceGroup children: [ (C {(echo)} {(DQ ("KUBE_ROOT=/vagrant"))}) (C {(echo)} {(DQ ("INSTANCE_PREFIX='") (${ VSub_Name INSTANCE_PREFIX) ("'"))}) (C {(echo)} {(DQ ("MASTER_NAME='") (${ VSub_Name INSTANCE_PREFIX) ("-master'"))}) (C {(echo)} {(DQ ("MASTER_IP='") (${ VSub_Name MASTER_IP) ("'"))}) (C {(echo)} { (DQ ("NODE_NAMES=(") (BracedVarSub token: <VSub_Name NODE_NAMES> bracket_op: (WholeArray op_id:Lit_At) spids: [1067 1072] ) (")") ) } ) (C {(echo)} { (DQ ("NODE_IPS=(") (BracedVarSub token: <VSub_Name NODE_IPS> bracket_op: (WholeArray op_id:Lit_At) spids: [1081 1086] ) (")") ) } ) (C {(echo)} {(DQ ("DEFAULT_NETWORK_IF_NAME=") (${ VSub_Name DEFAULT_NETWORK_IF_NAME))}) (C {(echo)} {(DQ ("CONTAINER_SUBNET='") (${ VSub_Name CONTAINER_SUBNET) ("'"))}) (C {(echo)} {(DQ ("CLUSTER_IP_RANGE='") (${ VSub_Name CLUSTER_IP_RANGE) ("'"))}) (C {(echo)} {(DQ ("MASTER_CONTAINER_SUBNET='") (${ VSub_Name MASTER_CONTAINER_SUBNET) ("'"))} ) (C {(echo)} { (DQ ("NODE_CONTAINER_NETMASKS='") (BracedVarSub token: <VSub_Name NODE_CONTAINER_NETMASKS> bracket_op: (WholeArray op_id:Lit_At) spids: [1138 1143] ) ("'") ) } ) (C {(echo)} { (DQ ("NODE_CONTAINER_SUBNETS=(") (BracedVarSub token: <VSub_Name NODE_CONTAINER_SUBNETS> bracket_op: (WholeArray op_id:Lit_At) spids: [1152 1157] ) (")") ) } ) (C {(echo)} {(DQ ("SERVICE_CLUSTER_IP_RANGE='") (${ VSub_Name SERVICE_CLUSTER_IP_RANGE) ("'"))} ) (C {(echo)} {(DQ ("MASTER_USER='") (${ VSub_Name MASTER_USER) ("'"))}) (C {(echo)} {(DQ ("MASTER_PASSWD='") (${ VSub_Name MASTER_PASSWD) ("'"))}) (C {(echo)} {(DQ ("KUBE_USER='") (${ VSub_Name KUBE_USER) ("'"))}) (C {(echo)} {(DQ ("KUBE_PASSWORD='") (${ VSub_Name KUBE_PASSWORD) ("'"))}) (C {(echo)} {(DQ ("KUBE_BEARER_TOKEN='") (${ VSub_Name KUBE_BEARER_TOKEN) ("'"))}) (C {(echo)} {(DQ ("ENABLE_CLUSTER_MONITORING='") (${ VSub_Name ENABLE_CLUSTER_MONITORING) ("'"))} ) (C {(echo)} { (DQ ("ENABLE_CLUSTER_LOGGING='") (BracedVarSub token: <VSub_Name ENABLE_CLUSTER_LOGGING> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(false)}) spids: [1243 1247] ) ("'") ) } ) (C {(echo)} { (DQ ("ELASTICSEARCH_LOGGING_REPLICAS='") (BracedVarSub token: <VSub_Name ELASTICSEARCH_LOGGING_REPLICAS> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(1)}) spids: [1256 1260] ) ("'") ) } ) (C {(echo)} { (DQ ("ENABLE_NODE_LOGGING='") (BracedVarSub token: <VSub_Name ENABLE_NODE_LOGGING> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(false)}) spids: [1269 1273] ) ("'") ) } ) (C {(echo)} {(DQ ("ENABLE_CLUSTER_UI='") (${ VSub_Name ENABLE_CLUSTER_UI) ("'"))}) (C {(echo)} { (DQ ("ENABLE_HOSTPATH_PROVISIONER='") (BracedVarSub token: <VSub_Name ENABLE_HOSTPATH_PROVISIONER> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(false)}) spids: [1293 1297] ) ("'") ) } ) (C {(echo)} { (DQ ("LOGGING_DESTINATION='") (BracedVarSub token: <VSub_Name LOGGING_DESTINATION> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1306 1309] ) ("'") ) } ) (C {(echo)} { (DQ ("ENABLE_CLUSTER_DNS='") (BracedVarSub token: <VSub_Name ENABLE_CLUSTER_DNS> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(false)}) spids: [1318 1322] ) ("'") ) } ) (C {(echo)} { (DQ ("DNS_SERVER_IP='") (BracedVarSub token: <VSub_Name DNS_SERVER_IP> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1331 1334] ) ("'") ) } ) (C {(echo)} { (DQ ("DNS_DOMAIN='") (BracedVarSub token: <VSub_Name DNS_DOMAIN> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1343 1346] ) ("'") ) } ) (C {(echo)} { (DQ ("RUNTIME_CONFIG='") (BracedVarSub token: <VSub_Name RUNTIME_CONFIG> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1355 1358] ) ("'") ) } ) (C {(echo)} { (DQ ("ADMISSION_CONTROL='") (BracedVarSub token: <VSub_Name ADMISSION_CONTROL> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1367 1370] ) ("'") ) } ) (C {(echo)} { (DQ ("DOCKER_OPTS='") (BracedVarSub token: <VSub_Name EXTRA_DOCKER_OPTS> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1379 1382] ) ("'") ) } ) (C {(echo)} { (DQ ("VAGRANT_DEFAULT_PROVIDER='") (BracedVarSub token: <VSub_Name VAGRANT_DEFAULT_PROVIDER> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1391 1394] ) ("'") ) } ) (C {(echo)} { (DQ ("KUBELET_TOKEN='") (BracedVarSub token: <VSub_Name KUBELET_TOKEN> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1403 1406] ) ("'") ) } ) (C {(echo)} { (DQ ("KUBE_PROXY_TOKEN='") (BracedVarSub token: <VSub_Name KUBE_PROXY_TOKEN> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1415 1418] ) ("'") ) } ) (C {(echo)} { (DQ ("MASTER_EXTRA_SANS='") (BracedVarSub token: <VSub_Name MASTER_EXTRA_SANS> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1427 1430] ) ("'") ) } ) (C {(echo)} {(DQ ("ENABLE_CPU_CFS_QUOTA='") (${ VSub_Name ENABLE_CPU_CFS_QUOTA) ("'"))}) (C {(echo)} { (DQ ("NETWORK_PROVIDER='") (BracedVarSub token: <VSub_Name NETWORK_PROVIDER> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1450 1453] ) ("'") ) } ) (C {(echo)} { (DQ ("OPENCONTRAIL_TAG='") (BracedVarSub token: <VSub_Name OPENCONTRAIL_TAG> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1462 1465] ) ("'") ) } ) (C {(echo)} { (DQ ("OPENCONTRAIL_KUBERNETES_TAG='") (BracedVarSub token: <VSub_Name OPENCONTRAIL_KUBERNETES_TAG> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1474 1477] ) ("'") ) } ) (C {(echo)} { (DQ ("OPENCONTRAIL_PUBLIC_SUBNET='") (BracedVarSub token: <VSub_Name OPENCONTRAIL_PUBLIC_SUBNET> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1486 1489] ) ("'") ) } ) (C {(echo)} { (DQ ("E2E_STORAGE_TEST_ENVIRONMENT='") (BracedVarSub token: <VSub_Name E2E_STORAGE_TEST_ENVIRONMENT> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1498 1501] ) ("'") ) } ) (C {(echo)} { (DQ ("CUSTOM_FEDORA_REPOSITORY_URL='") (BracedVarSub token: <VSub_Name CUSTOM_FEDORA_REPOSITORY_URL> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1510 1513] ) ("'") ) } ) (C {(echo)} { (DQ ("EVICTION_HARD='") (BracedVarSub token: <VSub_Name EVICTION_HARD> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1522 1525] ) ("'") ) } ) ] spids: [1020] ) spids: [1014 1019] ) (FuncDef name: verify-cluster body: (BraceGroup children: [ (C {(echo)} {(DQ ("Each machine instance has been created/updated."))}) (C {(echo)} {(DQ (" Now waiting for the Salt provisioning process to complete on each machine."))} ) (C {(echo)} {(DQ (" This can take some time based on your network, disk, and cpu speed."))}) (C {(echo)} { (DQ ( " It is possible for an error to occur during Salt provision of cluster and this could loop forever." ) ) } ) (C {(echo)} {(DQ ("Validating master"))}) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:machine) op: Equal rhs: {(DQ (master))} spids: [1593] ) ] spids: [1591] ) (Assignment keyword: Assign_Local flags: ["'-a'"] pairs: [ (assign_pair lhs: (LhsName name:required_processes) op: Equal rhs: { (ArrayLiteralPart words: [ {(DQ (kube-apiserver))} {(DQ (kube-scheduler))} {(DQ (kube-controller-manager))} {(DQ (kubelet))} {(DQ (docker))} ] ) } spids: [1603] ) ] spids: [1599] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:validated) op:Equal rhs:{(DQ (1))} spids:[1629])] spids: [1627] ) (Until cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$validated"))} right: {(DQ (0))} ) ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:validated) op: Equal rhs: {(DQ (0))} spids: [1655] ) ] spids: [1655] ) (ForEach iter_name: process iter_words: [ { (DQ (BracedVarSub token: <VSub_Name required_processes> bracket_op: (WholeArray op_id:Lit_At) spids: [1668 1673] ) ) } ] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (SimpleCommand words: [ {(vagrant)} {(ssh)} {(DQ (${ VSub_Name machine))} {(-c)} {(DQ ("pgrep -f ") (${ VSub_Name process))} ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [1699] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [1702] ) ] ) (BraceGroup children: [ (C {(printf)} {(DQ (.))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:validated) op: Equal rhs: {(DQ (1))} spids: [1717] ) ] spids: [1717] ) (C {(sleep)} {(2)}) ] spids: [1707] ) ] op_id: Op_DPipe ) ] spids: [1677 1731] ) spids: [1666 1675] ) ] spids: [1652 1734] ) ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[1744])] spids: [1742] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name NODE_NAMES> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [1758 1764] ) } ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (C {(echo)} { (DQ ("Validating ") (BracedVarSub token: <VSub_Name VAGRANT_NODE_NAMES> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [1780 1785] ) ) } ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:machine) op: Equal rhs: { (BracedVarSub token: <VSub_Name VAGRANT_NODE_NAMES> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [1792 1797] ) } spids: [1791] ) ] spids: [1789] ) (Assignment keyword: Assign_Local flags: ["'-a'"] pairs: [ (assign_pair lhs: (LhsName name:required_processes) op: Equal rhs: { (ArrayLiteralPart words: [{(DQ (kube-proxy))} {(DQ (kubelet))} {(DQ (docker))}] ) } spids: [1804] ) ] spids: [1800] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:validated) op: Equal rhs: {(DQ (1))} spids: [1822] ) ] spids: [1820] ) (Until cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name validated))} right: {(DQ (0))} ) ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:validated) op: Equal rhs: {(DQ (0))} spids: [1850] ) ] spids: [1850] ) (ForEach iter_name: process iter_words: [ { (DQ (BracedVarSub token: <VSub_Name required_processes> bracket_op: (WholeArray op_id:Lit_At) spids: [1863 1868] ) ) } ] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (SimpleCommand words: [ {(vagrant)} {(ssh)} {(DQ (${ VSub_Name machine))} {(-c)} {(DQ ("pgrep -f ") (${ VSub_Name process))} ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [1894] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [1897] ) ] ) (BraceGroup children: [ (C {(printf)} {(DQ (.))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:validated) op: Equal rhs: {(DQ (1))} spids: [1912] ) ] spids: [1912] ) (C {(sleep)} {(2)}) ] spids: [1902] ) ] op_id: Op_DPipe ) ] spids: [1872 1926] ) spids: [1861 1870] ) ] spids: [1847 1929] ) ) ] spids: [1773 1932] ) ) (C {(echo)}) (C {(echo)} {(DQ ("Waiting for each node to be registered with cloud provider"))}) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name NODE_NAMES> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [1957 1963] ) } ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:validated) op: Equal rhs: {(DQ (0))} spids: [1977] ) ] spids: [1975] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:start) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(date)} {(Lit_Other "+") (Lit_Other "%") (s)})] ) left_token: <Left_CommandSub "$("> spids: [1985 1991] ) ) } spids: [1983] ) ] spids: [1983] ) (Until cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$validated"))} right: {(DQ (1))} ) ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:now) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(date)} {(Lit_Other "+") (Lit_Other "%") (s)}) ] ) left_token: <Left_CommandSub "$("> spids: [2017 2023] ) ) } spids: [2015] ) ] spids: [2015] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:now) right: (ArithVarRef name:start) ) spids: [2035 2042] ) } {(-gt)} {(180)} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} { (DQ ( "Timeout while waiting for echo node to be registered with cloud provider" ) ) } ) (C {(exit)} {(2)}) ] spids: [-1 2051] ) ] spids: [-1 2066] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:nodes) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(get)} {(nodes)} {(-o)} {(name)} ) ] ) left_token: <Left_CommandSub "$("> spids: [2072 2087] ) } spids: [2071] ) ] spids: [2069] ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:validated) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name "$nodes")}) (C {(grep)} {(-c)} { (DQ (BracedVarSub token: <VSub_Name NODE_NAMES> bracket_op: (ArrayIndex expr: (ArithVarRef name:i) ) spids: [2103 2108] ) ) } ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [2091 2110] ) } spids: [2090] ) ] spids: [2090] ) (BraceGroup children: [ (C {(printf)} {(DQ (.))}) (C {(sleep)} {(2)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:validated) op: Equal rhs: {(DQ (0))} spids: [2129] ) ] spids: [2129] ) ] spids: [2114] ) ] op_id: Op_DPipe ) ] spids: [2012 2138] ) ) ] spids: [1972 2141] ) ) (C {(echo)} {(DQ ("Validating we can run kubectl commands."))}) (AndOr children: [ (C {(vagrant)} {(ssh)} {(master)} {(--command)} {(DQ ("kubectl get pods"))}) (BraceGroup children: [ (C {(echo)} { (DQ ( "WARNING: kubectl to localhost failed. This could mean localhost is not bound to an IP" ) ) } ) ] spids: [2170] ) ] op_id: Op_DPipe ) (Subshell child: (CommandList children: [ (C {(get-kubeconfig-basicauth)}) (C {(get-kubeconfig-bearertoken)}) (C {(echo)}) (C {(echo)} {(DQ ("Kubernetes cluster is running."))}) (C {(echo)}) (C {(echo)} {(DQ ("The master is running at:"))}) (C {(echo)}) (C {(echo)} {(DQ (" https://") (${ VSub_Name MASTER_IP))}) (C {(echo)}) (C {(echo)} {(DQ ("Administer and visualize its resources using Cockpit:"))}) (C {(echo)}) (C {(echo)} {(DQ (" https://") (${ VSub_Name MASTER_IP) (":9090"))}) (C {(echo)}) (C {(echo)} {(DQ ("For more information on Cockpit, visit http://cockpit-project.org"))} ) (C {(echo)}) (C {(echo)} { (DQ ("The user name and password to use is located in ") (${ VSub_Name KUBECONFIG) ) } ) (C {(echo)}) ] ) spids: [2184 2280] ) ] spids: [1536] ) spids: [1532 1535] ) (FuncDef name: kube-up body: (BraceGroup children: [ (C {(load-or-gen-kube-basicauth)}) (C {(load-or-gen-kube-bearertoken)}) (C {(get-tokens)}) (C {(create-provision-scripts)}) (C {(vagrant)} {(up)} {(--no-parallel)}) (C {(export)} {(Lit_VarLike "KUBE_CERT=") (DQ (/tmp/) ($ VSub_Name "$RANDOM") (-kubecfg.crt))} ) (C {(export)} {(Lit_VarLike "KUBE_KEY=") (DQ (/tmp/) ($ VSub_Name "$RANDOM") (-kubecfg.key))} ) (C {(export)} {(Lit_VarLike "CA_CERT=") (DQ (/tmp/) ($ VSub_Name "$RANDOM") (-kubernetes.ca.crt))} ) (C {(export)} {(Lit_VarLike "CONTEXT=") (DQ (vagrant))}) (Subshell child: (CommandList children: [ (C {(umask)} {(077)}) (SimpleCommand words: [ {(vagrant)} {(ssh)} {(master)} {(--)} {(sudo)} {(cat)} {(/srv/kubernetes/kubecfg.crt)} ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ (${ VSub_Name KUBE_CERT))} spids: [2377] ) (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [2384] ) ] ) (SimpleCommand words: [ {(vagrant)} {(ssh)} {(master)} {(--)} {(sudo)} {(cat)} {(/srv/kubernetes/kubecfg.key)} ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ (${ VSub_Name KUBE_KEY))} spids: [2402] ) (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [2409] ) ] ) (SimpleCommand words: [ {(vagrant)} {(ssh)} {(master)} {(--)} {(sudo)} {(cat)} {(/srv/kubernetes/ca.crt)} ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ (${ VSub_Name CA_CERT))} spids: [2427] ) (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [2434] ) ] ) (C {(create-kubeconfig)}) (C {(create-kubeconfig-for-federation)}) ] ) spids: [2355 2450] ) (C {(verify-cluster)}) ] spids: [2292] ) spids: [2288 2291] ) (FuncDef name: kube-down body: (BraceGroup children:[(C {(vagrant)} {(destroy)} {(-f)})] spids:[2466]) spids: [2462 2465] ) (FuncDef name: kube-push body: (BraceGroup children: [ (C {(get-kubeconfig-basicauth)}) (C {(get-kubeconfig-bearertoken)}) (C {(create-provision-scripts)}) (C {(vagrant)} {(provision)}) ] spids: [2485] ) spids: [2481 2484] ) (FuncDef name: test-build-release body: (BraceGroup children: [(C {(DQ (${ VSub_Name KUBE_ROOT) (/build/release.sh))})] spids: [2511] ) spids: [2507 2510] ) (FuncDef name: test-setup body: (BraceGroup children: [ (C {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/kube-up.sh))}) (SimpleCommand words: [{(echo)} {(DQ ("Vagrant test setup complete"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[2552])] ) ] spids: [2535] ) spids: [2531 2534] ) (FuncDef name: test-teardown body: (BraceGroup children:[(C {(kube-down)})] spids:[2565]) spids: [2561 2564] ) (FuncDef name: find-vagrant-name-by-ip body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:ip) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [2585] ) ] spids: [2583] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:ip_pattern) op: Equal rhs: {(DQ (${ VSub_Name NODE_IP_BASE) ("(.*)"))} spids: [2593] ) ] spids: [2591] ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {($ VSub_Name "$ip")} right: {($ VSub_Name "$ip_pattern")} ) ) (BraceGroup children: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [2623] ) ] op_id: Op_DPipe ) (C {(echo)} { (DQ (node-) (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w: { (BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [2640 2645] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2639 2651] ) ) } ) ] spids: [2580] ) spids: [2576 2579] ) (FuncDef name: find-vagrant-name-by-node-name body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:ip) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [2669] ) ] spids: [2667] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$ip"))} right: {(DQ (${ VSub_Name INSTANCE_PREFIX) (-master))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ (master))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_QMark "$?")} ) ] spids: [-1 2695] ) ] spids: [-1 2710] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:ip_pattern) op: Equal rhs: {(DQ (${ VSub_Name INSTANCE_PREFIX) ("-node-(.*)"))} spids: [2715] ) ] spids: [2713] ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {($ VSub_Name "$ip")} right: {($ VSub_Name "$ip_pattern")} ) ) (BraceGroup children: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [2737] ) ] op_id: Op_DPipe ) (C {(echo)} { (DQ (node-) (BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [2753 2758] ) ) } ) ] spids: [2664] ) spids: [2660 2663] ) (FuncDef name: ssh-to-node body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:node) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [2777] ) ] spids: [2775] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:cmd) op: Equal rhs: {(DQ ($ VSub_Number "$2"))} spids: [2785] ) ] spids: [2783] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:machine) op:Equal spids:[2793])] spids: [2791] ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:machine) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(find-vagrant-name-by-ip)} {($ VSub_Name "$node")})] ) left_token: <Left_CommandSub "$("> spids: [2798 2802] ) } spids: [2797] ) ] spids: [2797] ) (C {(true)}) ] op_id: Op_DPipe ) (AndOr children: [ (DBracket expr: (BoolUnary op_id: BoolUnary_n child: { (BracedVarSub token: <VSub_Name machine> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{}) spids: [2813 2816] ) } ) ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:machine) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(find-vagrant-name-by-node-name)} {($ VSub_Name "$node")}) ] ) left_token: <Left_CommandSub "$("> spids: [2823 2827] ) } spids: [2822] ) ] spids: [2822] ) (C {(true)}) ] op_id: Op_DPipe ) ] op_id: Op_DPipe ) (AndOr children: [ (DBracket expr: (BoolUnary op_id: BoolUnary_n child: { (BracedVarSub token: <VSub_Name machine> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{}) spids: [2838 2841] ) } ) ) (BraceGroup children: [ (C {(echo)} {(DQ ("Cannot find machine to ssh to: ") ($ VSub_Number "$1"))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [2847] ) ] op_id: Op_DPipe ) (C {(vagrant)} {(ssh)} {(DQ (${ VSub_Name machine))} {(-c)} {(DQ (${ VSub_Name cmd))}) ] spids: [2772] ) spids: [2768 2771] ) (FuncDef name: prepare-e2e body: (BraceGroup children: [ (SimpleCommand words: [{(echo)} {(DQ ("Vagrant doesn't need special preparations for e2e tests"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[2906])] ) ] spids: [2897] ) spids: [2891 2896] ) (FuncDef name: get-tokens body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBELET_TOKEN) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [ {(dd)} {(Lit_VarLike "if=") (/dev/urandom)} {(Lit_VarLike "bs=") (128)} {(Lit_VarLike "count=") (1)} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [2934] ) ] ) (C {(base64)}) (C {(tr)} {(-d)} {(DQ ("=+/"))}) (SimpleCommand words: [ {(dd)} {(Lit_VarLike "bs=") (32)} {(Lit_VarLike "count=") (1)} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [2961] ) ] ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [2922 2963] ) } spids: [2921] ) ] spids: [2921] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_PROXY_TOKEN) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [ {(dd)} {(Lit_VarLike "if=") (/dev/urandom)} {(Lit_VarLike "bs=") (128)} {(Lit_VarLike "count=") (1)} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [2979] ) ] ) (C {(base64)}) (C {(tr)} {(-d)} {(DQ ("=+/"))}) (SimpleCommand words: [ {(dd)} {(Lit_VarLike "bs=") (32)} {(Lit_VarLike "count=") (1)} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [3006] ) ] ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [2967 3008] ) } spids: [2966] ) ] spids: [2966] ) ] spids: [2918] ) spids: [2912 2917] ) ] )