(CommandList children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [(C {(ping)} {(-c)} {(1)} {(-q)} {(metadata.google.internal)})] negated: True ) terminator: <Op_Amp "&"> ) (Sentence child: (SimpleCommand redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[88])] ) terminator: <Op_Semi ";"> ) ] action: [(AndOr children:[(C {(sudo)} {(-v)})(C {(exit)} {(1)})] op_id:Op_DPipe)] spids: [-1 93] ) ] spids: [-1 106] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FOCUS) op: Equal rhs: { (BracedVarSub token: <VSub_Name FOCUS> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ )}) spids: [119 124] ) } spids: [118] ) ] spids: [118] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SKIP) op: Equal rhs: { (BracedVarSub token: <VSub_Name SKIP> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ )}) spids: [137 142] ) } spids: [136] ) ] spids: [136] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEST_ARGS) op: Equal rhs: { (BracedVarSub token: <VSub_Name TEST_ARGS> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ )}) spids: [152 157] ) } spids: [151] ) ] spids: [151] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REGISTRY) op: Equal rhs: { (BracedVarSub token: <VSub_Name REGISTRY> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(DQ (gcr.io/google_containers))} ) spids: [164 170] ) } spids: [163] ) ] spids: [163] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ARCH) op: Equal rhs: { (BracedVarSub token: <VSub_Name ARCH> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ (amd64))}) spids: [180 186] ) } spids: [179] ) ] spids: [179] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VERSION) op: Equal rhs: { (BracedVarSub token: <VSub_Name VERSION> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ (0.2))}) spids: [193 199] ) } spids: [192] ) ] spids: [192] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBELET_BIN) op: Equal rhs: { (BracedVarSub token: <VSub_Name KUBELET_BIN> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ (kubelet))}) spids: [209 215] ) } spids: [208] ) ] spids: [208] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBELET) op: Equal rhs: { (BracedVarSub token: <VSub_Name KUBELET> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(which)} {($ VSub_Name "$KUBELET_BIN")})] ) left_token: <Left_Backtick "`"> spids: [229 233] ) ) } ) spids: [225 235] ) } spids: [224] ) ] spids: [224] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LOG_DIR) op: Equal rhs: { (BracedVarSub token: <VSub_Name LOG_DIR> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: { (CommandSubPart command_list: (CommandList children:[(C {(pwd)})]) left_token: <Left_Backtick "`"> spids: [248 250] ) } ) spids: [245 251] ) } spids: [244] ) ] spids: [244] ) (C {(mkdir)} {(-p)} {($ VSub_Name "$LOG_DIR")}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NETWORK_PLUGIN) op: Equal rhs: { (BracedVarSub token: <VSub_Name NETWORK_PLUGIN> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ )}) spids: [267 272] ) } spids: [266] ) ] spids: [266] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CNI_CONF_DIR) op: Equal rhs: { (BracedVarSub token: <VSub_Name CNI_CONF_DIR> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ )}) spids: [279 284] ) } spids: [278] ) ] spids: [278] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CNI_BIN_DIR) op: Equal rhs: { (BracedVarSub token: <VSub_Name CNI_BIN_DIR> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ )}) spids: [291 296] ) } spids: [290] ) ] spids: [290] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBELET_KUBECONFIG) op: Equal rhs: { (BracedVarSub token: <VSub_Name KUBELET_KUBECONFIG> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(DQ (/var/lib/kubelet/kubeconfig))} ) spids: [303 309] ) } spids: [302] ) ] spids: [302] ) (FuncDef name: create-kubelet-kubeconfig body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:api_addr) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [329] ) ] spids: [327] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:dest) op: Equal rhs: {(DQ (${ VSub_Number 2))} spids: [339] ) ] spids: [337] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:dest_dir) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ (${ VSub_Name dest))})] ) left_token: <Left_CommandSub "$("> spids: [351 359] ) ) } spids: [349] ) ] spids: [347] ) (Sentence child: (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name dest_dir))}) terminator: <Op_Amp "&"> ) (AndOr children: [ (SimpleCommand redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[374])] ) (C {(sudo)} {(mkdir)} {(-p)} {(DQ (${ VSub_Name dest_dir))}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sudo) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (AndOr children: [ (C {(test)} {(-w)} {(DQ (${ VSub_Name dest_dir))}) (C {(echo)} {(DQ ("sudo -E"))}) ] op_id: Op_DPipe ) ] ) left_token: <Left_CommandSub "$("> spids: [393 411] ) } spids: [392] ) ] spids: [392] ) (Pipeline children: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("apiVersion: v1\n") ("kind: Config\n") ("clusters:\n") (" - cluster:\n") (" server: ") (${ VSub_Name api_addr) ("\n") (" name: local\n") ("contexts:\n") (" - context:\n") (" cluster: local\n") (" name: local\n") ("current-context: local\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [416] ) ] ) (SimpleCommand words: [{(${ VSub_Name sudo)} {(tee)} {(DQ (${ VSub_Name dest))}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[433])] ) ] negated: False ) ] spids: [324] ) spids: [318 323] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:kubelet_log) op:Equal rhs:{(kubelet.log)} spids:[458])] spids: [458] ) (FuncDef name: start_kubelet body: (BraceGroup children: [ (C {(echo)} {(DQ ("Creating kubelet.kubeconfig"))}) (C {(create-kubelet-kubeconfig)} {(DQ ("http://localhost:8080"))} {($ VSub_Name "$KUBELET_KUBECONFIG")} ) (C {(echo)} {(DQ ("Starting kubelet..."))}) (Sentence child: (C {(sudo)} {(-b)} {($ VSub_Name "$KUBELET")} {($ VSub_At "$@")}) terminator: <Op_Amp "&"> ) (SimpleCommand redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$LOG_DIR") (/) ($ VSub_Name "$kubelet_log")} spids: [500] ) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {($ VSub_QMark "$?")} {(-ne)} {(0)} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(DQ ("Failed to start kubelet"))}) (C {(exit)} {(1)})] spids: [-1 519] ) ] spids: [-1 534] ) ] spids: [465] ) spids: [461 464] ) (FuncDef name: wait_kubelet body: (BraceGroup children: [ (C {(echo)} {(DQ ("Health checking kubelet..."))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:healthCheckURL) op: Equal rhs: {(http) (Lit_Other ":") (//127.0.0.1) (Lit_Other ":") (10255/healthz)} spids: [556] ) ] spids: [556] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:maxRetry) op:Equal rhs:{(10)} spids:[566])] spids: [564] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:cur) op:Equal rhs:{(1)} spids:[572])] spids: [570] ) (While cond: [ (Sentence child: (C {(Lit_Other "[")} {($ VSub_Name "$cur")} {(-le)} {($ VSub_Name "$maxRetry")} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (SimpleCommand words: [{(curl)} {(-s)} {($ VSub_Name "$healthCheckURL")}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[598])] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {($ VSub_QMark "$?")} {(-eq)} {(0)} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("Kubelet is ready"))}) (ControlFlow token:<ControlFlow_Break break>) ] spids: [-1 616] ) ] spids: [-1 629] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {($ VSub_Name "$cur")} {(-eq)} {($ VSub_Name "$maxRetry")} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("Health check exceeds max retry"))}) (C {(exit)} {(1)}) ] spids: [-1 645] ) ] spids: [-1 660] ) (C {(echo)} {(DQ ("Kubelet is not ready"))}) (C {(sleep)} {(1)}) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:cur)) ) ] spids: [589 682] ) ) ] spids: [546] ) spids: [542 545] ) (FuncDef name: kill_kubelet body: (BraceGroup children: [ (C {(echo)} {(DQ ("Stopping kubelet..."))}) (C {(sudo)} {(pkill)} {($ VSub_Name "$KUBELET_BIN")}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {($ VSub_QMark "$?")} {(-ne)} {(0)} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(DQ ("Failed to stop kubelet."))}) (C {(exit)} {(1)})] spids: [-1 724] ) ] spids: [-1 739] ) ] spids: [694] ) spids: [690 693] ) (FuncDef name: run_test body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:env) op:Equal rhs:{(DQ )} spids:[754])] spids: [754] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(KW_Bang "!")} {(-z)} {(DQ ($ VSub_Name "$FOCUS"))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:env) op: Equal rhs: { (DQ ($ VSub_Name "$env") (" -e FOCUS=") (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) ($ VSub_Name "$FOCUS") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ) } spids: [777] ) ] spids: [777] ) ] spids: [-1 774] ) ] spids: [-1 787] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(KW_Bang "!")} {(-z)} {(DQ ($ VSub_Name "$SKIP"))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:env) op: Equal rhs: { (DQ ($ VSub_Name "$env") (" -e SKIP=") (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) ($ VSub_Name "$SKIP") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ) } spids: [808] ) ] spids: [808] ) ] spids: [-1 805] ) ] spids: [-1 818] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(KW_Bang "!")} {(-z)} {(DQ ($ VSub_Name "$TEST_ARGS"))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:env) op: Equal rhs: { (DQ ($ VSub_Name "$env") (" -e TEST_ARGS=") (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) ($ VSub_Name "$TEST_ARGS") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ) } spids: [839] ) ] spids: [839] ) ] spids: [-1 836] ) ] spids: [-1 849] ) (C {(sudo)} {(sh)} {(-c)} { (DQ ("docker run -it --rm --privileged=true --net=host -v /:/rootfs ") (" -v ") ($ VSub_Name "$config_dir") (":") ($ VSub_Name "$config_dir") (" -v ") ($ VSub_Name "$LOG_DIR") (":/var/result ") (${ VSub_Name env) (" ") ($ VSub_Name "$REGISTRY") (/node-test-) ($ VSub_Name "$ARCH") (":") ($ VSub_Name "$VERSION") ) } ) ] spids: [751] ) spids: [747 750] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pid) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(pidof)} {($ VSub_Name "$KUBELET_BIN")})]) left_token: <Left_Backtick "`"> spids: [905 909] ) } spids: [904] ) ] spids: [904] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(KW_Bang "!")} {(-z)} {($ VSub_Name "$pid")} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} { (DQ ("Kubelet is running (pid=") ($ VSub_Name "$pid") ("), please stop it before running the test.") ) } ) (C {(exit)} {(1)}) ] spids: [-1 924] ) ] spids: [-1 940] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:volume_stats_agg_period) op: Equal rhs: {(10s)} spids: [943] ) ] spids: [943] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:allow_privileged) op:Equal rhs:{(true)} spids:[946])] spids: [946] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:serialize_image_pulls) op: Equal rhs: {(false)} spids: [949] ) ] spids: [949] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:config_dir) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(mktemp)} {(-d)})]) left_token: <Left_Backtick "`"> spids: [953 957] ) } spids: [952] ) ] spids: [952] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:file_check_frequency) op:Equal rhs:{(10s)} spids:[959])] spids: [959] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pod_cidr) op:Equal rhs:{(10.100.0.0/24)} spids:[962])] spids: [962] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:log_level) op:Equal rhs:{(4)} spids:[965])] spids: [965] ) (C {(start_kubelet)} {(--kubeconfig)} {(DQ (${ VSub_Name KUBELET_KUBECONFIG_DIR) (/kubelet.kubeconfig))} {(--volume-stats-agg-period)} {($ VSub_Name "$volume_stats_agg_period")} {(--allow-privileged) (Lit_Other "=") ($ VSub_Name "$allow_privileged")} {(--serialize-image-pulls) (Lit_Other "=") ($ VSub_Name "$serialize_image_pulls")} {(--pod-manifest-path)} {($ VSub_Name "$config_dir")} {(--file-check-frequency)} {($ VSub_Name "$file_check_frequency")} {(--pod-cidr) (Lit_Other "=") ($ VSub_Name "$pod_cidr")} {(--runtime-cgroups) (Lit_Other "=") (/docker-daemon)} {(--kubelet-cgroups) (Lit_Other "=") (/kubelet)} {(--system-cgroups) (Lit_Other "=") (/system)} {(--cgroup-root) (Lit_Other "=") (/)} {(--network-plugin) (Lit_Other "=") ($ VSub_Name "$NETWORK_PLUGIN")} {(--cni-conf-dir) (Lit_Other "=") ($ VSub_Name "$CNI_CONF_DIR")} {(--cni-bin-dir) (Lit_Other "=") ($ VSub_Name "$CNI_BIN_DIR")} {(--v) (Lit_Other "=") ($ VSub_Name "$log_level")} {(--logtostderr)} ) (C {(wait_kubelet)}) (C {(run_test)}) (C {(kill_kubelet)}) (C {(sudo)} {(rm)} {(-rf)} {($ VSub_Name "$config_dir")}) ] )