(inv *serpent.Invocation, args createValidTemplateVersionArgs)
| 429 | } |
| 430 | |
| 431 | func 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 |
no test coverage detected