MCPcopy Index your code
hub / github.com/coder/coder / createValidTemplateVersion

Function createValidTemplateVersion

cli/templatepush.go:431–506  ·  view source on GitHub ↗
(inv *serpent.Invocation, args createValidTemplateVersionArgs)

Source from the content-addressed store, hash-verified

429}
430
431func createValidTemplateVersion(inv *serpent.Invocation, args createValidTemplateVersionArgs) (*codersdk.TemplateVersion, error) {
432 client := args.Client
433
434 req := codersdk.CreateTemplateVersionRequest{
435 Name: args.Name,
436 Message: args.Message,
437 StorageMethod: codersdk.ProvisionerStorageMethodFile,
438 FileID: args.FileID,
439 Provisioner: args.Provisioner,
440 ProvisionerTags: args.ProvisionerTags,
441 UserVariableValues: args.UserVariableValues,
442 }
443 if args.Template != nil {
444 req.TemplateID = args.Template.ID
445 }
446 version, err := client.CreateTemplateVersion(inv.Context(), args.Organization.ID, req)
447 if err != nil {
448 return nil, err
449 }
450 cliutil.WarnMatchedProvisioners(inv.Stderr, version.MatchedProvisioners, version.Job)
451 err = cliui.ProvisionerJob(inv.Context(), inv.Stdout, cliui.ProvisionerJobOptions{
452 Fetch: func() (codersdk.ProvisionerJob, error) {
453 version, err := client.TemplateVersion(inv.Context(), version.ID)
454 return version.Job, err
455 },
456 Cancel: func() error {
457 return client.CancelTemplateVersion(inv.Context(), version.ID)
458 },
459 Logs: func() (<-chan codersdk.ProvisionerJobLog, io.Closer, error) {
460 return client.TemplateVersionLogsAfter(inv.Context(), version.ID, 0)
461 },
462 })
463 if err != nil {
464 var jobErr *cliui.ProvisionerJobError
465 if errors.As(err, &jobErr) {
466 if codersdk.JobIsMissingRequiredTemplateVariableErrorCode(jobErr.Code) {
467 return handleMissingTemplateVariables(inv, args, version.ID)
468 }
469 if !codersdk.JobIsMissingParameterErrorCode(jobErr.Code) {
470 return nil, err
471 }
472 }
473 return nil, err
474 }
475 version, err = client.TemplateVersion(inv.Context(), version.ID)
476 if err != nil {
477 return nil, err
478 }
479
480 if version.Job.Status != codersdk.ProvisionerJobSucceeded {
481 return nil, xerrors.New(version.Job.Error)
482 }
483
484 resources, err := client.TemplateVersionResources(inv.Context(), version.ID)
485 if err != nil {
486 return nil, err
487 }
488

Callers 3

templateCreateMethod · 0.85
templatePushMethod · 0.85

Calls 15

WarnMatchedProvisionersFunction · 0.92
ProvisionerJobFunction · 0.92
WorkspaceResourcesFunction · 0.92
CancelTemplateVersionMethod · 0.80
AsMethod · 0.80
CreateTemplateVersionMethod · 0.65
ContextMethod · 0.65

Tested by

no test coverage detected