(command.CommandList children: [ (C {<set>} {<-e>}) (C {<.>} {<'../proxy_setup.sh'>}) (C {<printf>} {(DQ <'#### Setup Environment'> <Id.Lit_BadBackslash '\\'> <n>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ENVIRONMENT) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<Test-Laptop>}) ) ) } spids: [34] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FIRST_HEAD) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-i>} {(SQ <head>)} {<'../cluster.txt'>}) (C {<cut>} {<-f>} {<3>} {<-d> (SQ <' '>)}) (C {<tail>} {<-1>}) ] negated: F ) ) } spids: [44] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VIP) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.CommandList children: [ (command.Sentence child: (C {<cd>} {<'../'>}) terminator: <Id.Op_Semi _> ) (command.Pipeline children: [ (C {<knife>} {<node>} {<show>} {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<hostname>}))} {<-a>} {(SQ <bcpc.management.vip>)} ) (C {<tail>} {<-1>}) (C {<sed>} {(SQ <'s/.* //'>)}) ] negated: F ) ] ) ) } spids: [76] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BOOTSTRAP) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.CommandList children: [ (command.Sentence child: (C {<cd>} {<'../'>}) terminator: <Id.Op_Semi _> ) (command.Pipeline children: [ (C {<knife>} {<node>} {<show>} {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<hostname>}))} {<-a>} {(SQ <bcpc.management.ip>)} ) (C {<tail>} {<-1>}) (C {<sed>} {(SQ <'s/.* //'>)}) ] negated: F ) ] ) ) } spids: [114] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CLUSTER_NODES) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [{<sed>} {<-e>} {(SQ <'s/[^0-9. ]//g'>)} {<-e>} {(SQ <'s/ /,/g'>)}] redirects: [ (redir op: <Id.Redir_TLess '<<<'> loc: (redir_loc.Fd fd:0) arg: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cut>} {<-f>} {<3>} {<-d> (SQ <' '>)} {<'../cluster.txt'>}) ) } ) ] do_fork: T ) ) } spids: [155] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (command.Simple words: [{<ping>} {<-c>} {<1>} {<-W>} {<5>} {($ Id.VSub_DollarName '$FIRST_HEAD')}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>}) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] do_fork: T ) (C {<printf>} { (DQ <'Pinging first headnode: '> (${ Id.VSub_Name FIRST_HEAD) <Id.Lit_BadBackslash '\\'> <n>) } ) (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (command.Simple words: [ {<printf>} { (DQ <'Failed to ping first head node '> (${ Id.VSub_Name FIRST_HEAD) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/stderr'>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (command.Simple words: [{<ping>} {<-c>} {<1>} {<-W>} {<5>} {($ Id.VSub_DollarName '$VIP')}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>}) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] do_fork: T ) (C {<printf>} {(DQ <'Pinging VIP: '> (${ Id.VSub_Name VIP) <Id.Lit_BadBackslash '\\'> <n>)}) (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (command.Simple words: [ {<printf>} { (DQ <'Failed to ping VIP '> (${ Id.VSub_Name VIP) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/stderr'>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (command.Simple words: [{<ping>} {<-c>} {<1>} {<-W>} {<5>} {($ Id.VSub_DollarName '$BOOTSTRAP')}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>}) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] do_fork: T ) (C {<printf>} {(DQ <'Pinging bootstrap: '> (${ Id.VSub_Name BOOTSTRAP) <Id.Lit_BadBackslash '\\'> <n>)} ) (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (command.Simple words: [ {<printf>} { (DQ <'Failed to ping bootstrap server '> (${ Id.VSub_Name BOOTSTRAP) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/stderr'>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MANAGEMENT_CIDR) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.CommandList children: [ (command.Sentence child: (C {<cd>} {<'../'>}) terminator: <Id.Op_Semi _> ) (command.Pipeline children: [ (C {<knife>} {<node>} {<show>} {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<hostname>}))} {<-a>} {(SQ <bcpc.management.cidr>)} ) (C {<tail>} {<-1>}) (C {<sed>} {(SQ <'s/.* //'>)}) ] negated: F ) ] ) ) } spids: [377] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FIXED_CIDR) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.CommandList children: [ (command.Sentence child: (C {<cd>} {<'../'>}) terminator: <Id.Op_Semi _> ) (command.Pipeline children: [ (C {<knife>} {<node>} {<show>} {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<hostname>}))} {<-a>} {(SQ <bcpc.fixed.cidr>)} ) (C {<tail>} {<-1>}) (C {<sed>} {(SQ <'s/.* //'>)}) ] negated: F ) ] ) ) } spids: [415] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FLOATING_CIDR) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.CommandList children: [ (command.Sentence child: (C {<cd>} {<'../'>}) terminator: <Id.Op_Semi _> ) (command.Pipeline children: [ (C {<knife>} {<node>} {<show>} {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<hostname>}))} {<-a>} {(SQ <bcpc.floating.cidr>)} ) (C {<tail>} {<-1>}) (C {<sed>} {(SQ <'s/.* //'>)}) ] negated: F ) ] ) ) } spids: [453] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MANAGEMENT_GLOB) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<sed>} {<-e>} {(SQ <'s#/.*##'>)} {<-e>} {(SQ <'s/\\(\\.0\\)*.[0-9]\\{1,3\\}$/.*/'>)} ] redirects: [ (redir op: <Id.Redir_TLess '<<<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName '$MANAGEMENT_CIDR')} ) ] do_fork: T ) ) } spids: [495] ) ] ) (C {<printf>} {(DQ <'Management glob: '> (${ Id.VSub_Name MANAGEMENT_GLOB) <Id.Lit_BadBackslash '\\'> <n>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FIXED_GLOB) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<sed>} {<-e>} {(SQ <'s#/.*##'>)} {<-e>} {(SQ <'s/\\(\\.0\\)*.[0-9]\\{1,3\\}$/.*/'>)} ] redirects: [ (redir op: <Id.Redir_TLess '<<<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName '$FIXED_CIDR')} ) ] do_fork: T ) ) } spids: [527] ) ] ) (C {<printf>} {(DQ <'Fixed glob: '> (${ Id.VSub_Name FIXED_GLOB) <Id.Lit_BadBackslash '\\'> <n>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FLOATING_GLOB) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<sed>} {<-e>} {(SQ <'s#/.*##'>)} {<-e>} {(SQ <'s/\\(\\.0\\)*.[0-9]\\{1,3\\}$/.*/'>)} ] redirects: [ (redir op: <Id.Redir_TLess '<<<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName '$FLOATING_CIDR')} ) ] do_fork: T ) ) } spids: [559] ) ] ) (C {<printf>} {(DQ <'Floating glob: '> (${ Id.VSub_Name FLOATING_GLOB) <Id.Lit_BadBackslash '\\'> <n>)} ) (C {<printf>} {(DQ <'#### Setup Directories'> <Id.Lit_BadBackslash '\\'> <n>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TEST_DATA_DIR) op: assign_op.Equal rhs: {<test_data>} spids: [600] ) ] ) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$TEST_DATA_DIR')}) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {(${ Id.VSub_Name TEST_DATA_DIR) <'/test_ssh_key'>} ) ) (C {<ssh-keygen>} {<-t>} {<dsa>} {<-f>} {(${ Id.VSub_Name TEST_DATA_DIR) <'/test_ssh_key'>} {<-P>} {(SQ )}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_d child: {(${ Id.VSub_Name TEST_DATA_DIR) <'/tempest'>} ) ) (C {<git>} {<clone>} {<https> <Id.Lit_Colon ':'> <'//github.com/openstack/tempest.git'>} {<-b>} {<'stable/grizzly'>} {(${ Id.VSub_Name TEST_DATA_DIR) <'/tempest'>} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cobbler_pass) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.CommandList children: [ (command.Sentence child: (C {<cd>} {<..>}) terminator: <Id.Op_Semi _> ) (command.Pipeline children: [ (C {<knife>} {<Id.KW_Data data>} {<bag>} {<show>} {<configs>} {($ Id.VSub_DollarName '$ENVIRONMENT')} ) (C {<grep>} {(SQ <'cobbler-root-password:'>)}) (C {<sed>} {(SQ <'s/.* //'>)}) ] negated: F ) ] ) ) ) } spids: [678] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SCP_HOST) op: assign_op.Equal rhs: { (DQ <'sshpass -p '> ($ Id.VSub_DollarName '$cobbler_pass') < ' scp -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o VerifyHostKeyDNS=no' > ) } spids: [714] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SSH_HOST) op: assign_op.Equal rhs: { (DQ <'sshpass -p '> ($ Id.VSub_DollarName '$cobbler_pass') < ' ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o VerifyHostKeyDNS=no -l ubuntu' > ) } spids: [721] ) ] ) (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$cobbler_pass')}) (C {($ Id.VSub_DollarName '$SSH_HOST')} {($ Id.VSub_DollarName '$FIRST_HEAD')} {(SQ <'sudo -S chmod 755 /root/adminrc /root'>)} ) ] negated: F ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$SSH_HOST')} {($ Id.VSub_DollarName '$FIRST_HEAD')} {(SQ <'source /root/adminrc;glance image-list | grep -q Ubuntu'>)} ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {($ Id.VSub_DollarName '$CURL')} {<http> <Id.Lit_Colon ':'> < '//cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img' > } {<-o>} {(${ Id.VSub_Name TEST_DATA_DIR) <'/ubuntu.img'>} ) (C {($ Id.VSub_DollarName '$SCP_HOST')} {(${ Id.VSub_Name TEST_DATA_DIR) <'/ubuntu.img'>} {<ubuntu> <Id.Lit_At '@'> (${ Id.VSub_Name FIRST_HEAD) <Id.Lit_Colon ':'> <ubuntu.img>} ) (C {($ Id.VSub_DollarName '$SSH_HOST')} {($ Id.VSub_DollarName '$FIRST_HEAD')} { (SQ < 'source /root/adminrc; glance image-create --name Ubuntu --disk-format iso --container-format bare --file ubuntu.img --is-public True' > ) } ) ] spids: [750 763] ) ] ) (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$cobbler_pass')}) (command.Simple words: [ {($ Id.VSub_DollarName '$SSH_HOST')} {($ Id.VSub_DollarName '$FIRST_HEAD')} {(SQ <'sudo -S cat /root/.ssh/id_rsa'>)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name TEST_DATA_DIR) <'/hypervisor_key'>} ) ] do_fork: T ) ] negated: F ) (C {<printf>} {(DQ <Id.Lit_BadBackslash '\\'> <n>)}) (C {<printf>} {(DQ <'#### Gather Tempest.CONF configurations'> <Id.Lit_BadBackslash '\\'> <n>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cirros_image_id) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {($ Id.VSub_DollarName '$SSH_HOST')} {($ Id.VSub_DollarName '$FIRST_HEAD')} { (SQ < 'source /root/adminrc; glance image-list | grep Cirros | cut -f 2 -d"|" | grep -v "^+"' > ) } ) ) } spids: [854] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ubuntu_image_id) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {($ Id.VSub_DollarName '$SSH_HOST')} {($ Id.VSub_DollarName '$FIRST_HEAD')} { (SQ < 'source /root/adminrc; glance image-list | grep Ubuntu | cut -f 2 -d"|" | grep -v "^+"' > ) } ) ) } spids: [868] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:flavor_ref) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {($ Id.VSub_DollarName '$SSH_HOST')} {($ Id.VSub_DollarName '$FIRST_HEAD')} {(SQ <'source /root/adminrc; nova flavor-list|grep m1.tiny|cut -f 2 -d"|"'>)} ) ) } spids: [883] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:flavor_ref_alt) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {($ Id.VSub_DollarName '$SSH_HOST')} {($ Id.VSub_DollarName '$FIRST_HEAD')} {(SQ <'source /root/adminrc; nova flavor-list|grep m1.small|cut -f 2 -d"|"'>)} ) ) } spids: [897] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:keystone_admin_pass) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.CommandList children: [ (command.Sentence child: (C {<cd>} {<'../'>}) terminator: <Id.Op_Semi _> ) (command.Pipeline children: [ (C {<knife>} {<Id.KW_Data data>} {<bag>} {<show>} {<configs>} {($ Id.VSub_DollarName '$ENVIRONMENT')} ) (C {<grep>} {<keystone-admin-password> <Id.Lit_Colon ':'>}) (C {<sed>} {(SQ <'s/.* //'>)}) ] negated: F ) ] ) ) } spids: [911] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:keystone_test_user) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.CommandList children: [ (command.Sentence child: (C {<cd>} {<'../'>}) terminator: <Id.Op_Semi _> ) (command.Pipeline children: [ (C {<knife>} {<Id.KW_Data data>} {<bag>} {<show>} {<configs>} {($ Id.VSub_DollarName '$ENVIRONMENT')} ) (C {<grep>} {<keystone-test-user> <Id.Lit_Colon ':'>}) (C {<sed>} {(SQ <'s/.* //'>)}) ] negated: F ) ] ) ) } spids: [948] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:keystone_test_user_pass) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.CommandList children: [ (command.Sentence child: (C {<cd>} {<'../'>}) terminator: <Id.Op_Semi _> ) (command.Pipeline children: [ (C {<knife>} {<Id.KW_Data data>} {<bag>} {<show>} {<configs>} {($ Id.VSub_DollarName '$ENVIRONMENT')} ) (C {<grep>} {<keystone-test-password> <Id.Lit_Colon ':'>}) (C {<sed>} {(SQ <'s/.* //'>)}) ] negated: F ) ] ) ) } spids: [982] ) ] ) (C {<export>} {<Id.Lit_VarLike 'IMAGE_ID='> ($ Id.VSub_DollarName '$ubuntu_image_id')}) (C {<export>} {<Id.Lit_VarLike 'IMAGE_ID_ALT='> ($ Id.VSub_DollarName '$cirros_image_id')}) (C {<printf>} {(DQ <'#### Modify tempest.conf for cluster'> <Id.Lit_BadBackslash '\\'> <n>)}) (C {<pushd>} {(${ Id.VSub_Name TEST_DATA_DIR) <'/tempest'>}) (command.Simple words: [{<python>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOPYTHON>} here_end_span_id: 1645 stdin_parts: [ <'import ConfigParser\n'> <'parser=ConfigParser.RawConfigParser()\n'> <'with open('> <Id.Right_DoubleQuote '"'> <'etc/tempest.conf.sample'> <Id.Right_DoubleQuote '"'> <',mode='> <Id.Right_DoubleQuote '"'> <r> <Id.Right_DoubleQuote '"'> <') as input_f:\n'> <' parser.readfp(input_f)\n'> <'configDir = {\n'> <' '> <Id.Right_DoubleQuote '"'> <cli> <Id.Right_DoubleQuote '"'> <': {'> <Id.Right_DoubleQuote '"'> <enabled> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <true> <Id.Right_DoubleQuote '"'> <', '> <Id.Right_DoubleQuote '"'> <cli_dir> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <'/usr/bin'> <Id.Right_DoubleQuote '"'> <'},\n'> <' '> <Id.Right_DoubleQuote '"'> <compute> <Id.Right_DoubleQuote '"'> <': {'> <Id.Right_DoubleQuote '"'> <allow_tenant_isolation> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <true> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <image_ref> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$IMAGE_ID') <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <image_ref_alt> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$IMAGE_ID_ALT') <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <flavor_ref> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$flavor_ref') <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <flavor_ref_alt> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$flavor_ref_alt') <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <image_ssh_user> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <ubuntu> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <image_alt_ssh_user> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <cirros> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <image_alt_ssh_password> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <'cubswin:)'> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <ssh_user> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <ubuntu> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <region> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$ENVIRONMENT') <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <path_to_private_key> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<pwd>})) <'/'> (${ Id.VSub_Name TEST_DATA_DIR) <'/test_ssh_key'> <Id.Right_DoubleQuote '"'> <'},\n'> <' '> <Id.Right_DoubleQuote '"'> <compute-admin> <Id.Right_DoubleQuote '"'> <': {'> <Id.Right_DoubleQuote '"'> <tenant_name> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <AdminTenant> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <password> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> (${ Id.VSub_Name keystone_admin_pass) <Id.Right_DoubleQuote '"'> <'},\n'> <' '> <Id.Right_DoubleQuote '"'> <compute-feature-enabled> <Id.Right_DoubleQuote '"'> <': {'> <Id.Right_DoubleQuote '"'> <api_v3> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <false> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <api_v3_extensions> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <change_password> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <true> <Id.Right_DoubleQuote '"'> <', \n'> <' '> <Id.Right_DoubleQuote '"'> <create_image> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <true> <Id.Right_DoubleQuote '"'> <'},\n'> <' '> <Id.Right_DoubleQuote '"'> <dashboard> <Id.Right_DoubleQuote '"'> <': {'> <Id.Right_DoubleQuote '"'> <dashboard_url> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <'https://'> (${ Id.VSub_Name VIP) <'/horizon/'> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <login_url> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <'https://'> (${ Id.VSub_Name VIP) <'/horizon/auth/login/'> <Id.Right_DoubleQuote '"'> <'},\n'> <' '> <Id.Right_DoubleQuote '"'> <identity> <Id.Right_DoubleQuote '"'> <': {'> <Id.Right_DoubleQuote '"'> <uri> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <'https://'> (${ Id.VSub_Name VIP) <':5000/v2.0'> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <disable_ssl_certificate_validation> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <true> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <region> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$ENVIRONMENT') <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <username> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> (${ Id.VSub_Name keystone_test_user) <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <tenant_name> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <AdminTenant> <Id.Right_DoubleQuote '"'> <', \n'> <' '> <Id.Right_DoubleQuote '"'> <password> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> (${ Id.VSub_Name keystone_test_user_pass) <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <admin_username> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <admin> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <admin_tenant_name> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <AdminTenant> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <admin_password> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> (${ Id.VSub_Name keystone_admin_pass) <Id.Right_DoubleQuote '"'> <'},\n'> <' '> <Id.Right_DoubleQuote '"'> <image> <Id.Right_DoubleQuote '"'> <': {'> <Id.Right_DoubleQuote '"'> <region> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$ENVIRONMENT') <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <http_image> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <'http://'> (${ Id.VSub_Name BOOTSTRAP) <':8080/cirros-0.3.4-x86_64-disk.img'> <Id.Right_DoubleQuote '"'> <'},\n'> <' '> <Id.Right_DoubleQuote '"'> <input-scenario> <Id.Right_DoubleQuote '"'> <': {'> <Id.Right_DoubleQuote '"'> <image_regex> <Id.Right_DoubleQuote '"'> <': \'[['> <Id.Right_DoubleQuote '"'> <'^[Cc]irros.*'> <Id.Lit_Dollar '$'> <Id.Right_DoubleQuote '"'> <','> <Id.Right_DoubleQuote '"'> <'^[Uu]buntu.*'> <Id.Right_DoubleQuote '"'> <']]\',\n'> <' '> <Id.Right_DoubleQuote '"'> <flavor_regex> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <'^m1.tiny'> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <ssh_user_regex> <Id.Right_DoubleQuote '"'> <': \'[['> <Id.Right_DoubleQuote '"'> <'^.*[Cc]irros.*'> <Id.Lit_Dollar '$'> <Id.Right_DoubleQuote '"'> <', '> <Id.Right_DoubleQuote '"'> <ubuntu> <Id.Right_DoubleQuote '"'> <']]\'},\n'> <' '> <Id.Right_DoubleQuote '"'> <network> <Id.Right_DoubleQuote '"'> <': {'> <Id.Right_DoubleQuote '"'> <region> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$ENVIRONMENT') <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <tenant_network_cidr> <Id.Right_DoubleQuote '"'> <' : '> <Id.Right_DoubleQuote '"'> <'1.127.0.0/16'> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <tenant_network_mask_bits> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <25> <Id.Right_DoubleQuote '"'> <'},\n'> <' '> <Id.Right_DoubleQuote '"'> <object-storage> <Id.Right_DoubleQuote '"'> <': {'> <Id.Right_DoubleQuote '"'> <region> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$ENVIRONMENT') <Id.Right_DoubleQuote '"'> <'},\n'> <' '> <Id.Right_DoubleQuote '"'> <service_available> <Id.Right_DoubleQuote '"'> <': {'> <Id.Right_DoubleQuote '"'> <swift> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <false> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <ceilometer> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <false> <Id.Right_DoubleQuote '"'> <'},\n'> <' '> <Id.Right_DoubleQuote '"'> <stress> <Id.Right_DoubleQuote '"'> <': {'> <Id.Right_DoubleQuote '"'> <nova_logdir> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <'/var/log/nova'> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <target_ssh_user> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <root> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <target_private_key_path> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> (${ Id.VSub_Name pwd) <'/hypervisor_key'> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <target_logfiles> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <'nova.*'> <Id.Lit_BadBackslash '\\'> <.log> <Id.Right_DoubleQuote '"'> <'},\n'> <' '> <Id.Right_DoubleQuote '"'> <volume> <Id.Right_DoubleQuote '"'> <': {'> <Id.Right_DoubleQuote '"'> <region> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$ENVIRONMENT') <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <backend1_name> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <SSD> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <backend2_name> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <HDD> <Id.Right_DoubleQuote '"'> <',\n'> <' '> <Id.Right_DoubleQuote '"'> <storage_protocol> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <RBD> <Id.Right_DoubleQuote '"'> <'},\n'> <' '> <Id.Right_DoubleQuote '"'> <whitebox> <Id.Right_DoubleQuote '"'> <': {'> <Id.Right_DoubleQuote '"'> <whitebox_enabled> <Id.Right_DoubleQuote '"'> <': '> <Id.Right_DoubleQuote '"'> <false> <Id.Right_DoubleQuote '"'> <'}\n'> <'}\n'> <'for sect in configDir:\n'> <' if sect not in parser.sections():\n'> <' continue\n'> <' for opt in configDir[sect]:\n'> <' parser.set(sect, opt, configDir[sect][opt])\n'> <'with file('> <Id.Right_DoubleQuote '"'> <'etc/tempest.conf'> <Id.Right_DoubleQuote '"'> <', mode='> <Id.Right_DoubleQuote '"'> <w> <Id.Right_DoubleQuote '"'> <') as output_f:\n'> <' parser.write(output_f)\n'> <'for sect in ['> <Id.Right_DoubleQuote '"'> <object-storage> <Id.Right_DoubleQuote '"'> <','> <Id.Right_DoubleQuote '"'> <boto> <Id.Right_DoubleQuote '"'> <']:\n'> <' parser.remove_section(sect)\n'> ] ) ) ] do_fork: T ) (C {<popd>}) (C {<printf>} {(DQ <'#### Install pre-requsite software'> <Id.Lit_BadBackslash '\\'> <n>)}) (C {<sudo>} {<apt-get>} {<install>} {<-y>} {<testrepository>} {<python-nova>}) (C {<sudo>} {<-E>} {<easy_install>} {<virtualenv>} {<flake8>}) (C {<sudo>} {<-E>} {<pip>} {<install>} {<-r>} {(${ Id.VSub_Name TEST_DATA_DIR) <'/tempest/tools/pip-requires'>} ) (C {<printf>} {(DQ <'#### Run Tempest'> <Id.Lit_BadBackslash '\\'> <n>)}) (C {<export>} {<Id.Lit_VarLike 'NO_PROXY='> (DQ (${ Id.VSub_Name CLUSTER_NODES) (${ Id.VSub_Name BOOTSTRAP) <','> (${ Id.VSub_Name VIP) <','> (${ Id.VSub_Name MANAGEMENT_GLOB) <','> (${ Id.VSub_Name FIXED_GLOB) <','> (${ Id.VSub_Name FLOATING_GLOB) ) } ) (C {<export>} {<Id.Lit_VarLike 'no_proxy='> (DQ (${ Id.VSub_Name CLUSTER_NODES) (${ Id.VSub_Name BOOTSTRAP) <','> (${ Id.VSub_Name VIP) <','> (${ Id.VSub_Name MANAGEMENT_GLOB) <','> (${ Id.VSub_Name FIXED_GLOB) <','> (${ Id.VSub_Name FLOATING_GLOB) ) } ) (C {<pushd>} {(${ Id.VSub_Name TEST_DATA_DIR) <'/tempest'>}) (C {<'bin/tempest'>} {<--with-xunit>} {<--xunit-file> <Id.Lit_Equals '='> <'../tempest_out_'> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <m> <Id.Lit_Other '%'> <d> <Id.Lit_Other '%'> <Y-> <Id.Lit_Other '%'> <H> <Id.Lit_Other '%'> <M> <Id.Lit_Other '%'> <S> } ) ) <.xml> } ) (C {<popd>}) ] )