(CommandList children: [ (C {(set)} {(-e)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SCRIPTPATH) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(dirname)} {(DQ ($ VSub_Number '$0'))})]) left_token: <Left_CommandSub '$('> spids: [10 16] ) } spids: [9] ) ] spids: [9] ) (C {(cd)} {($ VSub_Name '$SCRIPTPATH')}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SCRIPTPATH) op: Equal rhs: {($ VSub_Name '$PWD')} spids: [22] ) ] spids: [22] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KEY_PAIR_NAME) op: Equal rhs: {(rkt-testing-) (${ VSub_Name USER)} spids: [26] ) ] spids: [26] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SECURITY_GROUP) op: Equal rhs: {(rkt-testing-) (${ VSub_Name USER) (-security-group)} spids: [32] ) ] spids: [32] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:REGION) op:Equal rhs:{(us-west-1)} spids:[39])] spids: [39] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (setup))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MYIP) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(curl)} {(--silent)} {(http) (Lit_Other ':') (//checkip.amazonaws.com/)} ) ] ) left_token: <Left_CommandSub '$('> spids: [68 76] ) } spids: [67] ) ] spids: [67] ) (SimpleCommand words: [ {(aws)} {(--region)} {($ VSub_Name '$REGION')} {(ec2)} {(create-key-pair)} {(--key-name)} {($ VSub_Name '$KEY_PAIR_NAME')} {(--query)} {(SQ <KeyMaterial>)} {(--output)} {(text)} ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(${ VSub_Name KEY_PAIR_NAME) (.pem)} spids: [104] ) ] ) (C {(chmod)} {(0600)} {(${ VSub_Name KEY_PAIR_NAME) (.pem)}) (C {(aws)} {(--region)} {($ VSub_Name '$REGION')} {(ec2)} {(create-security-group)} {(--group-name)} {($ VSub_Name '$SECURITY_GROUP')} {(--description)} {(DQ ('Security group for rkt testing'))} ) (C {(aws)} {(--region)} {($ VSub_Name '$REGION')} {(ec2)} {(authorize-security-group-ingress)} {(--group-name)} {($ VSub_Name '$SECURITY_GROUP')} {(--protocol)} {(tcp)} {(--port)} {(22)} {(--cidr)} {($ VSub_Name '$MYIP') (/32)} ) (C {(exit)} {(0)}) ] spids: [-1 64] ) ] spids: [-1 175] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:DISTRO) op:Equal rhs:{($ VSub_Number '$1')} spids:[178])] spids: [178] ) (C {(test)} {(-f)} {(cloudinit/) (${ VSub_Name DISTRO) (.cloudinit)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CLOUDINIT) op: Equal rhs: {($ VSub_Name '$PWD') (/cloudinit/) (${ VSub_Name DISTRO) (.cloudinit)} spids: [192] ) ] spids: [192] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$DISTRO'))} {(Lit_Other '=')} {(DQ (fedora-24))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:AMI) op:Equal rhs:{(ami-8b4c35eb)} spids:[243])] spids: [243] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:AWS_USER) op:Equal rhs:{(fedora)} spids:[247])] spids: [247] ) ] spids: [-1 219] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$DISTRO'))} {(Lit_Other '=')} {(DQ (fedora-25))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:AMI) op:Equal rhs:{(ami-c70d5ca7)} spids:[275])] spids: [275] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:AWS_USER) op:Equal rhs:{(fedora)} spids:[279])] spids: [279] ) ] spids: [250 268] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$DISTRO'))} {(Lit_Other '=')} {(DQ (fedora-rawhide))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:AMI) op:Equal rhs:{(ami-a18dfac1)} spids:[307])] spids: [307] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:AWS_USER) op:Equal rhs:{(fedora)} spids:[311])] spids: [311] ) ] spids: [282 300] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$DISTRO'))} {(Lit_Other '=')} {(DQ (ubuntu-1604))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:AMI) op:Equal rhs:{(ami-b20542d2)} spids:[343])] spids: [343] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:AWS_USER) op:Equal rhs:{(ubuntu)} spids:[347])] spids: [347] ) ] spids: [314 332] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$DISTRO'))} {(Lit_Other '=')} {(DQ (debian-testing))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:AMI) op:Equal rhs:{(ami-db6c39bb)} spids:[379])] spids: [379] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:AWS_USER) op:Equal rhs:{(admin)} spids:[383])] spids: [383] ) ] spids: [350 368] ) ] spids: [-1 386] ) (C {(test)} {(-n)} {(DQ ($ VSub_Name '$AMI'))}) (C {(test)} {(-n)} {(DQ ($ VSub_Name '$AWS_USER'))}) (C {(test)} {(-f)} {(DQ (${ VSub_Name KEY_PAIR_NAME) (.pem))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INSTANCE_ID) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(aws)} {(--region)} {($ VSub_Name '$REGION')} {(ec2)} {(run-instances)} {(--image-id)} {($ VSub_Name '$AMI')} {(--count)} {(1)} {(--key-name)} {($ VSub_Name '$KEY_PAIR_NAME')} {(--security-groups)} {($ VSub_Name '$SECURITY_GROUP')} {(--instance-type)} {(m4.large)} {(--instance-initiated-shutdown-behavior)} {(terminate)} {(--user-data)} {(file) (Lit_Other ':') (//) ($ VSub_Name '$CLOUDINIT')} {(--output)} {(text)} {(--query)} {(SQ <'Instances[*].InstanceId'>)} ) ] ) left_token: <Left_CommandSub '$('> spids: [418 490] ) } spids: [417] ) ] spids: [417] ) (C {(echo)} {(Lit_VarLike 'INSTANCE_ID=') ($ VSub_Name '$INSTANCE_ID')}) (C {(aws)} {(--region)} {($ VSub_Name '$REGION')} {(ec2)} {(create-tags)} {(--resources)} {(${ VSub_Name INSTANCE_ID)} {(--tags)} {(Lit_VarLike 'Key=') (Name) (Lit_Comma ',') (Lit_VarLike 'Value=') (rkt-tst-) (${ VSub_Name DISTRO) } {(Lit_VarLike 'Key=') (BaseAmi) (Lit_Comma ',') (Lit_VarLike 'Value=') (${ VSub_Name AMI)} {(Lit_VarLike 'Key=') (User) (Lit_Comma ',') (Lit_VarLike 'Value=') (${ VSub_Name AWS_USER)} ) (Sentence child: (While cond: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:state) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(aws)} {(--region)} {($ VSub_Name '$REGION')} {(ec2)} {(describe-instances)} {(--instance-ids)} {($ VSub_Name '$INSTANCE_ID')} {(--output)} {(text)} {(--query)} {(SQ <'Reservations[*].Instances[*].State.Name'>)} ) ] ) left_token: <Left_CommandSub '$('> spids: [556 589] ) } spids: [555] ) ] spids: [555] ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(test)} {(DQ ($ VSub_Name '$state'))} {(Lit_Other '=')} {(DQ (pending))}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Sentence child:(C {(sleep)} {(1)}) terminator:<Op_Semi ';'>) (C {(echo)} {(-n)} {(SQ <.>)}) ] spids: [605 621] ) ) terminator: <Op_Semi ';'> ) (C {(echo)} {(DQ (' ') ($ VSub_Name '$state'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:AWS_IP) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(aws)} {(--region)} {($ VSub_Name '$REGION')} {(ec2)} {(describe-instances)} {(--instance-ids)} {($ VSub_Name '$INSTANCE_ID')} {(--output)} {(text)} {(--query)} {(SQ <'Reservations[*].Instances[*].PublicIpAddress'>)} ) ] ) left_token: <Left_CommandSub '$('> spids: [633 666] ) } spids: [632] ) ] spids: [632] ) (C {(echo)} {(Lit_VarLike 'AWS_IP=') ($ VSub_Name '$AWS_IP')}) (C {(echo)} {(DQ ('Waiting for the instance to boot...'))}) (C {(sleep)} {(60)}) (C {(echo)} {(DQ ('Waiting for the instance to be initialized...'))}) (C {(echo)} {(DQ ('To check the logs:'))}) (C {(echo)} {(ssh)} {(-i)} {(${ VSub_Name SCRIPTPATH) (/) (${ VSub_Name KEY_PAIR_NAME) (.pem)} {(${ VSub_Name AWS_USER) (Lit_Other '@') (${ VSub_Name AWS_IP)} {(tail)} {(-f)} {(/var/log/cloud-init-output.log)} ) (While cond: [ (Pipeline children: [ (SimpleCommand words: [ {(ssh)} {(-o)} {(Lit_VarLike 'StrictHostKeyChecking=') (no)} {(-o)} {(Lit_VarLike 'ServerAliveInterval=') (20)} {(-o)} {(Lit_VarLike 'ConnectTimeout=') (10)} {(-o)} {(Lit_VarLike 'ConnectionAttempts=') (60)} {(-i)} {(${ VSub_Name SCRIPTPATH) (/) (${ VSub_Name KEY_PAIR_NAME) (.pem)} {(${ VSub_Name AWS_USER) (Lit_Other '@') (${ VSub_Name AWS_IP)} {(stat)} {(/var/lib/cloud/instances/) ($ VSub_Name '$INSTANCE_ID') (/boot-finished)} ] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[776]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[779]) ] ) ] negated: True ) ] body: (DoGroup children:[(C {(echo)} {(-n)} {(SQ <.>)})(C {(sleep)} {(30)})] spids:[782798]) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NAME) op: Equal rhs: {(rkt-ci-jenkins-) (CommandSubPart command_list: (CommandList children: [(C {(date)} {(Lit_Other '+') (DQ ('%Y-%m-%d'))})] ) left_token: <Left_CommandSub '$('> spids: [804 811] ) (-) ($ VSub_Name '$DISTRO') } spids: [802] ) ] spids: [802] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:AMI_ID) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(aws)} {(--region)} {($ VSub_Name '$REGION')} {(ec2)} {(create-image)} {(--instance-id)} {($ VSub_Name '$INSTANCE_ID')} {(--name)} {($ VSub_Name '$NAME')} {(--output)} {(text)} ) ] ) left_token: <Left_CommandSub '$('> spids: [816 838] ) } spids: [815] ) ] spids: [815] ) (C {(echo)} {(-e)} { (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>) ('Waiting for the AMI to be avaliable...') ) } ) (While cond: [ (Pipeline children: [ (C {(aws)} {(--region)} {($ VSub_Name '$REGION')} {(ec2)} {(describe-images)} {(--image-id)} {($ VSub_Name '$AMI_ID')} ) (C {(grep)} {(-q)} {(available)}) ] negated: True ) ] body: (DoGroup children:[(C {(echo)} {(-n)} {(SQ <.>)})(C {(sleep)} {(30)})] spids:[876892]) ) (C {(echo)} {(-e)} {(DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>) ('Removing instance...'))}) (C {(aws)} {(--region)} {($ VSub_Name '$REGION')} {(ec2)} {(terminate-instances)} {(--instance-ids)} {($ VSub_Name '$INSTANCE_ID')} {(--output)} {(text)} ) (C {(echo)} { (DQ (${ VSub_Name DISTRO) (' AMI available: ') ($ VSub_Name '$AMI_ID') (' (Region ') ($ VSub_Name '$REGION') (')') ) } ) ] )