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

Function ProvisionerDaemon

coderd/database/dbgen/dbgen.go:1151–1188  ·  view source on GitHub ↗

ProvisionerDaemon creates a provisioner daemon as far as the database is concerned. It does not run a provisioner daemon. If no key is provided, it will create one.

(t testing.TB, db database.Store, orig database.ProvisionerDaemon)

Source from the content-addressed store, hash-verified

1149// ProvisionerDaemon creates a provisioner daemon as far as the database is concerned. It does not run a provisioner daemon.
1150// If no key is provided, it will create one.
1151func ProvisionerDaemon(t testing.TB, db database.Store, orig database.ProvisionerDaemon) database.ProvisionerDaemon {
1152 t.Helper()
1153
1154 var defOrgID uuid.UUID
1155 if orig.OrganizationID == uuid.Nil {
1156 defOrg, _ := db.GetDefaultOrganization(genCtx)
1157 defOrgID = defOrg.ID
1158 }
1159
1160 daemon := database.UpsertProvisionerDaemonParams{
1161 Name: takeFirst(orig.Name, testutil.GetRandomName(t)),
1162 OrganizationID: takeFirst(orig.OrganizationID, defOrgID, uuid.New()),
1163 CreatedAt: takeFirst(orig.CreatedAt, dbtime.Now()),
1164 Provisioners: takeFirstSlice(orig.Provisioners, []database.ProvisionerType{database.ProvisionerTypeEcho}),
1165 Tags: takeFirstMap(orig.Tags, database.StringMap{}),
1166 KeyID: takeFirst(orig.KeyID, uuid.Nil),
1167 LastSeenAt: takeFirst(orig.LastSeenAt, sql.NullTime{Time: dbtime.Now(), Valid: true}),
1168 Version: takeFirst(orig.Version, "v0.0.0"),
1169 APIVersion: takeFirst(orig.APIVersion, "1.1"),
1170 }
1171
1172 if daemon.KeyID == uuid.Nil {
1173 key, err := db.InsertProvisionerKey(genCtx, database.InsertProvisionerKeyParams{
1174 ID: uuid.New(),
1175 Name: daemon.Name + "-key",
1176 OrganizationID: daemon.OrganizationID,
1177 HashedSecret: []byte("secret"),
1178 CreatedAt: dbtime.Now(),
1179 Tags: daemon.Tags,
1180 })
1181 require.NoError(t, err)
1182 daemon.KeyID = key.ID
1183 }
1184
1185 d, err := db.UpsertProvisionerDaemon(genCtx, daemon)
1186 require.NoError(t, err)
1187 return d
1188}
1189
1190// ProvisionerJob is a bit more involved to get the values such as "completedAt", "startedAt", "cancelledAt" set. ps
1191// can be set to nil if you are SURE that you don't require a provisionerdaemon to acquire the job in your test.

Calls 10

GetRandomNameFunction · 0.92
NowFunction · 0.92
takeFirstSliceFunction · 0.85
takeFirstMapFunction · 0.85
takeFirstFunction · 0.70
HelperMethod · 0.65
NewMethod · 0.65
InsertProvisionerKeyMethod · 0.65