@@ -416,29 +416,6 @@ func createValidTemplateVersion(inv *serpent.Invocation, args createValidTemplat
416
416
if err != nil {
417
417
return nil , err
418
418
}
419
- var tagsJSON strings.Builder
420
- if err := json .NewEncoder (& tagsJSON ).Encode (version .Job .Tags ); err != nil {
421
- // Fall back to the less-pretty string representation.
422
- tagsJSON .Reset ()
423
- _ , _ = tagsJSON .WriteString (fmt .Sprintf ("%v" , version .Job .Tags ))
424
- }
425
- if version .MatchedProvisioners .Count == 0 {
426
- cliui .Warnf (inv .Stderr , `No provisioners are available to handle the job!
427
- Please contact your deployment administrator for assistance.
428
- Details:
429
- Provisioner job ID : %s
430
- Requested tags : %s
431
- ` , version .Job .ID , tagsJSON .String ())
432
- } else if version .MatchedProvisioners .Available == 0 {
433
- cliui .Warnf (inv .Stderr , `All available provisioner daemons have been silent for a while.
434
- Your build will proceed once they become available.
435
- If this persists, please contact your deployment administrator for assistance.
436
- Details:
437
- Provisioner job ID : %s
438
- Requested tags : %s
439
- Most recently seen : %s
440
- ` , version .Job .ID , strings .TrimSpace (tagsJSON .String ()), version .MatchedProvisioners .MostRecentlySeen .Time )
441
- }
442
419
443
420
err = cliui .ProvisionerJob (inv .Context (), inv .Stdout , cliui.ProvisionerJobOptions {
444
421
Fetch : func () (codersdk.ProvisionerJob , error ) {
@@ -505,6 +482,44 @@ func ParseProvisionerTags(rawTags []string) (map[string]string, error) {
505
482
return tags , nil
506
483
}
507
484
485
+ var (
486
+ warnNoMatchedProvisioners = `No provisioners are available to handle the job!
487
+ Please contact your deployment administrator for assistance.
488
+ Details:
489
+ Provisioner job ID : %s
490
+ Requested tags : %s
491
+ `
492
+ warnNoAvailableProvisioners = `All available provisioner daemons have been silent for a while.
493
+ Your build will proceed once they become available.
494
+ If this persists, please contact your deployment administrator for assistance.
495
+ Details:
496
+ Provisioner job ID : %s
497
+ Requested tags : %s
498
+ Most recently seen : %s
499
+ `
500
+ )
501
+
502
+ func WarnMatchedProvisioners (inv * serpent.Invocation , tv codersdk.TemplateVersion ) {
503
+ var tagsJSON strings.Builder
504
+ if err := json .NewEncoder (& tagsJSON ).Encode (tv .Job .Tags ); err != nil {
505
+ // Fall back to the less-pretty string representation.
506
+ tagsJSON .Reset ()
507
+ _ , _ = tagsJSON .WriteString (fmt .Sprintf ("%v" , tv .Job .Tags ))
508
+ }
509
+ if tv .MatchedProvisioners == nil {
510
+ // Nothing in the response, nothing to do here!
511
+ return
512
+ }
513
+ if tv .MatchedProvisioners .Count == 0 {
514
+ cliui .Warnf (inv .Stderr , warnNoMatchedProvisioners , tv .Job .ID , tagsJSON .String ())
515
+ return
516
+ }
517
+ if tv .MatchedProvisioners .Available == 0 {
518
+ cliui .Warnf (inv .Stderr , warnNoAvailableProvisioners , tv .Job .ID , strings .TrimSpace (tagsJSON .String ()), tv .MatchedProvisioners .MostRecentlySeen .Time )
519
+ return
520
+ }
521
+ }
522
+
508
523
// prettyDirectoryPath returns a prettified path when inside the users
509
524
// home directory. Falls back to dir if the users home directory cannot
510
525
// discerned. This function calls filepath.Clean on the result.
0 commit comments