func newBootableDiskProcessor()

in cli_tools/common/image/importer/bootable_disk_processor.go [55:96]


func newBootableDiskProcessor(request ImageImportRequest, wfPath string, logger logging.Logger, detectedOs distro.Release) processor {
	vars := map[string]string{
		"image_name":           request.ImageName,
		"install_gce_packages": strconv.FormatBool(!request.NoGuestEnvironment),
		"sysprep":              strconv.FormatBool(request.SysprepWindows),
		"family":               request.Family,
		"description":          request.Description,
		"import_subnet":        request.Subnet,
		"import_network":       request.Network,
	}

	if request.ComputeServiceAccount != "" {
		vars["compute_service_account"] = request.ComputeServiceAccount
	}

	workflowProvider := func() (*daisy.Workflow, error) {
		wf, err := daisyutils.ParseWorkflow(wfPath, vars,
			request.Project, request.Zone, request.ScratchBucketGcsPath, request.Oauth, request.Timeout.String(),
			request.GcsLogsDisabled, request.CloudLogsDisabled, request.StdoutLogsDisabled)

		if err != nil {
			return nil, err
		}
		updateWorkflowWithDataDisks(wf, request)

		return wf, err
	}

	env := request.EnvironmentSettings()
	if env.DaisyLogLinePrefix != "" {
		env.DaisyLogLinePrefix += "-"
	}
	env.DaisyLogLinePrefix += "translate"
	diskProcessor := &bootableDiskProcessor{
		request:    request,
		worker:     daisyutils.NewDaisyWorker(workflowProvider, env, logger, createResourceLabeler(request)),
		logger:     logger,
		detectedOs: detectedOs,
		vars:       vars,
	}
	return diskProcessor
}