(List (= scope= flags=0 words=[] bindings=[('KUBE_PROMPT_FOR_UPDATE', {[LIT_CHARS y]})]) (= scope= flags=0 words=[] bindings=[('KUBE_SKIP_UPDATE', {[VarSub KUBE_SKIP_UPDATE test_op=VS_TEST_HYPHEN {[DQ [LIT_CHARS n]]}]})]) (= scope= flags=0 words=[] bindings=[('KUBE_ROOT', {[ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub BASH_SOURCE]]})] [LIT_CHARS /../..]})]) (Com {[LIT_CHARS source]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/gke/][VarSub KUBE_CONFIG_FILE test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS config-default.sh]}]]} ) (Com {[LIT_CHARS source]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/common.sh]]} ) (Com {[LIT_CHARS source]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/lib/util.sh]]} ) (FunctionDef prepare-e2e [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "... in gke:prepare-e2e()"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub GCLOUD test_op=VS_TEST_COLON_HYPHEN {}]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "GCLOUD environment variable is not set. It should be your gcloud binary. "]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "A sane default is probably "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS " export GCLOUD=gcloud"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) ) (FunctionDef detect-project [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "... in gke:detect-project()"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub PROJECT test_op=VS_TEST_COLON_HYPHEN {}]]}}) (List (= scope= flags=1 words=[] bindings=[('PROJECT', {[ComSub (Com {[DQ [VarSub GCLOUD]]} {[LIT_CHARS config]} {[LIT_CHARS list]} {[LIT_CHARS project]} {[LIT_CHARS --format]} {[SQ ]})]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "... Using project: "][VarSub PROJECT]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) ) ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub PROJECT test_op=VS_TEST_COLON_HYPHEN {}]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Could not detect Google Cloud Platform project. Set the default project using "]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "'gcloud config set project '"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) ) (FunctionDef test-build-release [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "... in gke:test-build-release()"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[DQ [VarSub KUBE_ROOT][LIT_CHARS /build-tools/release.sh]]} ) ) ) (FunctionDef verify-prereqs [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "... in gke:verify-prereqs()"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (If (Pipeline! (Com {[LIT_CHARS which]} {[LIT_CHARS gcloud]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (= scope= flags=0 words=[{[LIT_CHARS resp]}] bindings=[]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub KUBE_PROMPT_FOR_UPDATE]]} {[DQ [LIT_CHARS y]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Can't find gcloud in PATH. Do you wish to install the Google Cloud SDK? [Y/n]"]]} ) (Com {[LIT_CHARS read]} {[LIT_CHARS resp]} ) ) (ElseTrue) (= scope= flags=0 words=[] bindings=[('resp', {[DQ [LIT_CHARS y]]})]) ) (If (DBracket {B? LOGICAL_BINARY_AND {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub resp]]} {[DQ [LIT_CHARS n]]}} {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub resp]]} {[DQ [LIT_CHARS N]]}}}) (Pipeline (Com {[LIT_CHARS curl]} {[LIT_CHARS https] [LIT_OTHER ":"] [LIT_CHARS //sdk.cloud.google.com]} ) (Com {[LIT_CHARS bash]} ) ) ) (If (Pipeline! (Com {[LIT_CHARS which]} {[LIT_CHARS gcloud]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Can't find gcloud in PATH, please fix and retry. The Google Cloud "]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "SDK can be downloaded from https://cloud.google.com/sdk/."]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub KUBE_SKIP_UPDATE]]} {[DQ [LIT_CHARS y]]}}) (Com {[LIT_CHARS return]} ) ) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub KUBE_PROMPT_FOR_UPDATE]]} {[DQ [LIT_CHARS y]]}}) (= scope= flags=0 words=[] bindings=[('gcloud_prompt', {[DQ [LIT_CHARS -q]]})]) ) (= scope= flags=0 words=[] bindings=[('sudo_prefix', {[DQ ]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -w]} {[ComSub (Com {[LIT_CHARS dirname]} {[ComSub (Com {[LIT_CHARS which]} {[LIT_CHARS gcloud]})]})]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('sudo_prefix', {[DQ [LIT_CHARS sudo]]})]) ) (AndOr OP_OR_IF (Com {[VarSub sudo_prefix]} {[LIT_CHARS gcloud]} {[VarSub gcloud_prompt test_op=VS_TEST_COLON_HYPHEN {}]} {[LIT_CHARS components]} {[LIT_CHARS install]} {[LIT_CHARS alpha]} ) (Com {[LIT_CHARS true]} ) ) (AndOr OP_OR_IF (Com {[VarSub sudo_prefix]} {[LIT_CHARS gcloud]} {[VarSub gcloud_prompt test_op=VS_TEST_COLON_HYPHEN {}]} {[LIT_CHARS components]} {[LIT_CHARS install]} {[LIT_CHARS beta]} ) (Com {[LIT_CHARS true]} ) ) (AndOr OP_OR_IF (Com {[VarSub sudo_prefix]} {[LIT_CHARS gcloud]} {[VarSub gcloud_prompt test_op=VS_TEST_COLON_HYPHEN {}]} {[LIT_CHARS components]} {[LIT_CHARS install]} {[LIT_CHARS kubectl]} ) (Com {[LIT_CHARS true]} ) ) (AndOr OP_OR_IF (Com {[VarSub sudo_prefix]} {[LIT_CHARS gcloud]} {[VarSub gcloud_prompt test_op=VS_TEST_COLON_HYPHEN {}]} {[LIT_CHARS components]} {[LIT_CHARS update]} ) (Com {[LIT_CHARS true]} ) ) ) ) (FunctionDef validate-cluster [] (List (= scope= flags=0 words=[] bindings=[('EXPECTED_NUM_NODES', {[DQ [VarSub NUM_NODES]]})]) (For zone [{[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ADDITIONAL_ZONES]]}) (Com {[LIT_CHARS sed]} {[DQ [LIT_CHARS "s/,/ /g"]]}) )]}]) (DParen {A2 AS_OP_PLUS_EQUAL {A Atom NODE_ARITH_WORD {[VarSub EXPECTED_NUM_NODES]}} {A Atom NODE_ARITH_WORD {[VarSub NUM_NODES]}}}) ) (Com {[LIT_CHARS bash]} {[LIT_CHARS -c]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/validate-cluster.sh]]} more_env=[('NUM_NODES', {[VarSub EXPECTED_NUM_NODES]})] ) ) ) (FunctionDef kube-up [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "... in gke:kube-up()"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS detect-project]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (If (List (Fork (Pipeline! (Com {[DQ [VarSub GCLOUD]]} {[LIT_CHARS compute]} {[LIT_CHARS networks]} {[LIT_CHARS --project]} {[DQ [VarSub PROJECT]]} {[LIT_CHARS describe]} {[DQ [VarSub NETWORK]]} ) ) ) (Com < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Creating new network: "][VarSub NETWORK]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[DQ [VarSub GCLOUD]]} {[LIT_CHARS compute]} {[LIT_CHARS networks]} {[LIT_CHARS create]} {[DQ [VarSub NETWORK]]} {[LIT_CHARS --project] [LIT_DBRACKET_LIKE "="] [DQ [VarSub PROJECT]]} {[LIT_CHARS --range]} {[DQ [VarSub NETWORK_RANGE]]} ) ) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "... Using network: "][VarSub NETWORK]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) ) (If (List (Fork (Pipeline! (Com {[DQ [VarSub GCLOUD]]} {[LIT_CHARS compute]} {[LIT_CHARS firewall-rules]} {[LIT_CHARS --project]} {[DQ [VarSub PROJECT]]} {[LIT_CHARS describe]} {[DQ [VarSub FIREWALL_SSH]]} ) ) ) (Com < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Creating new firewall for SSH: "][VarSub FIREWALL_SSH]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[DQ [VarSub GCLOUD]]} {[LIT_CHARS compute]} {[LIT_CHARS firewall-rules]} {[LIT_CHARS create]} {[DQ [VarSub FIREWALL_SSH]]} {[LIT_CHARS --allow] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS "tcp:22"]]} {[LIT_CHARS --network] [LIT_DBRACKET_LIKE "="] [DQ [VarSub NETWORK]]} {[LIT_CHARS --project] [LIT_DBRACKET_LIKE "="] [DQ [VarSub PROJECT]]} {[LIT_CHARS --source-ranges] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS 0.0.0.0/0]]} ) ) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "... Using firewall-rule: "][VarSub FIREWALL_SSH]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) ) (= scope= flags=0 words=[] bindings=[('shared_args', {[Array {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--zone="][VarSub ZONE]]} {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--project="][VarSub PROJECT]]} {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--scopes="][VarSub NODE_SCOPES]]} {OP_NEWLINE "\n"}]})]) (If (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub IMAGE_TYPE test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (= scope= flags=0 words=[] bindings=[('shared_args+', {[Array {[DQ [LIT_CHARS "--image-type="][VarSub IMAGE_TYPE]]}]})]) ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub HEAPSTER_MACHINE_TYPE test_op=VS_TEST_COLON_HYPHEN {}]]}}) (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('nodes', {[DQ [VarSub NUM_NODES]]})]) (ElseTrue) (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('nodes', {[ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub NUM_NODES]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) ) (= scope= flags=0 words=[] bindings=[('create_args', {[Array {OP_NEWLINE "\n"} {[VarSub shared_args bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]} {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--num-nodes="][VarSub nodes]]} {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--network="][VarSub NETWORK]]} {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--cluster-version="][VarSub CLUSTER_API_VERSION]]} {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--machine-type="][VarSub MACHINE_TYPE]]} {OP_NEWLINE "\n"}]})]) (If (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub ADDITIONAL_ZONES test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (= scope= flags=0 words=[] bindings=[('create_args+', {[Array {[DQ [LIT_CHARS "--additional-zones="][VarSub ADDITIONAL_ZONES]]}]})]) ) (If (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub CLUSTER_IP_RANGE test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (= scope= flags=0 words=[] bindings=[('create_args+', {[Array {[DQ [LIT_CHARS "--cluster-ipv4-cidr="][VarSub CLUSTER_IP_RANGE]]}]})]) ) (= scope= flags=0 words=[] bindings=[('create_args+', {[Array {[VarSub GKE_CREATE_FLAGS test_op=VS_TEST_COLON_HYPHEN {}]}]})]) (Com {[DQ [VarSub GCLOUD]]} {[VarSub CMD_GROUP test_op=VS_TEST_COLON_HYPHEN {}]} {[LIT_CHARS container]} {[LIT_CHARS clusters]} {[LIT_CHARS create]} {[DQ [VarSub CLUSTER_NAME]]} {[DQ [VarSub create_args bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} ) (Com {[LIT_CHARS create-kubeconfig-for-federation]} ) (If (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub HEAPSTER_MACHINE_TYPE test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (Com {[DQ [VarSub GCLOUD]]} {[VarSub CMD_GROUP test_op=VS_TEST_COLON_HYPHEN {}]} {[LIT_CHARS container]} {[LIT_CHARS node-pools]} {[LIT_CHARS create]} {[DQ [LIT_CHARS heapster-pool]]} {[LIT_CHARS --cluster]} {[DQ [VarSub CLUSTER_NAME]]} {[LIT_CHARS --num-nodes] [LIT_DBRACKET_LIKE "="] [LIT_CHARS 1]} {[LIT_CHARS --machine-type] [LIT_DBRACKET_LIKE "="] [DQ [VarSub HEAPSTER_MACHINE_TYPE]]} {[DQ [VarSub shared_args bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} ) ) ) ) (FunctionDef test-setup [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "... in gke:test-setup()"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS detect-project]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kube-up.sh]]} ) (Com {[LIT_CHARS detect-nodes]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (= scope= flags=0 words=[] bindings=[('NODE_TAG', {[ComSub (Pipeline (Com {[VarSub GCLOUD]} {[LIT_CHARS compute]} {[LIT_CHARS instances]} {[LIT_CHARS describe]} {[VarSub NODE_NAMES bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})]} {[LIT_CHARS --project] [LIT_DBRACKET_LIKE "="] [DQ [VarSub PROJECT]]} {[LIT_CHARS --zone] [LIT_DBRACKET_LIKE "="] [DQ [VarSub ZONE]]} {[LIT_CHARS --format] [LIT_DBRACKET_LIKE "="] [SQ ]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -o]} {[DQ [LIT_CHARS gke-][VarSub CLUSTER_NAME][LIT_CHARS -.][\ LIT_ESCAPED_CHAR "\\{"][LIT_CHARS 8][\ LIT_ESCAPED_CHAR "\\}"][LIT_CHARS -node]]}) )]})]) (= scope= flags=0 words=[] bindings=[('OLD_NODE_TAG', {[DQ [LIT_CHARS k8s-][VarSub CLUSTER_NAME][LIT_CHARS -node]]})]) (Fork (Com {[DQ [VarSub GCLOUD]]} {[LIT_CHARS compute]} {[LIT_CHARS firewall-rules]} {[LIT_CHARS create]} {[DQ [VarSub CLUSTER_NAME][LIT_CHARS -http-alt]]} {[LIT_CHARS --allow]} {[LIT_CHARS tcp] [LIT_OTHER ":"] [LIT_CHARS 80] [LIT_COMMA ","] [LIT_CHARS tcp] [LIT_OTHER ":"] [LIT_CHARS 8080]} {[LIT_CHARS --project]} {[DQ [VarSub PROJECT]]} {[LIT_CHARS --target-tags]} {[DQ [VarSub NODE_TAG][LIT_CHARS ","][VarSub OLD_NODE_TAG]]} {[LIT_CHARS --network] [LIT_DBRACKET_LIKE "="] [DQ [VarSub NETWORK]]} ) ) (Fork (Com {[DQ [VarSub GCLOUD]]} {[LIT_CHARS compute]} {[LIT_CHARS firewall-rules]} {[LIT_CHARS create]} {[DQ [VarSub CLUSTER_NAME][LIT_CHARS -nodeports]]} {[LIT_CHARS --allow]} {[LIT_CHARS tcp] [LIT_OTHER ":"] [LIT_CHARS 30000-32767] [LIT_COMMA ","] [LIT_CHARS udp] [LIT_OTHER ":"] [LIT_CHARS 30000-32767]} {[LIT_CHARS --project]} {[DQ [VarSub PROJECT]]} {[LIT_CHARS --target-tags]} {[DQ [VarSub NODE_TAG][LIT_CHARS ","][VarSub OLD_NODE_TAG]]} {[LIT_CHARS --network] [LIT_DBRACKET_LIKE "="] [DQ [VarSub NETWORK]]} ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS util] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS wait-for-jobs]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "... gke:test-setup(): Could not create firewall"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]} ) ) ) ) ) (FunctionDef detect-master [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "... in gke:detect-master()"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS detect-project]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (= scope= flags=0 words=[] bindings=[('KUBE_MASTER_IP', {[ComSub (Com {[DQ [VarSub GCLOUD]]} {[VarSub CMD_GROUP test_op=VS_TEST_COLON_HYPHEN {}]} {[LIT_CHARS container]} {[LIT_CHARS clusters]} {[LIT_CHARS describe]} {[LIT_CHARS --project] [LIT_DBRACKET_LIKE "="] [DQ [VarSub PROJECT]]} {[LIT_CHARS --zone] [LIT_DBRACKET_LIKE "="] [DQ [VarSub ZONE]]} {[LIT_CHARS --format] [LIT_DBRACKET_LIKE "="] [SQ ]} {[DQ [VarSub CLUSTER_NAME]]})]})]) ) ) (FunctionDef detect-nodes [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "... in gke:detect-nodes()"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS detect-node-names]} ) ) ) (FunctionDef detect-node-names [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "... in gke:detect-node-names()"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS detect-project]} ) (Com {[LIT_CHARS detect-node-instance-groups]} ) (= scope= flags=0 words=[] bindings=[('NODE_NAMES', {[Array ]})]) (For group [{[DQ [VarSub NODE_INSTANCE_GROUPS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) test_op=VS_TEST_COLON_HYPHEN {}]]}]) (= scope= flags=0 words=[] bindings=[('NODE_NAMES+', {[Array {[ComSub (Com {[LIT_CHARS gcloud]} {[LIT_CHARS compute]} {[LIT_CHARS instance-groups]} {[LIT_CHARS managed]} {[LIT_CHARS list-instances]} {[DQ [VarSub group]]} {[LIT_CHARS --zone]} {[DQ [VarSub ZONE]]} {[LIT_CHARS --project]} {[DQ [VarSub PROJECT]]} {[LIT_CHARS --format] [LIT_DBRACKET_LIKE "="] [SQ ]})]}]})]) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "NODE_NAMES="][VarSub NODE_NAMES bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_STAR "*"}}) test_op=VS_TEST_COLON_HYPHEN {}]]} ) ) ) (FunctionDef detect-node-instance-groups [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "... in gke:detect-node-instance-groups()"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (= scope= flags=0 words=[] bindings=[('urls', {[ComSub (Com {[DQ [VarSub GCLOUD]]} {[VarSub CMD_GROUP test_op=VS_TEST_COLON_HYPHEN {}]} {[LIT_CHARS container]} {[LIT_CHARS clusters]} {[LIT_CHARS describe]} {[LIT_CHARS --project] [LIT_DBRACKET_LIKE "="] [DQ [VarSub PROJECT]]} {[LIT_CHARS --zone] [LIT_DBRACKET_LIKE "="] [DQ [VarSub ZONE]]} {[LIT_CHARS --format] [LIT_DBRACKET_LIKE "="] [SQ ]} {[DQ [VarSub CLUSTER_NAME]]})]})]) (= scope= flags=0 words=[] bindings=[('urls', {[Array {[VarSub urls transform_ops=[PatSub {[LIT_CHARS ";"]} {[LIT_CHARS " "]} do_all]]}]})]) (= scope= flags=0 words=[] bindings=[('ALL_INSTANCE_GROUP_URLS', {[VarSub urls bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_STAR "*"}})]})]) (= scope= flags=0 words=[] bindings=[('NODE_INSTANCE_GROUPS', {[Array ]})]) (For url [{[DQ [VarSub urls bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) test_op=VS_TEST_COLON_HYPHEN {}]]}]) (List (= scope= flags=0 words=[] bindings=[('igm_zone', {[ComSub (Com {[LIT_CHARS expr]} {[VarSub url]} {[LIT_OTHER ":"]} {[SQ ]})]})]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub igm_zone]]} {[DQ [VarSub ZONE]]}}) (= scope= flags=0 words=[] bindings=[('NODE_INSTANCE_GROUPS+', {[Array {[DQ [VarSub url transform_ops=[VS_UNARY_DPOUND {[LIT_CHARS "*"] [LIT_SLASH /]}]]]}]})]) ) ) ) ) ) (FunctionDef ssh-to-node [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "... in gke:ssh-to-node()"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS detect-project]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (= scope= flags=0 words=[] bindings=[('node', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('cmd', {[DQ [VarSub 2]]})]) (For try [{[LIT_LBRACE "{"] [LIT_CHARS 1..5] [LIT_RBRACE "}"]}]) (List (If (Com {[LIT_CHARS gcloud]} {[LIT_CHARS compute]} {[LIT_CHARS ssh]} {[LIT_CHARS --ssh-flag] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS "-o LogLevel=quiet"]]} {[LIT_CHARS --ssh-flag] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS "-o ConnectTimeout=30"]]} {[LIT_CHARS --project]} {[DQ [VarSub PROJECT]]} {[LIT_CHARS --zone] [LIT_DBRACKET_LIKE "="] [DQ [VarSub ZONE]]} {[DQ [VarSub node]]} {[LIT_CHARS --command]} {[DQ [LIT_CHARS "echo test > /dev/null"]]} ) (Com {[LIT_CHARS break]} ) ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 5]} ) ) ) (Com {[LIT_CHARS gcloud]} {[LIT_CHARS compute]} {[LIT_CHARS ssh]} {[LIT_CHARS --ssh-flag] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS "-o LogLevel=quiet"]]} {[LIT_CHARS --ssh-flag] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS "-o ConnectTimeout=30"]]} {[LIT_CHARS --project]} {[DQ [VarSub PROJECT]]} {[LIT_CHARS --zone] [LIT_DBRACKET_LIKE "="] [DQ [VarSub ZONE]]} {[DQ [VarSub node]]} {[LIT_CHARS --command]} {[DQ [VarSub cmd]]} ) ) ) (FunctionDef test-teardown [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "... in gke:test-teardown()"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS detect-project]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (AndOr OP_OR_IF (Com {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kube-down.sh]]} ) (Com {[LIT_CHARS true]} ) ) (For fw [{[DQ [VarSub CLUSTER_NAME][LIT_CHARS -http-alt]]}, {[DQ [VarSub CLUSTER_NAME][LIT_CHARS -nodeports]]}, {[DQ [VarSub FIREWALL_SSH]]}]) (If (DBracket {B1 UNARY_STRING_n {[ComSub (AndOr OP_OR_IF (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[DQ [VarSub GCLOUD]]} {[LIT_CHARS compute]} {[LIT_CHARS firewall-rules]} {[LIT_CHARS --project]} {[DQ [VarSub PROJECT]]} {[LIT_CHARS describe]} {[DQ [VarSub fw]]} {[LIT_CHARS --format] [LIT_DBRACKET_LIKE "="] [SQ ]}) (Com {[LIT_CHARS true]}) )]}}) (Fork (Com {[DQ [VarSub GCLOUD]]} {[LIT_CHARS compute]} {[LIT_CHARS firewall-rules]} {[LIT_CHARS delete]} {[DQ [VarSub fw]]} {[LIT_CHARS --project] [LIT_DBRACKET_LIKE "="] [DQ [VarSub PROJECT]]} {[LIT_CHARS --quiet]} ) ) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS util] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS wait-for-jobs]} ) (Com {[LIT_CHARS true]} ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub KUBE_DELETE_NETWORK]]} {[DQ [LIT_CHARS true]]}}) (If (DBracket {B1 UNARY_STRING_n {[ComSub (AndOr OP_OR_IF (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[DQ [VarSub GCLOUD]]} {[LIT_CHARS compute]} {[LIT_CHARS networks]} {[LIT_CHARS --project]} {[DQ [VarSub PROJECT]]} {[LIT_CHARS describe]} {[DQ [VarSub NETWORK]]} {[LIT_CHARS --format] [LIT_DBRACKET_LIKE "="] [SQ ]}) (Com {[LIT_CHARS true]}) )]}}) (If (Pipeline! (Com {[DQ [VarSub GCLOUD]]} {[LIT_CHARS compute]} {[LIT_CHARS networks]} {[LIT_CHARS delete]} {[LIT_CHARS --project]} {[DQ [VarSub PROJECT]]} {[LIT_CHARS --quiet]} {[DQ [VarSub NETWORK]]} ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Failed to delete network '"][VarSub NETWORK][LIT_CHARS "'. Listing firewall-rules:"]]} ) (Com {[DQ [VarSub GCLOUD]]} {[LIT_CHARS compute]} {[LIT_CHARS firewall-rules]} {[LIT_CHARS --project]} {[DQ [VarSub PROJECT]]} {[LIT_CHARS list]} {[LIT_CHARS --filter] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS "network="][VarSub NETWORK]]} ) ) ) ) ) ) ) (FunctionDef kube-down [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "... in gke:kube-down()"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS detect-project]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (If (List (Fork (Com {[DQ [VarSub GCLOUD]]} {[VarSub CMD_GROUP test_op=VS_TEST_COLON_HYPHEN {}]} {[LIT_CHARS container]} {[LIT_CHARS clusters]} {[LIT_CHARS describe]} {[LIT_CHARS --project] [LIT_DBRACKET_LIKE "="] [DQ [VarSub PROJECT]]} {[LIT_CHARS --zone] [LIT_DBRACKET_LIKE "="] [DQ [VarSub ZONE]]} {[DQ [VarSub CLUSTER_NAME]]} {[LIT_CHARS --quiet]} ) ) (Com < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (Com {[DQ [VarSub GCLOUD]]} {[VarSub CMD_GROUP test_op=VS_TEST_COLON_HYPHEN {}]} {[LIT_CHARS container]} {[LIT_CHARS clusters]} {[LIT_CHARS delete]} {[LIT_CHARS --project] [LIT_DBRACKET_LIKE "="] [DQ [VarSub PROJECT]]} {[LIT_CHARS --zone] [LIT_DBRACKET_LIKE "="] [DQ [VarSub ZONE]]} {[DQ [VarSub CLUSTER_NAME]]} {[LIT_CHARS --quiet]} ) ) ) ) )