(List (= scope= flags=0 words=[] bindings=[('ETCD_VERSION', {[VarSub ETCD_VERSION test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 3.0.13]}]})]) (= scope= flags=0 words=[] bindings=[('ETCD_HOST', {[VarSub ETCD_HOST test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 127.0.0.1]}]})]) (= scope= flags=0 words=[] bindings=[('ETCD_PORT', {[VarSub ETCD_PORT test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 2379]}]})]) (FunctionDef kube::etcd::start [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS which]} {[LIT_CHARS etcd]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (List (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS usage]} {[DQ [LIT_CHARS "etcd must be in your PATH"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (If (Com {[LIT_CHARS pgrep]} {[LIT_CHARS etcd]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (List (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS usage]} {[DQ [LIT_CHARS "etcd appears to already be running on this machine ("][ComSub (Com {[LIT_CHARS pgrep]} {[LIT_CHARS -l]} {[LIT_CHARS etcd]})][LIT_CHARS ") (or its a zombie and you need to kill its parent)."]]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS usage]} {[DQ [LIT_CHARS "retry after you resolve this etcd error."]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('version', {[ComSub (Pipeline (Com {[LIT_CHARS etcd]} {[LIT_CHARS --version]}) (Com {[LIT_CHARS head]} {[LIT_CHARS -n]} {[LIT_CHARS 1]}) (Com {[LIT_CHARS cut]} {[LIT_CHARS -d]} {[DQ [LIT_CHARS " "]]} {[LIT_CHARS -f]} {[LIT_CHARS 3]}) )]})]) (If (DBracket {B2 BINARY_STRING_LESS {[DQ [VarSub version]]} {[DQ [VarSub ETCD_VERSION]]}}) (List (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS usage]} {[DQ [LIT_CHARS "etcd version "][VarSub ETCD_VERSION][LIT_CHARS " or greater required."]]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS info]} {[DQ [LIT_CHARS "You can use 'hack/install-etcd.sh' to install a copy in third_party/."]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('ETCD_DIR', {[VarSub ETCD_DIR test_op=VS_TEST_COLON_HYPHEN {[ComSub (AndOr OP_OR_IF (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS mktemp]} {[LIT_CHARS -d]}) (Com {[LIT_CHARS mktemp]} {[LIT_CHARS -d]} {[LIT_CHARS -t]} {[LIT_CHARS test-etcd.XXXXXX]}) )]}]})]) (If (DBracket {B1 UNARY_FILE_d {[DQ [VarSub ARTIFACTS_DIR test_op=VS_TEST_COLON_HYPHEN {}]]}}) (= scope= flags=0 words=[] bindings=[('ETCD_LOGFILE', {[DQ [VarSub ARTIFACTS_DIR][LIT_CHARS /etcd.][ComSub (Com {[LIT_CHARS uname]} {[LIT_CHARS -n]})][LIT_CHARS .][ComSub (Com {[LIT_CHARS id]} {[LIT_CHARS -un]})][LIT_CHARS .log.DEBUG.][ComSub (Com {[LIT_CHARS date]} {[LIT_OTHER "+"] [LIT_OTHER "%"] [LIT_CHARS Y] [LIT_OTHER "%"] [LIT_CHARS m] [LIT_OTHER "%"] [LIT_CHARS d-] [LIT_OTHER "%"] [LIT_CHARS H] [LIT_OTHER "%"] [LIT_CHARS M] [LIT_OTHER "%"] [LIT_CHARS S]})][LIT_CHARS .][VarSub $]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('ETCD_LOGFILE', {[LIT_CHARS /dev/null]})]) ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS info]} {[DQ [LIT_CHARS "etcd --advertise-client-urls http://"][VarSub ETCD_HOST][LIT_CHARS ":"][VarSub ETCD_PORT][LIT_CHARS " --data-dir "][VarSub ETCD_DIR][LIT_CHARS " --listen-client-urls http://"][VarSub ETCD_HOST][LIT_CHARS ":"][VarSub ETCD_PORT][LIT_CHARS " --debug > "][\ LIT_ESCAPED_CHAR "\\\""][VarSub ETCD_LOGFILE][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " 2>/dev/null"]]} ) (Fork (Com {[LIT_CHARS etcd]} {[LIT_CHARS --advertise-client-urls]} {[LIT_CHARS http] [LIT_OTHER ":"] [LIT_CHARS //] [VarSub ETCD_HOST] [LIT_OTHER ":"] [VarSub ETCD_PORT]} {[LIT_CHARS --data-dir]} {[VarSub ETCD_DIR]} {[LIT_CHARS --listen-client-urls]} {[LIT_CHARS http] [LIT_OTHER ":"] [LIT_CHARS //] [VarSub ETCD_HOST] [LIT_OTHER ":"] [VarSub ETCD_PORT]} {[LIT_CHARS --debug]} < (FilenameRedirectNode filename={[DQ [VarSub ETCD_LOGFILE]]} "> 2), (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (= scope= flags=0 words=[] bindings=[('ETCD_PID', {[VarSub !]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Waiting for etcd to come up."]]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS util] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS wait_for_url]} {[DQ [LIT_CHARS "http://"][VarSub ETCD_HOST][LIT_CHARS ":"][VarSub ETCD_PORT][LIT_CHARS /v2/machines]]} {[DQ [LIT_CHARS "etcd: "]]} {[LIT_CHARS 0.25]} {[LIT_CHARS 80]} ) (Com {[LIT_CHARS curl]} {[LIT_CHARS -fs]} {[LIT_CHARS -X]} {[LIT_CHARS PUT]} {[DQ [LIT_CHARS "http://"][VarSub ETCD_HOST][LIT_CHARS ":"][VarSub ETCD_PORT][LIT_CHARS /v2/keys/_test]]} ) ) ) (FunctionDef kube::etcd::stop [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS kill]} {[DQ [VarSub ETCD_PID test_op=VS_TEST_HYPHEN {}]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (Com {[LIT_OTHER ":"]} ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS wait]} {[DQ [VarSub ETCD_PID test_op=VS_TEST_HYPHEN {}]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (Com {[LIT_OTHER ":"]} ) ) ) ) (FunctionDef kube::etcd::clean_etcd_dir [] (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub ETCD_DIR test_op=VS_TEST_HYPHEN {}]]} ) ) (FunctionDef kube::etcd::cleanup [] (List (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS etcd] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS stop]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS etcd] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS clean_etcd_dir]} ) ) ) (FunctionDef kube::etcd::install [] (Subshell (List (Com {[LIT_CHARS cd]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /third_party]]} ) (If (DBracket {B2 BINARY_STRING_EQUAL {[ComSub (Com {[LIT_CHARS uname]})]} {[DQ [LIT_CHARS Darwin]]}}) (List (= scope= flags=0 words=[] bindings=[('download_file', {[DQ [LIT_CHARS etcd-v][VarSub ETCD_VERSION][LIT_CHARS -darwin-amd64.zip]]})]) (= scope= flags=0 words=[] bindings=[('url', {[DQ [LIT_CHARS "https://github.com/coreos/etcd/releases/download/v"][VarSub ETCD_VERSION][LIT_CHARS /][VarSub download_file]]})]) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS util] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS download_file]} {[DQ [VarSub url]]} {[DQ [VarSub download_file]]} ) (Com {[LIT_CHARS unzip]} {[LIT_CHARS -o]} {[DQ [VarSub download_file]]} ) (Com {[LIT_CHARS ln]} {[LIT_CHARS -fns]} {[DQ [LIT_CHARS etcd-v][VarSub ETCD_VERSION][LIT_CHARS -darwin-amd64]]} {[LIT_CHARS etcd]} ) (Com {[LIT_CHARS rm]} {[DQ [VarSub download_file]]} ) ) (ElseTrue) (List (= scope= flags=0 words=[] bindings=[('url', {[DQ [LIT_CHARS "https://github.com/coreos/etcd/releases/download/v"][VarSub ETCD_VERSION][LIT_CHARS /etcd-v][VarSub ETCD_VERSION][LIT_CHARS -linux-amd64.tar.gz]]})]) (= scope= flags=0 words=[] bindings=[('download_file', {[DQ [LIT_CHARS etcd-v][VarSub ETCD_VERSION][LIT_CHARS -linux-amd64.tar.gz]]})]) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS util] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS download_file]} {[DQ [VarSub url]]} {[DQ [VarSub download_file]]} ) (Com {[LIT_CHARS tar]} {[LIT_CHARS xzf]} {[DQ [VarSub download_file]]} ) (Com {[LIT_CHARS ln]} {[LIT_CHARS -fns]} {[DQ [LIT_CHARS etcd-v][VarSub ETCD_VERSION][LIT_CHARS -linux-amd64]]} {[LIT_CHARS etcd]} ) ) ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS info]} {[DQ [LIT_CHARS "etcd v"][VarSub ETCD_VERSION][LIT_CHARS " installed. To use:"]]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS info]} {[DQ [LIT_CHARS "export PATH="][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "{PATH}:"][ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS /etcd]]} ) ) ) ) )