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)
| 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. |
| 1151 | func 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. |