func()

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
}