in pkg/question/question.go [828:888]
func AskConfirmationWithTemplate(h *ec2helper.EC2Helper,
simpleConfig *config.SimpleInfo) (*string, error) {
versions, err := h.GetLaunchTemplateVersions(simpleConfig.LaunchTemplateId,
&simpleConfig.LaunchTemplateVersion)
if err != nil {
return nil, err
}
templateData := versions[0].LaunchTemplateData
data := [][]string{}
data = append(data, []string{"Region", *h.Sess.Config.Region})
// Find and append all the subnets specified in the templates, if applicable
if simpleConfig.SubnetId != "" {
data = append(data, []string{"Subnet", simpleConfig.SubnetId})
} else {
data, err = table.AppendTemplateNetworkInterfaces(h, data, templateData.NetworkInterfaces)
if err != nil {
return nil, err
}
}
// Append instance type
instanceType := "not specified"
if simpleConfig.InstanceType != "" {
instanceType = simpleConfig.InstanceType
} else if templateData.InstanceType != nil {
instanceType = *templateData.InstanceType
}
data = append(data, []string{"Instance Type", instanceType})
// Append image id
imageId := "not specified"
if simpleConfig.ImageId != "" {
imageId = simpleConfig.ImageId
} else if templateData.ImageId != nil {
imageId = *templateData.ImageId
// Give config file an image ID so it can be queried correctly later
simpleConfig.ImageId = *templateData.ImageId
}
data = append(data, []string{"Image ID", imageId})
// Append all EBS blocks, if applicable
data = table.AppendTemplateEbs(data, templateData.BlockDeviceMappings)
stringOptions := []string{cli.ResponseYes, cli.ResponseNo}
configText := table.BuildTable(data, nil)
optionsText := yesNoOption + "\n"
question := "Please confirm if you would like to launch instance with following options: \n" +
configText
answer := AskQuestion(&AskQuestionInput{
QuestionString: question,
OptionsString: &optionsText,
StringOptions: stringOptions,
})
return &answer, nil
}