in tui/post_processors.go [301:359]
func validateGCEDefault(input string, q *Queue) tea.Cmd {
return func() tea.Msg {
text := strings.TrimSpace(strings.ToLower(input))
if !checkYesOrNo(text) {
return errMsg{err: fmt.Errorf("Your answer '%s' is neither 'yes' nor 'no'", input)}
}
if string(text[0]) == "n" {
return successMsg{}
}
project := q.stack.GetSetting("project_id")
basename := q.stack.GetSetting("basename")
defaultImage, err := q.client.ImageLatestGet(project, gcloud.DefaultImageProject, gcloud.DefaultImageFamily)
if err != nil {
return errMsg{
err: fmt.Errorf(
"validateGCEDefault: could not get DefaultImage for project(%s) family(%s): %s",
gcloud.DefaultImageProject,
gcloud.DefaultImageFamily,
err,
),
}
}
defaultConfig := map[string]string{
"instance-image": defaultImage,
"instance-disksize": gcloud.DefaultDiskSize,
"instance-disktype": gcloud.DefaultDiskType,
"instance-tags": gcloud.HTTPServerTags,
"instance-name": fmt.Sprintf("%s-instance", basename),
"region": gcloud.DefaultRegion,
"zone": gcloud.DefaultZone,
"instance-machine-type": gcloud.DefaultInstanceType,
}
for i, v := range defaultConfig {
q.stack.AddSetting(i, v)
}
q.removeModel("instance-webserver")
q.removeModel("instance-image-project")
q.removeModel("instance-machine-type-family")
q.removeModel("instance-image")
q.removeModel("instance-image-type")
q.removeModel("instance-disksize")
q.removeModel("instance-disktype")
q.removeModel("instance-tags")
q.removeModel("instance-name")
q.removeModel("instance-machine-type")
q.removeModel("region")
q.removeModel("zone")
q.removeModel("instance-image-family")
return successMsg{}
}
}