Skip to content

Commit 08880d3

Browse files
committed
chore: append template metadata to protobuf config
1 parent bbf6058 commit 08880d3

File tree

13 files changed

+716
-1087
lines changed

13 files changed

+716
-1087
lines changed

cli/testdata/coder_provisioner_list_--output_json.golden

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"last_seen_at": "====[timestamp]=====",
88
"name": "test-daemon",
99
"version": "v0.0.0-devel",
10-
"api_version": "1.11",
10+
"api_version": "1.12",
1111
"provisioners": [
1212
"echo"
1313
],

coderd/database/dbfake/dbfake.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -622,6 +622,7 @@ func (t TemplateVersionBuilder) Do() TemplateVersionResponse {
622622
}
623623

624624
payload, err := json.Marshal(provisionerdserver.TemplateVersionImportJob{
625+
TemplateID: t.seed.TemplateID,
625626
TemplateVersionID: t.seed.ID,
626627
})
627628
require.NoError(t.t, err)

coderd/provisionerdserver/provisionerdserver.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,7 @@ func (s *server) acquireProtoJob(ctx context.Context, job database.ProvisionerJo
704704
PreviousParameterValues: convertRichParameterValues(lastWorkspaceBuildParameters),
705705
VariableValues: asVariableValues(templateVariables),
706706
ExternalAuthProviders: externalAuthProviders,
707+
ReuseTerraformWorkspace: false, // TODO: Toggle based on experiment
707708
Metadata: &sdkproto.Metadata{
708709
CoderUrl: s.AccessURL.String(),
709710
WorkspaceTransition: transition,
@@ -773,6 +774,11 @@ func (s *server) acquireProtoJob(ctx context.Context, job database.ProvisionerJo
773774
return nil, failJob(err.Error())
774775
}
775776

777+
templateID := ""
778+
if input.TemplateID.Valid {
779+
templateID = input.TemplateID.UUID.String()
780+
}
781+
776782
protoJob.Type = &proto.AcquiredJob_TemplateImport_{
777783
TemplateImport: &proto.AcquiredJob_TemplateImport{
778784
UserVariableValues: convertVariableValues(userVariableValues),
@@ -781,6 +787,8 @@ func (s *server) acquireProtoJob(ctx context.Context, job database.ProvisionerJo
781787
// There is no owner for a template import, but we can assume
782788
// the "Everyone" group as a placeholder.
783789
WorkspaceOwnerGroups: []string{database.EveryoneGroup},
790+
TemplateId: templateID,
791+
TemplateVersionId: input.TemplateVersionID.String(),
784792
},
785793
},
786794
}
@@ -3210,6 +3218,10 @@ func auditActionFromTransition(transition database.WorkspaceTransition) database
32103218
}
32113219

32123220
type TemplateVersionImportJob struct {
3221+
// TemplateID is not guaranteed to be set. Template versions can be created
3222+
// without being associated with a template. Resulting in a template id of
3223+
// `uuid.Nil`
3224+
TemplateID uuid.NullUUID `json:"template_id"`
32133225
TemplateVersionID uuid.UUID `json:"template_version_id"`
32143226
UserVariableValues []codersdk.VariableValue `json:"user_variable_values"`
32153227
}

coderd/provisionerdserver/provisionerdserver_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -629,6 +629,8 @@ func TestAcquireJob(t *testing.T) {
629629
Metadata: &sdkproto.Metadata{
630630
CoderUrl: (&url.URL{}).String(),
631631
WorkspaceOwnerGroups: []string{database.EveryoneGroup},
632+
TemplateVersionId: uuid.Nil.String(),
633+
TemplateId: uuid.Nil.String(),
632634
},
633635
},
634636
})
@@ -677,6 +679,8 @@ func TestAcquireJob(t *testing.T) {
677679
Metadata: &sdkproto.Metadata{
678680
CoderUrl: (&url.URL{}).String(),
679681
WorkspaceOwnerGroups: []string{database.EveryoneGroup},
682+
TemplateVersionId: version.ID.String(),
683+
TemplateId: uuid.Nil.String(),
680684
},
681685
},
682686
})

coderd/templateversions.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1609,9 +1609,13 @@ func (api *API) postTemplateVersionsByOrganization(rw http.ResponseWriter, r *ht
16091609
var matchedProvisioners codersdk.MatchedProvisioners
16101610
err = api.Database.InTx(func(tx database.Store) error {
16111611
jobID := uuid.New()
1612-
16131612
templateVersionID := uuid.New()
1613+
16141614
jobInput, err := json.Marshal(provisionerdserver.TemplateVersionImportJob{
1615+
TemplateID: uuid.NullUUID{
1616+
UUID: req.TemplateID,
1617+
Valid: req.TemplateID != uuid.Nil,
1618+
},
16151619
TemplateVersionID: templateVersionID,
16161620
UserVariableValues: req.UserVariableValues,
16171621
})

0 commit comments

Comments
 (0)