in cli_tools/gce_vm_image_export/exporter/exporter.go [113:164]
func buildDaisyVars(destinationURI string, sourceImage string, sourceDiskSnapshot string, imageDiskSizeGb int64, format string, network string,
subnet string, region string, computeServiceAccount string) map[string]string {
destinationURI = strings.TrimSpace(destinationURI)
sourceImage = strings.TrimSpace(sourceImage)
sourceDiskSnapshot = strings.TrimSpace(sourceDiskSnapshot)
format = strings.TrimSpace(format)
network = strings.TrimSpace(network)
subnet = strings.TrimSpace(subnet)
region = strings.TrimSpace(region)
computeServiceAccount = strings.TrimSpace(computeServiceAccount)
varMap := map[string]string{}
varMap["destination"] = destinationURI
if sourceImage != "" {
varMap["source_image"] = param.GetGlobalResourcePath(
"images", sourceImage)
}
if sourceDiskSnapshot != "" {
varMap["source_disk_snapshot"] = param.GetGlobalResourcePath("snapshots", sourceDiskSnapshot)
}
if imageDiskSizeGb > 0 {
//add 5% for the buffer disk for disk file format/file system overhead if image contains truly random data
bufferDiskSizeGb := int64(math.Ceil(float64(imageDiskSizeGb) * 1.05))
varMap["export_instance_disk_size"] = strconv.FormatInt(bufferDiskSizeGb, 10)
}
if format != "" {
varMap["format"] = format
}
if subnet != "" {
varMap["export_subnet"] = param.GetRegionalResourcePath(
region, "subnetworks", subnet)
// When subnet is set, we need to grant a value to network to avoid fallback to default
if network == "" {
varMap["export_network"] = ""
}
}
if network != "" {
varMap["export_network"] = param.GetGlobalResourcePath(
"networks", network)
}
if computeServiceAccount != "" {
varMap["compute_service_account"] = computeServiceAccount
}
return varMap
}