Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita2529f7

Browse files
committed
fix(cli): handle version mismatch re MatchedProvisioners response
1 parent56c792a commita2529f7

File tree

5 files changed

+45
-30
lines changed

5 files changed

+45
-30
lines changed

‎cli/templatepush.go

Lines changed: 38 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -416,29 +416,6 @@ func createValidTemplateVersion(inv *serpent.Invocation, args createValidTemplat
416416
iferr!=nil {
417417
returnnil,err
418418
}
419-
vartagsJSON strings.Builder
420-
iferr:=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-
ifversion.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-
}elseifversion.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-
}
442419

443420
err=cliui.ProvisionerJob(inv.Context(),inv.Stdout, cliui.ProvisionerJobOptions{
444421
Fetch:func() (codersdk.ProvisionerJob,error) {
@@ -505,6 +482,44 @@ func ParseProvisionerTags(rawTags []string) (map[string]string, error) {
505482
returntags,nil
506483
}
507484

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+
funcWarnMatchedProvisioners(inv*serpent.Invocation,tv codersdk.TemplateVersion) {
503+
vartagsJSON strings.Builder
504+
iferr:=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+
iftv.MatchedProvisioners==nil {
510+
// Nothing in the response, nothing to do here!
511+
return
512+
}
513+
iftv.MatchedProvisioners.Count==0 {
514+
cliui.Warnf(inv.Stderr,warnNoMatchedProvisioners,tv.Job.ID,tagsJSON.String())
515+
return
516+
}
517+
iftv.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+
508523
// prettyDirectoryPath returns a prettified path when inside the users
509524
// home directory. Falls back to dir if the users home directory cannot
510525
// discerned. This function calls filepath.Clean on the result.

‎coderd/templateversions.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1719,7 +1719,7 @@ func convertTemplateVersion(version database.TemplateVersion, job codersdk.Provi
17191719
},
17201720
Archived:version.Archived,
17211721
Warnings:warnings,
1722-
MatchedProvisioners:matchedProvisioners,
1722+
MatchedProvisioners:&matchedProvisioners,
17231723
}
17241724
}
17251725

‎coderd/templateversions_test.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -471,14 +471,13 @@ func TestPostTemplateVersionsByOrganization(t *testing.T) {
471471
pj,err:=store.GetProvisionerJobByID(ctx,tv.Job.ID)
472472
require.NoError(t,err)
473473
require.EqualValues(t,tt.wantTags,pj.Tags)
474+
// Also assert that we get the expected information back from the API endpoint
475+
require.Zero(t,tv.MatchedProvisioners.Count)
476+
require.Zero(t,tv.MatchedProvisioners.Available)
477+
require.Zero(t,tv.MatchedProvisioners.MostRecentlySeen.Time)
474478
}else {
475479
require.ErrorContains(t,err,tt.expectError)
476480
}
477-
478-
// Also assert that we get the expected information back from the API endpoint
479-
require.Zero(t,tv.MatchedProvisioners.Count)
480-
require.Zero(t,tv.MatchedProvisioners.Available)
481-
require.Zero(t,tv.MatchedProvisioners.MostRecentlySeen.Time)
482481
})
483482
}
484483
})

‎codersdk/provisionerdaemons.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ type ProvisionerDaemon struct {
5353

5454
// MatchedProvisioners represents the number of provisioner daemons
5555
// available to take a job at a specific point in time.
56+
// Introduced in Coder version 2.18.0.
5657
typeMatchedProvisionersstruct {
5758
// Count is the number of provisioner daemons that matched the given
5859
// tags. If the count is 0, it means no provisioner daemons matched the

‎codersdk/templateversions.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ type TemplateVersion struct {
3232
Archivedbool`json:"archived"`
3333

3434
Warnings []TemplateVersionWarning`json:"warnings,omitempty" enums:"DEPRECATED_PARAMETERS"`
35-
MatchedProvisionersMatchedProvisioners`json:"matched_provisioners,omitempty"`
35+
MatchedProvisioners*MatchedProvisioners`json:"matched_provisioners,omitempty"`
3636
}
3737

3838
typeTemplateVersionExternalAuthstruct {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp