in cli_tools/common/utils/param/populator.go [57:96]
func (p *populator) PopulateMissingParameters(project *string, clientID string, zone *string,
region *string, scratchBucketGcsPath *string, file string, storageLocation, network, subnet *string, workerMachineSeries *[]string) error {
if err := PopulateProjectIfMissing(p.metadataClient, project); err != nil {
return err
}
scratchBucketRegion, err := populateScratchBucketGcsPath(scratchBucketGcsPath, *zone, p.metadataClient,
p.scratchBucketClient, file, project, p.storageClient, clientID == "gcloud")
if err != nil {
return err
}
if storageLocation != nil && *storageLocation == "" {
*storageLocation = p.locationClient.GetLargestStorageLocation(scratchBucketRegion)
}
if *zone == "" {
if *zone, err = p.locationClient.GetZone(scratchBucketRegion, *project); err != nil {
return err
}
}
if err := PopulateRegion(region, *zone); err != nil {
return err
}
if *network, *subnet, err = p.NetworkResolver.Resolve(*network, *subnet, *region, *project); err != nil {
return err
}
if workerMachineSeries == nil || len(*workerMachineSeries) == 0 {
*workerMachineSeries, err = p.workerMachineSeriesDetector.Detect(*project, *zone)
if err != nil {
return err
}
}
return nil
}