(command.CommandList children: [ (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<errexit>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<nounset>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<pipefail>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'MOUNTER_IMAGE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MOUNTER_IMAGE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MOUNTER_IMAGE='> name:MOUNTER_IMAGE) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 1> var_name: 1 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MOUNTER_PATH='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MOUNTER_PATH='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MOUNTER_PATH='> name:MOUNTER_PATH) op: assign_op.Equal rhs: {<'/home/kubernetes/flexvolume_mounter'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'VOLUME_PLUGIN_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'VOLUME_PLUGIN_DIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VOLUME_PLUGIN_DIR='> name:VOLUME_PLUGIN_DIR) op: assign_op.Equal rhs: {<'/etc/srv/kubernetes/kubelet-plugins/volume/exec'>} ) ] redirects: [] ) (command.ShFunction name_tok: <usage> name: usage body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'usage: '> ($ Id.VSub_Number 0) <' imagename[:tag]'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ < ' imagename Name of a Container Registry image. By default the latest image is used.' > ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <' :tag Container Registry image tag.'>)}] redirects: [] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-z>} {(${ Id.VSub_Name MOUNTER_IMAGE)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'ERROR: No Container Registry mounter image is specified.'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <usage> more_env: [] words: [{<usage>}] redirects: [] do_fork: T ) ] spids: [147 160] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShFunction name_tok: <umount_silent> name: umount_silent body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <umount> more_env: [] words: [{<umount>} {<-l>} {($ Id.VSub_Number 1)}] redirects: [ (Redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <'/bin/true'> more_env: [] words: [{<'/bin/true'>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <kubelet_wait> name: kubelet_wait body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'timeout='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'timeout='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'timeout='> name:timeout) op: assign_op.Equal rhs: {<60>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'kubelet_readonly_port='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'kubelet_readonly_port='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'kubelet_readonly_port='> name: kubelet_readonly_port ) op: assign_op.Equal rhs: {<10255>} ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_Until until> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_DollarName timeout)} right: {<0>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <printf> more_env: [] words: [{<printf>} {(DQ <.>)}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <curl> more_env: [] words: [ {<curl>} {<-s>} {<http> <Id.Lit_Colon ':'> <'//localhost'> <Id.Lit_Colon ':'> (${ Id.VSub_Name kubelet_readonly_port) <'/healthz'> } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {(DQ <ok>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [249 279] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <sleep> more_env: [] words: [{<sleep>} {<1>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'timeout='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'timeout='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'timeout='> name:timeout) op: assign_op.Equal rhs: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Minus left: ($ Id.Lit_ArithVarLike timeout) right: {<Id.Lit_Digits 1>} ) right: <Id.Right_DollarDParen _> ) } ) ] redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <flex_clean> name: flex_clean body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'An error has occurred. Cleaning up...'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <umount_silent> more_env: [] words: [{<umount_silent>} {(${ Id.VSub_Name VOLUME_PLUGIN_DIR)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-rf>} {(${ Id.VSub_Name VOLUME_PLUGIN_DIR)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <umount_silent> more_env: [] words: [{<umount_silent>} {(${ Id.VSub_Name MOUNTER_PATH) <'/var/lib/kubelet'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <umount_silent> more_env: [] words: [{<umount_silent>} {(${ Id.VSub_Name MOUNTER_PATH)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-rf>} {(${ Id.VSub_Name MOUNTER_PATH)}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name IMAGE_URL> var_name: IMAGE_URL suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.AndOr children: [ (command.Simple blame_tok: <docker> more_env: [] words: [{<docker>} {<rmi>} {<-f>} {(${ Id.VSub_Name IMAGE_URL)}] redirects: [ (Redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <'/bin/true'> more_env: [] words: [{<'/bin/true'>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] spids: [384 398] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name MOUNTER_DEFAULT_NAME> var_name: MOUNTER_DEFAULT_NAME suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.AndOr children: [ (command.Simple blame_tok: <docker> more_env: [] words: [{<docker>} {<rm>} {<-f>} {(${ Id.VSub_Name MOUNTER_DEFAULT_NAME)}] redirects: [ (Redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <'/bin/true'> more_env: [] words: [{<'/bin/true'>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] spids: [423 437] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <trap> more_env: [] words: [{<trap>} {<flex_clean>} {<ERR>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <generate_chroot_wrapper> name: generate_chroot_wrapper body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(${ Id.VSub_Name MOUNTER_PATH) <'/flexvolume'>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ < 'Failed to set up FlexVolume driver: cannot find directory \'/flexvolume\' in the mount utility image.' > ) } ] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [484 500] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [driver_dir] iterable: (for_iter.Words words: [{(${ Id.VSub_Name MOUNTER_PATH) <'/flexvolume/'> <Id.Lit_Star '*'>}] ) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-d>} {(DQ ($ Id.VSub_DollarName driver_dir))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'filecount='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'filecount='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'filecount='> name: filecount ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <ls> more_env: [] words: [ {<ls>} {<-1>} {($ Id.VSub_DollarName driver_dir)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <wc> more_env: [] words: [{<wc>} {<-l>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName filecount)} {<-gt>} {<1>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ < 'ERROR: Expected 1 file in the FlexVolume directory but found ' > ($ Id.VSub_DollarName filecount) <.> ) } ] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [569 582] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'driver_file='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'driver_file='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'driver_file='> name: driver_file ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <ls> more_env: [] words: [{<ls>} {($ Id.VSub_DollarName driver_dir)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <head> more_env: [] words: [{<head>} {<-n>} {<1>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'driver_path='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'driver_path='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'driver_path='> name: driver_path ) op: assign_op.Equal rhs: {<'flexvolume/'> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <basename> more_env: [] words: [{<basename>} {($ Id.VSub_DollarName driver_dir)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'/'> (${ Id.VSub_Name driver_file) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'wrapper_dir='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'wrapper_dir='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'wrapper_dir='> name: wrapper_dir ) op: assign_op.Equal rhs: {(${ Id.VSub_Name VOLUME_PLUGIN_DIR) <'/'> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <basename> more_env: [] words: [{<basename>} {($ Id.VSub_DollarName driver_dir)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'wrapper_path='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'wrapper_path='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'wrapper_path='> name: wrapper_path ) op: assign_op.Equal rhs: {(${ Id.VSub_Name wrapper_dir) <'/'> (${ Id.VSub_Name driver_file)} ) ] redirects: [] ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {($ Id.VSub_DollarName wrapper_dir)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName wrapper_path)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'#!/bin/bash\n'> <'chroot '> (${ Id.VSub_Name MOUNTER_PATH) <' '> (${ Id.VSub_Name driver_path) <' '> <Id.Right_DoubleQuote '"'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'@'> <Id.Right_DoubleQuote '"'> <'\n'> ] ) ) ] do_fork: T ) (command.Simple blame_tok: <chmod> more_env: [] words: [{<chmod>} {<755>} {($ Id.VSub_DollarName wrapper_path)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'FlexVolume driver installed at '> (${ Id.VSub_Name wrapper_path) ) } ] redirects: [] do_fork: T ) ] spids: [536 549] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok:<echo> more_env:[] words:[{<echo>}] redirects:[] do_fork:T) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Importing mount utility image from Container Registry...'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok:<echo> more_env:[] words:[{<echo>}] redirects:[] do_fork:T) (command.ShAssignment left: <Id.Lit_VarLike 'METADATA='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'METADATA='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'METADATA='> name:METADATA) op: assign_op.Equal rhs: {<http> <Id.Lit_Colon ':'> <'//metadata.google.internal/computeMetadata/v1'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SVC_ACCT_ENDPOINT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SVC_ACCT_ENDPOINT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SVC_ACCT_ENDPOINT='> name:SVC_ACCT_ENDPOINT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName METADATA) <'/instance/service-accounts/default'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'ACCESS_TOKEN='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ACCESS_TOKEN='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ACCESS_TOKEN='> name:ACCESS_TOKEN) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <curl> more_env: [] words: [ {<curl>} {<-s>} {<-H>} {(SQ <'Metadata-Flavor: Google'>)} {($ Id.VSub_DollarName SVC_ACCT_ENDPOINT) <'/token'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-d> (SQ <'"'>)} {<-f>} {<4>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'PROJECT_ID='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PROJECT_ID='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROJECT_ID='> name:PROJECT_ID) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <curl> more_env: [] words: [ {<curl>} {<-s>} {<-H>} {(SQ <'Metadata-Flavor: Google'>)} {($ Id.VSub_DollarName METADATA) <'/project/project-id'>} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'IMAGE_URL='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IMAGE_URL='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IMAGE_URL='> name:IMAGE_URL) op: assign_op.Equal rhs: {<'gcr.io/'> (${ Id.VSub_Name PROJECT_ID) <'/'> (${ Id.VSub_Name MOUNTER_IMAGE)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MOUNTER_DEFAULT_NAME='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MOUNTER_DEFAULT_NAME='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MOUNTER_DEFAULT_NAME='> name: MOUNTER_DEFAULT_NAME ) op: assign_op.Equal rhs: {<flexvolume_mounter>} ) ] redirects: [] ) (command.Simple blame_tok: <sudo> more_env: [] words: [ {<sudo>} {<-u>} {(${ Id.VSub_Name SUDO_USER)} {<docker>} {<login>} {<-u>} {<_token>} {<-p>} {($ Id.VSub_DollarName ACCESS_TOKEN)} {<https> <Id.Lit_Colon ':'> <'//gcr.io'>} ] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) (command.Simple blame_tok: <sudo> more_env: [] words: [ {<sudo>} {<-u>} {(${ Id.VSub_Name SUDO_USER)} {<docker>} {<run>} {<--name> <Id.Lit_Equals '='> (${ Id.VSub_Name MOUNTER_DEFAULT_NAME)} {(${ Id.VSub_Name IMAGE_URL)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <docker> more_env: [] words: [{<docker>} {<export>} {(${ Id.VSub_Name MOUNTER_DEFAULT_NAME)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/tmp/'> (${ Id.VSub_Name MOUNTER_DEFAULT_NAME) <.tar>} ) ] do_fork: T ) (command.Simple blame_tok: <docker> more_env: [] words: [{<docker>} {<rm>} {(${ Id.VSub_Name MOUNTER_DEFAULT_NAME)}] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) (command.Simple blame_tok: <docker> more_env: [] words: [{<docker>} {<rmi>} {(${ Id.VSub_Name IMAGE_URL)}] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) (command.Simple blame_tok:<echo> more_env:[] words:[{<echo>}] redirects:[] do_fork:T) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Loading mount utilities onto this instance...'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok:<echo> more_env:[] words:[{<echo>}] redirects:[] do_fork:T) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {(${ Id.VSub_Name MOUNTER_PATH)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tar> more_env: [] words: [ {<tar>} {<xf>} {<'/tmp/'> (${ Id.VSub_Name MOUNTER_DEFAULT_NAME) <.tar>} {<-C>} {(${ Id.VSub_Name MOUNTER_PATH)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {(${ Id.VSub_Name MOUNTER_PATH) <'/var/lib/kubelet'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mount> more_env: [] words: [ {<mount>} {<--rbind>} {<'/var/lib/kubelet/'>} {(${ Id.VSub_Name MOUNTER_PATH) <'/var/lib/kubelet'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <mount> more_env: [] words: [{<mount>} {<--make-rshared>} {(${ Id.VSub_Name MOUNTER_PATH) <'/var/lib/kubelet'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mount> more_env: [] words: [{<mount>} {<--bind>} {(${ Id.VSub_Name MOUNTER_PATH)} {(${ Id.VSub_Name MOUNTER_PATH)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mount> more_env: [] words: [ {<mount>} {<-o>} {<remount> <Id.Lit_Comma ','> <dev> <Id.Lit_Comma ','> <exec>} {(${ Id.VSub_Name MOUNTER_PATH)} ] redirects: [] do_fork: T ) (command.Simple blame_tok:<echo> more_env:[] words:[{<echo>}] redirects:[] do_fork:T) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Setting up FlexVolume driver...'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok:<echo> more_env:[] words:[{<echo>}] redirects:[] do_fork:T) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {(${ Id.VSub_Name VOLUME_PLUGIN_DIR)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mount> more_env: [] words: [ {<mount>} {<--bind>} {(${ Id.VSub_Name VOLUME_PLUGIN_DIR)} {(${ Id.VSub_Name VOLUME_PLUGIN_DIR)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <mount> more_env: [] words: [ {<mount>} {<-o>} {<remount> <Id.Lit_Comma ','> <exec>} {(${ Id.VSub_Name VOLUME_PLUGIN_DIR)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <generate_chroot_wrapper> more_env: [] words: [{<generate_chroot_wrapper>}] redirects: [] do_fork: T ) (command.Simple blame_tok:<echo> more_env:[] words:[{<echo>}] redirects:[] do_fork:T) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Restarting Kubelet...'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok:<echo> more_env:[] words:[{<echo>}] redirects:[] do_fork:T) (command.Simple blame_tok: <systemctl> more_env: [] words: [{<systemctl>} {<restart>} {<kubelet.service>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <kubelet_wait> more_env: [] words: [{<kubelet_wait>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'FlexVolume is ready.'>)}] redirects: [] do_fork: T ) ] spids: [1067 1080] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'ERROR: Timed out after 1 minute waiting for kubelet restart.'>)}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] )